An understanding of C++ helps to solidify knowledge of programming concepts and provides a strong foundation for learning other programming languages. This course takes students' programming skills to the next level by emphasizing practical programming skills while focusing on creating text-based games. The course examines common programming constructs as they are implemented in C++ including C++ 11. Topics include the use of C++ for memory management, file input/output (I/O), pointers, references, exceptions, and object-oriented programming. Basic data structures such as linked lists, stacks, and queues are covered in terms of their usage and implementation using C++. Modules in the course are accompanied by a mini-game project to teach the associated programming concepts as well as to hone problem-solving skills and good coding practices.