This README provides a structured overview of the ** C++ Programs**, summarizing all chapters (courses), lessons, and associated projects. It is designed to help learners quickly understand the flow of the curriculum and the key tasks they will complete.
A foundational introduction to the C++ language, syntax, tools, and basic algorithms.
- L1: Introduction to C++ and Setup – Program structure, compilation, variables, types, I/O, conditionals, loops.
- L2: Working with Data Structures and STL – Arrays, vectors, STL algorithms, file I/O, error handling.
- L3: Functions, Modularity, and OOP – Functions, multi‑file projects, classes, pointers, object lifetime.
- L4: Introduction to Algorithms – A Search* – Basics of algorithms, graphs, A* pathfinding, STL containers.
Create a graphical route‑planning program using real map data and an A* search implementation.
Covers deep OOP concepts and good software design through encapsulation, inheritance, polymorphism, and templates.
- L1: Encapsulation and Class Design – Data hiding, getters/setters, class architecture.
- L2: Inheritance, Composition, and Class Hierarchies – Single/multiple inheritance, is‑a vs has‑a design.
- L3: Polymorphism in Depth and Templates – Runtime & compile‑time polymorphism, abstract classes, STL power.
- L4: Error Handling Strategies and Debugging – Exceptions, return codes, assertions, logging, RAII.
Develop a lightweight monitoring utility (similar to htop) to display live system stats.
Deep dive into how memory works in C++, from stack/heap operation to ownership patterns.
- L1: Memory Fundamentals & System Memory Hierarchy – Memory layout, caching, addresses, GDB.
- L2: Pointers and Pointer Arithmetic – Pointer safety, arithmetic, null/dangling pointers.
- L3: Dynamic Memory Allocation & Ownership –
new/delete, avoiding leaks, ownership models. - L4: Copy Constructors, Move Semantics, Rule of Three/Five – Deep copy vs shallow copy, RAII.
- L5: Smart Pointers & Advanced Memory Management –
unique_ptr,shared_ptr,weak_ptrand patterns.
Implement a terminal‑based chatbot that answers questions about C++ memory concepts.
Learn how to build multi‑threaded programs safely and efficiently.
- L1: Threads and Parallel Execution – Creating and managing threads, avoiding data races.
- L2: Sharing Data & Synchronization – Promises, futures, atomics, async operations.
- L3: Mutexes, Locks, and Condition Variables – Safe resource access, deadlock prevention.
Build a multi‑threaded traffic simulator using mutexes and synchronization techniques.
Across the program you will:
- Build modular C++ applications
- Implement A* search from scratch
- Design full OOP class hierarchies
- Write robust, error‑safe code using RAII and modern C++ features
- Manage memory using smart pointers and move semantics
- Implement thread‑safe, concurrent systems
Note: This project uses the official Udacity Fixed-Wing Simulator and includes partial control code intended for educational and practice purposes.