|
Target Audience:
This class is for programmers who already have some experience with another programming
language such as Java, Perl, PHP, C, etc. Prior experience
with Python is helpful, but not required as long as you are
familiar with common programming concepts.
Next Course Date:
- August 31-September 2, 2011.
Instructor: David Beazley
Price:
What's Included?
- A printed copy of the course notes.
- A copy of the "Python Essential Reference, 4th Ed."
- Breakfast and lunch at local restaurants
- Snacks
[ Register | More Information |
|
Practical Python Programming (Chicago Edition)
[3 days] Learn Python programming and hack the city of Chicago
in this experimental mash-up of Dave's Practical Python
Programming course and Chicago's
open data portal. The
core course content is based on the same Python material Dave regularly teaches on-site to
scientists and engineers. However, all of the course exercises have
been reworked to have some kind of interesting Chicago spin. A major
theme of the course is on how to use Python for data manipulation.
This includes reading from files, interacting
with online data services, and using popular extensions to Python such as
numpy and matplotlib. It will be fun!
Major topics include:
- An introduction to python
- Working with data and collections
- Program organization and functions
- Modules and libraries
- Numpy and matplotlib
- Classes and objects
- Iterators and generators
- Text processing and parsing
- Files and the file system
- Interacting with REST-based APIs and web services.
More than half of the course will be spent programming and working on
exercises. On the last day, you'll spend some time working on an application to impress
your friends and coworkers!
Important Disclaimer: This course is not in any way affiliated with or
endorsed by the city of Chicago. The course registration fee is
intended to cover basic course expenses. All remaining proceeds will
be donated to the Greater Chicago Food Depository.
Course Outline
- 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. Also
includes information on accessing REST-based APIs, Unicode, XML, JSON,
and essential I/O principles needed to write scripts that interact with web-services.
- 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.
- Program Organization and Functions.
More information about how to organize larger programs into functions. A major focus
of this section is on how to design functions that are reliable and can be easily
reused in other settings. Also covers technical details of functions including
scoping rules, documentation strings, and exception handling.
- Modules and Libraries. How to organize programs into
modules and details on using modules as a tool for creating extensible
programs. This section concludes with a overview of some of the most
commonly used library modules and instructions on how to install third
party library modules. Some of the standard library modules covered
in this section include those related to the file system and file
handling, subprocesses, regular expressions, XML, data serialization,
and database access. An overview of numpy and matplotlib is also included.
- 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 some basic
principles of object oriented programming including inheritance.
- Generators. Covers the iteration protocol, 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.).
|