Overview
The objective of this course is to learn how computer works, focusing on how the computer hardware executes the software. General topics covered in this course: computer abstractions, instruction sets, assembly language programming, processor design, memory system design, and input/output. Prereq: ECE 124 & CS 137 (or equivalent)
Instructor
Ziqiang Patrick Huang <ziqiang.huang@uwaterloo.ca>
Office Hours
- My office: E7-5424
- Monday 11:30 - 12:20 or by appointment
- Different hours will be announced for midterm week and the exam period
Lab Instructor
Mahmoud AL Saad <m4alsaad@uwaterloo.ca>
Teaching Assistants
Mahdi Hassen <mhassen@uwaterloo.ca>
Md Rezwanul Haque <mr3haque@uwaterloo.ca>
John Kim<j823kim@uwaterloo.ca>
Saifuddeen Boghdady <sboghdad@uwaterloo.ca>
TA Office Hours
-
During Lab Weeks: Students should come to their scheduled lab sessions for questions. No additional office hours will be held.
-
During Non-Lab Weeks: Tutorial slots will be used as TA office hours, and the location will be in the lab room.
Lectures, tutorials, labs
For lecture, tutorial and lab schedules, see the Undergraduate Schedule of Classes. Labs are mandatory. Tutorials are used to 1) hold TA office hours 2) explain problem sets to help prepare for exams.
Makeup Lectures (Section 001 (ECE) only. Section 002 (SE) doesn't have makeup lecture slots)
Whether makeup lectures will be used will depend on the pace of the course. Students will be notified (in class & through emails) beforehand if we intend to use any of them.
Discussion Forum
We will use Piazza for class discussions. The system is highly catered to getting you help fast and efficiently from classmates, the TAs, the lab instructor and myself. Rather than emailing questions to the teaching staff, you should post your questions on Piazza. The Piazza course site is here
Textbook (Optional)
Hennessy and Patterson. “Computer Organization and Design: The Hardware/Software Interface, RISC-V Edition" Second Edition, (Not the MIPS or ARM edition)
Assessment
Quizzes: 5%Quizzes
There will be 5 quizzes designed as low-stakes assessments to help you keep up with the course content. Each quiz covers the previous two weeks of material.
-
Logistics: Quizzes are administered on LEARN. Each quiz has approximately 10 multiple-choice/true/false questions and must be completed in one 60-minute sitting. Quizzes are released at 4pm on Mondays and are due 11pm on Wednesdays.
-
Permitted Resources: Quizzes are open-book. You are permitted to use your textbook, personal notes, and any materials posted on LEARN.
-
Academic Integrity Rules:
-
Quizzes must be completed individually.
-
No collaboration or communication with any person is allowed during the quiz.
-
The use of any other resources, including online services (e.g., Chegg, Stack Exchange) and AI tools, is strictly prohibited.
-
Quiz questions and content are confidential and must not be shared with anyone.
-
Labs
Bonus Marks
You may earn up to 1.5 bonus marks in total, which will be added to your final grade. The opportunities are as follows:
-
Piazza Participation: Earn 0.1 marks for each question/answer endorsed by an instructor on Piazza, up to a maximum of 0.5 marks. (Please keep a record yourself)
-
Academic Improvement: Earn 0.5 marks if your final exam score is at least 10 percentage points higher than your midterm exam score (e.g., improving from 60% on the midterm to 70% or higher on the final).
-
Course Feedback: Earn 0.5 marks if the section's overall response rate on the Student Course Perception Survey is 70% or higher. This bonus is awarded to everyone in the section if the target is met.
Late / Missed Content
-
Midterm Exam: With a valid, documented reason for absence, the midterm's weight will be transferred to the final exam. There are no make-up midterms.
-
Final Exam: Students who miss the final exam for a valid, approved reason will receive an INC (Incomplete) grade and will write the exam the next time the course is offered.
-
Quizzes: Late quiz submissions will not be accepted. Deadlines are firm.
-
Lab Work: Please see the lab manual for the specific late policy regarding all lab deliverables.
Use of Generative AI Tools
Assignment Screening
Tentative Course Schedule
| Week | Date | Lab | Tutorial | Quizzes | Topics | Readings from the textbook |
| 1 | Sep 3-5 | - | - | - |
Logistics, Introduction |
Chapter 1 |
| 2 | Sep 8-12 | Lab0 | - | - |
Technology Trends, Metrics, Instruction Set Architecture, Intro to RISC-V |
Chapter 2: 2.1 -2.14 |
| 3 | Sep 15-19 | - | TA office hours | Quiz 1 |
RISV-V Data Transfer, Logical Operations |
|
| 4 | Sep 22-26 | Lab1 | PS 1 | - |
RISC-V Decision Making, Procedures |
|
| 5 | Sep 29-Oct 3 | - | TA office hours | Quiz 2 |
Procedures, RISC-V Instruction Formats |
|
| 6 | Oct 6-10 | Lab2 | PS 2 | - |
Instruction Formats, Compiling, Assembling, Linking and Loading |
|
| 7 | Oct 13-17 | - | - | - |
Reading Week |
- |
| 8 |
Oct 20-24 |
- | - | - | *Midterm Week | - |
| 9 |
Oct 27-31 |
- | TA office hours | Quiz 3 |
RISC-V Single-cycle Datapath & Control |
Chapter 4: 4.1-4.5 |
| 10 |
Nov 3-7 |
Lab3 | PS 3 | - |
RISC-V 5-stage Pipelining |
|
| 11 |
Nov 10-14 |
- | TA office hours | Quiz 4 | Caches |
Chapter 5.1-5.4, 5.7-5.8 |
| 12 |
Nov 17-21 |
Lab4 | PS 4 | - | Caches | |
| 13 |
Nov 24-28 |
- | PS 5 | Quiz 5 |
Virtual Memory
|
- |
| 14 |
Dec 1 |
- | TA office hours | - | Virtual Memory | - |
*Midterm
- Monday Oct 20, 12:00 - - 1:30pm
- Check https://odyssey.uwaterloo.ca/teaching/schedule for seat assignment (seat assignments not done until close to midterm date)
- Classes and tutorials are canceled during midterm week