Archived Lecture Notes for CSC209H: Software Tools and Systems Programming, Winter 2020
Lecture Slides (Intro to the Shell):
- Interactive web slides
- Printable slides (Print to landscape PDF in Chromium-based browser)
Related Readings:
- Highly-recommended reading: Chapter 2 of Unix Shell Programming by Kochan & Wood (available electronically via UTM library). PDF printout for UofT students available in accordance with fair dealing provisions of the Copyright Act.
- Annotated sample shell transcript (Courtesy of Andrew Petersen)
- Directory traversal, copying/moving files: man intro (also covered by the book chapter above)
- Globbing: man glob (also covered by book chapter above)
- Arch Wiki: File permissions and attributes (also: man chmod)
- Usage guide for man pages: man man-pages
Lecture Preparation (before class):
- PCRS Week 2 Preparation due Sun. Jan. 12, 10:00pm
Lecture Materials:
- Interactive web slides
- Printable slides (Print to landscape PDF in Chromium-based browser)
- Intro to C Worksheet (Large Font)
- Arrays Worksheet (Large Font)
- Pointers Worksheet (Large Font)
Related Readings:
- C pointers and undefined behaviour
- King, Ch. 7-8 and 11-12
Lecture Preparation (before class):
- PCRS Week 3 Preparation due Sun. Jan. 19, 10:00pm
Lecture Materials:
- Interactive web slides
- Printable slides (Print to landscape PDF in Chromium-based browser)
- Arguments Worksheet (Large Font)
- Page 1 of Malloc and Strings Worksheet (Large Font)
Related Readings:
- Everything you need to know about hexadecimal, decimal, and binary
- Memory corruption bugs detected by Google's AddressSanitizer tool (enabled by
-fsanitize=address
gdb compiler flag) - King, Ch. 17.1-17.4, 17.6
- Kerrisk, Ch. 7.1
Lecture Preparation (before class):
- PCRS Week 4 Preparation due Sun. Jan. 26, 10:00pm
Lecture Materials:
- Interactive web slides
- Printable slides (Print to landscape PDF in Chromium-based browser)
- Page 2 of Malloc and Strings Worksheet (Large Font)
Related Readings:
- King, Ch. 16.1-16.2
Lecture Preparation (before class):
- PCRS Week 5 Preparation due Sun. Feb. 2, 10:00pm
Lecture Materials:
- Interactive web slides
- Printable slides (Print to landscape PDF in Chromium-based browser)
- Structs Worksheet (Large Font)
- Inspecting Executables Worksheet (Large Font) (Starter Code)
- Man page for ELF: man elf from terminal, or online HTML version
Related Readings:
Lecture Preparation (before class):
- PCRS Week 6 Preparation due Sun. Feb. 9, 10:00pm
Lecture Materials:
- Interactive web slides
- Printable slides (Print to landscape PDF in Chromium-based browser)
- Makefiles Worksheet (Large Font)
- Errno Worksheet (Large Font)
Related Readings:
- King, Ch. 24.2 (errno)
Lecture Preparation (before class):
- PCRS Week 7 Preparation due Sun. Feb. 23, 10:00pm
Lecture Materials:
- Interactive web slides
- Printable slides (Print to landscape PDF in Chromium-based browser)
- Fork Worksheet (Large Font)
Sample Midterms:
Related Readings:
- Kerrisk, Ch 24.1, 24.2, 24.4, 25.1, 25.2, 25.4, 26 (process lifecycle)
Lecture Preparation (before class):
- PCRS Week 8 Preparation due Sun. Mar. 1, 10:00pm
Lecture Materials:
- Interactive web slides
- Printable slides (Print to landscape PDF in Chromium-based browser)
- Pipe Worksheet (Large Font)
Related Readings:
- Kerrisk, Ch 44 (Pipes)
Lecture Preparation (before class):
- PCRS Week 9 Preparation due Sun. Mar. 8, 10:00pm
Lecture Materials:
- Interactive web slides
- Printable slides (Print to landscape PDF in Chromium-based browser)
- Signals Worksheet (Large Font)
Related Readings:
- Kerrisk, Ch 20-21 (Signals and Signal Handlers)
Lecture Preparation (before class):
- PCRS Week 10 Preparation due Sun. Mar. 15, 10:00pm
Lecture Materials:
- Interactive web slides
- Printable slides (Print to landscape PDF in Chromium-based browser)
- Sockets Worksheet (Large Font) and Starter Code
Related Readings:
- Kerrisk, Ch 56-58 (Intro. to Sockets)
Lecture Materials:
- Interactive web slides
- Printable slides (Print to landscape PDF in Chromium-based browser)
- Select Worksheet (Large Font)
Related Readings:
- Kerrisk, Ch 63.1-63.2.1 (Select)
Reminder: The exam will be held online, on Quercus, at (roughly) the originally scheduled date and time: 5-7PM Toronto time, April 13, 2020.