CS 367 - Computer Systems and Programming

Spring 2007
TR 1:30 - 2:45 pm,  IN 134

Prof. Richard Carver


This course uses a bottom-up approach to teach students how high-level language control and data structures are represented at the machine level. It also provides an introduction to systems programming.


The required textbook for this class is  Introduction to Computer Systems: From bits and gates to C and beyond (McGraw Hill, 2nd edition, 2004) by Yale Patt and Sanjay Patel. Some lectures on systems programming (for which handouts will be provided) are based on material in  "Computer Systems: A  Programmer's Perspective" by Randal Bryant and David O'Hallaron (Prentice Hall,  2003).  A reference text for the C programming language is the classic Kernighan and Ritchie book "The C Programming Language" (2nd edition, Prentice Hall, 1988).

Course Outline

Week 1: Overview of Computer Systems;  Intro to C programming (Ch 11)
Week 2: Programming in C (Ch 12-17)
Week 3 Programming in C (Ch 12-17)
Week 4
Review of Data Representation (Ch 2);  The von Neumann Model (Ch 4)
Week 5: LC-3 (Ch 5)
Week 6: LC-3 (Ch 5)
Week 7: Programming (Ch 6); Assembly Language (Ch 7)
Week 8
Midterm; I/O (Ch 8)
Week 9: Traps & Subroutines (Ch 9)
Week 10
Using the stack (Ch 10)
Week 11: Linkers & Loaders; Systems Programming
Week 12: Systems Programming
Week 13 Systems Programming
Week 14: Systems Programming
Week 15: Review


The grade for the course will be based on the following components: (i) Programming and Homework Assignments (50%) (iii) Mid-term exam (25%) (iii) Final exam (25%).

All exams are closed book.

Programming Assignments

The programming assignments will involve assembly progamming using the LC-3 simulator (provided with the textbook) and programming in C.

You are expected to abide by the University's honor code during the semester. Any violation of the honor code will result in an F for the class.

Office Hours

Office hours will be on Tuesday and Thursday from 1-1:30pm in my office (S & T II Room 343), or by appointment.


Guillermo Calderon-Meza
Office hours: Tuesday and Thursday from 11:45 am to 1:15 pm in ST2 room 365.
Phone: 703-993-1544.

Class Home Page

All handouts and other course material will be available at the 367 home page.

Computer Accounts

If you're planning to use the computers on campus for doing your projects, please obtain an IT&E labs account. Even if you are using your own computer, your programs need to execute correctly on the Linux computers in the IT&E lab since that system will be used while grading your projects.