teaching
CMSC 226
Principles of Computing Systems (S2020)
overview | logistics | schedule | assignments | presentations | resourcesTentative Schedule (changes frequently)
week | date | topics | readings | zine presentation | work assigned |
1 | 1/27/2020 | course introduction | syllabus ;"The Night Watch" by Mickens | Bite-Size CLI | |
1/29/2020 | unix | TLPI 2; FLOSS CL Basics & Commands | c types weirdness | ||
2 | 2/3/2020 | c/types | Appendix A (C101) of 21-C | ||
2/5/2020 | strings; system calls | TLPI 3 | fortune/cowsway/rig | yes | |
3 | 2/10/2020 | git; best practices | 21C ch. 4 & 9; | which/locate | yes II |
2/12/2020 | file I/O; redirection & pipes | TLPI 4 & 13 | seq/wc | ||
4 | 2/17/2020 | processes; pointers | TLPI 6; 21C ch. 6 | cut/paste | memory map |
2/19/2020 | call stack; debugging | 21C ch. 2 | watch | bshell | |
5 | 2/24/2020 | processes II | Process API (other ref: TLPI 20 & 24–27) | date/at/atq | |
2/26/2020 | cron | 6 | 3/2/2020 | "The Descent to C" by Tatham | Exam 1 | 3/4/2020 | assembly intro | Introduction to ARM Assembly & Data Types & registers; ARM-RPI ch.1-2 | screen/nohup |
7 | 3/9/2020 | memory; makefiles | ARM-RPI ch.3-4; 21C pg. 17-23 & ch. 3 | tmux | |
3/11/2020 | branching | ARM-RPI ch.5-6 | lynx | arm-fib | |
8 | 3/16/2020 | arrays & structures | ARM-RPI ch.7-8 | convert/mogrify | |
3/18/2020 | functions | ARM-RPI ch.9-10 & 19 | pandoc | ||
9 | 3/23/2020 | SPRING BREAK | |||
3/25/2020 | |||||
10 | 3/30/2020 | stacks; buffer overflow | stack and functions; memory corruption; stack overflows | jq | tracing arm; project proposal |
4/1/2020 | system calls & shell codes | ARM-RPI ch.19; ARM Shellcodes | wget | binary exploitation | |
11 | 4/6/2020 | "ARM Assembly" by Burch | Exam 2 | ||
4/8/2020 | sockets | TLPI 56 & 58 | client/server | ||
12 | 4/13/2020 | more sockets | TLPI 59 & 60 | ||
4/15/2020 | more C; non-local jumps | 21C 8; TLPI 6.8 | |||
13 | 4/20/2020 | signals & timers; cdecl | TLPI 20, 21, 23 | cdecl | |
4/22/2020 | threads | TLPI 29; 21C 12 | threads | ||
14 | 4/27/2020 | ADVISING DAY | |||
4/29/2020 | synchronization | TLPI 30 | |||
15 | 5/4/2020 | Project day | |||
5/6/2020 | libraries | TLPI 41; 21C 5; ARM-RPI ch. 26 &27; | |||
16 | 5/11/2020 | Final Project Presentations | |||
5/13/2020 | COMPLETION WEEK | ||||
17 | 5/18/2020 |