The course focuses on understanding lower-level issues in computer design and programming. The course starts with the C++ programming language, moves down to assembly and machine-level code, and concludes with basic operating systems and architectural concepts. Students learn to read assembly code and reverse-engineer programs in binary. Topics in this course include the C++ programming language, data representation, machine-level code, memory organization and management, performance evaluation and optimization, and concurrency.