Duration
26h Th, 20h Pr, 40h Proj.
Number of credits
| Bachelor in engineering | 5 crédits | |||
| Master in bio-informatics and modelling (120 ECTS) | 5 crédits | |||
| Master in mathematics (120 ECTS) | 6 crédits | |||
| Master in mathematics (60 ECTS) | 8 crédits |
Lecturer
Language(s) of instruction
French language
Organisation and examination
Teaching in the second semester
Schedule
Units courses prerequisite and corequisite
Prerequisite or corequisite units are presented within each program
Learning unit contents
Solving complex problems involves their decomposition into standard subproblems for which efficient and well-studied algorithms and data structures exist. This course is an introduction to the most important data structures and associated algorithms.
The course topics will include:
- Tools to analyse algorithms (correction of algorithms, asymptotic notations)
- Sorting algorithms (merge sort, quicksort, heapsort...)
- Elementary data structures (stacks, priority queues, vector, sets, heap, graphs...)
- Dictionnary structure (binary search trees, hash tables, tries...)
- Generic problem solving methods (brute force, divide and conquer, greedy algorithm, dynamic programming...)
- Graph algorithms (search, shortest path, minimum spanning trees...)
Learning outcomes of the learning unit
At the end of the course, the students will master the basis of algorithmics and will have a good knowledge of the main data structures. Given a new problem, they will be able to make a principled choice of the most appropriate choice of structure and manipulation algorithm given the practical problem constraints. They will be also able to initiate the main theoretical tools available to analyse the performance of algorithms.
Prerequisite knowledge and skills
The following course is a prerequisite:
- INFO2009: Introduction to computer science (http://progcours.ulg.ac.be/cocoon/cours/INFO2009-2.html)
Planned learning activities and teaching methods
The weekly theoretical and exercice class will be complemented by practical assignments, which will consist in analysing a problem, finding the best algorithm and data structures to solve it, and to implement the solution in C. The participation to the theoretical lectures is voluntary but highly recommended. The assignments are mandatory.
Mode of delivery (face-to-face ; distance-learning)
Face-to-face, in the second semester.
Recommended or required readings
Several reference books will be recommended to the students, but not mandatory. Slides, problems and solutions and other materials will be available on the course webpage.
Assessment methods and criteria
Assessment methods:
- First session (June): 3 assignments (30%) and written exam (70%).
- Second session: 1 assignment for students who have not completed the assignments during the year (10%), written exam (90%).
- Assignments are mandatory to have access to the written exam. Students who have completed the assignments during the semester can keep their mark for the second session.
Work placement(s)
Organizational remarks
All details about the course (slides, practical exercices, projects) are given on this web page:
http://www.montefiore.ulg.ac.be/~geurts/sda.html
Contacts
- Instructor: Pierre Geurts - Tel: 04/366.48.15 - e-mail: p.geurts@ulg.ac.be
- Teaching Assistant: Jean-Michel Begon - Tel: 04/366.29.72 - e-mail: jm.begon@ulg.ac.be
- Preferred contact modes: e-mail or personal contact after the lectures or by appointment.
Items online
Web page of the course
This web page collects lecture notes, practical exercices, and details about the projects.