Introduction to Python.
An introduction to the Python programming language. Covers details of
how to start and stop the interpreter and write programs. Introduces
Python's basic datatypes, files, functions, and error handling.
Working with Data.
A detailed tour of how to represent and work with data in Python.
Covers tuples, lists, dictionaries, and sets. Students will also
learn how to effectively use Python's very powerful list processing
primitives such as list comprehensions. Finally, this section covers
critical aspects of Python's
underlying object model including variables, reference counting, copying,
and type checking.
Day 2
Program Organization, Functions, and Modules.
More information about how to organize larger programs into functions
and modules. A major focus of this section is on how to design
functions that are reliable and can be easily reused across files.
Also covers exception handling, script writing, and some useful standard
library modules.
Classes and Objects. An introduction to object-oriented
programming in Python. Describes how to create new objects, overload
operators, and utilize Python special methods. Also covers basic
principles of object oriented programming including inheritance and
composition.
Inside the Python Object System. A detailed look at how
objects are implemented in Python. Major topics include object
representation, attribute binding, inheritance, memory management, and
special properties of classes including properties, slots, and private
attributes.
Day 3
Iterators and Generators.
Covers the iteration protocol, iterable objects, generators and generator
expressions.
A major focus of this section concerns the use of generators to set up data processing pipelines--a
particularly effective technique for addressing a wide variety of common systems programming
problems (e.g., processing large datafiles, handling infinite data streams, etc.).
Some Advanced Topics. A variety of more advanced programming topics including
variable argument functions, anonymous functions (lambda), closures, decorators, static and class methods.
Testing, Debugging, and Software Development Practice.
This section discusses many isses that are considered important to Python software development.
This includes effective use of documentation strings, program testing using both the
doctest and unittest modules, and effective use of assertions. The Python debugger and profiler are also described.
Packages.
Some details on how to organize source code into packages. Some information about installing
third party modules and preparing your own code for distribution is given.