HUNTERTUTORING

C++

Undergraduate · CS / Programming

Syllabus focus

Topics typically covered

Standard syllabus

Core language

  • Compilation model; headers, translation units, linkage
  • Types, pointers, references, and const correctness
  • Control flow, functions, and overloading
  • Classes, constructors, destructors, and RAII
  • Operator overloading and copy/move semantics (intro)

STL and memory

  • Templates and generic programming (intro)
  • STL containers: vector, list, map, unordered_map
  • Iterators, algorithms, and range-for
  • Dynamic memory: new/delete vs smart pointers
  • Streams and file I/O

Modern C++ practice

  • RAII, smart pointers, and ownership idioms
  • Move semantics, rvalue references, and rule of five
  • Templates, concepts (survey), and generic programming
  • STL algorithms, iterators, and containers choice
  • Const-correctness and constexpr basics
  • Undefined behavior pitfalls and sanitizer tooling

STEM / applied

Systems programming

  • Manual memory management pitfalls and sanitizers
  • Multi-file projects with CMake or Make
  • Low-level performance: cache locality and move semantics
  • Multithreading with std::thread and mutexes (intro)
  • Interfacing with C APIs and foreign libraries

Applied projects

  • Building a small game or simulator with OOP design
  • Parsing binary formats and network buffers
  • Unit testing with Google Test or Catch2
  • Profiling with perf/Valgrind (intro)
  • Modern C++ features (C++11/14/17) used in industry codebases

Systems and tooling

  • CMake or equivalent build systems
  • Debugging with gdb/lldb and core dumps (intro)
  • Profiling CPU and memory hotspots
  • Interfacing with C libraries and ABI basics
  • Multithreading with std::thread and atomics (intro)
  • Capstone: small performant CLI or library with tests

Notes

May be a second programming course or dedicated C++ for systems/graphics tracks.