Study Plan

Reading List

Algorithms

  • Basic:
    1. Understanding Algorithms. Brunskill
    2. Algorithms Unlocked. Cormen
    3. First Course in Algorithms Through Puzzles. Ryuhei Uehara
    4. Algorithmic Thinking. Daniel Zingaro
    5. Principes of Algorithmic Problem Solving. Johan Sannemo
    6. Grokking Algorithms. Aditya Bhargava
  • Intermediate:
    1. Design and Analysis of Algorithms. Jeffrey Smith
    2. Algorithms. Jeff Erickson
    3. How to Think About Algorithms. Jeff Edmonds
    4. Problems on Algorithmics. Ian Perberry
    5. Fundamentals of Algorithmics. Brassard, Bratley.
    6. Algorithmen & Datenstrukturen - Grundwerkzeuge. Kurt Melhorn
    7. Lecture Notes on Algorithms. Ian Perberry
    8. Algorithm Design. Kleinberg, Tardos
    9. Algorithms Illuminated. Roughgarden
    10. Compared to What. G. J. E. Rawlins
    11. Foundations of Algorithms. Richard Neapolitan
    12. Data Structurese & Their Algorithms. Harry Lewis, Larry Denenberg
    13. Algorithms + Data Structures = Programs. Niklaus Wirth
    14. Algorithms and Data Structures - Design, Correctness, Analysis. Jeffrey H. Kingston
    15. Computer Algorithms. Baase
  • C++:
    1. Data Structures & Problem Solving Using C++. M. A. Weiss
    2. Data Structures & Algorithm Analysis in C++. M. A. Weiss
    3. Data & Algorithms in C++. Drozdek.
    4. Data Structures other Objects using C++. Walter Savitch
    5. Principles of Algorithmic Problem Solving. Johan Sannemo
    6. Guide to Competitive Programming. Antti Laaksonen
  • C:
    1. Algorithms and Data Structures - An Approach in C. Bowman
    2. Foundations of Computer Science. Aho, Ullman
    3. Programs and Datastructures in C. Ameraal
  • Python:
    1. Data Structures and Algorithms Using Python. Rance D. Necaise.
    2. Data Structures & Algorithms in Python. Canning, Broder, Lafore
    3. Competitive Programaming with Python. Duerr, Vie
    4. Problem Solving with Algorithms and Data Structures Using Python. Franklin, Beedle

Graph Theory and Discrete Mathematics

  • General Discrete Mathematics:
    1. Mathematical Structures for Computer Science. Judith Gersting
    2. Discrete & Combinatorial Mathematics. Grimaldi
    3. Concrete Mathematics Knuth
    4. Diskerte Mathematik fuer Einsteiger. Beutelspacher
    5. Discrete Mathematics in Computer Science. Golovnev, Kulikov
  • Graph Theory Specific
    1. Graph Theory - A Poblem Oriented Approach. Daniel A. Marcus
    2. Algorithmic Graph Theory. Alan M. Gibbons
    3. Sets, Puzzles & Postmen. Higgins

Specifically:

  • Gersting:
    • 3: Recurrence relations & analysis of algorithms
    • 5: Graphs & Trees
    • 7: Graph algorithms
  • Rosen:
    • 3: Algorithms
    • 5: Induction & Recursion
    • 8: Advancerd Counting: recurrence relations
    • 10: Graphs
    • 11: Trees
  • Grimaldi:
    • 4: Mathematical induction
    • 5.7, 5.8: Analysis of Algorithms
    • 10: Recurrence relations
    • 11, 12, 13: Graph Theory