Keith J. O'Hara

teaching

CMSC 226

Principles of Computing Systems (S2020)

overview | logistics | schedule | assignments | presentations | resources

Tentative 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