- Master an object-oriented programming language (p.e. Java)
- Know an use correctly basic data structures (stacks, queues, lists, etc..)
- Have basic knowledge of recursion and computational complexity.
- Computational complexity,
- Trees, binary search trees,
- Balanced trees,
- Dictionaries and hash tables,
- Priority queues and heaps
- Text processing (pattern matching, compression algorithms)
The active pedagogy method followed in this course is inspired by flipped classrooms. There are six two-week modules. Each module includes an introductory course on the subject, theoretical exercises to prepare, chapters of the reference book to read, a session to correct exercises in the middle of the model with the TA, work on inginious to realize (Java programs) and finally a restructuring course at the end of the module. One of the essential components of this pedagogy is self-learning. The success of the learning process thus presupposes a significant involvement of each student. The actual learning remains the responsibility of each student. To pass the exam it is highly recommended that the student programs regularly.
Examen on computer using Inginious https://inginious.info.ucl.ac.be.
A mi-term quizz could be organized during the smart-week but will effectively count in the final grade only if it is favorable.
Algorithms, 4th Edition by Robert Sedgewick and Kevin Wayne, Addison-Wesley Professional.
Exercices and documents
Communication with students using moodle http://moodleucl.uclouvain.be/course/view.php?id=7682