The department of informatics at the university of Lugano is brand-new. Therefore I and pretty much every other Ph.D. students are assisting courses. I find it very challenging to build courses from scratch in a new context as we do in Lugano, even if it is a bit time-consuming ;-). Here is a list of the courses I have assisted so far.
I assisted this master-level course starting from mid-february 2008 to june 2008. The course consist of lectures (handled by Cesare Pautasso), exercise sessions, and labs, during which students work on projects.
I have been assisting this first-year, first-semester course which is about the very basic concepts of programming such as recursion and data structures. The course is done using the functional programming language Scheme. Near the end of the course, the students have done projects such as games, in teams of four people, with pretty impressive results. I think that making students work together early on is the only good way for them to learn the skills needed in a collaborative environment.
We have a paper relating our experience teaching PF1 and PF2 which appeared in the Software Education Track of ICSE 2008.
This course is a second-semester course where the students learn the object-oriented programming paradigm. It is split in two parts: three weeks of Smalltalk and ten weeks of Java. The advantage of this approach is that the students are first immersed in Smalltalk's fully object-oriented environment to fully grasp the key concepts of OO, which are then clear when it is time to deal with the idiosyncrasies of Java ;-). I was involved in the first part of this course, and also gave two lectures about Seaside, which is a web framework programmed in Smalltalk allowing a very high-level programming style for web applications. Seaside was then used for the Smalltalk pair-programming project, with again some pretty good results.
I was not involved in the Java part of the course, where the students were again doing a project in teams of four people. You might find it boring by now, but despite every efforts, the projets seems to have succeeded as well ;-).
I have also been involved in teaching in my previous university, in Caen, France. There I was teaching assistant for a first-semester Smalltalk course (two years), and also assisting a modelling/programming course for one semester (third-year non-informatics students, using Java and UML).