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 3/31 Intro to Software Design Prep Slides, Course overview and discussion  
W 4/2 Agile and Effective Teams Prep Slides,
Development Processes and Getting Started, start setting up computers
 
F 4/4 Unix and Vim Prep Slides, Unix Scavenger Hunt  
Week 2 Project Foundations    
M 4/7 Data and Team Prep Slides, Start on Project Proposal Project Proposal
W 4/9 Git Prep, Dataset due Slides, Git Practice Lab  
F 4/11 TDD Prep Slides, TDD Lab Individual - Tests
Week 3 Core Functionality    
M 4/14 Command Line Prep, Project Proposal due 10pm Slides, Start on CLI Design Team - Command Line
W 4/16 Function Design Prep Slides, Function Design  
F 4/18 Ethics in Tech Prep, Individual Deliverable 1 due 10pm Slides, Intro to Tech Ethics  
Week 4 Flask Component    
M 4/21 Command Line project due 10pm; Flask Prep Slides, Intro to Flask Team Flask app, Individual flask app
W 4/23 Classes Prep Slides, Designing classes  
F 4/25 Individual Flask app, Code Review Prep Slides, Code review  
Week 5 Database Component    
M 4/28 Team Flask app, Intro Databases Prep Slides, Starting with Databases Individual Database; Team Database, Midterm Reflection
W 4/30 No prep Slides, Database Connections and Relations  
F 5/2 Midterm Reflection, Individual back-end; Database Normalization Slides, Team Database Lab  
Week 6 Front-End Component    
M 5/5 Midterm break!    
W 5/7 Team back-end; Usability Prep Slides, Webpage analysis Individual front-end, Team front-end
F 5/9 HTML with Flask Prep Slides, HTML Flask Lab  
Week 7 Front-End Component Cont’d    
M 5/12 CSS and HTML Prep Slides HTML and CSS lab  
W 5/14 HTTP Prep Slides, Flask Forms Lab  
F 5/16 Individual front-end; Web Accessibility Prep Slides, Accessibility Analysis  
Week 8 Refactoring    
M 5/19 Team front-end, More Front-End Prep Slides, Working on Front-end component  
W 5/21 Naming and Commenting Prep Slides, Naming and comments  
F 5/23 Code Smells Prep Slides, Code Smells Design Improvements and Final Reflection (due 6/9)
Week 9 More Refactoring    
M 5/26 Code Review 2 Prep Code review  
W 5/28 Design Patterns Prep Slides, Design Patterns  
F 5/30 Specific Patterns Prep Slides, More design patterns  
Week 10 Wrapping Up    
M 6/2 User Story Prep Slides, User stories  
W 6/4 Usability Testing Prep Slides, Usability testing, Final project showcase  
Exam Week      
  Nothing scheduled, final project submissions due 6/9 8:30pm (+1 hour grace period)    
    Any request for an extension must go through the Dean of Students office as I am not otherwise permitted to consider work submitted after this time.