Experiences with Functional Programming in an Introductory Curriculum

We present the rationale behind a first semester course on functional programming. We describe the design of the course, emphasizing programming as a modelling discipline, as well as the curriculum it was a part of. In particular, we discuss our experienc

  • PDF / 12,149,171 Bytes
  • 263 Pages / 430 x 660 pts Page_size
  • 101 Downloads / 224 Views

DOWNLOAD

REPORT


Editorial Board David Hutchison Lancaster University, UK Takeo Kanade Carnegie Mellon University, Pittsburgh, PA, USA Josef Kittler University of Surrey, Guildford, UK Jon M. Kleinberg Cornell University, Ithaca, NY, USA Alfred Kobsa University of California, Irvine, CA, USA Friedemann Mattern ETH Zurich, Switzerland John C. Mitchell Stanford University, CA, USA Moni Naor Weizmann Institute of Science, Rehovot, Israel Oscar Nierstrasz University of Bern, Switzerland C. Pandu Rangan Indian Institute of Technology, Madras, India Bernhard Steffen University of Dortmund, Germany Madhu Sudan Massachusetts Institute of Technology, MA, USA Demetri Terzopoulos University of California, Los Angeles, CA, USA Doug Tygar University of California, Berkeley, CA, USA Gerhard Weikum Max-Planck Institute of Computer Science, Saarbruecken, Germany

4821

Jens Bennedsen Michael E. Caspersen Michael Kölling (Eds.)

Reflections on the Teaching of Programming Methods and Implementations

13

Volume Editors Jens Bennedsen IT University West Fuglsangs Allé 20, 8210 Aarhus V, Denmark E-mail: [email protected] Michael E. Caspersen University of Aarhus, Department of Computer Science Aabogade 34, 8200 Aarhus N, Denmark E-mail: [email protected] Michael Kölling University of Kent, Computing Laboratory Canterbury, Kent CT2 7NF, UK E-mail: [email protected]

The copyright of the cover illustration of this book belongs to HAAP Media Ltd. Budapest, Csatárka út 82-84, 1025 Budapest, Hungary

Library of Congress Control Number: 2008925133 CR Subject Classification (1998): K.3, K.4, D.2, J.1 LNCS Sublibrary: SL 2 – Programming and Software Engineering ISSN ISBN-10 ISBN-13

0302-9743 3-540-77933-7 Springer Berlin Heidelberg New York 978-3-540-77933-9 Springer Berlin Heidelberg New York

This work is subject to copyright. All rights are reserved, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, re-use of illustrations, recitation, broadcasting, reproduction on microfilms or in any other way, and storage in data banks. Duplication of this publication or parts thereof is permitted only under the provisions of the German Copyright Law of September 9, 1965, in its current version, and permission for use must always be obtained from Springer. Violations are liable to prosecution under the German Copyright Law. Springer is a part of Springer Science+Business Media springer.com © Springer-Verlag Berlin Heidelberg 2008 Printed in Germany Typesetting: Camera-ready by author, data conversion by Scientific Publishing Services, Chennai, India Printed on acid-free paper SPIN: 12224616 06/3180 543210

Foreword

For 50 years, we have been teaching programming. In that time, we have seen momentous changes. From teaching a first course using an assembly language or Fortran I to using sophisticated functional and OO programming languages. From computers touched only by professional operators to computers that children play with. From input on paper tape and punch cards, with hour-long waits for output from computer runs,