15-440: Computer Systems Fundamentals
The primary objective of this course is for students to gain understanding of the fundamental principles underlying the broad and interesting area of the computer sciences that we often call "systems". Unlike other systems courses that achieve depth within a specific domain, such as operating systems, distributed systems, databases, networks, massively parallel systems, or security, this course takes a broader view. Interesting challenges across these domains are used to highlight the common themes and techniques including scarcity, scheduling, concurrency and concurrent programming, abstraction and modularity, imperfect communication and other types of failure, protection from accidental and malicious harm, optimism, and the use of tools in problem solving. As the creation and management of software systems is a fundamental goal of any undergraduate systems course, students will design, implement, and debug large programming projects. As a consequence competency in both The C Programming Language and Java is required.
| Lec | TR | 01:30 pm - 02:50 pm | HH B131 | Kesden, Ashley-Rollman |
| A | W | 02:30 pm - 03:20 pm | WEH 8427 | Instructor TBA |

