This repo contains an archive of a 3rd year software engineering course, designed and taught by Joey Freund, at the University of Toronto.
The goal of the course is to give university students a glimpse into the world of practical software engineering. In this course, we discussed 4 different topics/issues.
Code Collaboration | Team Management | Product Design | Software Architecture |
---|---|---|---|
Lecture 1 | Lecture 2 | Lecture 3 | Lecture 4 |
Tutorial | Lecture 5 | User stories to OO design | DAO - Code Example |
Lecture 6 | OO design to code | ||
Lecture 7 | Lecture 5 | ||
Builder - Code Example | |||
Abstract Factory - Code Example | |||
Lecture 8 | |||
Observers & Adapters - Code Example | |||
MVC - Code Example | |||
Lecture 9 | |||
Logging Library - Code Example |
In addition to the lectures and tutorials, we had the pleasure of having two guest lectures:
- Xavier Snelgrove from Whirlscape talked about his experience founding and growing a startup, and competing in a high-visibility consumer space.
- Nahim Nasser & Mark Reale from BNotion talked about their journey, starting as "a bunch of friends in a garage" and becoming one of Toronto's leading software shops.
- A short programming exercise (see solution), to be done in teams.
The goal of the exercise was to give students a chance to:- Brush up their programming skills (Java and basic Object-Oriented concepts in particular).
- Work in a team.
- Get used to using GitHub.
- An 8-week long project.
- If you would like to use any of the materials presented here in your course/website/blog/etc, please make sure to link back to this repo.
Icons made by Freepik and SimpleIcon, from www.flaticon.com, are licensed by Creative Commons BY 3.0.