| Course label : |
Advanced Algorithms and Programming |
| Teaching departement : |
MIN / Applied Mathematics and General Computing |
| Teaching manager : |
Mister MAXIME FOLSCHETTE |
| Education language : |
French |
| Potential ects : |
2 |
| Results grid : |
|
| Code and label (hp) : |
G1_S5_SC_MIN_AAP - Algo. avancée et programmation |
Education team
Teachers : Mister MAXIME FOLSCHETTE / Madam LYNDA SELLAMI / Mister ANIS GARGOURI / Mister FREDERIC SEMET / Mister HERVE CAMUS / Mister KHALED MESGHOUNI / Mister THOMAS BOURDEAUD HUY
External contributors (business, research, secondary education): various temporary teachers
Summary
This course covers algorithms (sorting, list traversal, …), data structures (stacks, queues, linked lists, …) and memory management (pointers, dynamic allocation), and their application in the C language. These concepts enable students to solve various problems involving data retrieval, information sorting, data compression and optimization. The C language, which is widely used in industry, is considered a “low-level” language: it provides an understanding of the mechanisms of memory management, which may be hidden in other languages.
The courses are taught using Linux, in order to provide a basic introduction to the compilation process and the command line use.
Each year, a specific topic is explored thoroughly and is the subject of a mini-project involving the implementation of data structures (lists, binary search trees, balanced trees, partially ordered trees, graphs, …).
Educational goals
After the course, students will be able to:
- Write a simple program in C language including variables, functions, control structures, type definitions, and dynamic allocation;
- Represent the internal behavior of a program in terms of memory allocation and function calls;
- Choose the data structures to implement or use that are appropriate for the considered problem;
- Use the Linux command line to compile a program in C;
- Have a basic understanding of algorithmic complexity;
- Work as part of a team on a computer science project.
Competency dictionary: by the end of the course, students will have progressed in:
- The ability to organize problem solving (2.3, 2.4, 2.5);
- The ability to follow the resolution (2.7);
- The ability to develop working methods and organize (3.5).
Sustainable development goals
Knowledge control procedures
Continuous Assessment / Fixed Exam
Comments: Coef 1 - Multiple-choice quizz (average grade)
Coef 1 - graded practicals or work in autonomy
Coef 2 - Group mini-project
Coef 4 - Final exam on paper
Online resources
Course materials, practical assignment descriptions, and sample projects can be found on the Moodle platform.
To brush up on your algorithm skills, you can take the following course: https://www.france-ioi.org/algo/chapters.php by choosing the general track and the C language.
If you would like to learn Linux on your own, you can take the following course: https://www.netacad.com/fr/courses/os-it/ndg-linux-essentials
Pedagogy
Supervised sessions, conducted in tutorial groups and computer rooms, allowing for video presentations of course material, demonstrations of solutions, and answers to exercises.
The exercises given to students, generally elements of C programs, are solved on paper (in tutorials) or directly on computers (in practicals).
The teacher guides students in completing these exercises, helps them find and correct any errors detected, and ensures good practices are followed (accuracy of results, quality of code produced, etc.).
Each supervised session may include a multiple-choice quizz on the current session or on the work done in autonomy. Some practicals will also be assessed on the basis of the student's report.
Sequencing / learning methods
| Number of hours - Lectures : |
1 |
| Number of hours - Tutorial : |
8 |
| Number of hours - Practical work : |
14 |
| Number of hours - Seminar : |
0 |
| Number of hours - Half-group seminar : |
0 |
| Number of student hours in TEA (Autonomous learning) : |
16 |
| Number of student hours in TNE (Non-supervised activities) : |
0 |
| Number of hours in CB (Fixed exams) : |
0 |
| Number of student hours in PER (Personal work) : |
0 |
| Number of hours - Projects : |
0 |
Prerequisites
Basics of algorithmics and programming, usually tackled in French “classes préparatoires aux grandes écoles”.
Maximum number of registrants
Remarks