Centrale Lille Course Catalogue

Advanced Algorithms and Programming

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