## Resources

### Textbooks

There is no required textbook for this module. All definitions, algorithms, examples and explanations are delivered in the lectures or problem classes.

However, you will benefit from extra examples, and alternative explanations. The material we are covering is standard in Computer Science and Software Engineering degrees worldwide, and there are many textbooks, online lecture notes, websites and online lecture courses. But as always, beware of slightly different definitions or notation. In examinations and continuous assessment for CS2516, the required definitions are those given in the lecture notes on this website. Three textbooks are recommended below, all of which assume Python as the implementation language.

*Data Structures and Algorithms in Python*, Goodrich, Tamassia and Goldwasser, Wiley.*Problem Solving with Algorithms and Data Structures*, Miller and Ranum.*Data Structures and Algorithms with Python*, Lee and Hubbard, Springer.

The following three textbooks are also valuable resources. They cover much more material than we will consider in this module, and will be useful throughout the remainder of the degree program and beyond. The are general algorithm textbooks, though, and do not provide any examples in Python.

*Introduction to Algorithms (3e)*, Cormen, Leiserson, Rivest and Stein, MIT Press.*Algorithm Design*, Kleinberg and Tardos, Pearson Education.*The Algorithm Design Manual*, Skiena, Springer.