Autumn Term, 2010
(10 Sessions) Tuesdays 6 - 9 pm, October 12 through December 14.
Optional make-up class Tues Dec 21 6 - 9 pm.
UW Certificate Program in Python Programming, also includes Internet Programmming in Python (Winter 2011) and System Development with Python (Spring 2011).
This page is updated every week. Students in the class should view this page frequently (remember to refresh your browser).
Dec 17: Winter registration Anyone who wishes to register for
Python winter quarter who hasn’t yet received instructions should contact
Kim Mechaelis, kmechaelis@pce.uw.edu right away
Dec 11: Questions and answers updated.
Dec 9: The optional make-up class will be Tuesday evening, Dec 21,
6 - 9 pm, at the usual time and place.
Dec 7: Here is a summary of
student presentations.
Dec 6: If you have not yet scheduled your presentation, email me.
Dec 4: Let me know if and when you would attend an optional
make-up class.
Dec 1: Recommended readings for weeks 9 and 10 in the schedule
Nov 23: No class tonight, cancelled due to weather.
See UWPCE Alert and
UW Alerts.
Nov 21. Try to read sections
17.1 - 17.5
in the textbook (just 5+ more pages) before class on Tues Nov 23.
Nov 17. If you must be absent, contact me in advance and email me your weekly report.
Nov 17. FYI,
Seattle Python Interest Group
Thurs Nov 18 on NumPy
Oct 30. Questions and answers updated
Oct 26. Lenovo AC adapter found in classroom, left with lost and found in office on fourth floor.
Oct 18. Results of the
entry questionnaire
Week 10. Lecture: class-10.txt and examples:
packages.py, foo.py.
Presenters: Daniel Araneda, Ben Cleveland, Jeff Conn, Toshi Esumi, Delane Jackson, Jacob Newfield
Week 9. Lecture: class-9.txt and examples:
vector.py,
generator.py,
decorator.py.
Presenters: Sunhee Jung, Nolan Nichols, Ted Tieken, Bryan Walls
Week 8. Lecture: class-8.txt
quiz_8.py, and examples:
vehicle.py,
simulator.py,
pedestrian.py.
Presenters: Aaron Franklin, Derek Reiff, Mark Simonson
Week 7. Class cancelled due to weather, presenters rescheduled to week 8
Week 6. Lecture: class-6.txt,
quiz_6.py, and examples:
comprehensions.py,
roman.py,
corrector.py,
set.py,
product.py.
Presenters: Nathan Buck, Paul Fearn, Richard Fuhr
Week 5. Lecture: class-5.txt,
quiz_5.py, and examples:
traffic.py,
nested.py,
route.py,
phones.py,
traverse.py.
Presenters: Peter Conerly, Jon Crump, Jonathan Poland, Daniel Nguyen
Week 4. Lecture: class-4.txt,
quiz_4.py, and examples:
recursion.py,
strings_files.py,
bio_demo.py,
ceru_human.sp.
Presenters: Jeff Boschee, Lisa Henry, Andrew Hosch, Patrick Morgan
Week 3.
Lecture class-3.pdf and
class-3.txt,
quiz_3.py, and examples:
repetition.py,
assertions.py.
Presenters: Eyal Arian, Melissa Rice, Gregg Toth
Week 2. Lecture class-2.pdf,
quiz_2.py,
and examples:
functions.py,
parameters.py.
Presenters: Aaron Bazar, Jeff Silverman, Joe Simpson, Alicia Sullivan.
Week 1. Lecture,
examples and resources,
requirements and evaluation.
FYI, the
Seattle Python Interest Group meets Thurs Oct. 14
Course objectives: Introduce the Python language, its most
important libraries, and its recommended programming styles and
idioms. Teach how to solve typical programming problems in Pythonic
style. Survey some exemplary Python applications and systems. Teach
career skills and work habits including testing and version control.
Students will begin accumulating a portfolio of completed assignments,
working toward a substantial original project in the Spring.
Prerequisites: No previous Python experience is required.
This course is not intended for absolute beginners in programming,
but does include a self-contained review of elementary features.
Students must be able to use a command line, edit a text file, and
download and install software. Students should have some prior
exposure to programming in any language, sufficient to write very
simple programs or scripts that use variables, conditionals (if ...),
and iteration (loops).
Textbooks: The textbook comes in two versions: a
printed book named
Python for Software Design, and a free online version named
Think Python.
Despite the different titles, the two versions have the same contents.
Instructor:
Jonathan Jacky is a research scientist at the University of
Washington. He has experience as a software developer for research
laboratories, hospitals, and systems software companies. He has taught
at universities and in industry, and is the author of two textbooks on
software development and testing. His Python experience includes the
GNU Radio signal processing system, the FLiP proof checker, and the
PyModel testing framework.
Technology Requirements: Students must have access to a
computer for their assignments and projects, where they can install
software (the course does not provide a computer laboratory). It is
recommended that students have a portable computer to bring to
class. Internet access will be provided at classes.
Assessment criteria: The course is graded Pass/Fail, based on
satisfactory completion of required programming assignments and
classroom presentations. Attendance is required; more than two
unexcused absences will result in a Fail.
More details here.
Disability accommodation: The University of Washington is
committed to providing access and reasonable accommodation in its
services, programs, activities, education and employment for
individuals with disabilities. For information or to request
disability accommodation contact: Disability Services Office:
206.543.6450/V, 206.543.6452/TTY, 206.685.7264 (FAX), or e-mail at
dso@u.washington.edu.
The textbook comes in two versions, a printed book:
Python for Software Design: How to Think Like a Computer
Scientist by Allen B. Downey. Cambridge University Press, 2009.
and a free online version:
Think Python: How to Think Like a Computer Scientist
Despite the different titles, the two versions have the same contents,
including the same chapter, section, and exercise numbers. You may
use the version you prefer.
This text is an excellent introduction to Python language fundamentals
and semantics. There are many features and topics it does not discuss.
We will discuss them in class and assign supplementary readings.
Quick Python Script Explanation for Programmers (one page)
Python 2.6 Quick Reference
(awesomely dense and complete)
The Python Tutorial
(from python.org)
Examples and Resources
(notable Python libraries and scriptable applications)
Students will need Python installed on their computers.
Python comes already installed on Macs and most Linux distributions.
There are two different "current" versions of Python, 2.x and 3.x. We
will be using 2.x, where x means any sufficiently recent version. 2.7
is most recent, but 2.6 will also work.
The current Python 2.x version is available
here. I use this
source for Windows. For the Mac, I
use macports, which manages multiple
Python versions nicely. For Linux, I use the distro's package manager
(Synaptic on Ubuntu, for example).
Tuesdays 6 - 9 pm, October 12 through December 14 (10 sessions).
Methodological issues such as testing and version control will be
discussed when pertinent.
Additional topics and readings will be added, consult
frequently (refresh your browser).
Please read the assignment (and try some of the exercises) before the
class meeting. Here PySD/TPy refers to the textbook,
either Python for Software Design (printed) or Think
Python (online). Both versions use the same chapter numbers (but
in the TPy web pages, Chapter 2 is in
file book003.html etc.)
Textbook
Summaries
Learn Python in 10 minutes
NanoPy
Reference
Python 2.x documentation
(official documentation from python.org)
Supplementary texts
Other resources
Software
Schedule and Assignments
Week | Date | Topics | Reading Assignments |
1 | Oct 12 |
Introductions.
Some Python applications and systems.
Installing Python.
Using the command interpreter and development environment.
Finding and using the documentation. Getting help. Lecture, examples and resources, requirements and evaluation. FYI, the Seattle Python Interest Group meets Thurs Oct. 14 |
Summaries here, here. |
2 | Oct 19 |
Variables, values, expressions, and assignment.
Functions. Definition and use. Arguments.
Block structure. Scope.
Modules and import. Lecture class-2.pdf, quiz_2.py, and examples: functions.py, parameters.py. Presenters: Aaron Bazar, Jeff Silverman, Joe Simpson, Alicia Sullivan. |
PySD/TPy, Chs. 2, 3 |
3 | Oct 26 |
Boolean expressions. Conditionals and control flow. Iteration and recursion. Lecture class-3.pdf and class-3.txt, quiz_3.py, and examples: repetition.py, assertions.py. Presenters: Eyal Arian, Melissa Rice, Gregg Toth Progress report and midcourse evaluation due. |
PySD/TPy, Chs. 4, 5, 6, 7 |
4 | Nov 2 |
Data types. Sequences. Strings. Regular expressions. Files. Exceptions.
Text Processing. Lecture: class-4.txt, quiz_4.py, and examples: recursion.py, strings_files.py, bio_demo.py, ceru_human.sp. Presenters: Jeff Boschee, Lisa Henry, Andrew Hosch, Patrick Morgan |
PySD/TPy, Chs. 8, 9, 14 |
5 | Nov 9 |
Data types. Sequences again. Tuples and Lists. Mutability. Aliasing.
Argument passing. List comprehensions. Lecture: class-5.txt, quiz_5.py, and examples: traffic.py, nested.py, route.py, phones.py, traverse.py. Presenters: Peter Conerly, Jon Crump, Jonathan Poland, Daniel Nguyen |
PySD/TPy, Chs. 10, 12 (except 12.6) |
6 | Nov 16 |
Data types. Comprehensions again. Dictionaries. Sets and Bags. Arrays. Functional programming and lambda.
Data type case studies and review. Lecture: class-6.txt, quiz_6.py, and examples: comprehensions.py, roman.py, corrector.py, set.py, product.py. Presenters: Nathan Buck, Paul Fearn, Richard Fuhr Second portfolio progress report due. FYI, Seattle Python Interest Group Thurs Nov 18 on NumPy |
PySD/TPy, Chs. 11, 13 (also 12.6) |
7 | Nov 23 |
Classes, instances, and methods. Object-oriented programming. Class cancelled due to weather, content and presenters rescheduled to next week. |
PySD/TPy, Chs. 15, 16, also 17.1 - 17.5. |
8 | Nov 30 |
Inheritance and duck typing. Object-oriented design. Lecture: class-8.txt quiz_8.py, and examples: vehicle.py, simulator.py, pedestrian.py. Presenters: Aaron Franklin, Derek Reiff, Mark Simonson |
PySD/TPy, Chs. 17, 18, 19 |
9 | Dec 7 |
Inside Python. Special attributes and methods. Iterators and Generators. Decorators. Lecture: class-9.txt and examples: vector.py, generator.py, decorator.py. Presenters: Sunhee Jung, Nolan Nichols, Ted Tieken, Bryan Walls Recommended readings (read as much as your time and interest allows): Classes, Iterators and Generators, review classes and learn about iterators and generators. Special Methods, learn about __str__, __add__ and their many many cousins. Decorators, gives some idea of what's possible ... Python Types and Objects, Attributes and Methods, if you want to know what's really going on ... |
See panel at left |
10 | Dec 14 |
Organizing large systems. Packages. Preview of Winter and Spring courses. Lecture: class-10.txt and examples: packages.py, foo.py. Presenters: Daniel Araneda, Ben Cleveland, Jeff Conn, Toshi Esumi, Delane Jackson, Jacob Newfield Recommended readings (read as much as your time and interest allows): Modules and Packages, review modules and learn about packages. Python Glossary, a summary of where we've been, with hints about topics we didn't cover. Final portfolio progress report and self-evaluation due. |
See panel at left |
11 | Dec 21 |
Optional make-up class (to make up for cancelled Nov 23 meeting in week 7) Attendance is not required. This will be an informal question/answer session. No weekly report is required, there is no reading assignment and there will be no prepared lecture or student presentations. |
None |
Nov 16. Second portfolio progress report due.
Dec 14. Final portfolio progress report
and self-evaluation due.
Jonathan Jacky, jon at u dot washington dot edu