CIS 371 (Spring 2011): Digital Systems Organization and Design

Instructor:Prof. Milo Martin
Lecture:Tuesday/Thursday 12-1:20pm
TAs:Jim Anderson, Cem Karan
Lab TAs:Zach Meister, Vin Mannino, Mishal Awadah

Course Schedule

Course Schedule


Lab/Office Hours

All TA office hours are held in the KLab (Moore 204):

Lecture Notes

Textbook Addendum





See the Course Schedule

Course Syllabus

Course Description

The description from the course catalog:

(Prerequisite(s): CIS 240, knowledge of at least one programming language).
This is the second computer organization course and focuses on computer
hardware design. Topics covered are: (1) basic digital system design
including finite state machines, (2) instruction set design and simple RISC
assembly programming, (3) quantitative evaluation of computer performance,
(4) circuits for integer and floating-point arithmetic, (5) datapath and
control, (6) micro-programming, (7) pipelining, (8) storage hierarchy and
virtual memory, (9) input/output, (10) different forms of parallelism
including instruction level parallelism, data-level parallelism using both
vectors and message-passing multi-processors, and thread-level parallelism
using shared memory multiprocessors. Basic cache coherence and


CIS240 is an absolute prerequisite for this course.


Grading breakdown for the course is as follows:

  • Homeworks: 15%
  • Labs: 30%
  • Midterm exams: 20%
  • Final exam: 35%

Reading Materials

We will use one textbook: Patterson and Hennessy, "Computer Organization and Design: The Hardware Software Interface" (the most recent edition).

Academic Misconduct

Academic misconduct such as cheating will not be tolerated. The work you submit in this class is expected to be your own. If you submit work that has in part or in whole been copied from some published or unpublished source (including current or former students), or that has been prepared by someone other than you, or that in any way misrepresents somebody else's work as your own, you will face severe discipline by the university. (Adapted from text appearing at the Office of Student Conduct page.)

Any detected cases of cheating will be pursued. Penalties can include: receiving a zero on the assignment (the minimum penalty), failing the course, having a note placed in your permanent academic record, suspension, and ultimately expulsion.

See Penn's Code of Academic Integrity for more information.