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).
|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)
||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)
||Midterm; I/O (Ch 8)
|Week 9:||Traps & Subroutines (Ch 9)
||Using the stack (Ch 10)
|Week 11:||Linkers & Loaders; Systems Programming|
|Week 12:||Systems Programming|
|Week 13||Systems Programming|
|Week 14:||Systems Programming|
The grade for the course will be based on the following components:
Programming and Homework Assignments (50%) (iii) Mid-term
exam (25%) (iii) Final exam
All exams are closed book.
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 will be on Tuesday and Thursday from 1-1:30pm in my office (S & T II Room 343), or by appointment.
Office hours: Tuesday and Thursday from 11:45 am to 1:15 pm in ST2 room 365.
All handouts and other course material will be available at the 367 home page.
If you're planning to use the computers on campus for doing your
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.