This course provides information and resources for your English course in L3 Informatique.

Please go to the section which corresponds to your teacher and group.

L'objectif est de familiariser les étudiants à quelques "bonnes pratiques" liées à certains critères de conception logicielle. Ces bonnes pratiques visent essentiellement à : la maintenabilité et la réutilisabilité du code, la détection de défauts et d'erreurs difficilement identifiables dans des cas d'utilisation nominaux (mauvaise gestion de la mémoire, itérations mal conçues,...), l'analyse et l'amélioration des performances, mais aussi l'analyse de la vulnérabilité à certaines attaques, et l'identification de la qualité des tests utilisés pour valider l'application.


– Comprendre les concepts en profondeur pour mieux les transmettre
– Professionnaliser la médiation
– Sensibiliser les étudiants d’informatique aux métiers de l’enseignement

L'objectif de ce cours est de savoir rattacher un problème à une classe de problèmes, en déduire une approche adaptée pour sa résolution, valider la correction de la solution proposée, et en analyser sa complexité.

Cet objectif est atteint par une approche selon trois plans (ou points de vue) :

  • raisonnement informel mais rigoureux, liant la réalisation d'un algorithme à ses spécifications, raffinement d'un schéma d'algorithme vers une réalisation particulière ;
  • méthodes classiques de résolution dont le critère principal est la complexité (algorithmes gloutons, diviser pour régner, programmation dynamique…) ;
  • types de problèmes classiques (parcours de graphe, énumération d'un ensemble de candidats…), et comment l'expression d'une solution (itérative, récursive) est liée à la structure sous-jacente.

Introduction à la programmation orientée objet, aux design patterns et à la programmation évènementielle. Les thèmes abordés couvrent l'ensemble des méthodes permettant de développer une application graphique complète modularisée :

- programmation orientée objet en Java (encapsulation, héritage, polymorphisme)

- structuration et abstraction des modules développés grâce aux design patterns

- programmation évènementielle découverte par le biais de la programmation graphique

Une part importante du travail consiste à la mise en oeuvre des notions abordées dans le cadre d'un projet logiciel en fin de semestre. Ce projet consiste à réaliser un jeu de type jeu de plateau avec une IHM validée et un joueur artificiel.


Ce cours a pour but d'introduire le concept d'apprentissage machine. Nous présenterons différents algorithmes (perceptron, réseaux de neurone) qui sont à la base de beaucoup d'algorithmes modernes.