ICS 32A Fall 2017
Schedule


In lieu of a course textbook, assigned readings are mainly the Notes and Examples from lecture, which I'll try to keep posted ahead of where we are in lecture at any given time. 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 Project Work
Week 0
Th 9/28
  • Course introduction
  • What is Python?
  • What are software libraries?
  • Designing and writing larger programs (briefly)
  • Launching a Python shell
  • Expressions and evaluation
  • Types, objects, numbers, and operators
  • Variables
  • Values have types; variables do not
  • Naming conventions
  • Statements
  • Booleans
Week 1
M 10/2
  • Lab sections begin meeting today
Tu 10/3
  • Writing Python scripts
  • Printing output and reading input
  • Strings
  • Conversions between types
  • Conditionality using the if statement
  • Truth testing and "truthiness"
W 10/4 Project #0A due 11:59pm
Th 10/5
  • Repetition using the while loop
  • Ranges
  • Iteration using the for loop
  • Abstraction
  • Writing functions
  • Parameters and arguments
  • Type checking and type errors
  • Scope and scoping rules
Week 2
M 10/9 Project #0B due 11:59pm
Tu 10/10
  • Built-in data structures in Python
  • Tuples
  • Lists
  • Type annotations (briefly)
Th 10/12
  • Files and the built-in open function
  • Why it's important to close files
  • Higher-level file access
  • File systems and related modules in Python's standard library
  • Paths
F 10/13
  • Optionally, choose a partner for Project #1 today
Week 3
Tu 10/17
  • Exceptions and exception handling
  • try statements
  • try, except, else, and finally clauses
  • Recursive data structures
  • File systems as a recursive data structure
  • Recursive functions
  • When recursion is — and is not — appropriate in Python
Th 10/19
Week 4
M 10/23
  • Project #1 due 11:59pm
  • Optionally, choose a partner for Project #2 today
Tu 10/24
Th 10/26
Week 5
Tu 10/31
Th 11/2
  • MIDTERM — regular lecture time and location
Week 6
Tu 11/7
Th 11/9
F 11/10
  • UNIVERSITY HOLIDAY: Veterans' Day — NO LABS TODAY
Week 7
Tu 11/14
Th 11/16
Week 8
Tu 11/21
Th 11/23
  • UNIVERSITY HOLIDAY: Thanksgiving — NO LECTURE TODAY
F 11/24
  • UNIVERSITY HOLIDAY: Thanksgiving — NO LABS TODAY
Week 9
Tu 11/28
Th 11/30
Week 10
Tu 12/5
Th 12/7
Finals Week
Th 12/14
  • FINAL EXAM: 7:00pm-9:00pm, location to be announced later