Algorithms and data structures links for new Java programmers

What this page is for

This is a page of links on algorithms and data structures with particular emphasis on introductory material where they are expressed in the Java programming language. It is maintained by Matthew Huntbach. I also have a larger and more general links page Useful and interesting links for new Java programmers which contains links on programming in general using Java intended for those who have recently started to learn how to program and other useful reference material for new programmers, or things which have interested me that I feel would also be of use or interest to those starting out learning to program. A third page of links on Advanced Program Design in Java is intended for those who have a little more experience of using the language, with more of an emphasis on programming-in-the-large issues.

These pages are made available to students on the modules I teach in the School of Electronic Engineering and Computer Science at Queen Mary, University of London. Two modules I am currently teaching are (links are to school intranet pages):

These links pages, however, are on my public web site so that they can be used more widely by anyone who finds them useful.

Note, I'm keeping this site and my other links pages in their original very simple format partly because I'm a believer in not adding extra complexity unless there's a clear need for it, and partly because I'm not intending to put major effort into either design or content of them. The rough-and-ready appearance reflects the rough-and-ready approach to content - I will add new relevant links I happen to come across, and I will delete any I check and find are dead or so out of date as no longer to be useful.

University algorithms and data structures course web pages

Many university courses on algorithms and data structures have made their complete course notes publicly available through the web. Most of the courses given here are of an introductory nature and use Java to illustrate the principles without being dominated by details specific to Java. You can find links to other course web pages from my collection of university course indexes, including many that teach algorithms and data structures using C++ rather than Java.

UK universities

  • Matthew Huntbach, Queen Mary, University of London
  • Ian Holyer and James Marshall, University of Bristol
  • David Aspinall, University of Edinburgh
  • Kyriakos Kalorkoti, University of Edinburgh
  • Grant Malcolm, University of Liverpool
  • Paul Dunne, University of Liverpool
  • Patrick Prosser, University of Glasgow
  • Natasha Alechina, University of Nottingham
  • Ross Paterson, City University
  • Ivor Spence, Queen's University Belfast
  • Mark Dunlop, University of Strathclyde
  • Kingsley Sage, University of Sussex
  • Tugkan Batu, London School of Economics
  • Alison Cawsey, Heriot-Watt University
  • Simon Garret, University of Wales, Aberystwyth
  • Alessandra Russo, Imperial College, University of London
  • David Rydeheard and Graham Gough, University of Manchester

    Other European universities

  • Erland Holmström, Chalmers University, Sweden
  • P. Adamidis, Technological Educational Institute of Thessaloniki (in Greek)
  • Ulf Uttersrud, Oslo University College (in Norwegian)
  • Christian Carrez, Conservatoire National des Arts et Métiers, France (in French)
  • Jean-Jacques Lévy, École Polytechnique, France (in French)
  • Hans Werner Lang, Fachhochschule Flensburg (mainly in German)

    USA universities

  • Gregory Kesden, Carnegie Mellon University
  • Jonathan Shewchuk, University of California at Berkeley
  • Mark S. Schmalz, University of Florida
  • David Schmidt, Kansas State University
  • Ken Birman, Cornell University
  • Paul Chew and David Schwartz, Cornell University
  • Dexter Kozen, Cornell University
  • Nelson Padua-Perez and Chau-Wen Tseng, University of Maryland
  • Dave Mount, University of Maryland
  • K.R.Kaplan, Rutgers State University of New Jersey
  • Leonidas Guibas, Stanford University
  • Mark Llewellyn, University of Central Florida
  • B.F.Caviness, University of Delaware
  • Jonathan Cohen, Johns Hopkins University, Baltimore
  • John L. Donaldson, Oberlin College, Ohio
  • University of Washington
  • University of Washington
  • David Boyd, Valdosta State University, Georgia
  • Stephen Wong and Dung Nguyen, Rice University, Houston, Texas
  • Alan Cox and Dung Nguyen, Rice University, Houston, Texas
  • Eliot Moss, University of Massachusetts Amherst
  • Kostas Daniilidis, University of Pennsylvania
  • David Matuszek, University of Pennsylvania
  • Mike Scott, University of Texas at Austin
  • Eugene Agichtein, Emory University, Atlanta, Georgia

    Canadian universities

  • Yves Lespérance, York University, Toronto
  • Therese Biedl, McGill University, Montreal
  • Wendy Myrvold, University of Victoria
  • Dave Bockus, Brock University, St Catharines, Ontario
  • Steven Beauchemin and Doug Vancise, University of Western Ontario

    Australasian Universities

  • Santokh Singh, University of Auckland, New Zealand
  • Georgy Gimel'farb and Jing Sun, University of Auckland, New Zealand
  • Cara MacNish, University of Western Australia
  • Alex Potanin, Victoria University of Wellington

    Asian universities

  • Thanawat Phattaraworamet, Chang Mai University, Thailand
  • Walid Keirouz and Haidar M. Harmanani, Lebanese American University
  • Dickson K.W. Chiu, Chinese University of Hong Kong
  • Albert Y.F. Ho, Hong Kong Institute of Vocational Education (Tsing Yi)

    African Universities

  • Greg Wells, Rhodes University, South Africa

    General resource sites for algorithms and data structures

    Here are some sites which are comprehensive resources on algorithms and data structures.

  • Dictionary of Algorithms, Data Structures, and Problems from NIST: National Institute of Standards and Technology.
  • Algorithms and Data Structures Research & Reference Material from Lloyd Allison
  • The Stony Brook Algorithm Repository
  • LiteratePrograms Category: Algorithms and Data Structures

    Other relevant sites for algorithms and data structures

    Here are a few more relevant sites containing material on algorithms and data structures.

  • Mark Allen Weiss author of several highly regarded textbooks on algorithms and data structures.
  • Data Structures and Algorithms with Object-Oriented Design Patterns in Java: an on-line book by Bruno Preiss
  • Java Data Structures by "particle".
  • Collection of Lecture Notes, Surveys and Papers mainly on algorithms, mostly advanced material.
  • Analysis of Algorithms Home Page more advanced material.
  • Java-Based Collaborative Active Textbooks more algorithm animation
  • Animations to Assist Learning Some Key Computer Science Topics Has material on algorithms, data structures, and other basic aspects of computer science.
  • Relevant Algorithm Animiations/Visualizationa a comprehensive collection of algorithm animation links
  • Graph Algorithms animations by Dominique Thiébaut
  • Priority Queues very detailed collection of links by Lee Killough
  • Brian Hayes' articles from a column on Computer Science in the American Scientist magazine.
  • and two web page associated with algorithms and data structures books by Michael T. Goodrich and Roberto Tamassia
  • Thierry Lecroq's home page has links to and animations of pattern matching algorithms.
  • Stanford CS Education Library material on lists and trees.
  • Softpanorama "slightly skeptical" virtual library, algorithms section.
  • Basic Topics in Computer Science from AI Horizon
  • Data structures and algorithms links compiled by Godfried Toussaint
  • Peter Widmayer and Jürg Nievergelt lead two research groups in algorithms, data structures and applications at ETH Zurich.
  • Algorithmic Problem Solving by Roland Backhouse some interesting examples of a logical approach to problem solving.

    Algorithms and data structures sites from web-indexers

  • dmoz - Open Directory Project
  • Google
  • geometry
  • Yahoo

    Algorithms and data structures book sales sites

    Books available on Java can be found from on-line book sales and publishers' sites. These will generally give you some idea of the contents, and the book sales sites also includes customer reviews.
  • Addison Wesley data structures
  • Addison Wesley algorithms and advanced data structures
  • Wiley data structures
  • Wiley algorithms
    Matthew Huntbach
    Last modified: 14 February 2012