University of Saskatchewan Department of Computer Science

Welcome to the Department of Computer Science

Courses >
Printer

Computer Science 215 (Detailed Information)

Note that the information presented here does not necessarily reflect the most up to date syllabus or course information. Rather this information is intended to provide a general overview of course content from previous offerings.

Instructor

Prof. Derek Eager (Thorv. 281.2, x4899)

Lectures

M W F, 12:30-13:20, Thorv 205A

Tutorials

Th, 14:30-15:50, Spinks 320
F, 15:30-16:50, Spinks 320

Text

Computer Organization and Design: The Hardware/Software Interface (4th edition), David A. Patterson and John L. Hennessy, Morgan Kaufmann/Elsevier, 2009.

Laboratory Facilities

The laboratory work for this course requires use of the spim simulator for the MIPS assembly language. This has been installed on the Computer Science Department labs. It can also be downloaded from http://sourceforge.net/projects/spimsimulator/files/. (See also http://pages.cs.wisc.edu/~larus/spim.html.)

Purpose of Course

Most students will enter this class with familiarity with computer systems as end- users and as high-level language programmers. This class is designed to provide an introduction to a portion of what lies below the application programming interfa

Outline

  1. Computer Systems and Performance (1 week)
    Overview of computer systems organization, factors determining performance, performance metrics, benchmarking.
    Readings: Chapter 1.
  2. Machine and Assembly Language (3 weeks)
    MIPS machine and assembly language, integer representations, addressing methods, instruction sets, procedures, implementing assembly language – assembly, linking, loading.
    Readings: Chapter 2, portions of Appendix B.
  3. Arithmetic (2 weeks)
    Basics of digital logic circuits, implementing arithmetic operations, floating point number representation and operations.
    Readings: Chapter 3, portions of Appendix C.
  4. Processor Implementation (2.5 weeks)
    Datapath and control, a single cycle implementation of a MIPS subset, pipelining, multiple issue.
    Readings: Chapter 4, portions of Appendix C.
  5. Memory (2 weeks)
    Temporal and spatial locality, memory hierarchies, caches, virtual memory.
    Readings: Chapter 5.
  6. Selected Topics from I/O and Parallel Computing (1.5 weeks)
    I/O devices, controlling I/O, parallel computing approaches
    Readings: Chapters 6 and 7.

Evaluation

There will be 4 equally weighted assignments, more or less equally spaced throughout the term (likely approximate due dates – late January, early February, mid March, and early April). Assignments will involve both programming and non- programming exercises, with programming to be done in MIPS assembly language using the SPIM simulator. An in-lab programming test and a midterm test will be held early in March. The midterm test and the final examination will be “closed book” (no books, no notes, no calculators). The weightings for the assignments and examinations are as follows:

Assignments25 %
In-lab Programming Test10 %
Midterm Test15 %
Final Examination50 %

Academic Honesty

All students must be properly registered in order to attend lectures and receive credit for the course. Students are expected to be academically honest in all of their scholarly work, including course assignments and examinations. Academic honesty is defined and described in the Department of Computer Science Statement on Academic Honesty; see also the University of Saskatchewan information.