Ce module comporte principalement : 
  • Introduction au génie logiciel et domaine de production des logiciels
  • Développer la phase de conception des logiciels
  • Usage du langage UML pour la conception orientée objet.
L’étudiant doit être capable de comprendre le processus de développement des logiciels, et précisément la phase de conception en utilisant les différents diagrammes UML.

Ce cours a pour objectifs de : 

  • Introduire les concepts de bases du fonctionnement de l’ordinateur.
  • Décortiquer les composants de l’ordinateur, principalement le microprocesseur
  • Introduire le langage assembleur.
  • Mettre en pratique des connaissances acquises en TP.

L’étudiant devrait, à la fin du cours, être capable d’assimiler le fonctionnement de l’ordinateur, comprendre le fonctionnement interne de l’ordinateur et de la mémoire, maîtriser les calculs de codage/décodage et écrire un programme simple et le tourner en Assembleur MIPS.

Cette unité d'enseignement présente les composants fondamentaux d'un compilateur (analyseurs syntaxique, lexicale et sémantique, table des symboles etc.) et les principales techniques de compilation utilisées dans ces composants (lex, yacc etc.) .

À l'issue de ce module, l'étudiant aura acquis suffisamment de compétences pour pouvoir rapidement écrire un compilateur  et d’assimiler les notions qui permettent de comprendre les problèmes et les solutions dans les compilateurs modernes. Il saura également conduire un projet de programmation et de traduction dirigée par la syntaxe, il saura distinguer ce qui relève des langages source (langage haut niveau) et cible (langage machine) et du langage de programmation de la traduction. Dans le cas de traduction de langage de programmation (commande, script, etc.), l'étudiant saura prévoir le comportement dynamique du programme cible et conduire des analyses élémentaires de ce comportement.