| |
Introduction to Computer Systems
This is an introductory course for computer systems.
The course content includes representation of integer and floating point,
machine-level instructions, relationship with assembly code and high-level programming
language,
virtual memory and program optimization.
It is a prerequisite for most up-level system courses including processor architecture,
memory hierarchy (main memory, cache), peripheral devices, exceptions and processes,
linker and loader and concurrent programming.
The participation of this course involve four forms of activity: attending the lectures,
homework,
lab assignments, and exams.
Notes
- The weekly homework will be released on canvas as the semester moves along.
- The contents of this calendar for days more than one week in the future may be changing.
- Some supplementary content from OSTEP, here is a Chinese translation version, needy students can have a look
Schedule (Fall)
| Date |
Lecture/Tutorial/EXE |
Material |
Preparation |
Homework/Lab |
|
|
Week1 |
|
|
|
|
|
|
LEC 1: Introduction
|
Lecture-1
|
1.2, 1.4.1, 1.7(before 1.7.1), 1.7.3, 1.8, 1.9.2 (the first paragraph), the first 4 asides in chapter 1 |
|
|
|
Week2 |
|
|
|
|
|
|
LEC 2: Bits & Bytes
|
Lecture-2
|
Book sections 1.1, 2.1.1
|
Homework #1 is released on OC (canvas).
Note: Handin the Homework Answer through OC.
|
|
|
|
TUT 1: Env Setup: Docker, Linux
|
Tutorial-1
|
Setup Reference
Bring your own computer, charger, and U-disk (you can copy some images from TAs if the network is slow).
|
|
|
Week3 |
|
|
|
|
|
|
National Day
|
|
|
Week4 |
|
|
|
|
|
|
LEC 3: Information Storage
|
Lecture-3
|
The first paragraph of 2.1,
2.1.2, 2.1.3, 2.1.4, 2.1.5
1.7.3
|
Solution #1 and Homework #2
|
|
|
|
TUT 2 Shell
|
Tutorial-2
|
Preparation: Linux & Shell
Tasks: Shell(Part3)
|
|
|
Week5 |
|
|
|
|
|
|
LEC 4: Encodding
|
Lecture-4
|
Book sections 2.2
|
|
|
Week6 |
|
|
|
|
|
|
LEC 5: Arithmetic Operations
|
Lecture-5
|
Book sections 2.3
|
Solution #2 and Homework #3
|
|
|
|
TUT 3 Git
|
Tutorial-3
|
|
Lab #1 (Bit-level Ops) is released.
|
|
|
Week7 |
|
|
|
|
|
|
LEC 6: Sequential
|
Lecture-6
|
Book sections 3.2, 3.3
|
Solution #3 and Homework #4
|
|
|
|
TUT 4: Vim+VSCode+Lab1
|
Tutorial-4
|
|
|
|
Week8 |
|
|
|
|
|
|
LEC 7: Machine-Level Representation of Programs
|
Lecture-7
|
Book sections 3.4, 3.5
|
Solution #4 and Homework #5
|
|
|
|
LEC 8: Control
|
Lecture-8
|
Book sections 3.6
|
DUE Lab #1
|
|
|
Week9 |
|
|
|
|
|
|
LEC 9: Procedure Call
|
Lecture-9
|
Book sections 3.7
|
|
|
|
|
TUT 5: Assembly
|
Tutorial-5
|
Preparation: Assembly
Tasks: Assembly
|
Lab #2 (Bomb) is released online and the PDF
can be found in canvas.
Lab2 Scoreboard
Solution #5 and Homework #6
|
|
|
|
LEC 10: Array
|
Lecture-10
|
Book sections 3.8
|
|
|
|
Week10 |
|
|
|
|
|
|
LEC 11: Heterogeneous Data Structures
|
Lecture-11
|
Book sections 3.9, 3.10
|
Lab #3 (Attacking) is released online and the PDF
can be found in canvas.
Lab3 Scoreboard
Solution #6 and Homework #7
|
|
|
|
TUT 6: Make
|
Tutorial-6
|
|
|
|
|
|
LEC 12: Buffer Overflow
|
Lecture-12
|
Book sections 3.11, 3.13
|
|
|
|
Week11 |
|
|
|
|
|
|
LEC 13: Exceptions
|
Lecture-13
|
Book sections 1.7, 8.1
|
DUE Lab #2
Solution #7 and Homework #8
|
|
|
|
LEC 14: Process
|
Lecture-14
|
Book sections 8.2, 8.3, 8.4.1, 8.4.2
|
|
|
|
Week12 |
|
|
|
|
|
|
LEC 15: Wait
|
Lecture-15
|
Book sections 8.4
|
Lab #4 (Tiny Shell) is released online
Solution #8 and Homework #9
|
|
|
Week13 |
|
|
|
|
|
|
LEC 16: Signal
|
Lecture-16
|
Book sections 8.5
|
DUE Lab #3
Solution #9 and Homework #10
|
|
|
|
Online Test for Lab2 and Lab3
|
|
|
|
|
|
|
LEC 17: Signal2 && ljmp
|
Lecture-17
|
Book sections 8.5, 8.6
|
|
|
|
Week14 |
|
|
|
|
|
|
LEC 18: System-Level I/O
|
Lecture-18
|
Book sections 10.1~10.4, 10.6~10.9
|
Solution #10 and Homework #11
|
|
|
Week15 |
|
|
|
|
|
|
LEC 19: Sched
|
Lecture-19
|
Book sections
|
Solution #11 and Homework #12
|
|
|
|
LEC 20: Floating Point
|
Lecture-20
|
Book sections 2.4
|
|
|
|
Week16 |
|
|
|
|
|
|
LEC 21: Floating Point instructions
|
Lecture-21
|
Book sections 3.11
|
|
|
|
Review
|
|
|
DUE Lab #4
Solution #15
|
|