Skip to content

OguzhanKirik/cpp_exercises

Repository files navigation

C++ Projects

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.



1. Introduction to C++

A foundational introduction to the C++ language, syntax, tools, and basic algorithms.

Lessons

  • 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.

Project

Build an OpenStreetMap Route Planner

Create a graphical route‑planning program using real map data and an A* search implementation.


2. Object‑Oriented Programming in C++

Covers deep OOP concepts and good software design through encapsulation, inheritance, polymorphism, and templates.

Lessons

  • 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.

Project

Build a System Monitoring Tool

Develop a lightweight monitoring utility (similar to htop) to display live system stats.


3. Memory Management

Deep dive into how memory works in C++, from stack/heap operation to ownership patterns.

Lessons

  • 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 & Ownershipnew/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 Managementunique_ptr, shared_ptr, weak_ptr and patterns.

Project

Memory BOT

Implement a terminal‑based chatbot that answers questions about C++ memory concepts.


4. Concurrency (6 hours)

Learn how to build multi‑threaded programs safely and efficiently.

Lessons

  • 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.

Project

Concurrent Traffic Simulation

Build a multi‑threaded traffic simulator using mutexes and synchronization techniques.


🎯 Summary of Tasks

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.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors