Computer Science 240
Computer Networks
Fall 2008


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_Fall08, 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 3
  2. Computer organization and the abstraction hierarchy
    Thursday, September 4
  3. Introduction to MIPS
    Monday, September 8
  4. Lab 1 -- Working with MIPS & SPIM
    Wednesday, September 10
  5. Decisions
    Thursday, September 11
  6. Procedures
    Monday, September 15
  7. Lab 2 -- Stack programming and procedures
    Wednesday, September 16
  8. MIPS addressing modes
    Thursday, September 18
  9. Translating and running a program
    Monday, September 22
  10. Lab 3 -- Hangman
    Wednesday, September 24
  11. Putting it all together
    Thursday, September 25
  12. Pointers and arrays (no additional slides)
    Monday, September 29
  13. Lab 4 -- More Hangman (no additional notes)
    Wednesday, October 1
  14. Numeric representation
    Thursday, October 2
  15. Digital logic level
    Monday, October 6
  16. Lab 5 -- Electrical and digital laboratory concepts
    Wednesday, October 8
  17. Midterm examination
    Thursday, October 9
  18. Fall break
    Monday, October 13
  19. Lab 6 -- Binary arithmetic and transistor gates
    Wednesday, October 15
  20. Basic digital circuits
    Thursday, October 16
  21. Design of the Arithmetic Logic Unit (ALU)
    Monday, October 20
  22. Lab 7 -- Boolean logic & basic digital circuits
    Wednesday, October 22
  23. Flip-flops
    Thursday, October 23
  24. Memory organization
    Monday, October 27
  25. Lab 8 -- Latches, flip-flops, registers, and memories
    Wednesday, October 29
  26. Assessing performance
    Thursday, October 30
  27. More performance assessment (no additional slides)
    Monday, November 3
  28. Lab 9 -- Data and microcomputer bus design
    Wednesday, November 5
  29. Building a datapath
    Thursday, November 6
  30. In control
    Monday, November 10
  31. Lab 10 -- Datapath design
    Wednesday, November 12
  32. Pipelining
    Thursday, November 13
  33. Pipelined MIPS
    Monday, November 17
  34. Lab 10 -- Control Unit
    Wednesday, November 19
  35. Cache basics
    Thursday, November 20
  36. Improving cache performance
    Monday, November 24
  37. Happy Thanksgiving
    Wednesday -- Friday, November 23 -- 25
  38. Virtual memory
    Monday, December 1
  39. Lab 12 -- MIPS machine
    Wednesday, December 3
  40. Introduction to OS
    Thursday, December 4
  41. Review
    Monday, December 8

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 15
  2. Assignment 2 due Monday, September 22
  3. Assignment 3 due Monday, September 29
  4. Assignment 4 due Monday, October 6
  5. Assignment 5 due Monday, October 27
  6. Assignment 6 due Monday, November 3
  7. Assignment 7 due Monday, November 10
  8. Assignment 8 due Monday, November 17
  9. Assignment 9 due Monday, November 24
  10. Assignment 10 due Monday, December 10

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