2025 Course Materials

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

Day 1: Week 2 exam, then logarithms and binary search (see log slides) and time complexity. Exercise B.
Day 2: Time complexity wrap-up and selection sort, then merge sort. Exercises A, C.
Day 3: Sorting wrap-up and graphs intro, then more graphs. Exercises A, B.
Day 4: Graph traversals (DFS), then more graph traversals (BFS). Exercises A (see DFS & BFS slides), B.
Day 5: Week 3 exam, then Karatsuba's algorithm and Q&A with Prof. Jelani Nelson. Finish past exercises.

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.