ICS 33 Spring 2024
Schedule


In lieu of a course textbook, assigned readings are mainly the Notes and Examples from lecture. It is a good idea to skim the assigned reading before the lecture for the main ideas, attend lecture, and then to go through the assigned reading again to fill in the details that you missed, both in your initial skim of the reading and in the lecture.

Date Lecture Topics Readings Assigned Work
Week 1
Lectures
  • Course introduction
  • The importance of natural curiosity
  • Experimentation in a running Python shell
  • Dictionaries as a recurring theme in Python
  • Scopes and namespaces
  • Shadowing and the LEGB rule
  • Module importation
  • How different ways to import behave differently
  • Importation in non-global scopes
  • Importation vs. loading
  • Classes and objects
  • Attributes in objects
  • Attributes in classes
  • Static and class methods
  • Positional and keyword arguments
  • Packing and unpacking
  • Default arguments
  • Tuple-packing parameters
  • Keyword-only and positional-only parameters
  • Dictionary-packing parameters
Tu 4/2
F 4/5
  • Lab sections begin meeting today
Week 2
Lectures
  • Context managers and the with statement
  • Examples of existing context managers in Python
  • Writing one's own context managers
  • Asymptotic analysis
  • O-notation
  • The limitations of O-notation
  • "Closest-fit" O-notation
  • Measuring time and memory
W 4/10
F 4/12
Week 3
Lectures
  • Searching
  • The mechanics of Python lists
  • Sequential search
  • Binary search
  • Best-, worst-, and average-case analysis
  • Databases and persistence
  • Relational databases
  • Tables, rows, and columns
  • Primary keys
  • Relationships and foreign keys
F 4/19
Week 4
Lectures
W 4/24
Week 5
Lectures
Week 6
Lectures
Week 7
Lectures
Week 8
Lectures
Week 9
Lectures
M 5/27
  • University Holiday: Memorial Day — NO LABS TODAY
Week 10
Lectures
Finals Week
Tu 6/11
  • FINAL EXAM (Lecture B): 7:00pm-9:00pm, EH 1200
Th 6/13
  • FINAL EXAM (Lecture A): 4:00pm-6:00pm, EH 1200