UE5 Fundamentals of Algorithms
Instructor: Romain Vuillemot
Course Description
- Basis of algorithms (sorting, search) and data structure (arrays, lists)
- Justification of the choice of data structures
- Calculate the complexity of an algorithm
- Optimize algorithms
- Writing programs using algorithms
Outline
notebook | exercices
Lecture 1 - Data structures and complexity |📖 Python for Everybody chapter 9 (dictionnaries), chapter 10 (tuples)
notebook | exercices
Lecture 2 - Recursion |📖 Think Python chapter 5 (Conditionals and recursion) and Real Python recursion.
notebook | exercices
Lecture 3 - Lists, search, sort |📖 Think Python chapter 11 (lists), chapter 12 (tuples), Python for Everybody chapter 8 (lists) and Real Python lists and sorts.
notebook | exercices
Lecture 4 - Programming strategies: divide and conquer |Lecture 5 - Programming strategies: greedy algorithms
Lecture 6 - Programming strategies: dynamic programming
Lecture 7 - Stacks and queues
chapter 1.2.1 (Queue/Stacks), Open Data Structures
📝 Assignment 1 - Analyzing a dataset
Lecture 8 - Binary trees
📖 Problem Solving with Algorithms chapter 6 (trees and tree algorithms)
Lecture 9 - Binary trees traversals
📖 Problem Solving with Algorithms chapter 6.7 (trees traversal)
Lecture 10 - Trees
Lecture 11 - Trees algorithms
Lecture 12 - Graphs
Lecture 13 - Graphs spanning trees
Lecture 14 - Graphs matrices
Lecture 15 - Graphs shortest paths
Books and ressources
- Think Python, 2nd edition, by Allen B. Downey
- Python for Everybody, by Charles Severance
- Problem Solving with Algorithms and Data Structures using Python, by Brad Miller and David Ranum
- ODS Pyhon, by Pat Morin (url)
Other ressources: