This is the website for a summer course on algorithms and programming for high schoolers, in Kingston, Jamaica from June 29th to July 25th, 2025. Here you will find lecture notes and lab assignments. You can follow using Google Colab or, alternatively, by downloading the notebooks and using Jupyter notebook. We are using Python 3.
For reference, morning exercises are marked as “A”, afternoon as “B”, and challenge notebooks as “C”.
Course Content
Week 1
|
Day 1: Course intro, operators, expressions, variables (see 1A slides), then types and input (see 1B slides). Exercises A, B, C. |
Day 2: Style, control flow, string functions (see 2A slides) and lists, for loops, range (see 2B slides). Exercises A, B, C. |
Day 3: While loops (see 3A slides), then functions, print vs. return (see 3B slides) and bonus CS ethics. Exercises A, B, C. |
Day 4: More functions, scope (see 4A slides), then mutability, more lists (see 4B slides). Exercises A, B. |
Day 5: Nested loops, nested lists, modules & imports (see 5A slides), then week 1 review (see 5B slides) and week 1 exam. Exercises A, B. |
Week 2
|
Day 1: Code tracing, error messages, then more code tracing. Exercises A, B, C. |
Day 2: Loops, nested loops, nested lists review, then functions review. Exercises A, B (Project), Shortcuts. |
Day 3: Introduction to recursion, then more recursion basics. Exercises A, B. |
Day 4: Recursion continued, then even more recursion. Exercises A, B, C. |
Day 5: Recursive sudoko solver, then Q&A with Dr. Timnit Gebru. Exercise A. |
Week 3
Week 4
|
Day 1: Language, text processing, then probability. Exercises A (see dictionary slides), B (see BFS review), C. |
Day 2: Language modeling. Exercises A, B. |
Day 3: Problem solving strategies and memoization. Exercises A, B, C. |
Day 4: Final exam, then Arduinos and TA⚡talks (Bruno, Frank, Joy, Lydia, Manolis, Piyush, and Sam). |
Day 5: Graduation ceremony. |