Open writing projects/Scientific Programming with Python and Subversion/Outline: Difference between revisions

From OpenWetWare
Jump to navigationJump to search
svn section flush
intro python flush out
Line 28: Line 28:
** Branching and Merging
** Branching and Merging


2. An Introduction to Python - the basics here
=== 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
** variable assignment
** basic control structures
** functions
** package structure and import
** objects (just like packages)


3. Making scientific plots with python - introduction to graphics
3. Making scientific plots with python - introduction to graphics

Revision as of 00:37, 22 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

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
    • variable assignment
    • basic control structures
    • functions
    • package structure and import
    • objects (just like packages)

3. Making scientific plots with python - introduction to graphics

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