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 1/5 Intro to Software Design Prep Slides, Course overview and discussion  
W 1/7 Agile and Effective Teams Prep Slides,
Development Processes and Getting Started, start setting up computers
 
F 1/9 Data and Team Prep Slides, Start on Project Proposal TD0: Project Proposal
Week 2 Project Foundations    
M 1/12 Unix and Vim Prep, Dataset due 10pm Slides, Unix Scavenger Hunt  
W 1/14 Git Prep Slides, Git Practice Lab  
F 1/16 TDD Prep Slides, TDD Lab ID1: Tests
Week 3 Core Functionality    
M 1/19 Command Line Prep, TD0 due 10pm Slides, Start on CLI Design TD1: Command Line
W 1/21 Function Design Prep Slides, Function Design  
F 1/23 Ethics in Tech Prep, ID1 due 10pm Slides, Intro to Tech Ethics  
Week 4 Flask Component    
M 1/26 TD1 due 10pm; Flask Prep Slides, Intro to Flask TD2: Flask, ID2: Flask
W 1/28 Classes Prep Slides, Designing classes  
F 1/30 ID2 due 10pm, Code Review Prep Slides, Code review  
Week 5 Database Component    
M 2/2 TD2 due 10pm, Intro Databases Prep Slides, Starting with Databases ID3: Database, Midterm Reflection
W 2/4 No prep Slides, Database Connections and Relations  
F 2/6 Midterm Reflection due 10pm, ID3 due 10pm; Database Normalization Slides, Team Database Lab TD3: Back-end
Week 6 Connecting Components    
M 2/9 Midterm break!    
W 2/11 Web Usability Prep Slides, Webpage analysis and design  
F 2/13 HTML with Flask Prep Slides, HTML Flask Lab  
Week 7 Front-End Component    
M 2/16 CSS and HTML Prep, TD3 due 10pm Slides, HTML and CSS lab ID4: Front-end, TD4: Front-end
W 2/18 HTTP Prep Slides, Flask Forms Lab  
F 2/20 ID4 due 10pm; Web Accessibility Prep Slides, Accessibility Analysis  
Week 8 Refactoring    
M 2/23 More Front-End Prep Slides, Working on Front-end component  
W 2/25 TD4 due 10pm, Naming and Commenting Prep Slides, Naming and comments  
F 2/27 Code Smells Prep Slides, Code Smells TD5: Improvements and Final Reflection (due 6/9)
Week 9 More Refactoring    
M 3/2 Code Review 2 Prep Slides, Code review  
W 3/4 Design Patterns Prep Slides, Design Patterns  
F 3/6 Specific Patterns Prep Slides, More design patterns  
Week 10 Wrapping Up    
M 3/9 User Story Prep Slides, User stories  
W 3/11 Usability Testing Prep, All revisions due 10pm Slides, Usability testing, Final project showcase  
Exam Week      
  Nothing scheduled, final project submissions due 3/16 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.