PICASso Tutorials & Mini-Courses
Fall 2008 - Spring 2009
All PICASso tutorials and mini-courses are practice-oriented, so participants get hands-on experience
PICASso is pleased to announce a mini-course entitled “Programming Practices”. This mini-course will take place April 7 - 9, 4:30pm – 6pm and will feature three 90-minute lectures by Clancy Rowley (MAE) and Brian Kernighan (CS):
Tuesday April 7: Design
Wednesday April 8: Languages and Tools
Thursday April 9: Testing and Debugging
To register for the course, please email Cecile [email@example.com] with all the usual info (name, department, class etc), and indicate which lectures you’d like to attend.
Programming is more than just writing code. Programmers must also assess tradeoffs among languages and systems, choose among design alternatives, debug and test, improve performance, and maintain software written by themselves and others. This trio of lectures will cover some of these issues.
The first lecture will focus on design. Design of interfaces and representation of information within a program is very important but hard to get right, and different programming languages offer different mechanisms. This lecture will talk about some of the important ideas and give some advice on doing the job well, with examples in different languages. We will also talk about design patterns, an attempt to classify design elements in an orderly way so they can be re-used.
The second lecture will focus on languages and tools. We discuss advantages and disadvantages of several popular compiled languages (C, C++, and Fortran 90), and scripting languages (Matlab, Python, and Awk). We will also touch on various useful tools, such as version control systems (Subversion, CVS), and discuss tradeoffs among various file formats for reading and writing data (e.g., ASCII, binary, HDF5, NetCDF).
The third lecture will discuss systematic testing and debugging, with the emphasis on mechanization of testing and using tools. There will also be some discussion of performance, including some perhaps surprising experimental results in various languages.
"Finding the ideal faculty position"
PICASso is pleased to announce a mini-course / career workshop entitled “Finding the ideal faculty position”. This mini-course will take place on Wednesday, December 3, 4:30 – 6:30 and will feature a 1 hour lecture followed by a panel discussion with current Princeton faculty Josh Shaevitz (Physics / LSI), Mike Freedman (CS), Celeste Nelson (Chemical Engineering) and Bernard Chazelle (CS).
We are planning to cover topics such as interviewing for faculty positions, negotiating the start-up package and assessing whether the particular department / university is the right fit. Suggestions are welcome.
Introduction to Parallel Programming with MPI
Instructor: Stephane Ethier (PPPL)
Dates: Wednesday and Thursday October 22-23, 2006 4:30 – 6:30pm
PICASso is pleased to announce a hands-on introduction to parallel programming with MPI. Over two practice-oriented sessions participants will learn to exploit the power of parallel computing using the freely available Message Passing Interface (MPI, http://www-unix.mcs.anl.gov/mpi/mpich/). No previous experience with parallel programming is assumed, but participants are expected to be familiar with either C or Fortran.
This course was run by PICASso in the past, and was oversubscribed. To ensure your spot please register early by emailing your Name, Phone, Email, Department and Position / Class year to firstname.lastname@example.org
Instructors: Amy A. Caudy, Matt Hibbs, Florian Markowetz
Dates: Friday August 8, 15, and 22, 2008 1PM
PICASso is happy to announce a “Microarray Analysis” mini-course. The course will consist of 3 lectures, Friday August 8: Microarray Basics and Planning a Microarray Experiment; Friday August 15: Microarray Analysis Basics; Friday August 22: Advanced Microarray Analysis.
August 8 Lecture 1: "Microarray Basics and Planning a Microarray Experiment", Amy A. Caudy Slides
August 15 Lecture 2: "Microarray Analysis Basics", Florian Markowetz Slides
August 22 Lecture 3: "Advanced Microarray Analysis", Matt Hibbs Slides