Course list
3. [C] Introduction à la programmation en C
Ce cours est un complément au syllabus d'apprentissage de la programmation en langage C sous Unix disponible via:
https://sites.uclouvain.be/SyllabusC
et utilisé en 2e bloc de bachelier en sciences informatiques à l'UCLouvain.
Besoin d'aide ? Rejoignez notre Slack
Algorithmes Avancés
L'objectif général de ce cours est de donner aux apprenants des notions avancées théoriques et pratiques sur différentes approches de résolution de problèmes.
OBJECTIFS DU COURS POUR L’APPRENANT
Au terme de ce cours, l’apprenant sera capable :
- de modéliser un problème comme un problème de graphe ;
- de justifier le choix d’une approche algorithmique plutôt qu’une autre ;
- d’utiliser de manière adéquate les différentes approches algorithmiques classiques.
CONTENU DE COURS
- Introduction
- Graphes : représentations et quelques algorithmes
- Approche gloutonne / greedy
- Recherche complète
- Diviser pour reigner / Divide and conquer
- Programmation dynamique
PRE-REQUIS
- Complexité algorithmique
- Structures de données linéaires et non linéaires
- Langage de programmation orientée objet
METHODES D’ENSEIGNEMENT ET D’APPRENTISSAGE
- Cours magistral
- Approche Par Problème
- Travaux Dirigés
- Travaux Pratiques
- Travaux Personnels des Etudiants
EVALUATION DES APPRENTISSAGES
- Un examen écrit (sur des questions de compréhension, de connaissance et d'application) – 50%
- 5 TP – 50%
REFERENCES BIBLIOGRAPHIQUES
- Cormen, C. E. Leiserson, R. L. Rivest, C. Stein. Introduction to algorithms. 3ème édition, 2009.
- Halim, Competitive Programming, 3ème édition, 2013.
- Skiena, The algorithm design manual, 2ème edition.
Interactive
Ce cours comporte quelques exercices interactifs offrant aux étudiants un accès SSH pour entrer différentes commandes.
Retro-engenierie
L’objectif de ce cours est d’initier les étudiants aux technique de rétro-ingénierie. Ils apprendront analyser des codes binaires et à désassembler des applications afin d’avoir accès à la logique de ces applications.
De manière spécifique les étudiants développeront les compétences suivants :
#. Maîtrise des modèle de code générer par les différents types de compilateur modernes
- Maîtrise des techniques d’analyse statique de codes binaires
- Maîtrise des techniques d’analyse dynamique de codes binaires
- Être capable de mettre en œuvre ces technique pour analyser et disséquer des applications courantes.
Sytèmes temps réel
Ce ours a pour objectif de permettre aux apprenants de:
- Comprendre les spécificités des systèmes embarqués et temps réels
- Etre capable de concevoir et l'implémentation le logiciel pour de petit systèmes embarqués et temps réels.
- Etre capable d'étendre cette capacité de conception et d'implémentation à des systèmes plus grand et plus complexes.
[CNP3] Computer Networking : Principles, Protocols and Practice
This INGINIOUS site contains exercises to complement the Computer Networking: Principles, Protocols and Practice ebook. This is work in progress, exercises are developed on github, see https://github.com/cnp3/INGInious-packets and https://github.com/cnp3/INGInious-C