Detailed Course Schedule

This schedule is tentative! Each topic links to a PDF with slides, once available.

Date Topic Assigned Due
Week 1
Tu 9/10 Introduction, Javascript
SW development, SaaS, “agile” processes, learning a new language
Getting Started
Background Survey
Th 9/12 Javascript, cont.
Event loop, closures, functional programming, common syntactic sugar
Suggested Reading
P1: Javascript
Programming Assignment 1
Week 2
Tu 9/17 Testing, TDD, Static Analysis
Unit, integration, end-to-end tests, Jest, linting with ESLint
Suggested Reading
P2: Testing
Th 9/19 Introduction to React
React, props and callbacks, color picker examples
Suggested Reading
P3: React Page
Programming Assignment 2
P1: Javascript
Programming Assignment 1
Week 3
Tu 9/24 React components
Presentation/container components, hooks
Suggested Reading
P2: Testing
Th 9/26 React testing, NextJS
Front-end testing, Testing library, Promises, async/await
Suggested Reading
P4: React Testing
Programming Assignment 3
P3: React Page
Programming Assignment 2
Week 4
Tu 10/1 Consuming REST APIs
HTTP, REST APIs, AJAX, Promises, useEffect Hook
Suggested Reading
P5: Fetch
Project Proposal
Th 10/3 Behavioral testing, User stories, Lo-fi Mockups
BDD, INVEST user stories, Cucumber-like behavioral testing, UI design strategies
Programming Assignment 4
P4: React Testing
Programming Assignment 3
Week 5
Tu 10/8 Version control, CI/CD, deployment and DevOps
Git workflows, CI/CD, introduction to DevOps
Suggested Reading
P6: Deployment
P5: Fetch
Th 10/10 Agile development processes
agile and scrum video
working as a team video

Scrum, point estimation, pair programming, workflows
Project Preferences
Programming Assignment 4
Fr 10/11 ⚠️ Friday Due Date ⚠️
Project Preferences
Week 6
Tu 10/15 Sprint 0 planning
project proposals

P6: Deployment
Th 10/17 Servers, Creating REST APIs, Models (M in MVC)
NextJS API routes, Middleware and AOP, OO modeling with CRC cards
P7: Server
Fr 10/18 ⚠️ Friday Due Date ⚠️
Sprint 0 Deliverables
Week 7
Tu 10/22 Sprint 1 planning
Th 10/24 Databases, Models, Associations, RDBMS
SQL vs. NoSQL, Schema, Migrations, ORM
P8: RDBMS
P7: Server
Fr 10/25 ⚠️ Final Due Date for Practicals and Assignments ⚠️
P1: Javascript
P2: Testing
P3: React Page
P4: React Testing
P5: Fetch
P6: Deployment
Programming Assignment 1
Programming Assignment 2
Programming Assignment 3
Programming Assignment 4
Week 8
Tu 10/29 RDBMS, ORM (cont.)
Th 10/31 Deployment, Monitoring, Performance
DevOps, *aaS, Performance metrics, Indexes, caching and other optimizations
P9: CSS frameworks
P8: RDBMS
Week 9
Tu 11/5 Sprint 1 Demo, Sprint 1 Retrospective, Sprint 2 planning
We-Fr 11/6 - 11/8 Take-Home Exam
Th 11/7 Authentication (authn) and Authorization (authz)
3rd party authn/z, Google single-sign on, basic security practices
P10: Authentication
P9: CSS frameworks
Week 10
Tu 11/12 Code hygiene, Refactoring, Legacy code
SOFA, Code metrics, Exploring legacy codebases, Characterization testing
Th 11/14 Design patterns, SOLID
Design patterns, “Gang of Four” patterns, SOLID principles for OOP
P10: Authentication
Week 11
Tu 11/19 Sprint 2 Demo, Sprint 2 Retrospective, Sprint 3 planning
Th 11/21 SW development case study
Week 12
Tu 12/3 Responsible developer?
Th 12/5 Wrap-up
Week 13
Mo 12/9 ⚠️ Final Due Date for Practicals and Assignments ⚠️
P7: Server
P8: RDBMS
P9: CSS frameworks
P10: Authentication
We-Fr 11/11 - 11/13 Optional Take-Home Retest
Th 12/12 Final Project Deliverables
Sat 12/14 Final Project Presentations! 9AM-12PM (section A) and 7PM-10PM (section B)

© Laura Biester, Michael Linderman, and Christopher Andrews 2019-2024.