18-600: Foundations of Computer Systems

Class times: MW 3:30-5:20pm (Pacific)/6:30-8:20pm (Eastern), B23 118, 211 (SV), HH 1107 (Pittsburgh)

This course provides both the programmer's and architect's views 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, operating systems, computer architecture, and networking, 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, parallel architecture, memory organization and management, networking technology and protocols, and supporting concurrent computation workloads. This course is modeled after 15-213/18-213/15-513, and is intended for ECE and INI 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.

Course Syllabus


Instructors

Name John P. Shen Bill Nace
Contact jpshen@cmu.edu wnace@andrew.cmu.edu
Office B23 201B D208 HH
Office Hours via email via email

Course Information

For details See the course syllabus for details.
Recitations Section A: Tue, 4:30pm to 5:50pm (ET), WEH 4709, Mani Swetha Mandava, Kevin Zheng
Section B: Tue, 4:30pm to 5:50pm (ET), GHC 4301, Hancheng Zhong, Shreeja Visweswaraiah
Section SA: Tue, 4:30pm to 5:50pm (PT), B23 211, Abhinav Jauhri
Section SB: Tue 4:30pm to 5:50pm (PT), B23 110, Jiahui Lao, Tyler Nuanes
TA Office Hours Silicon Valley (PT) Thursday (5-7pm) @ B23 228
Sunday (3-5pm) @ B23 228
TA Office Hours Pittsburgh (ET) Thursday (5:30-7:30pm) @ WEH 4709
Sunday (3-5pm) @ WEH 5312
Required Textbooks Randal E. Bryant and David R. O'Hallaron,
Computer Systems: A Programmer's Perspective, Third Edition, Pearson, 2016
  Brian W. Kernighan and Dennis M. Ritchie,
The C Programming Language, Second Edition, Prentice Hall, 1988
Optional Textbooks John Shen and Mikko Lipasti
Modern Processor Design: Fundamentals of Superscalar Processors, 2005; reissued by Waveland Press Inc, 2013. ISBN 13: 978-1-4786-0783-0
  Michel Dubois, Murali Annavaram, Per Stenstrom
Parallel Computer Organization and Design, Cambridge University Press, 2012.
ISBN 978-0-521-88675-8
Grading Composed from total lab performance (50%) and total exam performance (50%).
Piazza For all course related communication use piazza.com/cmu/spring2018/18600/home. Please post your questions according to our guidelines here: Piazza Guidelines

Course Assistants

Name Brittany Jade Reyes Michelle Mahouski
Contact bjreyes@andrew.cmu.edu, 650-335-2854 mmahousk@andrew.cmu.edu
Office B19 1052 HH 1112