
Systems Programming II
Course Code
CMSC 14400 10
Course Description
This course is a direct continuation of CMSC 14300. It covers the basics of computer systems from a programmer's perspective.
Topics include machine language programming, exceptions, code optimization, performance measurement, system-level I/O, and concurrency.
Students will gain further fluency with debugging tools and build systems.
Instructor(s)
Adam Shaw
Other Courses to Consider
These courses might also be of interest.
Systems Programming IThis course is the first in a pair of courses designed to teach students about systems programming.
In this course, students will develop a deeper understanding of what a computer does when executing a program. In order to make the operations of the computer more transparent, students will study the C programming language, with special attention devoted to bit-level programming, pointers, allocation, file input and output, and memory layout. In the context of the C language, the course will revisit fundamental data structures by way of programming exercises, including strings, arrays, lists, trees, and dictionaries. Furthermore, the course will examine how memory is organized and structured in a modern machine.
Students will gain basic fluency with debugging tools such as gdb and valgrind and build systems such as make.
Residential