Programme des cours 2024-2025
BINV3140-1  
Programmation : questions spéciales
  • .NET : outils et concepts d'applications d'entreprise
  • Design patterns
  • Spring
Durée :
.NET : outils et concepts d'applications d'entreprise : 20h Pr
Design patterns : 20h Pr
Spring : 20h Th
Nombre de crédits :
Bachelier en informatique, orientation développement d'applications (Bachelier en informatique, orientation développement d'application)5
Nom du professeur :
.NET : outils et concepts d'applications d'entreprise : Olivier CHOQUET
Design patterns : Christophe DAMAS
Spring : Sébastien STREBELLE
Coordinateur(s) :
Christophe DAMAS
Langue(s) de l'unité d'enseignement :
Langue française
Organisation et évaluation :
Enseignement au premier quadrimestre, examen en janvier
Unités d'enseignement prérequises et corequises :
Les unités prérequises ou corequises sont présentées au sein de chaque programme
Contenus de l'unité d'enseignement :
Cette unité d'enseignement aborde les thèmes suivants :
  • .NET : outils et concepts d'applications d'entreprise
  • Spring
  • Design patterns
.NET : outils et concepts d'applications d'entreprise
Le cours de .NET : outils et concepts d'applications d'entreprise plonge dans l'univers Microsoft.
Après une comparaison des langages Java et C#, les principales technologies du Framework .NET sont abordées :

  • LINQ (Language Integrated Query) pour réaliser des requêtes et bien + encore.
  • Entity Framework
  • Windows Forms pour réaliser des applications FAT Client sous Windows.
  • WPF (Windows Presentation Foundation) pour la fabrication d'interfaces utilisateurs actuelles via le pattern MVVM.
  • ASP.NET Web API
Design patterns
Le cours de Design Patterns introduit les patrons de conception suivants: Builder, Abstract Factory, Factory Method, Singleton, Prototype, Adapter, Facade, Composite, Decorator, Flyweight, Strategy, Command, Visitor, Observer, Template Method, Chain of responsibility, Iterator et State.
Spring
L'objectif de cette activité d'apprentissage est d'apprendre à créer des projets web en Java en utilisant le framework Spring. Plus particulièrement, l'étudiant·e apprendra à utiliser Spring Boot pour auto-configurer ses applications Spring, créer des API Rest, mettre en place des système d'authentification, gérer une architecture microservices...
Acquis d'apprentissage (objectifs d'apprentissage) de l'unité d'enseignement :
  • Citer les différences entre Java et C#.NET.
  • Ecrire une requête LINQ et LINQ to Entities.
  • Expliquer un bout de code écrit en C#.NET.
  • Expliquer le concept d'architecture microservices, décrire ses points-clés, citer ses avantages et inconvénients.
  • Expliquer le principe d'Object Relational Mapping
  • Utiliser Spring Boot pour créer une API Rest
  • Utiliser Spring Boot pour créer une application web selon l'architecture microservices
  • Sécuriser son application web
  • Expliquer la théorie des patrons de conception du livre « Design Patterns » et pouvoir les appliquer comme suit :
          - Sur base de code existant, identifier les patrons de conception qui y sont présents.
          - Sur base d'un code existant et d'un cahier des charges, identifier les faiblesses de ce code qui seraient corrigées par un ou plusieurs patrons de conception, et transformer ce code pour réaliser ces patrons.
          - Sur base d'un cahier des charges, identifier les patrons de conception utiles à la réalisation de la solution, et les implémenter
 
Compétence(s) - Capacité(s):
C1 - S'insérer dans son milieu professionnel et s'adapter à son évolution
CA1.1 -Travailler, tant en autonomie qu'en équipe éventuellement multidisciplinaire dans le respect de la culture d'entreprise
CA1.2 -Collaborer à la résolution de problèmes complexes avec méthode, rigueur, pro activité
et créativité
CA1.4 -Développer une approche responsable, critique et réflexive des pratiques professionnelles
C2 - Communiquer ¿ Ecouter, informer, conseiller les acteurs tant en interne qu'en externe
CA2.5 -Exploiter un document technique en français et en anglais
C3 - Mobiliser les savoirs et les savoir-faire propres à l'informatique de gestion
CA3.1 -Concevoir, implémenter et maintenir des algorithmes répondant aux spécifications et fonctionnalités fournies
CA3.2 -Choisir et mettre en œuvre un standard défini ou une technologie spécifique (méthodologie, environnement, langage, framework, librairies, ...)
C4 - Analyser les données utiles à la réalisation de sa mission en adoptant une démarche systémique
CA4.5 -Soigner l'ergonomie des applications
C5 - S'organiser, Structurer, planifier, coordonner, gérer de manière rigoureuse les actions et les tâches liées à sa mission
CA5.1 -Evaluer la charge et la durée de travail liée à une tâche
CA5.2 -Planifier un travail
CA5.3 -Respecter les délais prévus
 
Acquis d'apprentissage(s) terminaux visé(s):
- Acquis d'apprentissage terminaux : AAT1. Concevoir des solutions informatiques efficaces qui répondent à des problèmes en maitrisant les structures de données véhiculées. C1-CA1.2 ; C3-CA3.1 et CA3.4 ; C4-CA4.4 *PROGRAMMATION ( AAT1)
- Acquis d'apprentissage terminaux : AAT5. Se conformer aux bonnes pratiques du métier tout en restant critique. C1-CA1.4 ; C3-CA3.2 et CA3.5 ; C4-CA4.2 et CA4.3 et CA4.5 ; C5-CA5.3; C5-CA5.4 * QUALITE ( AAT5)
- Acquis d'apprentissage terminaux : AAT6. Exploiter de façon autonome et rigoureuse les différentes ressources d'information (en français ou en anglais). C2-CA2.5 * AUTONOMIE ( AAT6)
- Acquis d'apprentissage terminaux : AAT8. Collaborer au sein d'une équipe en s'adaptant à ses interlocuteurs, en organisant les différentes tâches d'un travail selon leur complexité et leur dépendance ainsi qu'en respectant les délais prévus. C1-CA1.1 ; C2-CA2.2(interne) ; C5-
CA5.1 et CA5.2 et CA5.3 et CA5.6 ( AAT8)
- Acquis d'apprentissage terminaux : AAT9. Affronter des situations nouvelles en se formant pour intégrer les changements. C1-CA1.5; C2-CA2.2; C5-CA5.2 * FLEXIBILITE ( AAT9)
Design patterns
Connaître la théorie des patrons de conception vus au cours et pouvoir les appliquer comme suit:
  • Sur base de code existant, identifier les patrons de conception qui y sont présents.
  • Sur base d'un code existant et d'un cahier des charges, identifier les faiblesses de ce code qui seraient corrigées par un ou plusieurs patrons de conception, et transformer ce code pour réaliser ces patrons.
  • Sur base d'un cahier des charges, identifier les patrons de conception utiles à la réalisation de la solution, et les implémenter
Spring
Au terme de cette activité, l'étudiant·e sera capable de :
  • Comprendre le concept d'architecture microservices, décrire ses points-clés, citer ses avantages et inconvénients.
  • Comprendre et expliquer le principe d'Object Relational Mapping
  • Utiliser Spring Boot pour créer une API Rest
  • Utiliser Spring Boot pour créer une application web selon l'architecture microservices
  • Sécuriser son application web
Savoirs et compétences prérequis :
Activités d'apprentissage prévues et méthodes d'enseignement :
Activités         Intitulé de l'activité                                                      Volume horaire BINV3140 A      .NET : outils et concepts d'applications d'entreprise                    24 BINV3140 C       Design patterns                                                                      24 BINV3140 D       Spring                                                                                   24
Spring
La première partie du cours sur 5 semaines sera composée de présentations théoriques suivies d'exercices pratiques. La deuxième partie du cours sur 5 semaines sera dédiée à la réalisation d'un projet.
Mode d'enseignement (présentiel, à distance, hybride) :
Présentiel.
 
.NET : outils et concepts d'applications d'entreprise
Présentiel
Design patterns
L'activité se déroule durant 10 semaines à raison de 2h par semaine.   L'apprentissage des différents patrons de conception se fait par des exercices de mise en situation. Il en existe de trois types différents :




  • Identification d'un ou plusieurs patrons de conception qui sont déployés dans du code existant. La capacité à identifier rapidement et correctement des patrons augmente fortement la rapidité et la fiabilité de compréhension d'un code existant.
  • Sur base d'un énoncé en français, identifier le ou les patrons adaptés à la résolution du problème et fournir l'implémentation correspondante.
  • Sur base d'un code existant, identifier les faiblesses présentes ou qui empêchent des évolutions futures souhaitées, choisir les patrons adaptés à la résolution de ces problèmes et transformer le code pour les réaliser.
Les exercices sont soumis aux étudiants en début de séance et après un temps de réflexion, nous engageons une discussion pour évaluer les différentes solutions proposées. Le restant de la séance sert à la réalisation du code le cas échéant.  
Spring
L'entièreté des activités sont prévues en présentiel.

La présence est obligatoire pour la deuxième partie du cours, durant la réalisation du projet.
Lectures recommandées ou obligatoires et notes de cours :
.NET : outils et concepts d'applications d'entreprise
Support(s):
Tous les supports (présentations, exercices,  ...)  sont disponibles sur la plateforme pédagogique MooVin.
Design patterns
Support(s):
  • Les supports sont fournis électroniquement sur l'intranet pédagogique de l'école. Ils sont composés d'une ou plusieurs présentations ainsi que de divers liens vers des ressources utiles.
Référence(s):
  • "Design patterns : tête la première" - E. Freeman, E. Freeman & K. Sierra - O'Reilly.
Spring
  • Slides du cours
  • Contenu supplémentaire éventuel publié sur le site Moodle du cours
Modalités d'évaluation et critères :
Responsable de l'évaluation: DAMAS Christophe
 
Langue de l'évaluation: Français
 
Mode d'évaluation et pondération:

Ces trois activités d'apprentissages sont regroupées car elles présentent des approches complémentaires utilisées dans le développement d'application en entreprises. Les design patterns sont fréquemment utilisés dans le développement en .NET et en Spring. L'apprentissage en parallèle de ces deux dernières technologies permettent aux enseignants de faire de nombreuses comparaisons dans l'utilisation de framework en entreprises.

Comme les technologies utilisées sont différentes, les trois activités d'apprentissage sont évaluées de manière distincte.

  • En .NET (33,33%): outils et concepts d'applications d'entreprise, l'évaluation se fait sous forme d'un examen écrit sur machine quelle que soit la session. 
  • En spring (33,33%): L'évaluation se fera par projet, par groupes d'étudiants en première session ou seul en deuxième session. 
  • En Design patterns (33,33%): l'évaluation est basée sur un examen écrit sur machine. Cet examen est composé de 2 ou 3 questions qui sont du même type que les exercices en séance quelle que soit la session. 
L'évaluation de cette U.E. n'est pas intégrée ; elle est composée d'activités d'apprentissage distinctes donnant lieu, à partir de 10/20, à des reports de notes légaux d'une session à l'autre et d'une année académique à l'autre.
Design patterns
En Design patterns, l'évaluation est basée sur un examen écrit sur machine. Cet examen est composé de 2 ou 3 questions qui sont du même type que les exercices en séance.
 
Spring
L'entièreté de l'évaluation portera sur la réalisation d'un projet (100% des points) portant sur la réalisation d'une application web en Spring avec l'architecture micro-services par groupes d'étudiants.

La note individuelle de chaque étudiant dépendra de la réalisation du groupe, adaptée en fonction de l'investissement de chacun. Cet investissement sera apprécié sur base des présences durant les séances de projet, les responsabilités au sein du projet et les commits effectués.

En deuxième session, les étudiant·e·s qui souhaitent repasser l'évaluation de Sping pourront réaliser un nouveau projet seul durant l'été (100% des points).
Stage(s) :
Remarques organisationnelles :
Lors du calcul de la moyenne arithmétique pondérée du PAE d'un étudiant, ainsi que du calcul de la moyenne arithmétique pondérée globale de son cursus, le poids associé à la note de la présente UE est son nombre d'ECTS.
Contacts :