Computer Science 240
Computer Organization
Fall 2009


Welcome to CS240
By now you are quite comfortable writing and executing your own computer programs.  However, you may be less familiar with how exactly the computer works its magic with the programs you have written. This course opens up the "black box" that is the modern digital computer, exposing the many layers that lie hidden beneath the application programming level you lived in in CS111. Topics include an overview of computer organization, an introduction to digital logic, basic datapath and control implementation, the conventional machine level, assembly language programming, and a brief overview of operating systems.  Course requirements will be discussed on the first day.
Prerequisite: CS111
Distribution: Mathematical modeling
Semester: Fall, Unit: 1.25

Textbook
The text this semester is Computer Organization and Design:  The Hardware/Software Interface the written by David A. Patterson and John L. Hennessy and published by Morgan Kaufmann.  Copies of the text are available in the College Bookstore.

Laboratory
This course has a 3 hour laboratory meetings taught by Jean Herbst Wednesday afternoons. Please see the laboratory website for details.

Course Materials
CS240 CS240 course materials for each class will be handed out at the beginning of each lecture. Copies are available in .pdf format using the links on this page and require the Adobe Acrobat Reader program for on-screen viewing and printing. This program is installed on most public computers at Wellesley College. If your computer does not have a working copy of Acrobat Reader, it is available for free from Adobe on all major computer platforms. Click on the button to the left to download Acrobat Reader. Note that there are plug-ins that allow you to read .pdf files directly from your browser; again, these are installed on most public computers and are freely available from Adobe.

Course Conference
The course conference, CS240_Fall09, will contain announcements and changes to the schedule. Please check this conference before each class and especially before an assign is due. In addition, the conference will contain a section for CS240 students ask and answer questions among themselves concerning course material and assignments. You may discuss the homework in general terms, suggest where to go in the text or lecture notes to help someone get started, or you may help clarify an ambiguous question. However, please do not post your solutions either complete or partial. I will check the conference regularly to help with any unanswered questions.

Transparencies
Copies of course transparencies will be available at the beginning of each lecture. Copies may be obtained using the following links. These notes were prepared using materials supplied by the authors of our text, David Patterson and John Hennessy. Additional materials may be found on the course CD that comes with the text.

  1. No laboratory
    Wednesday, September 9
  2. Computer organization and the abstraction hierarchy
    Thursday, September 10
  3. Introduction to MIPS
    Monday, September 14
  4. Lab 1 -- Working with MIPS
    Wednesday, September 16
  5. Decisions
    Thursday, September 17
  6. Procedures
    Monday, September 21
  7. Lab 2 -- Stack programming and procedures
    Wednesday, September 23
  8. MIPS addressing modes
    Thursday, September 24
  9. Translating and running a program
    Monday, September 28
  10. Lab 3 -- Assembler Project 1
    Wednesday, September 30
  11. Putting it all together
    Thursday, October 1
  12. Pointers and arrays (no additional slides)
    Monday, October 5
  13. Lab 4 -- Assembler Project 2
    Wednesday, October 7
  14. Numeric representation
    Thursday, October 8
  15. Fall Break
    Monday, October 12
  16. Digital logic level
    Wednesday, October 14
    Monday Schedule
  17. Basic digital circuits
    Thursday, October 15
  18. Midterm Examination
    Monday, October 19
  19. Lab 5 -- Electrical and digital laboratory concepts
    Wednesday, October 21
  20. Design of the Arithmetic Logic Unit (ALU)
    Thursday, October 22
  21. Flip-flops
    Monday, October 26
  22. Lab 6 -- Digital circuits
    Wednesday, October 28
  23. Memory organization
    Thursday, October 29
  24. Finite-state machines
    November 2
  25. Lab 7 -- ALU Design
    Wednesday, November 4
  26. Building a datapath
    Thursday, November
    5
  27. In control
    Monday, November 9
  28. Lab 8 -- Latches, flip-flops, and memory
    Wednesday, November 11
  29. Pipelining
    Thursday, November 12
  30. Pipelined MIPS
    Monday, November 16
  31. Lab 9 -- Data and Microcomputer bus design
    Wednesday, November 18
  32. Midterm Examination II
    Thursday, November 19
  33. Cache basics
    Monday, November 23
  34. Lab 10 -- DataPath
    Wednesday, November 25
  35. Happy Thanksgiving
    Thursday, November 26

Homework Sets
All assignments are due at the beginning of class on the due dates announced when distributed and given below. Once graded homework is returned and solutions posted (usually on the class following the day the assignment was due) no late work for that assignment will be accepted. Copies of assignments may be obtained using the following links.

  1. Assignment 1 due Monday, September 21
  2. Assignment 2 due Monday, September 28
  3. Assignment 3 due Monday, October 5
  4. Assignment 4 due Monday, October 12
  5. Assignment 5 due Thursday, October 29
  6. Assignment 6 due Thursday, November 5
  7. Assignment 7 due Thursday, November 12
  8. Assignment 8 due Thursday, December 3

Randy Shull -- rshull@wellesley.edu
Computer Science 240, Fall 2009
Last Modified November 6, 2009
Page Expires December 31, 2009