Functional programming in a basic database course

  • Pieter Koopman
  • Vincent Zweije
From Transistors to Computer Architecture
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1022)


This paper describes why and how a functional programming language was used in an introductory database course. The purpose of the programming exercises in this course is to give students a better understanding of the internal structure and use of databases and database management systems.

We used a functional language for its high level of abstraction and the automatic memory management which make writing a simple database management system considerably easier.

Although the students had no previous knowledge of functional programming, they were capable to obtain useful experience in the database field. In order to enable students to concentrate on the database aspects of the exercises and to make rather elaborated systems in a limited amount of time, we supplied skeletons of the programs to make. Only the parts that are the core of the exercise had to be written by the students.

The exercises appear to serve their purpose very well. The corresponding parts of the exams are made considerably better since the introduction of these exercises in the course. After some initial hesitation, the students indicate that they prefer a functional language for these exercises above the imperative languages they know.


Query Language Practical Work Relational Algebra Database Management System Functional Programming 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. Diller, A.: Z, An Introduction to Formal Methods, Second edition, Wiley, ISBN 0-471-92973-0, 1994.Google Scholar
  2. Elmasri, Navathe: Fundamentals of database systems, second edition, Benjamin Cummings, ISBN 0-8053-1748-1, 1994.Google Scholar
  3. Fraenkel, A.A.: Zu den Grundlagen der Cantor-Zermeloschen Mengelehre. Mathematische annalen, 86, pp 230–237, 1922.Google Scholar
  4. Jones, M.P.: Gofer. 2.30 release notes, 1994.Google Scholar
  5. Jones, M.P.: A system of constructor classes: overloading and implicit higher-order polymorphism. in: Proceedings FPCA 93, 1993.Google Scholar
  6. Melton, J., Simon, A.R.: Understanding the new SQL: a complete guide. Morgan Kaufmann Publishers, ISBN 1-55860-245-3, 1993Google Scholar
  7. Turner, D.A.: Miranda: a non-strict functional language with polymorphic types. LNCS 201, pp 1–16, 1985.Google Scholar
  8. Wadler, P.: The essence of functional programming. In: Proceedings of the 19th annual symposium on Principles of Programming Languages, pp 1–14, 1992.Google Scholar
  9. Zermelo, E.: Untersuchungnen über die Grundlagen der Mengelehre. International Bibliography, Information and Documentation, 65, pp 261–281, 1908.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1995

Authors and Affiliations

  • Pieter Koopman
    • 1
  • Vincent Zweije
    • 1
  1. 1.Computer ScienceLeiden UniversityCA, LeidenThe Netherlands

Personalised recommendations