Cours 2018-2019

Projet de programmation scientifique [SMATB309]

  • 3 crédits
  • 0h+45h
  • 2e quadrimestre
Langue d'enseignement: Français

Acquis d'apprentissage

En directe continuation du cours d'Algorithmique mathématique pour le calcul scientifique [SMATB306], l'objectif est de confronter l'étudiant à un projet de programmation de grande envergure, étalé sur tout un quadrimestre. Suivant la complexité et la nature du projet, celui sera réalisé individuellement ou en petit groupe, afin de développer des méthodes de gestion d'un projet au niveau collectif.
 

Contenu

L'objectif principal de ce projet est de confronter les étudiants à un cas de programmation pratique incluant des éléments réels. En groupes restreints, les étudiants doivent écrire un programme en C capable de contrôler un robot "LEGO Mindstorms EV3" afin de réaliser certaines tâches bien précises. La gestion des inconnues et des perturbations extérieures rajoute des difficultés jusqu'alors jamais rencontrées par les étudiants (problèmes mécaniques éventuels à gérer, influence de la luminosité sur le déroulement du programme, etc.). Ce projet pourra éventuellement être adapté ou remplacé en fonction de la spécificité ou du background particulier de l'étudiant. En 2015-2016 et 2016-2017, le projet était la réalisation d'un robot capable de résoudre de lui-même un Rubik's Cube. En 2017-2018 et 2018-2019, le projet est la réalisation d'un robot capable de résoudre de lui-même une grille de Sudoku.

Disciplines

Programmation et méthodes de simulation

Méthodes d'enseignement

Le cours consiste en 45h de travail au pool encadré par des assistants. Le travail à fournir par l'étudiant peut cependant dépasser ces heures encadrées, suivant la vitesse d'avancement du projet. Une présentation publique peut être organisée en fin de quadrimestre.

Mode d'évaluation

La présence régulière aux séances encadrées est obligatoire. Tout absence répétée et non justifiée entrainera automatiquement une note d'échec pour l'unité d'enseignement. L'évaluation aura lieu en deux parties. En fin de quadrimestre, suivant les modalités transmises par les assistants, les étudiants remettront en temps et en heure les codes du programme ainsi qu'un rapport si demandé. Si une présentation publique est organisée, la présence à cette présentation est obligatoire. Une première note provisoire sera déterminée en fonction de la présentation publique et des documents remis. L'évaluation portera à la fois sur les qualités d'exécution du programme (robustesse, rapidité, efficacité, etc.) et sur la qualité de présentation du code (commentaires suffisamment nombreux et pertinents, lisibilité et clarté du code et des différents sous-programmes, remise du code sous forme d'archive avec instructions (TODO) et/ou script de compilation, etc.). La deuxième partie consiste en une défense orale individuelle réalisée durant la session d'examen, devant un jury réuni par le responsable du cours. Lors de cette défense, la note provisoire sera modulée, positivement ou négativement, en fonction de la présentation et/ou des réponses données par l'étudiant ainsi que de son implication estimée dans le projet au sein du groupe. Seuls les étudiants ayant remis leurs documents suivant les modalités imposées seront invités à cette défense individuelle, les autres se verront attribuer une note d'échec. Cette unité d'enseignement ne comporte qu'une seule activité d'apprentissage. En cas d'ajournement, des instructions seront données individuellement aux étudiants quant au travail à compléter, aux codes et rapport à remettre et quant à une éventuelle défense orale.
 

Sources, références et supports éventuels

https://www.lego.com/fr-be/mindstorms

https://www.ev3dev.org

http://in4lio.github.io/ev3dev-c/

Langue d'enseignement

Français

Lieu de l'activité

NAMUR

Faculté organisatrice

Faculté des sciences
Rue de Bruxelles, 61
5000 NAMUR

Cycle

Etudes de 1er cycle