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

Instructor:Prof. Milo Martin
Lecture:Monday/Wednesday/Friday 3:00-4:30 in Towne 321
TA:Santosh Nagarakatte
Grader:Saumya Jain

This course is the lecture component of CIS372.

Course Schedule


Office Hours

Lecture Notes



See the course schedule

Course Syllabus

Course Description

This course is the lecture component of the CIS371/CIS372 pair. The focus of CIS371 is on understanding the design and performance of computers. 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. In addition, CIS372 is a co-requisite (that is, you must be taking CIS372 in parallel).


Grading breakdown for the course is as follows:

  • Homeworks: 20%
  • Midterm exams: 30%
  • Final exam: 48%
  • Class participation: 2%

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.