Mon, 02 Apr 2007

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;

posted at: 09:30 | path: /apr-07 | 3 comments

Tags: ,


Comments:

Posted by Luis Bruno at Mon Apr 2 14:06:28 2007:
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 at Mon Apr 2 14:23:09 2007:
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 at Mon Apr 2 14:55:56 2007:
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

Post a new comment:

Name:


E-mail:


URL:


Comment:


Note that comments must be manually approved; e-mail titus@idyll.org if your comment doesn't show up quickly.