3DEV3A - Développement III

Appartient à l'UE Développement III

Personnes enseignantes

Description technique du cours

  • Acronyme de l’activité : 3DEV3A
  • Bloc : 2
  • Quadrimestre : 3
  • Nombre de crédits : 4
  • Nombre d’heures de cours : 48
  • Nombre d’heures de travail hors cours (estimation) : 50
  • Format du cours : laboratoire
  • Langue d’instruction : français
  • Implantation : HE2B – ESI
  • Pré-requis : néant
  • Co-requis : néant

Description générale du cours

Découverte et mise en oeuvre d’interfaces graphiques et de design patterns.

Objectifs généraux

Au terme de l’activité d’apprentissage, l’étudiante ou l’étudiant sera en mesure :

  • d’appliquer les concepts et les techniques apprises pour concevoir et développer des interfaces graphiques interactives en utilisant le langage de programmation Java, en suivant les bonnes pratiques de programmation et en mettant en œuvre des design patterns appropriés ;

  • d’analyser les besoins d’un projet informatique donné afin de choisir les interfaces graphiques et les design patterns les plus appropriés pour répondre à ces besoins ;

  • d’analyser des exemples de code existants pour comprendre comment les interfaces graphiques et les design patterns sont mis en œuvre dans des applications réelles.

Acquis d’apprentissage spécifiques sanctionnés par l’évaluation

Au terme des séances, l’étudiante ou l’étudiant sera évalué sur sa capacité à :

  • adapter les design patterns pour répondre aux besoins d’un projet donné ;
  • analyser les besoins d’une application pour déterminer les meilleures solutions d’interfaces graphiques et de design patterns à utiliser ;
  • développer des applications robustes en intégrant efficacement des interfaces graphiques et des design patterns.

Acquis terminaux visés

Au sein de la formation de bachelier en informatique, cette activité d’apprentissage aura participé à l’acquisition des compétences suivantes :

  • choisir et mettre en œuvre un standard défini ou une technologie spécifique (méthodologie, environnement, langage, framework, librairies…) ;
  • présenter des prototypes de solution et d’application techniques ;
  • documenter son travail afin d’en permettre la traçabilité et le cycle de vie ;
  • proposer des solutions qui tiennent compte des contraintes.

Transition Environnementale et Sociale

Éthique du code et responsabilité technique

  • Réfléchir aux impacts éthiques des choix de conception : un pattern peut être techniquement élégant mais socialement problématique (ex: faciliter la traçabilité excessive des utilisateurs et utilisatrices, scroll infini…)
  • Transparence et maintenabilité : écrire du code lisible et documenté pour que d’autres puissent le comprendre, le critiquer et l’améliorer
  • Rejeter la complexité gratuite : certains patterns sont complexes par nature, mais beaucoup sont inutiles — favoriser la clarté sur la sophistication

Formats ouverts et indépendance technologique

  • Privilégier les formats et protocoles ouverts (JSON plutôt que formats propriétaires) pour éviter les dépendances technologiques
  • Utiliser des bibliothèques libres et bien documentées ; éviter les dépendances commerciales quand des alternatives ouvertes existent
  • Interopérabilité : concevoir des systèmes qui ne sont pas verrouillés à un écosystème propriétaire

Sobriété et efficacité réelle

  • Questionner systématiquement : est-ce nécessaire (et plus, est-ce utile)
  • Éviter les dépendances inutiles : chaque librairie ajoutée a un coût (maintenance, sécurité, compatibilité)
  • Penser au cycle de vie du code

Accessibilité du savoir-faire

  • Documenter les choix de design pour que les junior et les nouveaux venus puissent comprendre la logique, pas juste le code
  • Favoriser les patterns et pratiques qui rendent le code accessible à davantage de développeurs, plutôt que des solutions élitistes

Modalités d’évaluations

  • En première session, l’évaluation est 30% continue : travail en classe et 70% en session. L’examen consiste en la présentation et la défense du travail demandé au cours (exercices et projet).

  • En seconde session, l’évaluation est un examen écrit-oral-machine (100%).

Contenus

Langage de programmation utilisé : Java

  • Java FX
  • Lecture de diagramme de classes
  • Design patterns
  • Architectural pattern
  • Expressions lambda
  • Génériques