Le cours comprend 13 séances de cours théorique et 12 séances de laboratoire. Il est donné en format accéléré à raison de deux séances de cours et de deux séances de laboratoire par semaine.
Le cours adopte une approche d'enseignement orientée par la pratique : les étudiantes et étudiants devront mettre en pratique immédiatement les concepts enseignés. Ainsi, tout au long de la session, une application sera développée durant les séances de cours. Une application différente mais similaire sera développée par les étudiantes et les étudiants durant les séances de laboratoire.
La matière du cours, décrite ci-dessous, est répartie à travers les cinq thèmes principaux du cours:
-
Développement Web et langage HTML
-
Mise en forme d'un document à travers des règles de style CSS
-
Modification dynamique de documents Web à l'aide de Javascript et la manipulation du DOM
-
Générer des pages web dynamiquement côté serveur
-
Développement d'une application client/serveur à l'aide d'une API REST.
Thème 1: Introduction au développement Web et le langage HTML
Séances 1 et 2: Développement Web et les bases du HTML
-
Qu’est-ce que le Web et la programmation Web?
-
Les (multiples) langages du Web
-
Le modèle client/serveur et le protocole HTTP
-
Structurer l’information - Le langage HTML :
-
Les principales balises HTML5 (réf. : MDN-HTML) :
-
Organisation sémantique d’un document HTML / Moteurs de recherche
-
En-tête du document et balises de méta-données
-
La racine du document (body) et les balises de sectionnement
-
Balises d’organisation du contenu textuel (paragraphe, citation, …)
-
Balises sémantiques du contenu textuel (liens, …)
-
Contenu embarqué (médias, iframe, scripts, svg …)
-
Contenu tabulaire
-
Les formulaires
-
Validation d’un document HTML
-
Notion de séparation des préoccupations - Séparation entre le contenu du document et sa forme, introduction au règles de style CSS.
Thème 2 : Mise en forme d’un document HTML – Les feuilles de style en cascade (CSS)
Séance 3:
-
HTML vs CSS
-
Approches de définition de style : en-ligne, en entête du document, fichier de style.
-
Concept de règle et syntaxe de base d'une règle de style CSS
-
Définition d'une règle:
-
Le positionnement (Flexbox, Grid)
Séance 4:
Thème 3 : Modification dynamique du document Web: Le langage Javascript et le Document Object Model (DOM)
Séance 5: Le Document Object Model (DOM) et les Bases de JavaScript
Le Document Object Model (DOM)
Les Bases du Langage JavaScript
-
Syntaxe et Fondamentaux
-
Variables, types de données, opérateurs.
-
Structures de contrôle (boucles, conditions).
-
Fonctions en JavaScript
Sélection et Modification de Contenu des Noeuds du DOM
Séance 6: Programmation Événementielle et jQuery
Les Événements et la Programmation Événementielle
-
Déclenchement d'Événements
-
Types d'événements (click, load, mouseover, etc.).
-
Ajout d'écouteurs d'événements.
-
Intercepter des Événements
-
Notion de Fonction de Rappel
Utilisation de la Librairie jQuery pour Cibler et Modifier des Nœuds du DOM
Séance 7: Examen Intra (3h)
Thème 4: Générer des documents Web Dynamiquement - Programmation côté serveur
Séance 8: Introduction au PHP et Modèle Client/Serveur
Introduction au Langage PHP
Séance 9: Générer des pages dynamiquement avec une base de données
Thème 5: Conception d'une application Client-Serveur en concevant et en utilisant une API REST
Séance 10: Introduction aux API REST et Principes de Base
-
Introduction aux API REST
-
Définition et importance des API dans le développement web.
-
Différence entre API REST et autres types d'API (SOAP, GraphQL, etc.).
-
Principes de base des API REST
-
Architecture sans état (Stateless).
-
Utilisation des méthodes HTTP (GET, POST, PUT, DELETE).
-
Structure des URL et des ressources.
-
Formats de réponse (JSON, XML).
-
Conception d'une API REST simple
-
Planification des ressources (ex: utilisateurs, articles, commentaires).
-
Définition des routes et méthodes.
-
Bonnes pratiques (naming conventions, versioning).
-
Introduction à PHP pour les API REST
-
Rappel rapide sur PHP (syntaxe de base, connexion à une base de données).
-
Création d'un petit serveur local en PHP.
-
Exemple de code pour une route GET simple.
Séance 11: Développement d'une API REST avec PHP
-
Routage
-
Concept de routage
-
Gestionnaires de code (handlers)
-
Méthodes HTTP et actions correspondantes
-
Paramètres statiques (/users) et dynamiques (/users/:id)
-
Développement d'une API en PHP
-
Gestion des requêtes HTTP en PHP.
-
Introduction au format JSON
-
Récupération et envoi de données en format JSON.
-
Communication avec l'API REST
-
Sécurité de base pour une API REST
-
Authentification (API keys).
-
Validation et nettoyage des données entrantes (sanitization, validation).
Séance 12: Utilisation de l'API avec JavaScript Vanilla
-
Communication avec l'API REST
-
Envoi de requêtes à l'API (GET, POST, etc.).
-
Gestion des réponses et des erreurs.
-
Mise à jour dynamique du contenu HTML avec les données de l'API.
-
Construction d'une petite application web
-
Création d'une interface utilisateur simple (HTML/CSS).
-
Interaction avec l'API pour afficher, ajouter, modifier et supprimer des données.
-
Travaux pratiques
-
Conclusion et meilleures pratiques
Séances de laboratoire:
Séance 13: Compléments de cours et révision