CS 241 - Systems Programming

Calendar

(Will be updated throughout the semester)
WEEK DAY ANNOUNCEMENTS READING HW
1 Aug 28   Introduction and course overview HW 0
Aug 30 Introduction to C and Compilation Read HFC Ch1, CiaN Ch1 "Language Basics",
the "How the C Compiler Works" section to the end
Sep 01 Makefiles HFC pp 188-205
2 Sep 04 Labor Day [No Class]
Sep 06 Last Day to Add/Drop (Sep 07) Version control and Git HW 1
Sep 08   Types and operators
Read CiaN Ch 2, 3 (Skip Conversion of Nonarithmetic Types through end)
3 Sep 11   Types and operators
Read CiaN Ch 4, 5
Sep 13 HW 2
Sep 15 GDB and Testing Read 21st Century C, Ch 2, "Using a Debugger"
CiaN, Ch21, "Sample Debugging Session"
4 Sep 18   Control flowRead CiaN Ch 6)
Sep 20 Functions and scopeRead CiaN Ch 7
Sep 22 Pointers and arrays Read CiaN Ch 9, HFC Ch 2
5 Sep 25   Strings and pointers HW 3
Sep 27 Command line arguments
Sep 29 Multi-dimensional arrays Read HFC Ch 7 to p. 333
6 Oct 02   Project Overviews HW 4
Oct 04 RJH Travelling
Guest lecturer TBA
Guest lecture
Oct 06
7 Oct 09   Structures Read HFC Ch 5, 6
Oct 11 Self-referential structures
Oct 13 Buffer Overflow Attacks Read https://arstechnica.com/information-technology/2015/08/how-security-flaws-work-the-buffer-overflow/
  Oct 16 Fall Break (Oct 14-22)
Oct 18
Oct 20
8 Oct 23   typdef, unions, bit-fields Read CiaN, Ch10, p169 to end, Ch 11, pp. 184-186
Oct 25 Input and Output, errors Read HFC Ch 3
Oct 27 Formatted I/O, line input Read CiaN Ch 13 to p. 230 HW 5
9 Oct 30 Last Day for P/NP, CR/NE,
  or Withdraw (Oct 31)
scanf (and friends) Read CiaN Ch 13, p. 230 to end
Nov 01   Variable arguments, getopt Read HFC Ch 7, p. 343 to end
Nov 03 Huffman compression
10 Nov 06   Compression, part 2 Read HW 6 assignment HW 6
Nov 08 No class
Nov 10
11 Nov 13   System calls overview Read HFC Ch 9
Nov 15 Basic shell scripting Read Classic Shell Scripting, Ch 2,6
Nov 17
12 Nov 20   Regular expressions, sed and grep Read Classic Shell Scripting, Ch 3
Nov 22
Nov 24 Thanksgiving Break (Nov 23-26)
13 Nov 27   Advanced git HW 7
Nov 29 Web Development 101
Dec 01 Advanced Web Development
14 Dec 04   Open Source Software
Dec 06 Software Licenses
Dec 08 C++
Wrap-up and other Unixy goodness
  Dec 15 Final Project Presentations (7-9pm, King 241)