Archive for the ‘Venues’ Category
Software Carpentry for Economists in Mannheim This Autumn
Hans-Martin von Gaudecker is planning to teach a Software Carpentry-style course for economists at Universität Mannheim this autumn — as his announcement says, “I think it is amazing that a profession obsessed with efficiency affords a very obvious inefficiency: Most researchers nowadays spend a fair share of their time programming, but hardly anyone has been taught to do that well.” I’ll post updates here as he sends them.
Feedback and Boundaries
Thanks to the initiative of Dominique Vuvan (who took Software Carpentry last summer), we ran a semi-formal version of the course from last November through to this past week for grad students in Psychology, Linguistics, and a few other disciplines at the University of Toronto. Weekly tutorials were offered in both Python and MATLAB by graduate teaching assistants from Computer Science, covering roughly half of the existing material.
Summer Course: Analyzing Next-Generation Sequencing Data
Analyzing Next-Generation Sequencing Data
May 31 – June 11th, 2010
Kellogg Biological Station, Michigan State University
CSE 891 s431 / MMG 890 s433, 2 cr
http://bioinformatics.msu.edu/ngs-summer-course-2010
Applications are due by midnight EST, April 9th, 2010.
Course sponsor: Gene Expression in Disease and Development Focus Group at Michigan State University.
Instructors: Dr. C. Titus Brown and Dr. Gregory V. Wilson
This intensive two week summer course will introduce students with a strong biology background to the practice of analyzing short-read sequencing data from the Illumina GA2 and other next-gen platforms. The first week will introduce students to computational thinking and large-scale data analysis on UNIX platforms. The second week will focus on mapping, assembly, and analysis of short-read data for resequencing, ChIP-seq, and RNAseq.
No prior programming experience is required, although familiarity with some programming concepts is suggested, and bravery in the face of the unknown is necessary. 2 years or more of graduate school in a biological science is strongly suggested.
BEACON Funded!
Congratulations to Titus Brown and others on the NSF’s announcement that it will fund the BEACON (Bio/computational Evolution in Action Consortium) Science and Technology Center. BEACON “…BEACON is focused on studying the evolution of organization across multiple scales—from genomic and cellular, to multicellular, to inter-multicellular (a.k.a. social)—using techniques from experimental evolution, modeling, and digital life systems.” Long story short, this means that Michigan State University and its partner institutions “…has money explicitly for supporting students doing really sexy interdisciplinary work combining computation and biology.”
Thanks, Jamie
The warmup tutorials for our grassroots Software Carpentry course started this week, and we’d like to send a “thank you” to Jamie Winter at The MathWorks, who has provided students with temporary licenses for MATLAB. It’s all been very last minute, and we’re grateful to Jamie for pulling this off on such short notice.
Tutorials Start This Week
After a lot of hard work from Dominique and Jon, we’re kicking off warmup tutorials for Software Carpentry this week. 65 students from Psychology, Linguistics, Chemical Engineering, and a couple of other departments will get three weeks of review on basic programming, then start the regular material in January. Our thanks to MITACS, the MathWorks, SciNet, and DCS for their support.
Our Target Audience
Some graduate students at the University of Toronto have asked us to run the course for them later this fall or during the winter. There’s an obvious selection bias (if they were expert programmers, they wouldn’t need this course), but I think they’re pretty representative of scientists at their level:
| 01. | Name | 39/39 | 100% |
| 02. | Email address | 39/39 | 100% |
| 03. | Level of study | ||
| MSc | 12/39 | 30% | |
| PhD | 27/39 | 70% | |
| 04. | Primary programming language | ||
| MATLAB | 16/39 | 41% | |
| Python | 2/39 | 5% | |
| Other | 6/39 | 15% | |
| None | 15/39 | 39% | |
| 05. | Knowledge of primary language | ||
| Don’t know how to use it | 28/39 | 72% | |
| Understand basic commands | 10/39 | 26% | |
| Can program competently | 1/39 | 2% | |
| Expert | 0/30 | 0% | |
| 06. | What other languages do you know? | ||
| HTML | 11/27 | 41% | |
| R | 4/27 | 15% | |
| Other (VB, Java, Perl, etc.) | 10/27 | 37% | |
| No answer | 12/39 | ||
| 07. | Would you like pre-class tutorial on |
||
| programming basics (loops, files, if/else)? | |||
| Yes | 36/39 | 92% | |
| No | 3/39 | 8% | |
| 08. | Do you have a laptop? | ||
| Yes | 39/39 | 100% | |
| No | 0/39 | 0% | |
| 09. | Preferred OS | ||
| Windows XP | 14/39 | 36% | |
| Windows Vista | 12/39 | 31% | |
| Mac OS X | 7/39 | 18% | |
| Linux/Unix | 9/30 | 0% | |
| 10. | Do you have a MATLAB license? | ||
| Yes | 9/39 | 23% | |
| No | 30/30 | 77% | |
| 11. | Which topics are you interested in? | ||
| Databases | 16/39 | 47% | |
| Functions and Modules | 14/39 | 41% | |
| Debugging | 10/39 | 29% | |
| Image Processing | 10/39 | 30% | |
| Object-Oriented Programming | 10/39 | 30% | |
| Web Application Programming | 9/39 | 26% | |
| GUI Programming | 8/39 | 23% | |
| Web Client Programming | 7/39 | 21% | |
| Computational Complexity | 6/39 | 18% | |
| How Web Servers Work | 6/39 | 18% | |
| Regular Expressions | 6/39 | 18% | |
| XML | 6/39 | 18% | |
| Automated Builds | 5/39 | 15% | |
| Sets and Dictionaries | 5/39 | 15% | |
| Unix Shell Scripting | 5/39 | 15% | |
| Binary Data | 3/39 | 9% | |
| Empirical Software Engineering | 3/39 | 9% | |
| Quality Assurance | 3/39 | 9% | |
| Unit Testing | 3/39 | 9% | |
| Version Control | 3/39 | 9% | |
| Software Development Lifecycles | 1/39 | 3% | |
| Other (please specify) | 10/39 | 30% | |
The Hacker Within
I did a web search for “software carpentry” a couple of weeks ago to update my impressions of how the material was being used, and stumbled across The Hacker Within,a self-help group at the University of Wisconsin for grad students in science who want to improve their computing skills. I had a great chat with the organizers by phone on Thursday, and hope to get there in the spring to meet them in person. It’s always great to meet the people the course is designed to help; I’d welcome pointers to other groups if you have them.
Post-Mortem
Today was the last day of the course, so we spent the morning talking about what had gone well and what had not. The high and low points were:
Good
- The course was fun.
- The TAs were fantastic.
- The format (one hour of lecture plus two hours of lab, twice a day) worked well.
- Enjoyed the parts where the instructors programmed live.
- Liked the emphasis on working practices that complement coding.
- Liked the spread of topics, and the variability of things that are useful in all the different fields.
- Liked the pair programming.
- Welcomed exposure to standard libraries that weren’t necessarily covered in the course.
- Liked the pre-arrival questions about what people knew, were doing, and wanted from the course.
- The examples were good.
- So were the donuts.
Bad
- Three weeks is too long.
- Some of the later topics were not as useful.
- Would have preferred to use standard libraries for the image processing lecture and exercises instead of simplified libraries.
- Too little coverage of too many subjects.
- The formatting of the slides leaves much to be desired.
- Too many lectures ran over time (which was particularly hard in afternoon sessions).
- Divided attention in FriendFeed is a problem.
- The less applied stuff (e.g., computational complexity) wasn’t as useful or as interesting.
- Students weren’t given enough time to work on their own projects.
- Didn’t feel encouraged to make suggestions or provide feedback.
- Not enough on shell programming.
- Too much shell programming.
- A/V between Toronto and Edmonton was crude by modern standards.
Changes
- More on object-oriented programming.
- More feedback on the students’ solutions to the exercises—they didn’t get the equivalent of grading.
- Put the exercises up before the class, so that students know what the lecture’s going to be leading them to.
It’s been a good three weeks—I enjoyed getting to know the students, and look forward to seeing what they do with what they’ve learned.
Day[-2]
Today (Thursday) was the second-to-last of the course. It’s been a long haul, but we hope a rewarding one. In the morning, the students had an hour-long overview of results from empirical studies of real-world software engineering; in the afternoon, we looked at how traditional and agile development processes are responses to those facts. Tomorrow morning, we’ll spend an hour talking about what’s gone right and what’s gone wrong, then head out for a farewell lunch.
And in late-breaking news, one of the students, Mark Tovey, has started a blog on open source cognitive science. Thinking about it now, we should have required all of the students to start and maintain blogs during the course; here’s hoping some will do it now of their own accord (hint, hint).