CSC207 Software Design - Projects, assignments and exercises