Systems Programming I
Course Code
CMSC 14300 91
Course Description
This 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.
Course Criteria
Prerequisite: CMSC 14200 or placement into CMSC 14300.
This course is required for all CS majors.