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

Ishan Gosain, Kedar Kodgire, Aspen Olmsted and Andrew Sanford

Reviews

4.6 rating at Udacity based on 811 ratings

Start your review of C++

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.