Schedule

Online textbook: GWU CSCI 2410: Systems Programming

Note:

Week Date Topic Activity Material Lab & Homework
1 Tue 8/25 Intro & Computer Organization Basics Sec. 1 Lab: Setup & Basic C
Thu 8/27 Memory Sec. 2 HW0.25 – Due: Fri 9/4
Slides
2 Tue 9/1 C Basics Quiz Sec. 3–3.1 Lab: C Development
Thu 9/3 C Basics II Sec. 3.3 HW0.5 – Due: Fri 9/11
3 Tue 9/8 Pointers Sec. 4–4.1 Lab: GDB & Valgrind
Thu 9/10 Pointers II Quiz Sec. 4.2 HW0.75 – Due: Tue 9/22
4 Tue 9/15 Memory Allocations Quiz Sec. 4.3 Lab: Pointers
Thu 9/17 Memory Allocation II Exercise
5 Tue 9/22 Memory Layout and Interfaces Sec. 4.5 HW0.75 assessment
Thu 9/24 Casting Quiz Sec. 4.7 HW1 – Due: Tue 10/6
6 Tue 9/29 C Scoping Rules Quiz Sec. 5 Lab: Key-Value Store
Thu 10/1 Instructor travelling. No Class.
7 Tue 10/6 Function Pointers Exercise Sec. 6 HW1 assessment
Thu 10/8 Lifetimes of Memory Objects Quiz Sec. 7.1
Sec. 7.3.2
8 Tue 10/13 Fall break. No Class.
Thu 10/15 Course Review Exercise HW2 – Due: Fri 10/23
9 Tue 10/20 Processes: fork() Sec. 8–8.3 Lab: Shell Intro
Thu 10/22 API Design and Error Handling Quiz Sec. 7.3
Sec. 7.5
10 Tue 10/27 Processes: wait() and exit() Sec. 8.4–8.5 HW3 – Due: M0: 11/3, M1: 11/11, M2 & M3: 12/4
HW2 assessment
Thu 10/29 Processes: execve() and Process Descriptors Quiz Sec. 8.11
Sec. 9
11 Tue 11/3 Inter-process Communication (IPC): Pipes Quiz Sec. 9.1 Lab: Shell Design
Thu 11/5 Pipes Exercise
12 Tue 11/10 Signals Sec. 9.2 Lab: Pipes
Thu 11/12 Signals II: The Dark Side Exercise Sec. 9.2.6
13 Tue 11/17 Files Sec. 10 HW3 M1 assessment
Thu 11/19 Files Streams Quiz Sec. 10.3.2
14 Tue 11/24 Thanksgiving. No Class.
Thu 11/26
15 Tue 12/1 IPC: Sockets Sec. 11.5 Lab: Signals
Thu 12/3 Security: Pitfalls of Systems Programming Quiz Sec. 17
16 Tue 12/8 Course Review & Q & A