We may earn an affiliate commission when you visit our partners.
Course image
Vasily Shamporov and Egor Churaev
This course is primarily intended for students with basic programming knowledge who want to develop their C++ programming skills and learn about OOP in the context of C++. You will understand the advantages and features of OOP over procedural programming. In addition, you will become familiar with the standard template library and CMake, a tool for building, testing, and packaging software. Aim of the course: • Learning about OOP in the context of C++. • Familiarity with CMake, STL, OpenCV Practical Learning Outcomes expected: • Improving C ++ programming skills • Using CMake for project building • Experience with the OpenCV...
Read more
This course is primarily intended for students with basic programming knowledge who want to develop their C++ programming skills and learn about OOP in the context of C++. You will understand the advantages and features of OOP over procedural programming. In addition, you will become familiar with the standard template library and CMake, a tool for building, testing, and packaging software. Aim of the course: • Learning about OOP in the context of C++. • Familiarity with CMake, STL, OpenCV Practical Learning Outcomes expected: • Improving C ++ programming skills • Using CMake for project building • Experience with the OpenCV library. This Course is part of HSE University Master of Computer Vision degree program. Learn more about the admission into the program and how your Coursera work can be leveraged if accepted into the program here https://inlnk.ru/r381p.
Enroll now

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Suitable for beginners in C++ and OOP concepts
Familiarizes learners with the industry-standard C++ library (STL)
Introduces CMake, a widely-used tool for building and managing C++ projects
Provides practical experience with OpenCV, a popular library for computer vision tasks
This course may require prior programming experience and a basic understanding of C++ syntax
May not cover advanced topics or cater to experienced C++ developers

Save this course

Save Object-oriented programming to your list so you can find it easily later:
Save

Reviews summary

Informative but dry content

While reviewers agree this course is informative and has good content, they also agree that the content is presented in a dull and monotonous way.
Course content is in-depth.
"...The content is great though and helped me understand many things about classes I grasped slighly before."
Lectures are dull and detached.
"...Great final project, but the teachers are not too engaging. The course is a collection of lengthy slides talked about in a monotonous way."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Object-oriented programming with these activities:
Review basic programming concepts
Strengthen foundational programming knowledge to enhance understanding of C++ concepts and techniques.
Browse courses on Programming Fundamentals
Show steps
  • Revisit introductory programming materials, such as online tutorials or textbooks.
  • Solve basic coding exercises to reinforce understanding of concepts.
Engage in peer-learning discussions
Foster collaboration and knowledge exchange by discussing C++ concepts and assignments with peers.
Show steps
  • Join online forums or discussion boards dedicated to C++.
  • Organize study groups with classmates to review and solve problems together.
Explore C++ tutorials and resources
Supplement course materials with additional resources to deepen understanding of C++ concepts and techniques.
Show steps
  • Follow online tutorials on platforms like Coursera, edX, or YouTube.
  • Read documentation and tutorials from the official C++ website.
Two other activities
Expand to see all activities and additional details
Show all five activities
Practice C++ exercises
Sharpen C++ coding skills through regular practice to improve understanding and problem-solving abilities.
Show steps
  • Solve coding problems on platforms like LeetCode or HackerRank.
  • Participate in online coding competitions and challenges.
Build a C++ project
Apply C++ knowledge and skills to develop a practical project, solidifying understanding and demonstrating capabilities.
Show steps
  • Identify a project idea that aligns with C++ concepts covered in the course.
  • Design and implement the project, utilizing OOP principles and C++ libraries.
  • Test and debug the project to ensure it meets requirements.

Career center

Learners who complete Object-oriented programming will develop knowledge and skills that may be useful to these careers:
Computer Vision Engineer
A computer vision engineer designs and develops computer vision systems. This course may be helpful for computer vision engineers because it teaches students about object-oriented programming, CMake, STL, and OpenCV. These skills can be used to develop and maintain complex computer vision systems.
Machine Learning Engineer
A machine learning engineer designs and develops machine learning systems. This course may be helpful for machine learning engineers because it teaches students about object-oriented programming, CMake, STL, and OpenCV. These skills can be used to develop and maintain complex machine learning systems.
Software Engineer
A software engineer designs, develops, and maintains software systems. This course may be helpful for software engineers because it teaches students about object-oriented programming, CMake, STL, and OpenCV. These skills can be used to develop and maintain complex software systems.
Web Developer
A web developer designs and develops websites. This course may be helpful for web developers because it teaches students about object-oriented programming, CMake, STL, and OpenCV. These skills can be used to develop and maintain complex web applications.
Data Scientist
A data scientist analyzes and interprets data to extract insights. This course may be helpful for data scientists because it teaches students about object-oriented programming, CMake, STL, and OpenCV. These skills can be used to develop and maintain complex data analysis systems.
Data Engineer
A data engineer designs and develops data pipelines. This course may be helpful for data engineers because it teaches students about object-oriented programming, CMake, STL, and OpenCV. These skills can be used to develop and maintain complex data pipelines.
Computer Scientist
A computer scientist researches and develops new computer technologies. This course may be helpful for computer scientists because it teaches students about object-oriented programming, CMake, STL, and OpenCV. These skills can be used to develop and maintain complex computer systems.
Game Developer
A game developer designs and develops video games. This course may be helpful for game developers because it teaches students about object-oriented programming, CMake, STL, and OpenCV. These skills can be used to develop and maintain complex video games.
AI Engineer
An AI engineer designs and develops artificial intelligence systems. This course may be helpful for AI engineers because it teaches students about object-oriented programming, CMake, STL, and OpenCV. These skills can be used to develop and maintain complex AI systems.
Software Developer
A software developer designs, builds, deploys, and maintains computer software. This course may be helpful for software developers because it teaches students about object-oriented programming, CMake, STL, and OpenCV. These skills can be used to develop and maintain complex software applications.
Computer Programmer
A computer programmer creates and modifies code that instructs computers how to perform tasks. This course may be helpful for computer programmers because it teaches students about object-oriented programming, CMake, STL, and OpenCV. These skills can be used to develop and maintain complex software applications.
Quality Assurance Analyst
A quality assurance analyst tests software applications to ensure they meet quality standards. This course may be helpful for quality assurance analysts because it teaches students about object-oriented programming, CMake, STL, and OpenCV. These skills can be used to test and debug complex software applications.
Network Administrator
A network administrator designs and maintains computer networks. This course may be helpful for network administrators because it teaches students about object-oriented programming, CMake, STL, and OpenCV. These skills can be used to develop and maintain complex computer networks.
Database Administrator
A database administrator designs and maintains databases. This course may be helpful for database administrators because it teaches students about object-oriented programming, CMake, STL, and OpenCV. These skills can be used to develop and maintain complex database systems.
System Analyst
A system analyst analyzes and designs computer systems. This course may be helpful for system analysts because it teaches students about object-oriented programming, CMake, STL, and OpenCV. These skills can be used to analyze and design complex computer systems.

Reading list

We've selected ten books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Object-oriented programming.
Provides a comprehensive overview of OOP using C++, covering fundamental concepts, inheritance, polymorphism, and more. It great starting point for those new to OOP and serves as a helpful reference for more experienced developers.
Seminal work on design patterns, providing a catalog of proven solutions to common problems in software design. It valuable reference for OOP developers seeking to improve code quality and maintainability.
Considered a classic in the C++ programming community, this book delves deeply into the intricacies of C++, providing detailed explanations of its core concepts and advanced features. While it may not focus specifically on OOP, it is an invaluable resource for anyone serious about mastering C++.
Focuses on concurrency and parallelism in C++, covering topics such as threads, synchronization, and multithreading. It is especially relevant for those interested in developing concurrent and parallel OOP applications.
Introduces design patterns in a fun and engaging way, using real-world examples to illustrate their application in OOP. It is particularly helpful for those seeking to understand the practical aspects of OOP.
Provides an in-depth exploration of C++ templates, a powerful feature in OOP. It covers advanced template techniques, metaprogramming, and their applications in various scenarios.
Provides practical advice and best practices for effectively using the STL in C++ development. It covers various aspects of STL usage, including performance optimization, error handling, and debugging.
Although not directly related to OOP, this classic work by Knuth provides fundamental algorithms and data structures knowledge essential for any programmer. It offers insights into efficient sorting and searching techniques, which are often used in OOP applications.

Share

Help others find this course page by sharing it with your friends and followers:
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser