Seminars details

  • Touch of class: modern programming education through objects, contracts and components
  • Teaching introductory programming in a form that will give future Information Technology professionals a head start raises many challenges: focusing on long-term skills rather than fashionable toys of the moment, introducing a degree of rigor without losing the practical touch, keeping abreast of the most exciting new technologies, devising appropriate exercises that can't be solved by just googling the results, providing a first introduction to professional software engineering, tackling big enough examples to give students an idea of real software development.<P> The introductory programming courses at ETH Zurich were redesigned two years ago with these concerns in mind, using an approach that is fully object-oriented right from the start and fundamentally relies on the concepts of Design by Contract. Another crucial principle is reliance on software reuse: we provide the students, right from the beginning, with a large graphical and multimedia library which they are invited to reuse initially as pure clients, through abstract interfaced and contracts; they can then discover the details little by little, "outside-in", and in the end extend it themselves, through a process also called the Inverted Curriculum. A textbook in progress, Touch of Class, supports the approach. The library is in the public domain.<P> The progress of the students is carefully monitored through systematic analysis of weekly exercises and questionnaires, so that we are able to evaluate objectively how the course succeeds. We believe that our experience provides a blueprint of how best to educate Information Technology professionals for the challenges that await them in the coming decades. A number of universities have already adopted the approach. We will describe our techniques and the result of this experience over the past two years, presenting the benefits achieved and the problems that remain.
  • 05/06/2005 14:00
  • Bertrand Meyer