ICS 32 Spring 2014
Code Examples

Code examples, from lecture and otherwise

Over the course of the quarter, when I write substantial code examples in lecture — beyond just experimentation in the Python interpreter or short code fragments — I will be turning them into full-scale code examples and posting them here for you. Be aware that there is a process involved in fleshing out a lecture example — rather than just posting code exactly as we wrote it, I'd like to turn it into something more complete and instructive — and this process takes some time, so it's best, in general, not to expect these to be available right away, but I will generally try to have them available before the next lecture, at the latest.

Note that you are not permitted to copy and paste any of this code into your own projects, but, of course, the techniques employed may also be of general use to you in your work. These examples are intended to give you clean, well-documented examples of some of the things we cover in lecture (and possibly a few things that we don't, time permitting), so that you can be free in lecture to avoid trying to take detailed notes when we're writing code together, instead concentrating on understanding the process and the bigger-picture concepts at work.

Lecture Date(s) Description
Th 4/3 Exceptional control flow in Python, applied to opening and reading from text files
Tu 4/8 Writing a recursive function to process a recursive data structure
Th 4/10
Tu 4/15
Sockets, Part 1: An example socket client
Tu 4/15 Sockets, Part 2: Improving our socket client by using "pseudo-file" objects
Th 4/17
Tu 4/22
Implementing a custom network protocol (Yackety), plus writing programs with multiple modules
Th 4/24 Writing classes in Python
Tu 4/29 URLs and downloading data from the web in Python
Tu 5/6
Th 5/8
Duck typing and writing multiple classes with the same interface
Th 5/8
Tu 5/13
The with statement and context managers
Tu 5/13
Th 5/15
Basics of the tkinter library for implementing graphical user interfaces
Th 5/15
Tu 5/20
Canvases, custom drawing, and object-oriented programming using tkinter
Tu 5/20
Th 5/22
Alternative coordinate systems and resizing a custom-drawn picture when a tkinter Canvas is resized
Tu 5/27
Th 5/29
The tkinter-based "spots" application
N/A The grid layout in tkinter, in detail
Tu 6/3 Modal dialog boxes, a practical example of grid layout, and control variables