Skip to main content

A second year course on data structures based on functional programming

  • Conference paper
  • First Online:
Funtional Programming Languages in Education (FPLE 1995)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1022))

Abstract

In this paper, we make a proposal for a second year course on advanced programming, based on the functional paradigm. It assumes the existence of a first course on programming, also based on functional languages. Its main subject is data structures.

We claim that advanced data structures and algorithms can be better taught at the functional paradigm than at the imperative one, and that this can be done without losing efficiency. We also claim that, as a consequence of the higher level of abstraction of functional languages, more subjects can be covered in the given amount of time.

In the paper, numerous examples of unusual data structures and algorithms are presented illustrating the contents and the philosophy of the proposed course.

In the next page, a short description of the course is given.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Harold Abelson and Gerald J. Sussman. Structure and Interpretation of Computer Programs. MIT Press, 1985.

    Google Scholar 

  2. E. Astesiano and M. Cerioli. On the existence of initial models for partial (higher order) conditional specifications. In Proceedings of TAPSOFT'89. LNCS 351, 1989.

    Google Scholar 

  3. E. Barendsen and J.E.W. Smetsers. Conventional and uniqueness typing in graph rewrite systems. In Proceedings of the 13th FST & TCS. LNCS 761, 1993.

    Google Scholar 

  4. R. Bird and P. Wadler. Introduction to Functional Programming. Prentice-Hall, 1988.

    Google Scholar 

  5. L. A. Galán, M. Núñez, C. Pareja, and R. Peña. Non homomorphic reductions of data structures. GULP-PRODE, 2:393–407, 1994.

    Google Scholar 

  6. R. R. Hoogerwood. A logarithmic implementation of flexible arrays. In Proceedings of the 2th Conference on the Mathematics of Program Construction. LNCS 699, 1992.

    Google Scholar 

  7. E. Horowitz and S. Sahni. Fundamentals of Data Structures in PASCAL. Computer Science Press, 4th. edition, 1994.

    Google Scholar 

  8. P. Hudak. Mutable abstract datatypes or How to have your state and munge it too. Technical Report YALEU/DCS/RR-914, Yale University, 1993.

    Google Scholar 

  9. P. Hudak, S. Peyton-Jones, and P. Wadler. Report on the Functional Programming Language Haskell. SIGPLAN Notices, 27(5), 1992.

    Google Scholar 

  10. J. Hughes. Why Functional Programming Matters, pages 17–43. Research Topics in Functional Programming. (Ed.) D. A. Turner. Addison-Wesley, 1990.

    Google Scholar 

  11. S. Joosten, K. van den Berg, and G. van der Hoeven. Teaching functional programming to first-year students. Journal of Functional Programming, 3:49–65, 1993.

    Google Scholar 

  12. D. J. King. Functional binomial queues. In Proceedings of the Glasgow Workshop on Functional Programming, 1994.

    Google Scholar 

  13. D. J. King and H. Launchbury. Structuring depth-first search algorithms in Haskell. In Proceedings of POPL'95, 1995.

    Google Scholar 

  14. T. Lambert, P. Lindsay, and K. Robinson. Using Miranda as a first programming language. Journal of Functional Programming, 3:5–34, 1993.

    Google Scholar 

  15. J. Launchbury and S. L. Peyton Jones. Lazy functional state threads. In Proceedings of the ACM Conference on Programming Languages Design and Implementation, 1994.

    Google Scholar 

  16. C. Okasaki. Simple and efficient purely functional queues and deques. Journal of Functional Programming, 1994. To appear.

    Google Scholar 

  17. R. Peña. Diseño de Programas: Formalismo y Abstracción. Prentice Hall, 1993. In Spanish.

    Google Scholar 

  18. C. M. P. Reade. Balanced trees with removals: an exercise in rewriting and proof. Science of Computer Programming, 18:181–204, 1992.

    Google Scholar 

  19. D. Sands. A Naïve Time Analysis and its Theory of Cost Equivalence. The Journal of Logic and Computation, 1994. To appear.

    Google Scholar 

  20. D. D. Sleator and R. E. Tarjan. Self-adjusting heaps. SIAM Journal of Computing, 15(1):52–69, 1986.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Pieter H. Hartel Rinus Plasmeijer

Rights and permissions

Reprints and permissions

Copyright information

© 1995 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Núñez, M., Palao, P., Peña, R. (1995). A second year course on data structures based on functional programming. In: Hartel, P.H., Plasmeijer, R. (eds) Funtional Programming Languages in Education. FPLE 1995. Lecture Notes in Computer Science, vol 1022. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-60675-0_39

Download citation

  • DOI: https://doi.org/10.1007/3-540-60675-0_39

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-60675-8

  • Online ISBN: 978-3-540-49252-8

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics