Welcome to CSC 209 Software Tools and Systems Programming!

For course policies including marking scheme and due dates, see the course syllabus.

Lecture Schedule

Week Topic Readings Lecture Notes Worksheets Lab Exercise and notes
0 (1 Jan) No Lectures
No Labs
1 (8 Jan) Shell and File System Kerrisk 2.1-2.6
2 (15 Jan) Arrays and Pointers King Chapters 1-7
3 (22 Jan) Dynamic memory King chapters 8, 11, 12, 15
4 (29 Jan) Strings, Structs, and Streams King chapters 13, 17
5 (5 Feb) Header files, Low-Level I/O, Function Pointers Kerrisk 4.1-4.6, 7.1.2, 7.1.3
6 (12 Feb) Tool chain & System Calls Kerrisk 6.1-6.3, 6.6
King Ch 14.1-14.4, 15

Files from demo

  • Lab 6: Using the Debugger
  • 19 Feb Reading Week catch up on your readings No classes No lab exercise
    7 (26 Feb) Midterm and Processes Kerrisk 24.1, 24.2, 24.4, 25.1, 25.2, 26
    King 17.7
    fork_fruits_demo.c fork (soln) Lab 7: Fork
    8 (5 March) Processes and Pipes Kerrisk 2.11, 20, (21) alternate pipes solution wait (soln) pipes (soln) Lab 8: pipe, exec, dup2
    9 (12 March) Signals Kerrisk 56.1 - 56.5, 59.2 demo.c rand.c Signals greeting.c Lab 9: Signals
    10 (19 Mar) Sockets and Select Kerrisk 63.1 and 63.2.1 Socket Slides simple_server.c simple_client.c socket.h socket.c chat_server.c Lab 10: Sockets
    11 (26 Mar) Select, Shell Programming Starter code: Makefile chat_server.c chat_client.c Select Shell Programming whatday.sh No Lab: Good Friday
    12 (2 April) Shell Programming & Review Wrap-up Slides Shell Programming 2 whatday.sh test_pfact.sh test_floop.sh test_time_reads.sh No Lab on Makeup Friday