CS 257: Software Design Schedule (Winter 2025)

Adapted from materials courtesy of Profs. Anya E. Vostinar, Amy Csizmar Dalal, & Jeff Ondich.

Important Notes


  • You can find a lot of important information, such as student drop-in hours (aka office hours) and course grade determination, on the syllabus.
  • Class topics and homework information may change over the course of the term. Please treat this schedule as a rough guide for what we'll be focusing on and expect changes as the term progresses.
  • Before Class: Complete the readings and/or preparation activities. Class is structured expecting that you have completed these tasks.
  • Readings: "Krug" refers to Don't Make Me Think! Revisited, Steve Krug, and "Martin" refers to Clean Code, Robert C. Martin. Other readings will be linked through Moodle.
  • Restricted Access: Most of the links will require a Carleton login to view. If you're external to Carleton and want access, just shoot me an email.
  • Revisions: If you are submitting a revision for a deliverable, submit this form to let me and the course staff know where to look for changes.

Date Assignments Due In-Class Activities Assignments Released
Week 1 Getting Started
Mon 1/6 Intro to Software Design Prep Slides
Wed 1/8 Project Ideation and Development Processes Prep Slides
Getting Started Lab
Fri 1/10 Unix and Vim Prep Slides
Unix Scavenger Hunt
Week 2 Project Foundations
Mon 1/13 Team Expectations Prep Slides
Starting Project Proposal
Team Deliverable - Project Proposal (Due 1/20)
Wed 1/15 Git and Version Control Prep Slides
Individual Git Practice Lab
Fri 1/17 Finish Individual Git Practice Lab Slides
Team Git Practice Lab
Week 3 Sprint 1: Command Line Component
Mon 1/20 Test-Driven Development Prep
Team Deliverable - Project Proposal due 10pm
Slides
Start working on Individual Deliverable - Tests
Individual Deliverable - Tests (Due 1/24)
Wed 1/22 Command Line Prep Slides
Command Line Interface Design Lab
Team Deliverable - Command Line (Due 1/27)
Fri 1/24 User-Centered Design Approaches Prep
Individual Deliverable - Tests due 10pm
Slides
CIDER Assumption Elicitation Technique Lab
Week 4 Sprint 2: Flask Component
Mon 1/27 Flask Prep
Team Deliverable - Command Line due 10pm
Slides
Start on Individual Deliverable - Flask
Individual Deliverable - Flask (Due 1/31)
Team Deliverable - Flask (Due 2/3)
Wed 1/29 Function Design Prep
Slides
Function Design Lab
Fri 1/31 HTML + Flask Prep
Individual Deliverable - Flask due 10pm
Slides
HTML + Flask Lab
Week 5 Sprint 3: Database Component
Mon 2/3 Intro to Databases Prep
Team Deliverable - Flask due 10pm
Slides
Task #1 of Individual Deliverable - Database
Individual Deliverable - Database (Due 2/12)
Team Deliverable - Database (Due 2/17)
Wed 2/5 Finish Task #1 of Individual Deliverable - Database Slides
Task #2 of Individual Deliverable - Database
Fri 2/7 Normalization Prep Slides
Work on Team Deliverable - Database
Week 6 Sprint 4: Front-End Component
Mon 2/10 Mid-Term Break!
Wed 2/12 Usability Prep
Individual Deliverable - Database due 10pm
Slides
Work on Team Deliverable - Database or CSS and HTML Prep
Fri 2/14 CSS and HTML Prep Slides Individual Deliverable - Front-End (Due 2/21)
Team Deliverable - Front-End (Due 2/24)
Week 7 Sprint 4: Front-End Component Continued
Mon 2/17 HTTP Prep
Team Deliverable - Database due 10pm
Slides
Flask Forms Lab
Wed 2/19 Web Accessibility Prep Slides
Fri 2/21 Fancy Front-End Prep
Individual Deliverable - Front-End due 10pm
Slides
Work on Team Deliverable - Front-End
Week 8 Sprint 5: Refactoring and User Testing
Mon 2/24 Code Smells Prep
Team Deliverable - Front-End due 10pm
Slides
Code Smells Lab
Team Deliverable - Design Improvements (Due TBD)
Wed 2/26 Naming and Commenting Prep Slides
Naming and Commenting Lab
Fri 2/28 No Prep! Slides
Code Review Lab
Week 9 Sprint 5: Refactoring and User Testing
Mon 3/3 User Story Prep Slides
User Stories Lab (link on Moodle)
Wed 3/5 Usability Testing Prep Slides
Usability Testing Lab
Fri 3/7 Classes Prep Slides
Class Design Lab
Week 10 Sprint 5: Refactoring and User Testing
Mon 3/10 Design Patterns Prep
Final Round of Revisions for Team Deliverables - Front-End, Database, Flask, and/or Command-Line due 10pm
Slides
Wed 3/12 Prep your project for the Final Project Showcase! Slides
Final Project Showcase
Exam Week Team Deliverable - Design Improvements due at the end of TBD exam period
Exam Period TBD Optional Help Time during Exam Slot: TBD