This course provides an introduction to computer systems and related concepts. Emphasis is placed on understanding the implications of computer hardware, the operating system, and compilation system, on the performance and security of written code. Students learn basic C programming and the x86-64 assembly languages. Topics covered include basic computer organization, reverse engineering, buffer overflow, pipelining, the memory hierarchy, code optimization, and process creation. Students also gain exposure to topics in concurrency and parallel computing through the POSIX API. In addition to theory, students gain practical real-world experience using tools for profiling and debugging, including Valgrind and GDB. By the end of this programming intensive course, students will understand how the fundamental principles of computer systems impact their ability to write efficient code. **The additional 0.5CR of lab work for this course course was provisionally approved with the introduction of the CYBER SCIENCE major. Must receive approval by the CC NLT AY23 to continue.**