Skip to main content

Summer School in Switzerland

Posted by cayhorstmann on July 31, 2008 at 2:37 PM PDT

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
    CLASSPATH problems 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
    sudo apt-get
        install automake
    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 href="http://weblogs.java.net/blog/cayhorstmann/archive/2008/05/on_bluecollar_l.html">Java
    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
    actually work.

Comments

@cayhorstmann might you tell me what are the grad program(s) where you get to teach this one, CS252 or the like? Thanks in advance.

I worked in Basel for 4 yrs, Switzerland is great !

I participated in this program and had Cay Horstmann's Open Source class (I'm pictured above second from the right in the second-to-last row, with the MacBook Pro). It was a great experience to be there in Switzerland; the people were very welcoming, the landscape was beautiful, and the opportunity to network with other students from other US universities and from HEIG-VD was priceless. The Open Source class, in particular, stressed breadth of study with a bit of practical experience. The reality of the FOSS community is that each individual must learn on his own, with the help and resources that the community has developed, and then begin to contribute to both the code and documentation bases of the community at large. This principle follows directly from the class - topics were mentioned, briefly demoed, and then it is now up to us to pursue a more in-depth personal study of each topic in which we are interested. We covered the software development tools mentioned above as well as FOSS principles including software as intellectual property, licensing, and standards (file formats, protocols, computer languages, etc). I found the class very useful and will continue to be a part of FOSS as my career unfolds.