2022 Course Materials

This is the website for a summer course on algorithms and programming for high schoolers, in Kingston, Jamaica from July 4th to 29th, 2022. Here you will find lecture notes and lab assignments. You can follow using Jupyter notebook; begin by downloading Anaconda. We are using Python3.

Course Content

Week 1

Day 1: Course intro, then types, variables, printing and operations and errors. Exercises A, B, C.
Day 2: Lists, strings, and functions, and loops. Exercises A, B, C.
Day 3: More functions, variable scoping, then more loops. Exercises A, B, C. Connect four (part 1).
Day 4: Indexing, slicing, more loops. Exercises A, B.
Day 5: Review lecture. Exercises. Connect four (part 2, finale).

Week 2

Day 1: For loops, while loops, function calls (nb), and list comprehensions (nb). Exercises A, C.
Day 2: Recursion (nb) and recursive Fibonacci (nb). Exercises A, B.
Day 3: Recursive list traversal (nb), then linear and binary search (nb). Exercise A.
Day 4: Time complexity. Exercise C.
Day 5: Dictionaries. Exercises A, C.

Week 3

Day 1: Introduction to sorting. Exercises A, B.
Day 2: Complexity, mergesort, and selection sort, quicksort. Exercises A, B.
Day 3: Dictionaries, stacks, queues, then arithmetic and Karatsuba’s. Exercises A.
Day 4: Graphs and connectivity in graphs. Exercises A.
Day 5: Graphics, then an exam. No exercises.

Week 4

Day 1: Memoization. Exercises A, B.
Day 2: Towers of Hanoi. Exercises A, B.
Day 3: String edit distance.
Day 4: Final exam and Career Day.
Day 5: Graduation ceremony.

For JamCoders 2022, beyond our regular sponsors we thank Norus Technologies for swag donations, Guardsman Group Ltd. for funding a field trip to Hope Zoo, and StarApple AI and Island Grill for supporting a field trip to Holywell Recreational Park. Lastly, we thank The Survival and Flourishing Fund, founded by Jaan Tallinn, with JamCoders selected for funding by Prof. Scott Aaronson on behalf of the SFF.