Summer School in Switzerland
This summer, I am a guest lecturer at an interesting summer program
organized by HEIG-VD, the University of
Engineering and Management of the href="http://en.wikipedia.org/wiki/Vaud">Canton de Vaud in Switzerland,
located in href="http://www.myswitzerland.com/en/infra.cfm/rkey/805">Yverdon. The
university has three summer exchange programs, in enology, management, and
computer science. This is the second year that my own institution, href="http://www.sjsu.edu">SJSU, has been a partner, and the students from
last year's exchange had a great experience and continue to network with their
Swiss counterparts. This year, participants come from HEIG-VD, SJSU, Cal State
Long Beach, and Arizona State. Classes ranged from ubiquitous computing to
artificial intelligence and bioinformatics.
I am teaching a crash course in open source development, an abbreviated
version of a semester-long course that I had previously taught at SJSU. In a
couple of weeks, students picked up Ant, Subversion, diff and patch, autotools,
and wxWidgets. It was quite impressive how they rose to the challenge. Here are
some random observations:
- If you run a computer lab with desktops, air conditioning is a must.
(Someone told me that Swiss law forbids air conditioning in public
buildings.) I have found empirically that the ability to deal with
CLASSPATHproblems vanishes when the ambient temperature
exceeds 30 degrees centigrade.
- Ubuntu is a great platform for software development. We covered a lot of
ground in a short amount of time, and the students who used Ubuntu instead
of Mac OS X or (gasp) Windows were way more productive. We particularly
loved the feature where you type in a command (such as
aclocal) and Ubuntu tells you to run
if the command isn't yet installed. What could be
better? I suppose it could just install it :-)
- The Swiss and European governments have sizeable funding for computer
science research. Local companies get tax breaks for collaborating with
universities. There are funding efforts with impressive names (such as
“nano/tera”) that disburse significant amounts of money. It is
reminiscent of what the U.S. did in the 50s and 60s.
- Next year, SJSU and Arizona State will host the Swiss students. We need
some kind of evidence that the program is beneficial for students. No
problem, the Swiss organizers say, we'll get a letter of support from the
government. Umm...could we have a letter from the local Google or eBay
office instead? There is a cultural divide. In the U.S., successful
companies have credibility, whereas in Switzerland, a governnment official
would be considered more objective.
- I am hoping we can extend the summer school to a longer effort where we
practice software development across international boundaries. This is
obviously a hugely important skill. Last year, there was some hesitation
whether the students would be up to it, but judging from what they did in
my class, I think they are way ahead of the administrators.
- Just south of Yverdon, the home of HEIG-VD, is the beautiful city of
Lausanne, home of EPFL, the birthplace of
the Scala language. As it happens,
JÃ¼rgen Ehrensberger, one of the chief organizers of the exchange program,
is a good friend of Martin Odersky, the inventor of Scala. Since it turned
out the three of us were born in Germany, I organized a good old American
BBQ, with good old Vietnamese potato salad (thanks to my wife), and Martin
showed up, biking through a tremendous thunderstorm and sheets of rain.
- Martin told me he had read one of my blogs on
as a blue collar language, and he figured that Scala was a language for
the intelligent programmer.
- We talked about Ruby, and how Ruby programmers seem to be blissfully
oblivious to href="http://innig.net/software/ruby/closures-in-ruby.rb">some of the
complexities of their favored language. (Thanks to Neil Gafter for this
link.) Scala has a specification document, and Martin said that the
IntelliJ folks are busy reimplementing Scala and finding lots of nits in
that spec. That's excellent news—I never had much faith in a spec
with a single implementation.
- I will use Scala next semester in my undergraduate programming languages
class, first as an example of a functional language and then with the
combinator parser and BCEL to write a micro-compiler. EPFL is way ahead of
me—they use Scala to follow an Abelson/Sussman approach and end up
with a Prolog interpreter.
- My wife found a wonderful home exchange, in the village of
href="http://www.cuarnens.ch/">Cuarnens. We have a wheat field next to
our backyard and now know firsthand how those grain harvesting machines