Software development techniques, typically in the UNIX environment.
Particular emphasis on what happens in the system when programs run.
Core topics: software utilities (e.g. pipes, filters) shell programming,
system calls, signals, file processing, introduction to concurrency
(e.g. synchronization, mutual exclusion, race conditions,
producer-consumer problem), processes. Additional topics may include:
scripting languages, Internet programming languages, network programming
(e.g. sockets).
Exclusion:
After taking any 400-level CSC/ECE course, you may not take
CSC209H without departmental permission in writing.