CSC209H: Software Tools and Systems Programming -- Winter 2016


Welcome to the course webpage for the winter 2016 term of CSC209H, Software Tools and Systems Programming. Here is the course description:

Software techniques in a Unix-style environment, using scripting languages and a machine-oriented programming language (typically C). What goes on in the operating system when programs are executed. Core topics: creating and using software tools, pipes and filters, file processing, shell programming, processes, system calls, signals, basic network programming.

Make sure to read and understand the course information sheet. Check the Piazza discussion board frequently to make sure you receive any course announcements.

Inverted Delivery

CSC209 is being delivered for the first time as an inverted class. Each week you will use the C version of the Programming Course Resource System (PCRS-C) to watch a set of lecture videos and do exercises to prepare for coming to class. The exercises will be due at 9:30am on Mondays and will be worth 5% of your mark.

When you come to class, we will be doing hands-on activities to practice what you learned from the online lectures. This will include lots of collaborative work with your classmates and lots of time for questions and interaction with the instructor and TAs.

At the end of each week, you will use the PCRS-C system again to submit additional small exercises that will demonstrate that you mastered the week's concepts. These are due Fridays at 6pm and will be worth 10%.

Separately, you will write four programming assignments that will use the same concepts in the context of larger programs that require more significant design and the use of more sophisticated tools. Together these four assignments are worth 30%. Don't leave them to the last minute.

Contact information

Instructor: Michelle Craig (L0101 and L5101) David Liu (L0201)
Email: mcraig -at-
david -at-
Office: BA 4258 BA 4260
Office Hours: Mondays and Wednesdays, 2:30-4:00pm Thurdays, 2:30-4:00pm