Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Udacity

C++

via Udacity Nanodegree

Overview

Learn C++, a high-performance programming language used in the world's most exciting engineering jobs -- from self-driving cars and robotics to web browsers, media platforms, servers, and video games.

Syllabus

  • Introduction to C++
    • This course guides learners through the essentials of C++ programming. Starting with an overview and setup, students explore data structures using the Standard Template Library (STL), delving into functions and modular programming as well as Object-Oriented Programming (OOP). The course introduces fundamental algorithms through a hands-on search implementation, culminating in a practical project: building a Route Planner using OpenStreetMap. By the end, participants will be equipped with the skills to design and develop efficient C++ applications.
  • Object-Oriented Programming in C++
    • In this course, participants will explore fundamental OOP concepts and their applications. Starting with class design and encapsulation, the course progresses to inheritance and composition, helping students construct effective class hierarchies. Delving into advanced topics, the lessons cover polymorphism and templates, crucial for building flexible and reusable code. Additionally, learners will gain vital skills in error handling and debugging techniques through targeted exercises. The course culminates in a practical project where students will develop a comprehensive system monitoring tool, solidifying their knowledge and coding competency.
  • Memory Management
    • This course provides a comprehensive exploration of how memory interacts with programming languages. Beginning with the fundamentals of system memory hierarchy, students learn essential concepts like pointers and pointer arithmetic. The course delves into dynamic memory allocation, highlighting ownership principles to manage memory effectively. Fundamental object-oriented topics such as copy constructors and move semantics are covered, addressing the crucial Rule of Three/Five for robust memory management. Additionally, advanced techniques involving smart pointers are introduced to enhance memory safety. The course culminates in a hands-on project to apply learned skills in real-world scenarios.
  • Concurrency
    • This course provides a comprehensive introduction to concurrent programming concepts. It begins with an exploration of threads and parallel execution, focusing on how tasks can run simultaneously to enhance performance. The course then delves into critical aspects of shared data management and task synchronization, ensuring that multiple threads can operate without conflict. Students will learn about essential tools such as mutexes, locks, and condition variables, which are crucial for managing access to shared resources safely. Finally, participants will apply their knowledge in a project that integrates all learned concepts, fostering practical experience in designing and implementing concurrent systems.

Taught by

David Silver, Stephen Welch, Andreas Haja, Victor N., Hsin-Wen C., Francisco V., Alexandre S., Luis L. and Anwar J.

Reviews

4.8 rating, based on 10 Class Central reviews

4.6 rating at Udacity based on 811 ratings

Start your review of C++

  • Profile image for Ram Prasanth
    Ram Prasanth
    2
    In my opinion, this program is going to transform someone into a high profile C++ developer. Because this program does not only teach how things work, but also puts a participant into how to solve a real world (like) projects with the concepts that were taught. And not just one such project, but five of them. I am currently pursuing the course and I am sure that I am in a right place. To anyone reading this comment, it’s a right decision to take the course and it’s worth it.
  • Anonymous
    I'm very impressed with this program - the combination of 1) short videos; 2) custom reading material (in manageable length snippets); 3) links to applicable web sites with additional detail and; 4) interactive exercises with live explanations - make the program interesting enough to dive in deeply but easy to put aside when other priorities arise. I find the videos with Bjarne Stroustrup to be particularly interesting, providing a fantastic perspective. The highly responsive mentor help with searchable history and comprehensive project reviews have been the icing on the cake. Thanks.
  • Anonymous
    This program is amazing! The content of the course covers the main points of OOP and I specially love the part about concurrency and dynamic memory, which will allow me to make all my programs more professional. I am desiring to start development my videogames and electronic applications using the content of the program. Also the projects help you to learn how to work on a real C++ application."
  • Anonymous
    This project was very interesting, challenging and funny. You also made a very detailed and deep review over the project I sent, with great and interesting positive comments. I'll take into account all suggestions you made to improve my coding quality. Thank you
  • What stands out for me is the balance between theory and practice. This is something I have been missing since I started to learn c++ on my own and this nanodegree program does a perfect job of giving the right dose of each.
  • Anonymous
    Really appreciate the review the tutor wrote for me, which is personalized and gives me correct guidance on my coding style.
  • Anonymous
    "Honestly it was pretty hard for me to go from lessons to project, I had too many doubts initially, due probably to my low level of English. But I try."
  • Anonymous
    The experience is very good until now except that it will be better if we have more examples during our journey.

    The technical monitor is very helpful and very responsive
  • Josi Kie Nababan
    It's good. New experience for me, and exercise me to be a good C++ programmer. Thank you teacher, my mentor, mentor reviewer, and Udacity! Udacity is best.
  • Anonymous
    I request Udacity team to extend the deadlines, as I am learning this course while working in the office.

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.