Physics 91SI: Practical Computing For Scientists

Course website at http://www.stanford.edu/class/physics91SI/cgi-bin/

The course was first taught by two students in Spring 2011 and I took it then as a freshman.  Then I was an instructor for the class in 2012 and 2013.  Each year, there are old instructors that step down and new instructors that step up.  It's been a fantastic way for undergraduate students to get a chance to teach a course, which is a truly challenging and rewarding experience.  The class size has been about 15 students each year, with the students being a mix of undergraduate and graduate students, from several different science/engineering departments.

The class starts by introducing students to the UNIX operating system and how they can ssh into the Linux clusters on campus.  After that introduction, the programming content begins, which is taught in Python, because of it's very rich set of libraries for scientific programming.  The course meets twice a week, for the full 10 weeks of the academic quarter, and each class includes a lecture component followed by a lab component, where students would work on pre-prepared lab problems as instructors walked around to offer help as needed.  Recently, a capstone project assigned has been added to the course, where students create their own little application/demo using a library/package not discussed in class.

The programming content starts from Python basics, to advanced data structures, numpy/scipy/matplotlib, object-oriented programming and functional programming, and profiling in debugging.  Near the end of the course, there are some lectures on the C language, how to use Scipy.weave or Cython to include C code in Python, as well as lessons on style and documentation.

The course may soon be adopted as an official class offered by the Physics department, rather than through the student-initiated course program.  The possibility of this is a nice testament to the success of the course.

No comments:

Post a Comment