Lecture Notes

Introduction

Chapter I: Basic tools

Chapter II: Fundamental data structures

Chapter III: Recursive algorithms

  • Introducing the notation and recursion on lists
  • Truly recursive algorithms and complexity
  • Efficient recursive algorithms and inside a Stack


Chapter IV: Trees

  • An introduction to Trees with algorithms
  • Binary Search Trees
  • Balanced trees: AVL & Red Black
  • Heaps
  • Algorithms on trees: stacks & arrays

Chapter V: Sorting

  • The four families by practice
  • Lower bound and ordering using custom comparators

Chapter V: Hashing

  • Introduction, linear and quadratic probing
  • Formalism for hashing functions & chaining

Chapter VI: Graphs

  • Introduction : setting up the structure
  • Breadth-first search
  • Research problem: using iterators


Chapter VII: Advanced Java Techniques

Legend