Course Description

This is an introductory graduate course. Its intent is to provide all students that are interested in software systems with a basic background that will help them succeed in subsequent endeavours (courses, research, and work in industry) related to software. The course is intended to be “hands-on” – there is a large project component that involves building a software system.

Additional information about the course is available in the course syllabus.

Details Instructor Teaching Assistant Teaching Assistant
Name Prof. Arie Gurfinkel TBA TBA
Office DC2522    
email first . last AT uwaterloo.ca first . last AT uwaterloo.ca first . last AT uwaterloo.ca

Important Dates (likely to change, check frequently)

Date Event
Sep 4 No Class!!!
Sep 5 A0 out
Sep 12 First lecture
Sep 12 A0 due
Sep 12 A1 out
Sep 26 A2 out
Sep 27 A1 due
Oct 17 A3 out
Oct 18 A2 due
Oct 31 A4 and Project out
Nov 08 A3 due
Nov 22 A4 due
Dec 6Dec 4 Project due
TBA Final exam
Week Lecture Reading
1 Admin
Git and Unix
 
2 Python  
3 C++
CMake
C++ Tutorial
4 Forks and Pipes  
5 Propositional Logic Ch. Prop Logic, Logic for Computer Scientists
6 Systems Programming and Concurrency (Part 1)  
7 Propositional Satisfiability Decision Procedures for Propositional Logic
8 Systems Programming and Concurrency (Part 2)  
9 Operating Systems  
10 Abstract Data Types and Containers
Lists
Stacks
Queues
 
11 Hashtables
Asymptotic Analysis
Statistics
 

Posts