
SCU:BA / Summer 2026
Welcome to the landing page for SCUBA 2026. Please have a look around!
2026 Journal of Lessons and Activities
Week 1
Monday, June 22: Python Basics
↑
What we did today:
- chose usernames and passwords for computers
- were introduced to IDLE for writing Python code
- programmed with Python strings
- programmed with Python lists
- learned about list subscripting (0-based) with square brackets
- learned about == for equality testing
- used conditionals:
if, elif, else
Tuesday, June 23: Functions ↑
What we did today:
- learned how to write functions with return values
- represented UNO cards as lists (e.g.,
["red",6]
- wrote the fundamentals of UNO with functions
- learned the basics of color and text in PIL (Python Image Library)
- drew basic UNO cards with PIL
Wednesday, June 24: Adventure ↑
What we did today:
- learned the PIL coordinate system
- learned interaction with
input
- drew arrows pointing up, down, left and right in PIL
- learned how to build a text adventure game with functions and
input
- used recursion in the text adventure game to handle bad input
Thursday, June 25: Functions Forward↑
What we did today:
- polished the adventure-game programs from the previous day
- reviewed lists and loops
- learned about functions and
return
- completed various puzzles writing functions to consume lists and
compute with them in different ways
Friday, June 26: Uno!↑
What we did today:
- reviewed functions
- completed more functional puzzles
- used a simple representation of an Uno deck (just numbers, not yet special cards)
- implemented an Uno game loop (
while True:), showed each player their hand,
had players draw cards if needed
Week 2
Monday, June 29: Uno continued...↑
What we did today:
- reviewed the basics of game loops
- finished implementing a basic playable Uno game
- tried to solve more programming puzzles
- constructed gradient-based images with loops and PIL
Tuesday, June 30: dictionaries, common methods↑
What we did today:
- introduced Python dictionaries
- learned about standard built-in methods like
split, join, upper and lower
- solved puzzles involving dictionaries and these common methods
Wednesday, July 1: Pygame Basics↑
What we did today:
- learned how to write a basic pygame app that opens a window and quits
- learned about the pygame game loop and pygame events
- used keystrokes to change colors in pygame apps
- used keys to move an object in a pygame window
- practiced reading error messages and debugging
Thursday, July 2: Errors, Pygame, and Classes↑
What we did today:
- continued debugging exercises from the previous day
- began animating a character walking left and right in a pygame window
- began learning about classes and objects with pieces of fruit
Friday, July 3↑
What we did today:
- more programming puzzles
- learned how to cycle animation frames to make character walk left and right
- wrapped character around window edges, Pac-Mac style
Week 3
Monday, July 6↑
What we did today:
- completed "Walker" exercise from the previous day
- took advantage of the beautiful weather to take a long break outdoors
- completed more object-oriented puzzles using examples
including books and libraries, tasks as to-do lists, groceries
and shopping cars
Tuesday, July 7↑
What we did today:
- took individual online assessments on programming fundamentals
- began to talk about gravity and its importance in simple physics modeling
- dropped water balloons out of a 3rd-story window!
- simulated gravity in a "Dropper" application
Wednesday, July 8↑
What we did today:
- updated Dropper to handle bounces on the "floor" and on the "walls"
- talked about how to test whether two balls are colliding with each other
- implemented balls bouncing off each other and exchanging velocities
- approached Uno in an object-oriented programming style
- implemented numbered cards and choosing cards at random from a deck
Thursday, July 9↑
What we did today:
- programming puzzles on paper: lists, dictionaries, strings
- programming puzzles on laptops: syntax (if/elif/else, list subscripting)
Friday, July 10↑
What we did today:
- using our gravity simulator (Dropper) as a starting point, simulated tossing balls up in the air (not just falling)
- had each ball "explode" by spawning many smaller balls when it reached 0 velocity, simulating fireworks
- took a nice long break on the quad
- started working on displaying Uno cards in a game window, in preparation of making a playable game
Week 4
Monday, July 13↑
What we did today:
- completed puzzled about helper functions and folders (directories)
- interactively debugged pygame programs with errors in them
- linked Uno card objects to scanned Uno card graphics to display one card
Tuesday, July 14↑
What we did today:
- incorporated UNO card scans in pygame app for realistic graphics
Wednesday, July 15↑
What we did today:
- more programming puzzles
- used rich to draw ascii-art versions of NBA logos in the terminal
Thursday, July 16↑
What we did today:
- download large public data files from the Divvy bike rental system
- learned about reading data from CSV files
- wrote code to do some analysis on Divvy data
- climbed 271 stairs to the top of the tower at Rockefeller Chapel!
- listened to a live performance of the carillon up high among the bells
- had a high (unfortunately smoky) view of Hyde Park and surroundings from the tower
Friday, July 17↑
What we did today:
- continued with data analysis on large Divvy files
- continued moving towards real gameplay with Uno graphics