18-613-RW   Foundations of Computer Systems

Location: Pittsburgh

Units: 12

Semester Offered: Spring

Course description

This course provides a programmer's view of how computer systems execute programs, store information, and communicate. It enables students to become more effective programmers, especially in dealing with issues of performance, portability and robustness. It also serves as a foundation for courses on compilers, networks, operating systems, and computer architecture, where a deeper understanding of systems-level issues is required. Topics covered include: machine-level code and its generation by optimizing compilers, performance evaluation and optimization, computer arithmetic, processor architecture, memory organization and management, networking technology and protocols, and supporting concurrent computation. This course is modeled after 15-213/18-213/15-513, and is intended for ECE MS students with expanded course contents presented at the graduate level. It prepares students for other graduate level computer systems courses as well as working in the industry.

Learning objectives

This course equips students with a comprehensive programmer's view of how computer systems execute programs, store information, and communicate, enabling them to understand the full lifecycle of program behavior within modern architectures. Students will learn how to deal with issues of performance, portability, and robustness, preparing them to design software that functions reliably across diverse environments. By the end of the course, students will be able to improve their effectiveness as software developers, applying system-level insights to enhance both the quality and performance of the programs they create.

Content details

This course provides students with a deep understanding of the foundational and practical aspects of computer systems. Key topics include machine-level code and its generation by optimizing compilers, performance evaluation and optimization, computer arithmetic, memory organization and management, networking technology and protocols, as well as supporting concurrent computation.

Prerequisite

Facility in C, including basic data structures