ICS 32 Fall 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
Tu 10/7 Exceptional control flow in Python, applied to opening and reading from text files
Th 10/9 Writing a recursive function to process a recursive data structure
Tu 10/14
Th 10/16
Sockets, Part 1: An example socket client
Tu 10/21 Sockets, Part 2: Improving our socket client by using "pseudo-file" objects
Tu 10/21
Th 10/23
Implementing a custom network protocol (Yackety), plus writing programs with multiple modules
Tu 10/28 Writing classes in Python
Th 10/30 URLs and downloading data from the web in Python
Tu 11/4 Web APIs, URL encoding, and JSON
Th 11/13 Duck typing and interfaces in Python
Tu 11/18
Th 11/20
The Python with statement and context managers for automating the release of resources
Th 11/20 Basics of the tkinter library for implementing graphical user interfaces
Tu 11/25 Canvases, custom drawing, and object-oriented programming using tkinter
Tu 12/2 Alternative coordinate systems and resizing a custom-drawn picture when a tkinter Canvas is resized
Th 12/4 The Spots application in tkinter
N/A The grid layout in tkinter, in detail
Tu 12/9 Modal dialog boxes, a practical example of grid layout, and control variables