I have been asked to submit an outline for a three day course on Python, for ~20 scientists who already know basic Python. On fairly short notice, I came up with the following; what am I missing? (I plan to make the course materials publicly available, of course.)
(Note that I was explicitly asked about teaching IDLE.)
Outline
Three days: plan for three hours instruction, three hours hands-on, plus breaks.
Day 1
- Goal: Ensure that participants understand how to build re-usable Python
- code & design for re-use and maintenance.
Straight Python:
- building Python programs and laying out packages
- writing for reusability
- maintaining Python codebases & testing
- advanced features of the Python language
- a brief intro to extending Python with C/C++
This day will be devoted to exploring people's knowledge about Python, and can be adjusted dynamically to provide more basic or more advanced information.
Day 2
- Goal: Introduce participants to the variety of (excellent!) tools for
- working with Python, esp in science.
Tools
- Wrapping C/C++ code automatically
- NumPy/SciPy
- Rpy, matplotlib: tools for plotting
- UNIX tools to help you develop and collaborate: screen, VNC
- IDLE/IDEs
- Centralized and distributed version control
- Trac project management
- IPython interactive Python interpreter
This day will explore the variety of tools for effectively working with and reaching out from Python.
Day 3
- Goal: Provide hands-on experience with automatically producing static
- and interactive views of your data and analysis results.
Databases, data analysis, and data presentation
- Storing data in a structured manner
- Built-in Python options (shelve/bsddb)
- Using SQL
- SQLite
- MySQL/PostgreSQL
- Building static HTML output
- Building dynamic HTML output with CGI/CherryPy
- Tying the database into your Web server
- Testing your Web stuff
This day will introduce people to effective techniques for data storage and presentation with Python.
(A whole day might be needed because of the variety of topics: both HTML and SQL must be introduced!)
Comments !