Elements of Computer Systems

CS 200-A, Whitman College, Spring 2016
TTh 2:30 - 3:50 p.m., Olin 165
Instructor: Janet Davis (davisj@whitman.edu)
Office hours: As posted and by appointment

About this course

Welcome to Elements of Computer Systems! The official course description:

This course integrates key ideas from digital logic, computer architecture, compilers, and operating systems in one unified framework. This will be done constructively, by building a general-purpose computer system from ground up: from the low level details of switching circuits to the high level abstractions of modern programming languages. In the process, we will explore software engineering and algorithmic techniques used in the design of modern hardware and software systems. We will discuss fundamental trade-offs and future trends.

The field of computer science is divided broadly into three areas: Systems, Theory, and Applications. You have gained experience with the developing computing applications through CS 167, Introduction to Programming, and possibly other courses. You may be learning about computer science theory in CS 400-A, Algorithm Design and Analysis. This course provides the third leg of the stool with an introduction to the fundamentals of computer systems.

Work in computer systems aims to bridge the gap between computer hardware and software, providing abstractions that let software developers build more complex and powerful applications.

Course goals

By the end of this class, you should be able to

Please note: Although you will gain programming experience, learning a new general purpose programming language is NOT among the goals of this course.

Credits in this course may be applied to the Computer Science minor.

Janet Davis (davisj@whitman.edu) with thanks to

Created January 17, 2016
Last revised January 18, 2016, 10:37:42 AM PST
This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License.