CS 241 - Systems Programming

Calendar

(Will be updated throughout the semester)
WEEK DAY ANNOUNCEMENTS READING HW
1 Feb 22   Introduction and course overview HW 0 - Intro
Feb 24 UNIX and the Shell, Editing Files Read LCL, Chapters 1-3
Run the vim and emacs tutorials

2 Mar 01 Last Day to Add/Drop UNIX Commands Read LCL, Chapters 4-8
HW 1 - Unix
Mar 03   Version control and Git Read LCL, Chapters 9-11.
Git Book, sections 1.1, 1.3, 1.6, 1.7, 2.1, and 2.2
Interactive Git Tutorial
3 Mar 08   Introduction to C and Compilation Dive Into Systems 1.1-1.4 HW 2 - Introduction to C
Mar 10 Makefiles A short introduction to Make
Variables in Make
Implicit rules in Make
Standard targets in Makefiles
4 Mar 15   Types and operators
Dive into Systems Ch 4-4.6
Bitwise Operations in C
Mar 17 HW 3 - Arrays
5 Mar 22   Scope, Pointers, Arrays, and Strings Dive into Systems Ch 2-2.4
Pointer Fun with Binky
Mar 24 Scope and Pointers Dive into Systems Ch 2.3, 2.4
HW 4 - Bits
6 Mar 29   GDB and Testing 21st Century C, Ch. 2
Dive into Systems Ch 3-3.4
Mar 31 No class, RH out
  Apr 05 Spring Break (April 2-10)
Apr 07
7 Apr 12   Project Proposals
Apr 14 Strings, Multi-dimensional arrays and Command Line Arguments Dive into Systems Ch 2.5, 2.6 HW 5 - Pig Latin
8 Apr 19   Structures and Self-referential structures Dive into Systems Ch 2.7
Apr 21 Self-referential structures and IO HW 6 - Sorting
9 Apr 26   Formatted I/O, line input, scanf
Apr 28 Formatted IO
10 May 03   Variable arguments, getopt HW 7 - Bignum
May 05 Advanced git
11 May 10   Compression Read HW 8 assignment HW 8 - Huffman Compression
May 12 System calls overview
12 May 17   System Calls
May 19 Signals
13 May 24   Networking  
May 26 Open Source Software
Buffer Overflows Read How Security Flaws Work: The Buffer Overfow