Object-Oriented Programming & Systems Architecture in C++
A comprehensive collegiate curriculum on memory architecture, pointer arithmetic, manual heap allocation, object-oriented encapsulation, polymorphism, and stream I/O formatting in modern C++.
Low-Level Memory & Systems Engineering
Understanding how hardware executes software is fundamental to computer science. In CS-CPP1, students explore computer architecture directly through C++. Students study the exact physical separation between the execution Stack (automatic fast allocation with LIFO lifetime) and the dynamic Heap (manual allocation with pointer addressing).
Students learn the rigorous rules of pointers and references: memory addressing, pointer dereferencing, pointer arithmetic, memory leaks, and RAII (Resource Acquisition Is Initialization) design patterns to build leak-free, high-performance software systems.
Syllabus & Curriculum Milestones
C++ Compilation, Streams & Escape Sequences
The g++ compiler pipeline, standard I/O streams (cin, cout), stream manipulators, and character escape sequences.
Pointers, Memory Addresses, & Heap Allocation
Stack vs Heap memory layout, pointer dereferencing with operator*, address-of operator&, dynamic arrays, new/delete, and memory leak prevention.
Object-Oriented Design & Encapsulation
Classes, public/private access specifiers, constructors and destructors, copy constructors, operator overloading, and const-correctness.
Inheritance, Polymorphism & V-Tables
Single and multiple inheritance, virtual functions, pure virtual methods, abstract base classes, and dynamic runtime dispatch.
Standard Template Library (STL) & Final Project
Vectors, maps, iterators, generic templates, smart pointers (std::unique_ptr, std::shared_ptr), and final systems programming application.