CS 161 Design and Architecture of Computer Systems - Spring 2018

  • Lecture Time and Location: MWF 8:10am - 9:00am @ MSE 103
  • Discussion (Section 021) Time and Location: Tuesday 2:10pm - 3:00pm @ MSE 103
  • Discussion (Section 022) Time and Location: Thursday 2:10pm - 3:00pm @ Sproul Hall 2351
  • Instructor: Daniel Wong
    • Email: dwong@ece.ucr.edu
    • Office: WCH 425
    • Office Hours: Wednesday, 10-11am or by appointment
  • TA: Hodjat Asghari Esfeden
    • Email: hodjat.asghariesfeden@email.ucr.edu
    • Office Hours: By appointment
  • iLearn (for grading): ilearn.ucr.edu

  • Assignment 4 has been posted. Due IN CLASS Wednesday, June 6, 2018
  • Assignment 3 has been posted. Due IN CLASS Friday, May 25, 2018
    Start early! This is probably the longest assignment of the class.
  • Midterm 1 is Monday, May 7 in class Midterm review session will be on Friday, May 4.
  • Quiz 1 is on Friday, May 4 in class!
  • Assignment 2 has been posted. Due IN CLASS Friday, May 4, 2018
    Start early! This is probably the most difficult assignment of the class.
  • Assignment 1 has been posted. Due IN CLASS Friday, April 20, 2018
  • Assignment 0 has been posted. Due Monday, April 9, 2018
  • Welcome to CS 161!

Class webpage and communication

The class webpage is located at http://danielwong.org/classes/cs161-s18.

Information, resources, and announcements related to the class will be posted to the webpage.

In addition, we will be using ilearn, and piazza for discussions and help.

Course Description

This course covers the relationship between hardware and software, with a focus on computer architecture and design. Topics include instruction set architecture, processor data path design and pipelining, and memory hierarchies.

Prerequisite: CS 120A or EE 120A
Co-requisite: CS161L


  • (Required) Computer Organization and Design, 5th Edition by Patterson and Hennessy
  • (Optional zyBook) Computer Organization and Design, 5th Edition by Patterson and Hennessy
    • Enter zyBook code UCRCS161Spring2018
    • Click Subscribe
    • A subscription is $68 and will last until Jun 30, 2018. Students will be able to subscribe until Jun 09, 2018.

Grade Breakdown

  • Homework: 20%
  • Quizes: 10%
  • Midterm Exam: 35%
  • Final Exam: 35%
  • Participation: 5%


  • You are responsible for all materials covered in lectures.
  • Late assignments will be assessed 10% penalty per day.
  • Homework assignments can be done either individually or in pairs (write both names).
    The objective is to practice problem solving and design in computer architecture.
  • Only a subset of the assigned problems will be graded (typically only one).
  • The solutions to the homework assignments will be discussed in the discussion session.
  • Cheating in assignments, quizzes, projects, and exams are absolutely prohibited.
    The minimum penalty for a violation of the regulations will be a zero for the assignment; the maximum penalty will be failure in the course.
  • Examinations must be taken in class on the day they are given. There will be no exceptions.

Academic Integrity

Here at UCR we are committed to upholding and promoting the values of the Tartan Soul: Integrity, Accountability, Excellence, and Respect. As a student in this class, it is your responsibility to act in accordance with these values by completing all assignments in the manner described, and by informing the instructor of suspected acts of academic misconduct by your peers. By doing so, you will not only affirm your own integrity, but also the integrity of the intellectual work of this University, and the degree which it represents. Should you choose to commit academic misconduct in this class, you will be held accountable according to the policies set forth by the University, and will incur appropriate consequences both in this class and from Student Conduct and Academic Integrity Programs. For more information regarding University policy and its enforcement, please visit: conduct.ucr.edu.


You are expected to attend all lectures and discussion. While the slides and readings contain all the information you need to know, some of the contents won't make sense unless you attend lecture. =)

The following schedule is tentative and is subject to change.

Week Week starting Topic Assignments Slides Notes
1 Apr 2 Intro/Trends/Performance/ISA Assignment 0 Introduction.pptx Performance.pptx No discussion this week
2 Apr 9 ISA Assignment 1
Assignment 1 Solution
ISA.pptx No class April 11, 13
3 Apr 16 Single cycle SingleCycle.pptx
Single Cycle Practice
Makeup lecture during discussion
4 Apr 23 Multi cycle Assignment 2
Assignment 2 Solution
5 Apr 30 Multi cycle / Review Quiz 1 Solution MultiCycle Practice Friday, May 4
Midterm Review & Quiz 1
6 May 7 Midterm / Pipeline Assignment 3
Assignment 3 Solution
Pipeline.pptx Midterm Monday, May 7
7 May 14 Pipeline Pipelining Examples
Pipelining Branch Examples
8 May 21 Cache Caches
9 May 28 Virtual Memory / Main Memory Assignment 4 Virtual Memory May 28 - Memorial Day
10 June 4 Review/ Final Exam Quiz 3 Solution Cache VM Examples
Cache VM Examples Blank
No class June 4th,
Quiz 3 / Review Wednesday June 6th,
Final exam June 8th
10 Friday, June 8,
8:10 - 9:00 a.m.
In Class
Final Exam Final Exam Solution