Note that the set of topics addressed per day may vary, depending upon student needs.
[Day 1] Introductions Course topics Daily schedule 1. General Python Introduction So what's Python? A Python history lesson Recent Developments What's Python good for? What's Python not good for? The compulsory features list Python in the "Real World" On apples and oranges Summary: Why Python? 2. Using the Interpreter How to run Python programs Configuration details Module files: a first look The IDLE interface Other Python IDEs Time to start coding Lab session 1 3. Types and operators Numbers Strings Lists Dictionaries Tuples Files General object properties Python's type hierarchies Built-in type gotchas Lab session 2 4. Basic statements Assignment Expressions Print If selections Python syntax rules Truth tests While loops Break, continue, pass, and the loop else For loops "range" and counter loops Basic coding gotchas Lab session 3 [Day 2] 5. Functions Function basics Scope rules in functions More on "global" More on "return" More on argument passing Special argument matching modes Odds and ends Functions are objects: indirect calls Function gotchas Lab session 4 6. Modules Module basics Module files are a namespace Name qualification Import variants Reloading modules Odds and ends Module design concepts Modules are objects: metaprograms Module gotchas Lab session 5 7. Classes Class Basics Using the class statement Using class methods Customization via inheritance Specializing inherited methods Operator overloading in classes OOP: inheritance and composition Classes are objects: factories Methods are objects: bound or unbound Odds and ends Class gotchas Lab session 6 8. Exceptions Exception basics First examples Exception idioms Exception catching modes Matching variations Exception gotchas Lab session 7 9. Built-in tools overview The debugger and profiler Inspecting name-spaces Dynamic coding tools Timing Python programs Packaging programs for delivery Lab session 7 [Day 3] 10. System interfaces System modules overview Arguments, streams, shell variables File tools Directory tools Forking processes Python thread modules Fork versus spawnv Example: make forward-link files Example: regression testing Lab session 8 (as time allows) 11. GUI programming Python GUI Options The Tkinter "hello world" program Adding buttons, frames, and callbacks Building GUIs by subclassing frames Reusing GUIs by subclassing and attaching Advanced widgets: images, grids, and more Sexier examples Tkinter odds and ends Lab session 8 (as time allows) 12. Python object persistence Object persistence: shelves Storing class instances Pickling objects without shelves Using simple dbm files Shelve gotchas Python SQL Database API Persistence odds and ends Lab session 9 (as time allows) 13. Text processing String objects: review Splitting and joining strings Regular expression matching Parsing languages Lab session 10 (as time allows) 14. Internet Scripting Using sockets in Python The FTP module Email processing Other client-side tools Writing server-side CGI scripts The Grail web browser JPython: Python for Java systems Active Scripting and COM Other Internet topics: Zope, HTMLgen,.. Lab session 10 (as time allows) 15. Extending Python in C/C++ Integration modes C extension modules Binding C extensions to Python Data conversions C extension types Wrapping C extensions in Python Writing extensions in C++ Using the SWIG code generator Lab session 11 (as time allows) 16. Embedding Python in C/C++ Running simple code strings Calling objects and methods Running strings: results & name-spaces Registering Python objects and strings Running code files from C Precompiling strings into byte-code Embedding under C++ Automated integration tools Lab session 12 (as time allows) 17. Packages and Resources Python portability Assorted python packages Internet resources Python books Python in the news Python conferences and services And finally Lab session 12 (as time allows)