Teaching Algorithms and Data Structures: 10 Personal Observations

  • Hanspeter Bieri
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2598)


Since 1980, I have taught almost every year an elementary course on algorithms and data structures, first for the third and later for the second semester. The first perfor-mances - in PL/I times - were heavily based on [5]. Later the course became increasingly independent of any single textbook, and now makes use of a large number of sources, including, of course, the author’s proper experiences. Nevertheless, my course is still very standard. It is known that many mathematics teachers at elementary schools get bored presenting the same proven stuff over the years, and more and more, therefore, teach “exotic” alternatives, in general not in favor of the students. This is a phenomenon I have always tried to avoid. Still I think that the elementary textbooks on algorithms and data structures have become too canonical too quickly, and that certain ways of presentation and also of selecting the contents are not as justified as they seem to be. In the following, I state some very personal observations which have arisen from the many performances of my standard course, in the hopes of challenging a little the textbook authors and teachers of algorithms and data structures. Each one of my 10 observations is concluded by a short statement put in a box and intended as kind of a summary and accentuation.

Thomas Ottmann is not only a renowned researcher in algorithms and data structures, but also a prominent innovator in teaching them to students of all levels. I am very pleased to dedicate this small contribution to him.


Data Structure Programming Language Classic Algorithm Linear List Standard Template Library 
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. 1.
    Abelson, H., Sussman, G.J., Sussman, J.: Structure and Interpretation of Computer Programs. 2nd Edition. MIT Press 1996.Google Scholar
  2. 2.
    Aho, A.V., Hopcroft, J.E., Ullman, J.D.: The Design and Analysis of Computer Algorithms. Addison-Wesley 1974.Google Scholar
  3. 3.
    Aho, A.V., Hopcroft, J.E., Ullman, J.D.: Data Structures and Algorithms. Addison-Wesley 1983.Google Scholar
  4. 4.
    Aigner, M., Ziegler, G.M.: Proofs from the BOOK. 2nd Edition. Springer 2001.Google Scholar
  5. 5.
    Augenstein, M.J., Tenenbaum, A.M.: Data Structures and PL/I Programming. Prentice-Hall 1979.Google Scholar
  6. 6.
    de Berg, M., van Kreveld, M., Overmars, M., Schwarzkopf, O.: Computational Geometry-Algorithms and Applications. 2nd Edition. Springer 2000.Google Scholar
  7. 7.
    Bieri, H., Grimm, F.: Datenstrukturen in APL2-Mit Anwendungen aus der Künstlichen Intelligenz. Springer 1992.Google Scholar
  8. 8.
    Budd, T.A.: Data Structures in C++ Using the Standard Template Library. Addison-Wesley 1998.Google Scholar
  9. 9.
    Computing Curricula 2001 (CC2001). Steelman Report. IEEE Computer Society/ACM 2001.Google Scholar
  10. 10.
    Cormen, T.H., Leiserson, C.E., Rivest, R.L.: Introduction to Algorithms. MIT Press, 1990.Google Scholar
  11. 11.
    Guha, R.K., Yeh, R.T.: A Formalization and Analysis of Simple List Structures. In R.T. Yeh (Ed.): Applied Computation Theory, 150–182. Prentice-Hall 1976.Google Scholar
  12. 12.
    Hirvensalo, M.: Quantum Computing. Springer 2001.Google Scholar
  13. 13.
    Knuth, D.E.: Big omicron and big omega and big theta. SIGACT News, Vol. 8, 18–24 (1976).Google Scholar
  14. 14.
    Knuth, D.E.: The Art of Computer Programming. Volumes 1–3. Addison-Wesley 1998.Google Scholar
  15. 15.
    Lynch, N.A.: Distributed Algorithms. Morgan Kaufmann 1997.Google Scholar
  16. 16.
    Mehlhorn, K., Näher, S.: LEDA-A Platform for Combinatorial and Geometric Computing. Cambridge University Press 2000.Google Scholar
  17. 17.
    Munakata, T.: Fundamentals of the New Artificial Intelligence-Beyond Traditional Paradigms. Springer 1998.Google Scholar
  18. 18.
    Ottmann, T. (Hrsg.): Prinzipien des Algorithmenentwurfs. Spektrum Akademischer Verlag 1998.Google Scholar
  19. 19.
    Ottmann, T., Widmayer, P.: Algorithmen und Datenstrukturen. 4. Auflage. Spektrum Akademischer Verlag 2002.Google Scholar
  20. 20.
    Polya, G.: How to Solve It. 2nd Edition. Princeton University Press 1957.Google Scholar
  21. 21.
    Rohl, J.S.: Recursion via Pascal. Cambridge University Press 1984.Google Scholar
  22. 22.
    Saake, G., Sattler, K.-U.: Algorithmen und Datenstrukturen-Eine Einführung mit Java. dpunkt.verlag 2002.Google Scholar
  23. 23.
    Sedgewick, R.: Algorithms. Addison-Wesley 1983.Google Scholar
  24. 24.
    Wegner, P.: Why Interaction Is More Powerful Than Algorithms. Communications of the ACM 40 (5), 80–91 (1997).CrossRefGoogle Scholar
  25. 25.
    Wirfs-Brock, R., Wilkerson, B., Wiener, L.: Designing Object-Oriented Software. Prentice-Hall 1990.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2003

Authors and Affiliations

  • Hanspeter Bieri
    • 1
  1. 1.Institute of Computer Science and Applied MathematicsBernSwitzerland

Personalised recommendations