Computer Systems Fundamentals

CS 210-A, Whitman College, Spring 2018
MWF 8:00 - 8:50 a.m., Olin 124
Instructor: John Stratton (
Office hours: 1-3pm Wednesday/Friday and by appointment

About this course

Welcome to Computer Systems Fundamentals! 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 Computational Problem Solving, or some similar programming experience. You may have learned some computer science theory in CS 220: Discrete Math and Functional Programming.  In this course, we introduce the machines that actually do all of the computational work specified by our software programs.  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 major and minor.

John Stratton ( with thanks to Janet Davis

Created January 11, 2017
Last revised January 17, 2018, 07:56:35 AM PST
This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 4.0 International License.