Lectures
There is no official textbook for SPIS, but the following free online textbook (co-authored by Niema) is a great resource: https://stepik.org/course/56730/promo
Another free online textbook, that includes both Picobot and an intro to Python: https://www.cs.hmc.edu/twiki/bin/view/CSforAll/
Week 1
Sunday (7/31) — SPIS Orientation Session
Monday (8/1)
Introduction and overview: pdf
Discord, Repl.it, GitHub (Lecture Notes)
Picobot: pdf
Tuesday (8/2)
APS: Divide and Conquer: slides
Learning Programming with Python (Lecture Notes) (pytest tutorial)
Facets
Wednesday (8/3)
Python Identifiers, Variables, Assignments, Expressions, Scope, If - part 1 (Lecture Notes)
Python Identifiers, Variables, Assignments, Expressions, Scope, If - part 2 (Lecture Notes)
Thursday (8/4)
APS Discussion
Python while and for (each) loops (Lecture Notes)
Facets
Friday (8/5)
Python parameters, lists, tuples (Lecture Notes)
Breadth/Depth
Breadth - Overview of Bioinformatics: slides
Depth - Python (Lecture Notes) (pytest tutorial)
Week 2
Monday (8/8)
Tuesday (8/9)
APS: Greedy Method: slides
More Recursion (slides) (additional slides)
Wednesday (8/10)
More recursion: pdf; circles example repl
Intro to images: pdf
Thursday (8/11)
APS Discussion
References and mutability (part 1)
Friday (8/12)
References and mutability (part 2)
Breadth/Depth
Breadth - TBD
Depth - More recursion and references, plus 'Ask me Anything' about FOCS lectures from weeks 1-2 (notes)
Week 3
Monday (8/15)
Tuesday (8/16)
Wednesday (8/17)
Thursday (8/18)
APS Discussion
Markov Chains, Dictionaries, and Files: slides
Friday (8/19)
Week 4
Monday (8/22)
Tuesday (8/23)
Wednesday (8/24) - Introduction to the Project Areas
Webapps: notes Zoom recording is linked in the Discord in the projects-web channel
Machine Learning: Zoom recording (the password was sent on Discord in the "projects-ml" channel)
Games: slides (game suggestions), slides (pygame part 3), slides (OO design), main.py (pygame ), main.py (OO intro), main.py (pygame OO v01), main.py (pygame OO v02), zoom recording of the lecture (the password was sent on the Discord)
Thursday (8/25)
Work on Final Projects
Friday (8/26) - Work on Final Projects
Week 5
Monday (8/29) — Work on Final Projects
Tuesday (8/30) — Work on Final Projects
Wednesday (8/31) — Work on Final Projects
Thursday (9/1) — Work on Final Projects
Friday (9/2) — Work on Final Projects