This is a rough schedule of topics for each week and the expected completion of assignments. It will continue to be filled in throughout the term.
Many of the links will be dead-ends until closer to the relevant date.

Class topics and homework information may change over the course of the term. Please treat this schedule as a rough guide for seeing what we’ll be focusing on, and expect that there will be shifts as the term progresses.

Readings should be completed before the class day that they are listed. Class is structured expecting that you have completed the reading. You also will need to complete a preparation activity before class, which you’ll find on Moodle.

“Krug” refers to our textbook Don’t Make Me Think! Revisited, by Steve Krug. “Martin” refers to our textbook Clean Code, by Robert C. Martin. Other readings will be linked through Moodle.

The slide links are all restricted to Carleton folks, so make sure you’re logged in to your Carleton account if you have one. If you are outside of Carleton and would like to see them, just shoot me an email!

Date Assignments Due In Class Assignments Out
Week 1 Getting Started    
M 9/11 Intro to Software Design Prep Slides, Course overview and discussion  
W 9/13 Agile and Effective Teams Prep Slides,
Development Processes and Getting Started, start setting up computers
 
F 9/15 Unix and Vim Prep Slides, Unix Scavenger Hunt  
Week 2 Project Foundations    
M 9/18 Data and Team Prep Slides, Start on Project Proposal Project Proposal (due 9/25)
W 9/20 Git Prep Slides, Git Practice Lab  
F 9/22 TDD Prep Slides, TDD Lab Individual - Tests
Week 3 Core Functionality    
M 9/25 Command Line Prep, Individual Deliverable 1 due 10pm, Project Proposal due 10pm Slides, Start on CLI Design Team - Command Line
W 9/27 Function Design Prep Slides, Function Design  
F 9/29 Ethics in Tech Prep Slides, Intro to Tech Ethics  
Week 4 Flask Component    
M 10/2 Command Line project due 10pm; Flask Prep Slides, Intro to Flask Flask app project, Individual component
W 10/4 Code Review Prep Slides, Code review  
F 10/6 Individual component, HTML with Flask Prep Slides, HTML Flask Lab  
Week 5 Front-End Component    
M 10/9 Flask app, Usability Prep Slides, Webpage analysis Individual front-end, Team front-end
W 10/11 CSS and HTML Prep Slides HTML and CSS lab  
F 10/13 HTTP Prep Slides, Flask Forms Lab  
Week 6 Front-End Component Cont’d    
M 10/16 Midterm break!    
W 10/18 Individual front-end; Web Accessibility Prep Slides, Accessibility Analysis  
F 10/20 More Front-End Prep Slides, Working on Front-end component  
Week 7 Database Component    
M 10/23 Team front-end; Intro Databases Prep Slides, Starting with Databases Individual Database; Team Database
W 10/25 No prep Slides, Database Connections and Relations  
F 10/27 Individual back-end; Database Normalization Slides, More with Databases  
Week 8 Refactoring    
M 10/30 Naming and Commenting Prep Slides, Naming and comments  
W 11/1 Team back-end; Code Smells Prep Slides, Code Smells  
F 11/3 Code Review 2 Prep Code review  
Week 9 More Refactoring    
M 11/6 Classes Prep Slides, Designing classes  
W 11/8 Design Patterns Prep Slides, Design Patterns  
F 11/10 Specific Patterns Prep Slides, More design patterns  
Week 10 Wrapping Up    
M 11/13 User Story Prep Slides, User stories  
W 11/15 Usability Testing Prep Slides, Usability testing, Final project showcase  
Exam Week      
M 11/20 Exam Slot 12-2:30 Optional help time  
Final project due at 5pm