18-600: Foundations of Computer Systems

Class times: MW 3:30-5:20pm (Pacific)/6:30-8:20pm (Eastern), B23 118, 211 (SV), DH A302 (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 Gregory Kesden
Contact jpshen@cmu.edu gkesden@andrew.cmu.edu
Office B23 201B 124 INI Building (Henry Street)
Office Hours via email weekly schedule

Course Information

For details See the course syllabus for details.
Recitations Section A: Tue, 7:30pm to 8:50pm (ET), HH 1107, Jithin Yaratapalli, Sampath Chanda
Section B: Tue, 7:30pm to 8:50pm (ET), DH A302, Akanksha Periwal, Gautam Arakalgud
Section C: Tue, 5:30pm to 6:50pm (ET), WEH 4623, Abhiroop Kaginalkar, Prerit Roodney
Section D: Tue, 5:30pm to 6:50pm (ET), WEH 4623, Harish Dixit, Mani Swetha Mandava
Section SA: Tue 4:30pm to 5:50pm (PT), B23 118, Daniel Chen, Siyang Mai
Section SB: Tue, 4:30pm to 5:50pm (PT), B23 109/110, Abhinav Jauhri
TA Office Hours Silicon Valley (PT) Wednesday (6-8pm) @ B23 228
Thursday (5-6pm, only when labs are due) @ B23 228
Sunday (2-4pm) @ B23 228
TA Office Hours Pittsburgh (ET) Wednesday (2:30-3:30pm) @ WEH 5421, (3:30-4:30pm) @ WEH 5415
Thursday (6-7pm, only when labs are due) @ WEH 5312
Sunday (2-4pm) @ WEH 4623
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/fall2017/18600/home. Please post your questions according to our guidelines here: Piazza Guidelines
Course Directory /afs/ece.cmu.edu/class/ece600/

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