
Génie Logiciel
Le génie logiciel (software engineering) représente l'application de principes
d'ingénierie dans le domaine de la création de logiciels. Il consiste à identifier et
à utiliser des méthodes, des pratiques et des outils permettant de maximiser les
chances de réussite d'un projet logiciel.

Probabilités et statistique
Ce cours constitue une introduction à l'étude des modèles aléatoires simples. L'objectif est de fournir les outils indispensables dans le domaine des probabilités, et également d'aborder les aspects statistiques. A la fin de ce module, l'étudiant devrait être en mesure de calculer les différentes mesures de dispersions dans les statistiques et d'effectuer des probabilités basées sur les lois de la probabilité et de faire des tests sur des données en utilisant les théories de la probabilité.

Interface homme-machine
permettre aux étudiants d'acquérir des compétences pour confectionner des
interfaces graphiques visuelles en respectant les critères ergonomiques et les standards du design des
interfaces interactives et conviviales.
- Connaissances des règles ergonomiques
- Connaissance d’une méthode de développent d’IHM
- Couplage avec la méthode de développement par objets
- Mise en œuvre de ces méthodes dans un projet

Génie Logiciel
Le génie logiciel (software engineering) représente l'application de principes
d'ingénierie dans le domaine de la création de logiciels. Il consiste à identifier et
à utiliser des méthodes, des pratiques et des outils permettant de maximiser les
chances de réussite d'un projet logiciel.

Compilation
Objectifs de l'enseignement : Comprendre comment les programmes sont compilés puis
exécutés
Connaissances préalables recommandées : Théorie des langages
Contenu de la matière :
Chapitre 1: Introduction (objectifs ...)
Chapitre 2 : Compilation
i. Définition d'un compilateur
ii. Structure d'un compilateur
Chapitre 3 : Analyse lexicale
Chapitre 4 : Analyse Syntaxique
i. Dérivation la plus à gauche et arbre de dérivation
ii. Grammaire ambiguë
iii. Grammaire et langages de programmation
iv. Analyseurs syntaxiques et leurs types
v. Outils en pratique
Chapitre 5 : Analyse descendante
i. Analyse LL(1) (principe)
ii. Table d'analyse
iii. Grammaire LL (1)
Chapitre 6 : Analyse ascendante
i. Analyse LR (principe)
ii. Analyse LR(0 )
iii. Analyse SLR(1)
iv. Analyse LR(1)Analyse LALR (1)
Chapitre 7 : Traduction dirigée par la syntaxe
Chapitre 8 : Contrôle de type
Chapitre 9: Environnement d'exécution
Chapitre 10 : Génération de code

Linear Programming
Linear programming (also called linear optimization) is a method to achieve the best outcome (such as maximum profit or lowest cost) in a mathematical model whose requirements are represented by linear relationships.
This course aims to:
- Make the student aware of the practical importance of linear optimization problems.
- Understand the theoretical aspect of Linear Programming.
- Be able to use these approaches to solve problems related to various fields.