The Computational Salon: Elegant Scientific Programming for Fun and Profit

Aut prodesse volunt aut delectare poetae / aut simul et iucunda et idonea dicere vitae (Quintus Horatius Flaccus, Ars Poetica)

  1. Introduction
  2. Elegant programming, part 1: introduction to Python
    • Hello Py – deconstructing helloworld.c vs. Python's expressiveness
    • Py three ways – learning important Python constructs while computing pi
  3. Elegant performance, part 1: choosing and using software packages
    • Choosing and installing the best third-party packages: pip, virtualenv, and all that
    • Ten favorite packages from the Python standard library and from third parties (including XML parsing)
    • Introduction to numpy – building stellar models à la Hachisu
  4. Elegant collaboration, part 1: programming the web
    • A script to request bibtex entries from ADS
    • [Making your website interactive with CGI scripts]
  5. Elegant programming, part 2: object-oriented programming
    • Introduction to OOP with Wator
  6. Elegant performance, part 2: wrapping legacy and performance-sensitive code
    • Wrapping legacy C code
    • More solutions for high-performance Python programming
  7. Elegant collaboration, part 2: version control and scientific workflows
    • Version control with SVN
    • Introduction to workflows and the scientific "make" (bein, ruffus, fabric)
  8. Elegant programming, part 3: building your own scientific package with higher Python magic
    • A general framework for Markov Chain Monte Carlo integration
    • Structuring and distributing a Python software package
  9. Elegant performance, part 3: parallel programming
  10. Elegant collaboration, part 3: beautiful documentation, beautiful plots
  11. Appendix. Installation and practical notes.