703.608.0975 rick@warrenworks.com

C++ Programming

Boot Camp

marrymount-logo-half

College of Business, Innovation, Leadership, and Technology (BILT)
School of Technology & Innovation

C++ Programming Boot Camp

Fall 2026

SYLLABUS

Instruction Type:

Classroom/Instructor Facilitated

Description:

This compressed boot camp develops practical C++ skills in four three-hour morning sessions. Short lectures and live demonstrations lead directly into guided coding and a tightly scoped cumulative capstone. Participants learn essential language features, class design, safe resource management, standard-library techniques, testing, debugging, and professional project organization. CMake is used from the first exercise onward so every program follows a repeatable configure, build, test, and run workflow.

Important Note:

This is not an introductory programming course. Attendees should be familiar with fundamental programming concepts.

Instructor:

Rick Miller, MS Computer Science
California State University Long Beach
Phone: (703) 608-0975
email: richmill@marymount.edu
website: warrenworks.com

Session Dates:

Location Dates & Times
Session 1 — Ballston Center, Room 4088 Saturday, 12 September 2026, 0900 — 1200
Session 2 — Ballston Center, Room  4088 Saturday, 19 September 2026, 0900 — 1200
Session 3 — Ballston Center, Room 4088 Saturday, 26 September 2026, 0900 — 1200
Session 4 — Ballston Center, Room 4088 Saturday, 03 October 2026, 0900 — 1200

Learning Outcomes:

  • Configure, generate, build, and run C++ projects with CMake.
  • Write clear C++17 code using strong types, functions, references, const-correctness, and standard containers.
  • Design classes with appropriate construction, encapsulation, interfaces, and value semantics.
  • Apply RAII and smart pointers to manage resources safely.
  • Use templates, algorithms, lambdas, exceptions, and selected modern C++ features appropriately.
  • Organize multi-target projects with libraries, executables, tests, include paths, and target properties.
  • Diagnose compiler, linker, runtime, and test failures using a systematic workflow.
  • Deliver a tested, documented, CMake-based capstone project.

Primary References:

Reference Link
Programming — Principles and Practice Using C++ (3rd Edition) https://www.stroustrup.com/programming.html
C Programming Language, 2nd Edition, Brian W. Kernighan & Dennis M. Ritchie https://warrenworks.com/wp-content/uploads/2024/02/C_Programming_Language_2nd-Edition.pdf
CMake Tutorial https://cmake.org/cmake/help/latest/guide/tutorial/index.html?utm_source=chatgpt.com
Professional CMake: A Practical Guide https://crascit.com/professional-cmake/?utm_source=chatgpt.com
C++ For Artists: The Art, Philosophy, and Science of Object-Oriented Programming https://pulpfreepress.com/c-for-artists-the-art-philosophy-and-science-of-object-oriented-programming-1st-edition-2/

Helpful References:

Reference Link
Modern CPP Features https://github.com/AnthonyCalandra/modern-cpp-features
Modern C++ Tutorial https://github.com/changkun/modern-cpp-tutorial
ISO/IEC 9899:201x Draft Standard https://www.open-std.org/jtc1/sc22/wg14/www/docs/n1548.pdf
The C Book, 2nd Edition, by Mike Banahan, et. al. https://publications.gbdirect.co.uk//c_book/
C: Elements of Style, by Steve Oualline http://www.r-5.org/files/books/computers/languages/c/style/Steve_Oualline-C_Elements_of_Style-EN.pdf
An Introduction to GCC https://www.linuxlinks.com/wp-content/uploads/2019/07/An_Introduction_to_GCC-Brian_Gough.pdf
The GNU C Programming Tutorial http://www.crasseux.com/books/ctut.pdf
Essential C, by Nick Parlante http://cslibrary.stanford.edu/101/EssentialC.pdf
Modern C, by Jens Gustedt https://gustedt.gitlabpages.inria.fr/modern-c/
GNU Make https://www.gnu.org/software/make/manual/make.pdf
C Programming Language, 2nd Edition, Solutions https://github.com/ohkimur/the-c-programming-language-2nd-edition-solutions
GNU Coding Standards https://www.gnu.org/prep/standards/
The Definitive C Book Guide on StackOverflow.com https://stackoverflow.com/questions/562303/the-definitive-c-book-guide-and-list
The GNU C Library Reference PDF https://www.gnu.org/software/libc/manual/pdf/libc.pdf

Required Development Environment:

Component Recommended Notes
Compiler GCC 11+, Clang 14+, or MSVC 2022 Must support C++17
Build system CMake 3.20+ Command line required; IDE integration optional
Editor/IDE VS Code, CLion, or Visual Studio C++ and CMake extensions encouraged
Version control Git Used for checkpoints and capstone submissions

Syllabus:

Session Discussion Topics Activities | Assignments
Session 1
  • Introductions All ‘Round
  • Why C++?
  • Development Environment Setup and Configuration
    • MacOS
    • Windows
  • First C++ Program
    • Creating
    • Compiling
    • Linking
    • Running
  • Purpose of main() Function
  • Fundamental Data Types and Their Sizes
    • char
    • short
    • int
    • long
    • float
    • double
  • Variables
    • Naming
  • Constants
    • Numeric
    • Character
    • String
    • Enumerations
  • Common Operators
    • Arithmetic
    • Relational and Logical
    • Increment and Decrement
      • Prefix
      • Postfix
  • Console I/O
    • printf()
    • puts()
    • scanf()
  • CMake Fundamentals
    • Configuration
    • Purpose of CMakelists.txt file
    • Build multi-file project

    My YouTube Channel: https://www.youtube.com/pulpfreepress

    Install gcc on MacOS: https://youtu.be/fjJGIP5ic5s?si=pBVjIWiE29EYbBzd

    Install gcc on Windows: https://youtu.be/a37wNPSWklw?si=k0z_t4XwtFziR2HV

    Getting Organized: https://youtu.be/MBFbnNliw-w?si=QxRgrgJxcfi_Xoel

    Hello World!: https://youtu.be/T-xKQgk4Ge8?si=BwgCKYb8A7sIKci9

     

    C++ Programming Boot Camp Repository: https://github.com/pulpfreepress/cpp_bootcamp

    C Programming Boot Camp Repository:
    https://github.com/pulpfreepress/c_bootcamp

     

    Development Environment Setup and Configuration

    Session 2
    • Classes
    •  Functions & Methods
      • Declaration
      • Definition
      • Calling
      • Passing Arguments
      • Returning Values
    • Special Methods
      • Constructors
      • Destructors
    • Control Flow
      • if/else
      • while
      • do/while
      • switch
    • Multi-File Programs
      • Complex Project Structure
      • Pre-Processor Directives
        • #include
        • #ifndef
        • #define
      • Strings
        • NULL Termination
      • Arrays
        • Declaration
        • Element Access
        • Iterating
        • Array Math
      • Structured Template Library (STL)
        • Containers
          • Vector
          • Map
      Session 3
      • Pointers
        • What is a Pointer?
        • Declaration
        • Dereferencing
        • Unique Pointer
      • Stack vs. Heap Memory
      • Dynamic Memory Allocation
      • Releasing Allocated Memory
      • Defining Your Own Types
        • typedef
      • Complex Data Types
        • struct
      Session 4
        • Third-Party Libraries
        • File I/O
        • Database Access
          • PostgreSQL
        • Course Wrap-Up
          • Where to Go From Here