CSC444-10F — Software Engineering I

Professional Software Development

Prof. David A. Penny
Tutorials/Lectures: Mondays (Starting Sep.13) GB119, 6:10pm - 9:00pm
Announcements & Forum: Blackboard Course Portal
Office Hours: Mondays after lectures

Course Overview

This course will teach you how to setup and run a software organization or project that is capable of consistently delivering high quality software on predictable dates.

Topics include uses of source code control, defect and feature tracking, reproducible automated builds, automated regression testing, release planning and tracking, feature specifications, architectural control, effort tracking, process control, and agile methods. These are the core practices used in commercial software development.


Prof. Penny is an Adjunct Professor with the Department of Computer Science at UofT cross-appointed to Electrical Engineering. He has spent over 20 years in various individual contributor, management, and contractor roles within software development organizations including IBM Canada, Algorithmics, Annuity Systems, Electronics Workbench, and Ceryx where he is currently CIO.


The textbook for the course is a 352 page manuscript written by Prof. Penny that will be available for sale before and after the lectures at a cost of $60 cash per copy.


Class Participation10% Attendance, speaking up with good comments, contribution to the discussion board.
Assignment 110%Self-Aware Programming
Midterm25%Closed book, no aids
Assignment 210%Cloud Software Engineering
Final Examination45%All lecture and practicum material, closed book, no aids

Assignments handed late will incur a late penalty of 15% absolute. Assignments will not be accepted more than 1 week late.

Attendance at Lectures and Tutorials is mandatory. Students who do not attend class invariably do badly on the final exam. You will be awarded up to 10% for structured class paticipation, or lose it for absences.


Sep.13 Course Introduction, Top 10 Practices (ch.1),  
Sep.20 Top 10 Practices (ch.1), Planning (ch.2) A1 out
Sep.27 Planning (ch.2) Release Cycle Overview (ch.3),  
Oct.4 TA Lecture: Hesam Chiniforooshan on Agile Software Development Processes
Release Cycle Overview (ch.3), Release Planning (ch.4,5,A,C)
Oct.11 Thanksgiving Day - no class
Oct.18 TA Lecture: Golnaz Elahi on Functional Specification
Release Planning (ch.4,5,A,C)
A1 due
Oct.25 Releases (ch.7), Versions (ch.8) Midterm 6:10pm - Class 7pm-9pm
Nov.1 Coding A2 out
Nov.8 Defect Tracking (ch.11), Feature Tracking (ch.12)  
Nov.15 Guest Lecture: Matt Medland & Brian Parkinson Smackdown on client-side web development frameworks: GWT v.s. jQuery
Nov.22 Source Control and Builds (ch.9), QA (ch.10)  
Nov.29 TA Lecture: Nosabay A.E on a Software Project Gone Astray
A2 due
Dec.6 Stochastic Release Planning (ch 6 excluding 6.9 and 6.10,B,C),  

Lecture Notes

After each class I will post the lecture notes on the Blackboard Course Portal. This year's sequence of lectures will be similar to 2009. The slides from that year are posted at the portal as well.