Algorithms and data structures

linfo1121  2025-2026  Louvain-la-Neuve

Algorithms and data structures
5.00 credits
30.0 h + 30.0 h
Q1
Teacher(s)
Language
French
Prerequisites
This course assumes the mastery of programming and program design in an object-oriented language such as Java, knowledge of elementary data structures and notions of recursion and computational complexity as targeted by the course LEPL1402.
The prerequisites for this teaching unit (UE) are specified at the end of this sheet, next to the programs/training courses that offer this teaching unit.

The prerequisite(s) for this Teaching Unit (Unité d’enseignement – UE) for the programmes/courses that offer this Teaching Unit are specified at the end of this sheet.
Main themes
  • Complexity measures of an algorithm and complexity analysis methods.
  • Dichotomic sorting and search algorithms.
  • Basic data structures (lists, trees, binary search trees): study of their abstract properties, their concrete representations, their application and the main algorithms that manipulate them.
  • Advanced data structures (union-find, hash tables, heaps, balanced binary trees, graph representation and manipulation, textual data processing, dictionaries).
Learning outcomes

At the end of this learning unit, the student is able to :

With regard to the AA reference framework of the “Bachelor in Civil Engineering” program, this course contributes to the development, acquisition, and assessment of the following learning outcomes:
  • AA1.1. Apply concepts, laws, and reasoning to a disciplinary problem of controlled complexity.
  • AA1.2. Describe appropriate modeling and computation tools to solve a controlled disciplinary problem.
  • AA2.5. Implement and test a solution in the form of a model, prototype, and/or numerical model.
  • AA2.8. Formulate recommendations to improve the studied solution and the analyzed system in all its complexity.
  • AA3.2. Critically, continuously, and collaboratively self-evaluate to function effectively in a team.
With regard to the AA reference framework of the “Bachelor in Computer Science” program, this course contributes to the development, acquisition, and assessment of the following learning outcomes:
  • S1.L1. Discrete structures.
  • S1.L2. Fundamentals of programming.
  • S1.L3. Algorithms and complexity.
  • S1.L5. Program design methods.
  • S1.L6. Information management.
  • S.2.2. Model the problem and design one or more technical solutions that meet the given specifications.
  • S.2.4. Implement and test the selected solution.
  • S1.G1. Mathematics for modeling a situation and proving the correctness of a statement.
Students who successfully complete this course will be able to:
  • make an informed choice regarding the use of major data structures for representing collections;
  • properly use existing algorithms to manipulate these data structures and analyze their performance;
  • design and implement variations of the studied algorithms;
  • test algorithms and data structures;
  • effectively use documented algorithms and data structures from an API;
  • abstract, model, and implement efficient solutions for algorithmic “puzzle” problems.
Students will have developed methodological and operational skills. In particular, they will have strengthened their ability to:
  • critically analyze a given problem;
  • test and debug algorithmic programs;
  • efficiently implement short but non-trivial algorithms;
  • learn independently from a reference book and complementary technical documentation.
 
Content
  • Computational complexity,
  • Sorting,
  • Trees, binary search trees,
  • Balanced trees,
  • Tries,
  • Dictionaries and hash tables,
  • Priority queues and heaps
  • Graphs,
  • Text processing (pattern matching, compression algorithms)
Teaching methods
The active pedagogy method followed in this course is inspired by reverse classes. There are six two-week modules. Each module includes an introductory course to the subject, theoretical exercises to prepare, chapters from the reference book to read, a practical work on correcting exercises in the middle of the model, work on inginious to be carried out (Java programs) and finally a restructuring course at the end of the module. One of the essential components of this pedagogy consists in making each student learn by himself. The success of the learning process therefore presupposes a significant involvement of each student. The actual learning remains the responsibility of each student. To pass the exam it is imperative that the student programs regularly.
 
Evaluation methods
Computer exam on Inginious https://inginious.info.ucl.ac.be.

One mid-term quizz quizz might be proposed on two points during smart week. It can only impact positively your grade.
We may organize an algorithmic contest at the end of the semester, which could add two points to the exam score if it helps improve the grade.
Generative AIs cannot be used for the quiz or the exam. The quiz and exam are individual; no discussion or collaboration is allowed during the test.
Failure to comply with these guidelines may result in a reduction of grades or other academic penalties.
The same consequences will apply to a student who willingly shares their code or makes it available to other students.
If the professor deems it necessary, an additional interview can also be organized for verification.
 
Other information
Online resources
https://moodle.uclouvain.be/course/view.php?id=1049 (mainly for communications with students)
https://pschaus.github.io/LINFO1121/ (main website, with the exercices to do each week)
 
Bibliography
Livre obligatoire:
Algorithms, 4th Edition by Robert Sedgewick and Kevin Wayne, Addison-Wesley Professional.
ISBN-13: 978-0321573513
ISBN-10: 032157351X
Faculty or entity


Programmes / formations proposant cette unité d'enseignement (UE)

Title of the programme
Sigle
Credits
Prerequisites
Learning outcomes
Specialization track in Computer Science

Bachelor in Mathematics

Bachelor in Computer Science

Approfondissement en statistique et sciences des données

Mineure Polytechnique