ECS50 Machine Dependent Programming -- Fall 2007
Department of Computer Science
University of California at Davis
Course Outline
This course will teach the fundamentals of how a computer works. After taking this course, you will have a greater appreciation of how a computer links, loads, and executes a program. The material you learn in this course also sets the stage for later courses, especially computer architecture. We will start with a simulated computer, CUSP - Carleton's Utterly Simple Processor. Using CUSP, we will explore how computers represent data and instructions and how they fetch, decode and execute instructions. We will discuss how assemblers work and the mechanics of procedure calls. We will introduce interrupts, contrast them with polling, and describe how computers handle input and output. Using CUSP as our reference point, we will then turn our attention to an actual processor architecture.
Comparative study of different hardware architectures, via programming in the assembly languages. Role of system software in producing an abstract machine. Only one unit credit allowed for students who have taken EEC 70.
Instructor: Demet Aksoy