Open writing projects/Scientific Programming with Python and Subversion/Outline: Difference between revisions
From OpenWetWare
Jump to navigationJump to search
(intro python flush out) |
(plotting flesh out) |
||
Line 11: | Line 11: | ||
* Introduce scientific themes throughout the book | * Introduce scientific themes throughout the book | ||
** Some bioinformatics theme - maybe use an example from one of the [http://www.ncbi.nlm.nih.gov/Coffeebreak/ NCBI coffee breaks] | ** Some bioinformatics theme - maybe use an example from one of the [http://www.ncbi.nlm.nih.gov/Coffeebreak/ NCBI coffee breaks] | ||
** Some physics theme? | |||
=== Source Control Management with Subversion === | === Source Control Management with Subversion === | ||
Line 36: | Line 37: | ||
** everything can be done in python from data generation to analysis to plots making every aspect of the project consintent | ** everything can be done in python from data generation to analysis to plots making every aspect of the project consintent | ||
** these together promote ''good scientific practices'' (data integrity, data reproduceability) | ** these together promote ''good scientific practices'' (data integrity, data reproduceability) | ||
* An introduction to python | * An introduction to python (modular) | ||
** variable assignment | ** variable assignment | ||
** basic control structures | ** basic control structures | ||
Line 43: | Line 44: | ||
** objects (just like packages) | ** objects (just like packages) | ||
=== Making scientific plots with python === | |||
* An introduction to matplotlib (modular) | |||
** basic functionality - simple line, bar, histogram plots | |||
** more sophisticated graphics - insets, labeling with text, drawing arrows | |||
** interactive graphics - adjusting parameters for real-time fitting | |||
* An example project use of matplotlib | |||
** bioinformatics | |||
** physics | |||
4. Crunching numbers with python - numpy, maybe bio examples | 4. Crunching numbers with python - numpy, maybe bio examples |
Revision as of 17:52, 21 March 2008
Outline
- sections marked with '(modular)' can be re-written using a different technology (i.e. git instead of svn)
Introductory remarks
- Why this book
- motivation - lots of training in what science to do with computers, but little training in how to do it
- for beginners - assumes no prior knowledge, introduces tools as they are needed in a typical scientific investigation using computers
- for experienced scientists - introducing new tools to do some of these tasks
- goal - to make managing projects easier, but more importantly to promote good scientific practice through these methods
- Introduce scientific themes throughout the book
- Some bioinformatics theme - maybe use an example from one of the NCBI coffee breaks
- Some physics theme?
Source Control Management with Subversion
- What is source control?
- like Word 'track changes' or wiki 'history' but for all the files in a project.
- A way to keep a history of every step in a process.
- Not only for computer code, but for data, plots, paper manuscripts, etc.
- Introduction to subversion (modular)
- What is a repository
- How to create a repository
- How to make bosic commits
- Seeing differences between versions
- Retrieving past versions
- Collaboration using subversion
- Advanced Topics
- Branching and Merging
An Introduction to Python
- What is python
- computer language that offers easy access to high-level functions, and has a large and growing community of scientific users
- Why python
- python code looks clean - easy to understand your code a week later, or collaborators code
- everything can be done in python from data generation to analysis to plots making every aspect of the project consintent
- these together promote good scientific practices (data integrity, data reproduceability)
- An introduction to python (modular)
- variable assignment
- basic control structures
- functions
- package structure and import
- objects (just like packages)
Making scientific plots with python
- An introduction to matplotlib (modular)
- basic functionality - simple line, bar, histogram plots
- more sophisticated graphics - insets, labeling with text, drawing arrows
- interactive graphics - adjusting parameters for real-time fitting
- An example project use of matplotlib
- bioinformatics
- physics
4. Crunching numbers with python - numpy, maybe bio examples
5. Unit testing for scientists - introduction to unit testing, why do it, how structure the tests, how can do it with nose
6. Complete case study - wrapping it all together
7. Advanced topic - using SWIG and psyco to speed up python code