Introduction to Computer Systems
Course ID 15503
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, memory organization and management, networking technology and protocols, and supporting concurrent computation. **This remote course is only available to incoming master's students who need a refresher course on computer systems. Not open to undergraduates.**
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, and supporting concurrent computation.
Required Background Knowledge
Students should have at least 2 semesters of experience programming, including 1 or more in an imperative, pointer-based language, such as C.
Course Relevance
This class is offered as "remote-only" with an in-person exam with two options: summer final exam date or an incoming student option at the end of orientation. Lectures are provided asynchronously through recordings. International students present in the U.S. cannot enroll in more than one remote class per semester.