University of Minnesota
Machine Architecture and Organization (sec 010)
index.php

CSci 2021 lecture and reading topics schedule

Week Date Topics Readings Assignments due
1 01/20 Mo No class, Martin Luther King Jr. Day
01/22 We Introduction 1.1–1.10
01/24 Fr C Basics 1 CTut 1–8, 14
2 01/27 Mo C Basics 2 CTut 10–11, 20
01/29 We C Basics 3 CTut 9, 15, 21
01/31 Fr Data representation 1 2.1
3 02/03 Mo Data representation 2 2.2
02/05 We Data representation 3 2.3
02/07 Fr Data representation 4 2.4
4 02/10 Mo Machine-level code 1 3.1–3.5
02/12 We Machine-level code 2 3.6 Problem set 1 due
02/14 Fr Machine-level code 3 3.6, cont'd Project 1 due
5 02/17 Mo Machine-level code 4 3.7
02/19 We Machine-level code 5 Project 1 due
02/21 Fr Midterm 1 review
6 02/24 Mo Midterm 1 in class
02/26 We Machine-level code 6 3.7, cont'd Problem set 2 due
02/28 Fr Machine-level code 7 3.7, cont'd
7 03/02 Mo Data structures and memory 1 3.8–3.9 Project 2 due
03/04 We Data structures and memory 2 3.10
03/06 Fr Data structures and memory 3 9.11
03/09 Mo 03/09 - 03/13: Spring Break, no classes
8 03/16 Mo CPU architecture 1 4.1
03/18 We CPU architecture 2 4.2 Problem set 3 due
03/20 Fr CPU architecture 3 4.3
9 03/23 Mo CPU architecture 4 4.4–4.5
03/25 We Implementing dynamic allocation 1 9.9.0–9.9.5
03/27 Fr Implementing dynamic allocation 2 9.9.6–9.9.14 Project 3 due
10 03/30 Mo Caches 1 6.1–6.3
04/01 We Caches 2 6.4 Problem set 4 due
04/03 Fr Caches 3 6.4, cont'd
11 04/06 Mo Optimization 1 5.1–5.3
04/08 We Midterm 2 review
04/10 Fr Midterm 2 in class
12 04/13 Mo Optimization 2 5.1–5.3
04/15 We Optimization 3 5.4–5.6, 5.13–5.14
04/17 Fr Optimization 4 6.5–6.6 Project 4 due
13 04/20 Mo Virtual memory 1 9.1–9.3
04/22 We Virtual memory 2 9.6–9.7
04/24 Fr Virtual memory 3 9.4–9.5, 8.1–8.2
14 04/27 Mo Side channel vulnerabilities Optional details: 1, 2, 3
04/29 We Linking 1 7.1–7.9 Problem set 5 due
05/01 Fr Linking 2 7.10–7.15
15 05/04 Mo Last lecture, final exam review
16 05/13 We Final exam, 8:00–10:00am

Readings shown with only a section number are from the primary textbook: Computer Systems: A Programmer's Perspective, third edition, by Randal Bryant and David O'Hallaron.

"CTut" in the readings refers to The GNU C Programming Tutorial, edition 4.1, by Mark Burgess and Ron Hale-Evans. Feel free to substitute a different C language book if you prefer it; we've given reading suggestions from this one because it is free (in both the "free speech" and "free beer" senses). The PDF version of the tutorial is available here, and the Texinfo source is here.