Introduction to Computer Systems Course ID 15213 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. Key Topics Machine-level code and its generation by optimizing compilers, Performance evaluation and optimization, Computer arithmetic, Memory organization and management, Networking technology and protocols, Supporting concurrent computation Required Background Knowledge Facility in C, including basic data structures, from 15-122 Course Relevance Foundation for courses on compilers, networks, operating systems, and computer architecture, where a deeper understanding of systems-level issues is required. NOTE FOR GRADUATE STUDENTS: This course is not open to graduate students beginning Spring 2015. Graduate students must register for 15-513 instead. Course Goals Programmer's view of how computer systems execute programs, store information, and communicate. How to deal with issues of performance, portability and robustness. Improve effectiveness as software developers in improving the quality and performance of programs. Learning Resources Course Textbook, AutoLab, Piazza, Course Website Assessment Structure Assignments (7 Labs) - 50%, Midterm - 20 %, Final - 30% Course Link https://www.cs.cmu.edu/~213/