CS 315-01, Computer Architecture

Class, CS 315-01: MWF 11:45-12:50, LS G12
Lab, CS 315L-11: W 2:15-3:20, LS G12

Spring 2016

Professor: Peter Pacheco
Office: Harney 540
Phone: 422-6630
Email: user: peter, domain: cs.usfca.edu
Office Hours: MW 4:45-5:45, F 2:15-3:15, and by appointment

Class Website: http://cs.usfca.edu/~peter/cs315
Class Mailing List: You will be automatically subscribed to the class mailing list. Please note that this list uses your USF email address. If you ordinarily read your email using another account, be sure to forward your USF email to the other account.

Text: David A. Patterson and John L. Hennessy, Computer Organization and Design: The Hardware/Software Interface, 5th ed, Morgan Kaufmann, 2014, ISBN 978-0-12-407726-3.

Prerequisites: CS 220 or CS 221. I'll also assume that you're familiar with both the C and Java programming languages.

Coursework and Grades: I will base your final grade on 10 homework assigments, 2 midterms, and a final exam, weighted as follows.
Homework 10 @ 2% each 20%
Midterms 2 @ 23% each 46%
Final Exam 34%
Total 100%
I will assign grades on a straight scale. Roughly, 90-100% is an A, 80-89% is a B, 65-79% is a C, 55-64% is a D, and 0-54% is an F.

Attendance: You are not required to attend either the lectures or the labs. However, you are responsible for all of the material covered, regardless of whether it is covered in the text.

Academic Honesty: As a Jesuit institution committed to cura personalis - the care and education of the whole person - USF has an obligation to foster the values of honesty and integrity. The University requires that all the members of the academic community uphold its standards of honesty and integrity. All students are expected to know and adhere to the University's Honor Code. You can find the full text of the code online at http://www.usfca.edu/fogcutter.
From a practical standpoint it is fine for you to discuss homework with your classmates. Any other collaboration is unacceptable. In particular, copying another person's work is unacceptable. Students who violate these rules will receive a 0 on the assignment or exam. More flagrant violators will receive an F in the course.
Learning Outcomes: Students that successfully complete this course will be able to
  1. Describe the major components of a computer system and how they interact with each other,
  2. Write assembly language programs,
  3. Translate constructs in a high-level language into machine language,
  4. Understand how computers carry out operations such as fixed- and floating-point arithmetic,
  5. Understand how a CPU is organized and how it operates,
  6. Understand how pipelining and cache improve the performance of CPU's.
  7. Understand the design and operation of various types of parallel computers.
Tentative Course Outline:

Week Material
1/25-1/29 Preliminaries. Overview of computer architecture.
2/1-2/5 Instruction Sets: MIPS.
Homework 1 due Friday, 2/5.
2/8-2/12 MIPS cont.
Homework 2 due Friday, 2/12.
2/16-2/19 Instruction Sets: x86
Homework 3 due Friday, 2/19.
2/22-2/26 x86 cont.
Homework 4 due Friday, 2/26.
2/29-3/4 ALU.
Midterm 1, Friday, 3/4.
3/7-3/11 ALU cont.
Homework 5 due Friday, 3/11.
3/21-3/24 ALU cont.
Homework 6 due Thursday, 3/24.
3/28-4/1 Processor.
Homework 7 due Friday, 4/1.
4/4-4/8 Processor cont.
Homework 8 due Friday, 4/8.
4/11-4/15 Processor cont.
Homework 9 due Friday, 4/15.
4/18-4/22 Memory.
Midterm 2, Friday, 4/22.
4/25-4/29 Memory cont.
Homework 10 due Friday, 4/29.
5/2-5/6 Parallel processors.
Homework 11 due Friday, 5/6.
5/9-5/12 Parallel processors.
Homework 12 due Thursday, 5/12.

File translated from TEX by TTH, version 4.06.
On 25 Jan 2016, 08:13.