We may earn an affiliate commission when you visit our partners.
David Silver, Stephen Welch, and Andreas Haja

Here's a deal for you

Save money when you learn with a deal that may be relevant to this course.
All coupon codes, vouchers, and discounts are applied automatically unless otherwise noted.

What's inside

Syllabus

Welcome
In this lesson, you will explore some of the basic object oriented functionality of the C++ language.
In this lesson, we'll get into some of the more advanced topics in object oriented programming, including inheritance, polymorphism and templates.
Read more

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Appeals to learners new to object-oriented programming, specifically in C++
Engages learners with an accessible introduction to OOP
Provides learners with hands-on experience building a system monitor application

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Practical c++ object-oriented programming

According to students, this Object-Oriented Programming course in C++ provides a strong foundation. Learners praise its practical application, culminating in a rewarding system monitor project that reinforces learning. Many found lectures clear and well-structured, leading to a largely positive experience. However, some noted it can be fast-paced and might require some prior C++ experience, making it less ideal for absolute beginners.
Covers basic to advanced OOP topics including inheritance and polymorphism.
"This course was an excellent deep dive into C++ OOP... covering polymorphism and templates."
"I found this a very comprehensive course on OOP with C++."
"The progression from basic to advanced OOP was smooth and easy to follow."
Lectures are well-structured, making complex OOP concepts understandable.
"The instructor explained complex topics like polymorphism and templates with great clarity."
"Everything clicked after taking this. The lectures were well-structured, and the examples were spot on."
"The instructor's teaching style is engaging, and the concepts are broken down effectively."
The system monitor project provides invaluable hands-on application of OOP.
"The system monitor project was challenging but incredibly rewarding, truly solidifying my understanding of real-world application."
"I particularly enjoyed the practical aspects and the hands-on project."
"Building the htop-like application was a brilliant way to apply all the principles."
"The practical exercises and the final project really set this course apart."
Some learners may need to seek external resources for deeper understanding.
"It's a good overview, but be prepared to supplement with external resources."
"I managed to get through it, but it required a lot of self-study for certain concepts to stick."
The course is fast-paced and better suited for learners with prior C++ knowledge.
"Some parts felt a bit rushed, especially the advanced topics. I had some prior C++ experience, which definitely helped me keep up."
"The course covers a lot of ground quickly. I felt it assumed more prior knowledge than it stated."
"I found this course quite difficult to follow as a beginner to C++. It's better for those with a strong C++ background already."
"The project was overwhelming and felt like a huge jump from the lectures. This course is not for beginners, despite what I hoped."

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 C++ Syntax
Brush up on the fundamentals of C++ syntax to ensure a solid foundation before starting the course.
Browse courses on C++ Syntax
Show steps
  • Review online tutorials or documentation on C++ syntax.
  • Complete practice exercises to test your understanding of syntax rules.
Follow Guided Tutorials on Object-Oriented Programming Concepts
Enhance your understanding of object-oriented programming principles through guided tutorials.
Browse courses on OOP Concepts
Show steps
  • Identify online tutorials or video courses on OOP concepts.
  • Follow the tutorials, taking notes and practicing the concepts.
  • Complete quizzes or exercises to assess your progress.
Attend a C++ Workshop or Hackathon
Immerse yourself in the C++ community and learn from experts and peers.
Show steps
  • Research and find C++ workshops or hackathons in your area.
  • Register and attend the event, actively participating in discussions and hands-on activities.
  • Network with other C++ enthusiasts and professionals.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Practice Inheritance and Polymorphism Exercises
Reinforce your understanding of inheritance and polymorphism by solving practice problems.
Browse courses on Inheritance
Show steps
  • Find online coding exercises or platforms that focus on inheritance and polymorphism.
  • Solve the exercises, experimenting with different scenarios and debugging your code.
  • Review solutions and explanations to improve your understanding.
Design and Implement a Small C++ Project
Apply your knowledge by building a small C++ project that demonstrates your understanding of the concepts covered in the course.
Browse courses on Software Development
Show steps
  • Identify a problem or task that can be solved using C++.
  • Design and plan the project, including the classes, objects, and relationships.
  • Implement the project, testing and debugging your code.
  • Document your code and write a brief report on the project.
Volunteer as a C++ Mentor
Reinforce your understanding of C++ while helping others learn the language.
Browse courses on Mentoring
Show steps
  • Join online forums or communities dedicated to C++.
  • Offer your help to beginners or students who have questions or need guidance.
  • Share your knowledge and experience, fostering a supportive learning environment.
Contribute to an Open-Source C++ Project
Engage with the C++ open-source community and contribute to real-world projects.
Browse courses on Open Source
Show steps
  • Identify a C++ open-source project that aligns with your interests.
  • Review the project's documentation and codebase.
  • Identify an area where you can contribute, such as fixing bugs, adding features, or improving documentation.
  • Submit a pull request with your proposed changes.

Career center

Learners who complete Object-Oriented Programming will develop knowledge and skills that may be useful to these careers:
Software Developer
Software Developers specialize in designing, installing, and maintaining software systems for an organization's computer networks. The work can involve research, development, programming, and testing in areas such as network and database administration, cloud and mobile computing, and systems integration. This course may be useful for this role, since building a strong foundation in object-oriented programming can help advance a career in software development.
Computer Programmer
Computer Programmers write and test code that allows computer applications and software programs to run. They work closely with software engineers, quality assurance (QA) engineers, and other programmers. Computer Programmers typically need a bachelor's degree in computer science or a related field, however this course may be helpful as a supplement to college-level study.
Web Developer
Web Developers design and create websites. They are responsible for the look and feel of a website, as well as its functionality. Web Developers typically need a bachelor's degree in computer science, web design, or a related field, however this course may be helpful as a supplement to college-level study.
Database Administrator
Database Administrators are responsible for the installation, maintenance, and security of an organization's database systems. They work with database software and hardware to ensure that data is stored, organized, and retrieved efficiently. Database Administrators typically need a bachelor's degree in computer science or a related field, however this course may be helpful as a supplement to college-level study.
Systems Analyst
Systems Analysts study an organization's current business processes and procedures and design solutions to help the organization operate more efficiently. They may also research, analyze, and recommend new software and hardware systems. Systems Analysts typically need a bachelor's degree in computer science, information systems, or a related field, however this course may be helpful as a supplement to college-level study.
Technical Writer
Technical Writers create instruction manuals, technical reports, and other documentation to explain complex technical information to a variety of audiences. They work with engineers, scientists, and other technical professionals to gather information and translate it into clear and concise language. Technical Writers typically need a bachelor's degree in English, technical writing, or a related field, however this course may be helpful as a supplement to college-level study.
Computer Scientist
Computer Scientists research, design, and develop computer systems and applications. They work in a variety of industries, including software development, artificial intelligence, and data science. Computer Scientists typically need a master's or doctoral degree in computer science or a related field, however this course may be helpful as a supplement to college-level study.
Software Engineer
Software Engineers apply engineering principles to the design, development, and maintenance of software systems. They work with software developers, quality assurance (QA) engineers, and other engineers to ensure that software systems are reliable, efficient, and meet the needs of users. Software Engineers typically need a bachelor's degree in computer science or a related field, however this course may be helpful as a supplement to college-level study.
Information Technology (IT) Manager
IT Managers plan, implement, and maintain an organization's computer systems and networks. They work with other IT professionals to ensure that the organization's technology is running smoothly and efficiently. IT Managers typically need a bachelor's degree in computer science, information technology, or a related field.
Computer Systems Analyst
Computer Systems Analysts study an organization's computer systems and procedures and design solutions to improve efficiency. They may also research, analyze, and recommend new software and hardware systems. Computer Systems Analysts typically need a bachelor's degree in computer science, information systems, or a related field.
Network Administrator
Network Administrators are responsible for the installation, maintenance, and security of an organization's computer networks. They work with network hardware and software to ensure that the network is running smoothly and efficiently. Network Administrators typically need a bachelor's degree in computer science, information technology, or a related field.
Data Analyst
Data Analysts collect, clean, and analyze data to help organizations make informed decisions. They work with data scientists, statisticians, and other professionals to develop data-driven solutions to business problems. Data Analysts typically need a bachelor's degree in statistics, mathematics, or a related field.
Quality Assurance (QA) Engineer
QA Engineers test software systems to ensure that they meet the needs of users. They work with software developers and other engineers to identify and fix bugs. QA Engineers typically need a bachelor's degree in computer science, software engineering, or a related field.
User Experience (UX) Designer
UX Designers research, design, and test user interfaces for software systems and websites. They work with other designers, engineers, and product managers to ensure that user interfaces are user-friendly and efficient. UX Designers typically need a bachelor's degree in human-computer interaction, graphic design, or a related field.
Information Security Analyst
Information Security Analysts protect an organization's computer systems and networks from unauthorized access, use, disclosure, disruption, modification, or destruction. They work with other IT professionals to develop and implement security measures, such as firewalls, intrusion detection systems, and access control lists. Information Security Analysts typically need a bachelor's degree in computer science, information technology, or a related field.

Reading list

We've selected 11 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.
Is the definitive guide to design patterns. It covers all aspects of design patterns, from the basics to the most advanced patterns. It valuable resource for both beginners and experienced programmers.
Is the definitive reference for the C++ programming language. It was written by Bjarne Stroustrup, the creator of C++. It covers all aspects of the language, from the basics to the most advanced features.
Provides a comprehensive introduction to object-oriented design with C++. It covers all aspects of object-oriented design, from the basics to the most advanced patterns.
Provides a comprehensive introduction to concurrency in C++. It covers all aspects of concurrency, from the basics to the most advanced features. It valuable resource for both beginners and experienced programmers.
Comprehensive guide to C++ templates. It covers all aspects of templates, from the basics to the most advanced features. It valuable resource for both beginners and experienced programmers.
Provides a comprehensive introduction to object-oriented programming in C++. It covers the basics of object-oriented programming, such as classes, objects, inheritance, and polymorphism. It also covers more advanced topics, such as templates and the Standard Template Library (STL).
Comprehensive reference for the C++ programming language. It covers all aspects of the language, from the basics to the most advanced features. It valuable resource for both beginners and experienced programmers.
Provides a clear and concise introduction to object-oriented programming in C++. It covers the basics of object-oriented programming, such as classes, objects, inheritance, and polymorphism. It also covers more advanced topics, such as templates and the Standard Template Library (STL).
Provides a comprehensive introduction to C++ programming. It covers all aspects of the language, from the basics to the most advanced features. It valuable resource for both beginners and experienced programmers.
Fun and engaging introduction to C++. It uses a conversational style and plenty of examples to make learning C++ easy and enjoyable.

Share

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

Similar courses

Similar courses are unavailable at this time. Please try again later.
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 - 2025 OpenCourser