Summer 2022
University of Washington
This course provides an understanding of systems in computing, focusing on operating systems, networking, and C/C++ languages. Students learn about low-level data representation, memory management, system interactions, and efficient programming workflows. It delves into C++ idioms, network protocols, and concurrency. Prior knowledge of C programming and Linux tools is required.
Systems Programming is the exploration of the composition and interface of systems in computing looking through the lens of operating systems, networking, and C/C++ languages. Through peeling levels of abstraction, students will view practices of low-level data representation (e.g. C, C++); explicit memory management; interacting with operating-system services; and cache-aware programming.
Course Learning objectives are the goals that are set out for you to accomplish in this course:
There are no strictly required texts for this course. Most people will find it useful to have both a C and a C++ reference; suggestions are given below. The C++ Primer is strongly recommended as C++ is a big, complex language and it is hard to understand how it all fits together from just Google and Stack Overflow snippets and folklore.
C++ Primer (5th Edition), Lippman, Lajoie & Moo. ISBN 0-321-71411-3.