ASSIGNMENTs are due on the day in which they appear below. Due time is 5:00PM if the due date is a Friday, or 11:59PM otherwise. Do READING/VIDEO items by class time on the date where they appear. LABs will happen during class.
M Mar 31
- [READING] Course information
- [READING] Using other people's code
- [ASSIGNMENT] If you haven't yet, please fill out this start-up survey (this is the same survey I sent you in my email the other day)
- Class notes
T Apr 1
- [ASSIGNMENT] Setting up your work computer
W Apr 2
- [THINK] How have you used LLMs for programming so far (if at all)? What was your experience like?
- [VIDEO] (27:15) Intro to Unix, part 1
- Class notes
F Apr 4
- [VIDEO] (18:50) Intro to Unix, part 2
- [ASSIGNMENT] Unix and vim basics
- [LAB] VSCode setup
- Class notes
S Apr 5
- [ASSIGNMENT] Survey about project partnership
M Apr 7
- [READING] What makes a successful team?
- [VIDEO] (35:12) Intro to git and version control, part 1
- [LAB] git basics
- Class notes
W Apr 9
- [READING] In Test-Driven Development (TDD), read the introduction plus the sections entitled History, Coding Cycle, and Advantages and Disadvantages of Test Driven Development.
- [LAB, due Th 4/10] Intro to unit testing with python's unittest module
- Class notes
F Apr 11
- [ASSIGNMENT] Picking a dataset on which to base your web application project
- Class notes
M Apr 14
- [READING] The Guiding Principles section (i.e. Chapters 1-5) of Steve Krug's Don't Make Me Think, Revisited (3rd edition)
- [READING] User stories, up through section 6 (Limitations)
- Class notes
T Apr 15
- [ASSIGNMENT] Project requirements and wireframes
W Apr 16
- [INFO] Schedule for back-end development
- [LAB] Command-line interface (CLI) implementation in python
- Class notes
F Apr 18
- [VIDEO] (19:38) A brief introduction to HTTP
- [VIDEO] (25:12) Mini-intro to APIs and Flask
- [ASSIGNMENT] CLI design and implementation. This is an individual assignment.
- [ASSIGNMENT] Very short survey about your team
- [LAB] Intro to Flask
- Class notes
M Apr 21
- [VIDEO] (11:14) Tabs & spaces
- [VIDEO] (7:17) git config & git log
- [ASSIGNMENT] Flask endpoint design and implementation. This is an individual assignment.
- Class notes
W Apr 23
- [READING] API design principles. These are my very rough guidelines that help me design my own APIs.
- [LAB] Using Flask on stearns
- Class notes
F Apr 25
- [LAB] Designing and populating a database
- [ASSIGNMENT] API design, first draft. This is a team assignment.
- [VIDEO] (23:58) Intro to databases. Definitely watch this one.
- [VIDEO] (23:57) psql details This one is a lot more detailed about setting up postgresql on your own computer, among other things (macOS first, then Windows/WSL). Since you have the option to use your account on stearns to do all your postgresql work, you can skip this video if you want. On the other hand, it would probably be worth a skim through the video to learn more about the postgres setup.
- Class notes
M Apr 28
- [VIDEO] (16:18) A miniscule introduction to database design
- [READING] Database normalization: what are the 1st, 2nd, and 3rd normal forms? Start with this simple database of kids and their pets. Then, read up to the "Types of DBMS Normal forms" section of this multipage introduction to normal forms to get a second take on similar material.
- [LAB] Giving each other API design feedback
- Class notes
W Apr 30
- [ASSIGNMENT] Database design and population. This is a team assignment.
- Class notes
F May 2
- [LAB] psycopg2: postgres access from python. Nothing to hand in.
- [INFO] SQL examples
- Class notes
W May 7
- [READING] High-Quality Routines and The Commento from Code Complete, 2nd edition by Steve McConnell. You have to be connected to the Carleton network for these links.
- [LAB, due 8:30AM] More SQL
- Class notes
F May 9
- [VIDEO] (27:44) A brief intro to HTML and CSS
- [VIDEO] (22:09) SQL Injection
- Class notes
Sa May 10
- [ASSIGNMENT] API implementation
M May 12
W May 14
F May 16
- [VIDEO] (42:29) Intro to Javascript
- [READING] Chapter 6 (Street Signs and Breadcrumbs) of Don't Make Me Think, Revisited
- Class notes
Sa May 17
- [ASSIGNMENT] Web application mockups using HTML and CSS
M May 19
- [VIDEO] (22:43) Our web app architecture This is intended to help with the end-to-end assignment. NOTE: the corresponding sample code is in webapps/app4-for-video/, not in books-webapp/, despite what the video says.
- Class notes
Tu May 20
- [ASSIGNMENT] Web application end-to-end setup
W May 21
F May 23
M May 26
W May 28
- [READING] From About Face 3 by Alan Cooper, Robert Reimann, and David Cronin. The whole book is good, and this PDF consists of a lot of great excerpts. But at minimum, please read pages 3-4, 12-16 (Goal-Directed Design) and pages 223-224, 231-242 (Eliminating Excise).
- [READING] Chapter 11 Usability as Common Courtesy from Don't Make Me Think, Revisited.
- Class notes
Th May 29
- [ASSIGNMENT] Web application first draft
F May 30
- [ASSIGNMENT] User Testing (note that you need to attend class and participate to get full credit)
- Class notes
M June 2
- [ASSIGNMENT] Code Review (note that you need to attend class and participate to get full credit)
- Class notes
M June 9
- [ASSIGNMENT, 5:00PM] Web app final version