Person in charge: Sylvain Lefebvre / Patricia Conde-Céspedes
Prerequisite: II.1102/II.1202 Algorithmic and Programming
Organization: 14 x 3h Lectures/Tutorials
ECTS: 5 credits
Numerous problems of great practical use (network routing, task scheduling, data mining), rely on advanced modelling and algorithmic concepts. The design of solutions to such problems can greatly benefit from deep knowledge of a specific programming language features and their associated theoretical background.
This modules prepares engineering students to acquire skills in a large spectrum of domains where algorithmic and modelling play a central role.
In terms of skills, this module aims to enable students to:
- Model a complex system or domain with an Object Oriented approach
- Model a problem with graph theory, and choose the right algorithm to solve it
This module enables students to develop the following concepts and skills.
o Graph Theory (flow problems, shortest path, logistics,…)
o Complexity classes
o Algorithm design
o Advanced Object Programming
o Design Patterns
o Concurrent and parallel programming
o Event-based Programming
o Network programming
o Evaluate and compare algorithmic complexities
o Identify Design Patterns
o Solve synchronization problems
o Inter-machine communication
The module is divided in two parts. Six sessions follow a class / practical class pattern, and aim at introducing fundamentals concepts in algorithmic (complexity, optimization) and graph theory. One session will introduce design patterns. These sessions will be followed by practical classes dedicated to advanced programming techniques in Java. Concepts and know-how will be evaluated through practical classes and exam.