ECTS credits
4 credits
Prerequisites
Non
Learning objectives
This course is an introduction to algorithms (trees, graphs, texts), complexity, indexing and databases, which are essential tools for a general engineer.
The aim is in particular to bring the students to be able to analyse / model a given problem, to imagine an algorithm allowing to solve it, to question its efficiency, and to implement it concretely by making relevant choices of programming and by using adapted data structures.
Description of the programme
This teaching unit covers:
⁃ The notion of complexity (worst case, average, minimum)
⁃ Graph-like data and associated algorithms (traversal, shortest path, coloring...)
⁃ Tree-like data and associated algorithms (search...)
⁃ Text data and associated algorithms (search, comparison...)
⁃ Dynamic programming
⁃ Data storage and indexing
⁃ Relational algebra
⁃ SQL-type databases
⁃ Basics of programming
⁃ Introduction to object-oriented programming
The teaching is divided between lectures, tutorials focused on algorithmic notions and practical work for the implementation with the python language.
Generic central skills and knowledge targeted in the discipline
- Know how to mobilise and use fundamental algorithmic approaches
- Master algorithms for classical problems and know how to program them
- Know how to use appropriate data structures
- Master the fundamental elements of the syntax of the Python programming language
How knowledge is tested
- Mini-tests at the beginning of the course (50%)
- Proctored homework (50%)
Bibliography
Teaching team
T. Artières , F. Brucker, E. Daucé, C. Jazzar, P. Préa, R. Sicre
- Total hours of teaching72h
- Master class14h
- Directed work20h
- Practical work20h
- 18h