Software Tools and System Programming
The course introduces software techniques in a Unix-style environment,
using scripting languages and a machine-oriented programming language (typically C).
By the end of the course students should be able to use existing and create new software tools, implement forks and pipes,
signals and sockets, and feel comfortable with shell scripting.
CSC 209 is being delivered as an inverted class.
This requires an independent online preparation for the lectures and provides an opportunity for hands-on class activities during the lecture time.
The activities include collaborative student work and give lots of space for questions and interaction with the
instructor and TAs.
Course work includes online exercises, online labs, and four programming assignments. The
exercises will be due at 2 PM on Mondays and will be worth 5% of the final mark.
The online labs are due every Thursday at 8 PM and will be worth 10%.
Programming assignments use the same concepts in the context of larger programs and require more significant
design and the use of more sophisticated tools. Together these four assignments
are worth 30%.
Lecture preps and exercises: 5%
Online labs: 10%
Programming assignments: 30%
Midterm test: 10%
Final exam*: 45%
*To pass the course you must receive at least 40% on the final exam.
The highest mark you will receive if your grade on the final exam is less than 40% is 47%.