Algorithms Design and Complexity
- Teacher(s)
- Laurent CAOUISSIN, Yann DAUXAIS, Antoine GUENNEC, Boris Hermann NJANJOUO, Ikko YAMANE
- Course type
- COMPUTER SCIENCE
- Correspondant
- Cédric HERZET
- Unit
-
UE1-03-M-E-S : Data Bases and Fundamentals of Computer Science
- Number of ECTS
- 2
- Course code
- 1AINF04
- Distribution of courses
-
Heures de cours : 9
Heures de TP : 12
- Language of teaching
- French
- Evaluation methods
- devoir maison + examen écrit
Objectives
Calculate the complexity of an algorithm, identify its complexity class, evaluate the time required for its completion ; Produce an algorithm in Python of lower complexity achieving the same result ; Describe the main components of a computer.
Course outline
Different types of complexity of algorithms and problems ; Big-O, big-Omega, and big-Theta notation ; Iterative algorithms and summation complexity analysis ; Recursive algorithms and induction complexity analysis ; The divide-and-conquer strategy ; Data structures such as arrays, linked lists, stacks, queues, and hash tables ; Proof techniques such as induction, reasoning by contradiction, and the master theorem ; Dynamic programming.
Prerequisites
Rudiment in imperative programming