Learning outcomes

A l'issue du cours, l'étudiant sera capable de concevoir un logiciel impliquant le développement de différents modules. Plus particulièrement, il sera capable

  • de modéliser un problème en le décomposant en différentes étapes
  • d'organiser un logiciel en une architecture impliquant différents modules
  • de coder de manière autonome des fragments de programmes, sans posséder une vue complète sur le logiciel
  • d'utiliser le système d'exploitation linux, le compilateur gcc ainsi que l'outil Makefile

Goals

L'objectif du cours est, au travers du développement d'un jeu, de sensibiliser l'étudiants aux principaux aspects liés à la réalisation d'un programme de moyenne à grande taille.

Content

Il s’agit pour l’étudiant de compléter un programme pour implémenter des jeux. Ces implémentations sont construites par raffinements successifs. Elles comprennent plusieurs étapes, chacune faisant l'objet d'une série de modules à réaliser. Ces étapes consistent successivement en la réalisation de fonctions de base liées aux jeux, à la réalisation d'un jeu en solo, d’un jeu à deux joueurs et d’un jeu contre l'ordinateur.

Teaching methods

Le cours repose sur une pédagogie de projet.  Il se déroule dans un pool d'ordinateur où les étudiants sont appelés à coder progressivement le programme. Pour ce faire, ils sont guidés étape par étape par le titulaire du cours et les assistants.

Assessment method

L’évaluation est répartie comme suit :

-          Les jeux développés pendant le cours (60%)

-          Un projet de groupe (40%)

La réussite du cours suppose la réussite des deux parties, les jeux et le projet de groupe.

En raison de la nature hautement pratique du cours, aucun examen n'est prévu lors de la deuxième session.

Language of instruction