Intermediate and Advanced Software Carpentry with Python

(Here's the blurb that I came up with for my Advanced SWC class. This particular class instance isn't open to the public, but I'm not averse to giving it again.

--titus)

What you will learn:

  • how to use and extend builtin advanced types in Python;
  • how to lay out code for ease of maintenance, reusability, and testability;
  • how to profile for performance bottlenecks and improve performance with
    extensions and threading;
  • how to start using the wide variety of external packages that are
    useful for scientists, including plotting and data analysis tools such as matplotlib, SciPy, IDLE, MPI, and Rpy;
  • make your data more accessible to yourself and others with databases
    and Web presentation tools;

Course benefits:

The Python programming language contains an immense number of features that are extraordinarily useful to scientific programmers and readily accessible to intermediate level developers. This course will provide an introduction to many of these features, focusing on those that will make your Python programs more maintainable, testable, accurate, and faster. This course will also introduce a number of third-party packages for development, plotting, and data-analysis that are particularly useful to scientists.

Who should attend:

Scientists who use Python for data processing, data analysis, data presentation, data management, or working with external code and libraries. An introductory knowledge of Python is assumed, as are basic concepts in object-oriented programming.

Hands-on training:

Exercises throughout this course offer immediate, hands-on reinforcement of the ideas you are learning. Exercises include:

  • recipes for interacting with advanced Python builtin types;
  • refactoring example programs for better code reuse and testing;
  • writing unit tests, doc tests, and functional tests for existing code;
  • enhancing data processing performance with psyco, pyrex, and C extensions;
  • refactoring C extension code to support multithreading;
  • graphing data in matplotlib;
  • working with MPI in Python;
  • practical work with the IDLE IDE;
  • interacting with a large database via the Web;
  • building a simple graphical interface for data analysis;

Legacy Comments

Posted by Luis Bruno on 2007-04-02 at 17:06.

I came back not from a feed but from a bookmarked link to your RFC on
this same topic.    Imagine my bewilderment when I clicked latest
entries and saw the same post title: "um... <penny drops>. Oh."
Thanks for sharing,  --lbruno

Posted by Carl Trachte on 2007-04-02 at 17:23.

Dr. Brown,    I think I saw you post something about this a week or
two ago.  Is this for Michigan State students on site at Michigan
State sometime in the near future?    Any chance of a distance
learning option (internet course) further into the future (open to the
"public")?  Please keep us informed.    Carl T.

Posted by Titus Brown on 2007-04-02 at 17:55.

Hey Carl,    this is actually for a government lab.  But I do plan to
make the materials "open source", like the rest of the Software
Carpentry stuff.    --dr. t

Comments !

social