% INF3190 — Introduction à la programmation Web % UQAM — Département d'informatique % Plan de cours — Été 2023 * Horaires, locaux et enseignants: Responsable(s) du cours ======================= Coordination ------------ Beaudry, Éric PK-4635 Enseignement ------------- Berger, Jacques PK-4115 Groupes: 040 Description =========== Objectifs --------- Ce cours introduit à la conception et au développement Web, tant du côté client que serveur. Sommaire du contenu ------------------- Les fondements du Web : navigateur, serveur, protocoles. Langages et normes du Web (HTML5, JavaScript, PHP, CSS). Introduction à un cadre d'applications (cadriciel, framework). Notions de conception d'interface et de logiciel en tant que service (Software as a service, SaaS). Modalités d'enseignement ------------------------ Ce cours comporte une séance obligatoire de laboratoire (2 heures). Préalables académiques ---------------------- - INF1120 - Programmation I - INF1070 - Utilisation et administration des systèmes informatiques Contenu détaillé ================ 1. Introduction. Historique et évolution du Web. Navigateurs Web. Structure d'un site Web. Principaux langages du Web : HTML, CSS et JavaScript. Architecture client-serveur. Protocoles réseaux HTTP et HTTPs. Organismes de standardisation et autorités liés au Web et à l'Internet : WHATWG, W3C, IETF, ICANN, CIRA, etc. 2. Langage HTML. Évolution et versions. Structure et syntaxe d'un document HTML. Éléments et balises. Arbre DOM. Accessibilité Web. Encodages dont UTF-8. Aperçus d'outils d'édition, de validation et de diagnostique. 3. Style et mise en forme. Langage de feuilles de style CSS. Motivation : séparation du contenu et du style. Historique, évolution, versions et niveaux. Inclusion CSS dans HTML. Syntaxe. Sélecteurs, hiérarchie, règles et priorité. Modèle de boîtes. Positionnement. 4. Formulaires web. Témoins (Cookies). Méthodes GET et POST. Validation. Responsabilité frontend/backend. 5. Programmation côté client. Motivation. Langage JavaScript. Validation de formulaires Web côté client. Injection de fragments HTML au chargement. Fonctions standards dans les navigateurs. 6. Programmation côté client (suite). Manipulation dynamique de l'arbre DOM. 7. Génération dynamique de ressources HTML côté serveur. Introduction des technologies backend. Routing. 8. Examen de mi-session 9. Application Web conventionnelle. Gestion des sessions. Templating. Aperçu de cadriciels. 10. Multimédia. Formats d'image et de vidéo. Notions d'accessibilité du web. Amélioration du visuel avec un framework de présentation. 11. Concepts de services web. REST. Format de données JSON. Utilisation du JSON dans la pile technologique. Invocation de services. Introduction à l'architecture en microservices. 12. Application Web basée sur les techniques AJAX. Primitive `XMLHttpRequest`. Asynchronisme et gestion d'événements. 13. Notions d'authentification et de sessions. Déploiement d'un site ou d'une application Web. Hébergement vs cloud. 14. Développement web par composantes. Utilisations de patrons (*templates*). Application «monopage». Aperçu de cadriciels (*frameworks*) courants 15. Examen final. Modalités d'évaluation ====================== Description sommaire Date Pondération ---------------------- ----------------- ------------- TP1 21 juin 2023 10% TP2 12 juillet 2023 20% TP3 2 août 2023 20% Examen Intra 14 juin 2023 25% Examen Final 9 août 2023 25% Règles concernant le seuil de passage ------------------------------------- Pour obtenir une note de passage (D ou mieux), l'étudiant doit obtenir: - au moins 50% dans la moyenne cumulée des examens; et - au moins 50% dans la moyenne cumulée aux travaux pratiques. Si l'un de ces seuils n'est pas atteint, la mention échec (E) sera attribuée. Attribution des notes --------------------- Le notes seront normalisées. Médiagraphie ============ - Ressources déposées dans l'espace Moodle (). - *Web Hypertext Application Technology Working Group (WHATWG) Community*, site Web de l'organisme () - HTML *Living Standard* - Autres standards - *World Wide Web Consortium (W3C)*, site Web de l'organisme - Principes d'accessibilité - *Mozilla Developer Network*, site Web comportant tutoriels et références - - - - W3Schools, site Web comportant tutoriels et références -