% INF3190 — Introduction à la programmation Web % UQAM — Département d'informatique % Plan de cours — Hiver 2022 * Horaires, locaux et enseignants: Responsable(s) du cours ======================= Coordination ------------ Beaudry, Éric PK-4635 Enseignement ------------- Nyamen Tato, Ange Adrienne 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. Programmation côté client. Motivation. Langages JavaScript et TypeScript. Historique. Inclusion JavaScript dans HTML. Validation de formulaires Web côté client. 5. Injection de fragments HTML au chargement. Fonctions standards dans les navigateurs. Manipulation dynamique de l'arbre DOM. Bibliothèque jQuery. 6. CSS avancé. Pages Web avec design réactif (ex.: pour mobile). Bibliothèque Bootstrap. 7. Multimédia. Formats d'image et de vidéo. Images vectorielles SVG. Canvas 2D. Visualisation de données avec graphiques, etc. 8. Examen intra. 9. Génération dynamique de documents HTML et autres côté serveur. Aperçu des technologies côté serveur : programmation CGI; Java Servlets; incorporation de scripts dans des modèles HTML (ASP, JSP, PHP); Node.JS; etc. Approfondissement du langage PHP. 10. Formulaires Web. Traitement de requêtes côté serveur. Méthodes GET et POST. Témoins (*Cookies*). Enjeux de sécurité. Soumission de fichiers. 11. Application Web. Langages d'échange de données XML et JSON. Services d'API REST. Traitement asynchrone. Traitement de formulaires. 12. Programmation par composants Web. Modèles/*Templates*. Aperçu de cadriciels (*frameworks*) courants : Angular et ReactJS. 13. Sécurité et vie privée. Bonnes pratiques. Mécanismes et stratégies d'authentification. Notions de session et stratégies de gestion des sessions. 14. Déploiement d'un site ou d'une application Web. Infrastructures et services infonuagiques. 15. Examen final. Modalités d'évaluation ====================== Description sommaire Date Pondération ---------------------- ----------------------- ------------- TP 1 15% TP 2 20% TP 3 15% Examen Intra Semaine 8 (10 mars) 25% Examen Final Semaine 15 (28 avril) 25% Règles concernant le seuil de passage ------------------------------------- L'étudiant doit obtenir une moyenne cumulée, aux examens, égale ou supérieure à 50%, ainsi qu'une moyenne cumulée, pour les travaux (y compris les laboratoires notés), supérieure ou égale a 50%. Si ces seuils ne sont pas atteints, la mention échec sera automatiquement attribuée au cours. 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 -