a) Informations générales


Public cible

Ce cours est à destination de toute personne souhaitant apprendre le développement d'applications web modernes via du TS/JS.

En prérequis, vous devriez posséder ces compétences :

  • Développer dans un langage de programmation (variables, structures conditionnelles, boucles, fonctions…).
  • Créer et structurer une Interface Homme-Machine (IHM) via les bases de l'HTML, incluant les formulaires HTML.
  • Soigner l'apparence d'une IHM via les bases du CSS.
  • Comprendre la documentation technique en Anglais ; les références du cours sont données en anglais.
  • Gérer la configuration du code en utilisant les bases de Git (Version Control).

Si vous souhaitez récupérer les prérequis associés au web, nous vous conseillons de suivre ces tutoriels :

Concernant Git (Version Control), le cours offre des tutoriels reprenant les points essentiels : Introduction à Git.

Licence & auteurs

Tout le contenu de ce cours est sous License Creative Commons BY-SA 4.0 [R.15.] et son auteur initial est Raphaël Baroni.

Ce cours est revu & corrigé tant par vos apports que par le corps enseignant de Vinci.

Compétences à la fin du cours

A la fin du cours, vous serez apte à :

  • C1 : Créer des services web ; c'est ce que ferait des développeurs backend ; ainsi on créera plus spécifiquement des RESTful API, une application mettant à disposition de clients des opérations sur des ressources ;
  • C2 : Créer des Interfaces Homme-Machine (IHM) pour Single-Page-Application (SPA) qui sont interactives, modernes & esthétiques ; c'est ce que ferait des développeurs frontend ;
  • C3 : Sécurisation de SPA pour intégrer l'authentification, l'autorisation et les sessions d'utilisateurs ; c'est ce que ferait tant des développeurs frontend que des développeurs backend pour sécuriser l'accès à des opérations sur des ressources.

Planning des séances de cours pour les étudiants Vinci

Le cours est planifié pour s'étaler sur 24 séances de 2h chacune.

SemaineJoursSéancesCompétencesSujetsTutorielExercices
3816-20/09S1ToutesPartie 0 : Introts-node-startGit repo
S2Services webRESTful API, middleware & opération de lecturebasic1.1 & 1.2
3923-27/09 (27 congé)S3Services webParamètres & CRUD & statusbasic1.3 (& 1.4)
4030/09-04/10S4Services webCRUD & statusbasic1.5 & 1.6
S5Services webJSONpersistence1.7
4107-11/10S6Services webRefactor & les servicesservices1.8 & 1.9
S7IHMApplications "old school", composant React & gestion des assetsold-school & components
4214-18/10S8IHMApplications "old school", composant React & gestion des assetscomponents2.1 & 2.2
S9IHMLes modulescollections2.3 & 2.3b
4321-25/10S10IHMLes collections de composantscollections2.4 & 2.4b
S11IHMDestructuring & composants statefulstart-state2.5 & 2.6 & 2.6b
4428/10-1/11 congé
4504-08/11S12IHMEtat plus avancé & les formulaires & collectionsmedium-state2.7
S13IHMEtat plus avancé & les formulaires & collections (& Material UI)medium-state (& ui-library)(2.8 & 2.9)
4611-15/11 (11/11 congé)S14IHMRoutage des écransrouting2.10
4718-22/11S15IHMRoutage & gestion de l'étatrouting-state2.11 & 2.12
S16IHMFetch & promesses & useEffectfetch-no-proxy2.13 & 2.13.b
4825-29/11S17IHMEvénements temporels & async-awaitasync-await2.14 & 2.14b
S18IHMLes fonctions asynchrone & le proxyasync-await & proxy2.15 & 2.15b
4902-06/12S19Sécurisation (API)CORS & autorisation d'origines & sécurisation d'une APIcors & auths3.1 (début)
S20Sécurisation (API)Sécurisation d'une API (cookies)3.1 (suite & 3.2)
5009-13/12/12S21Sécurisation (IHM)Browser storage, authentification & opérations protégées par JWTsession-jwt3.3 & 3.4 (début)
S22Sécurisation (IHM)Authentification & opérations protégées par JWT (& cookies)session-jwt (& cookies)3.4 (suite) & 3.4b
5116-20/12S23ToutesSimulation d'examen
S24ToutesCorrection par les pairs & questions / réponses

Qu'est-ce qu'il est attendu des étudiants Vinci ?

Introduction

Il est important que vous puissiez vous situer par rapport à l'investissement attendu de votre part dans le cadre de ce cours, tant en terme de charge de travail qu'en terme d'actions à réaliser.

Charge globale

En terme de charge globale, même si le cours est constitué de 48h de cours en présentiel, nous attendons de votre part environ tout autant de travail en distanciel pour une réussite en première session. Le cours demande donc ~100h de travail au total.

Selon le système de crédits ECTS et le ETCS's User Guide [R.62], la charge de travail étudiante attendue est d'environ 25h-30h par crédit ECTS. Cette charge varie selon le pays de l'UE, cela fait environ 125h-150h pour un cours de 5 ECTS ; sachez qu'en Belgique, on s'attend plutôt à 30h de travail par crédit ECTS... Bien sûr, cela est une charge de travail typique, elle variera en fonction de chaque individu.

Actions attendues de votre part (pour chaque séance de cours)

Activité pédagogique n°1 (Ac1) - Vérifier compréhension en groupe (~15 min en présentiel)

  • Lors du début de la séance de cours, nous écoutons chaque question sur la matière précédente et toute la classe participe, dans la mesure du possible, pour apporter une réponse. Nous souhaitons que vous participiez activement à ces échanges, cela enrichira l'expérience de tous !
  • Des questions vous seront posées afin de s'assurer de la bonne compréhension des concepts. N'hésitez pas à répondre. En fonction des échanges, si nécessaire, des explications, illustrations et présentations vous seront offertes quand approprié.

Activité pédagogique n°2 (Ac2) - Tutoriels & exercices en autonomie (~105 min en présentiel, 60 min en distanciel max)

  • Vous pratiquez en classe les concepts via les tutoriels et les exercices proposés. Vous terminez vos exercices en distanciel si nécessaire.
  • Vous êtes encouragés à poser vos questions ou à demander de l'aide en cas de difficultés sur un exercice.
  • Veuillez offrir un temps raisonnable pour créer, ou tenter de créer, votre propre implémentation d'un exercice, sans regarder la solution ; n'hésitez pas à consulter, par la suite, la solution.
  • Si vous éprouvez de la difficulté, vous pouvez choisir de réaliser un exercice en utilisant les conseils donnés.
  • Si vous souhaitez approfondir ou élargir votre apprentissage, vous pouvez le faire en implémentant les challenges proposés.

Modalités d'évaluation pour les étudiants Vinci

Le seuil de réussite pour le cours est fixé à une note de 10 sur 20 ; il est possible de le réussir sans avoir atteint toutes les compétences.

Examen de 1ère session

Cette évaluation certificative principale concerne 100% des points du cours. C'est un examen se déroulant en janvier. L'évaluation se présente sous forme d'une production de code en réponse à un énoncé couvrant les compétences essentielles du cours : C1, C2 & C3. Ce sont les critères 1 & 2 définis au Tableau ci-dessous, ainsi que leurs poids associés, qui permettent de déterminer les points de l'examen. Un rapport d'évaluation vous est envoyé lors de la publication des points vous offrant un feedback sur votre examen.

Examen de 2ème session

Le déroulement de l'évaluation certificative en deuxième session est la même qu'en première session.

Compétences et critères d'évaluation

CompétenceCritères d'évaluation & indicateursPoids
C1 : Créer des services web incluant C3 : Sécurisation de SPA1. Qualité du service web produit
Indicateurs : fonctionnel, respect des consignes
35%
C2 : Créer des IHM pour SPA incluant C3 : Sécurisation de SPA2. Qualité de l’IHM produite
Indicateurs : fonctionnel, respect des consignes
65%