% INF3190 — Introduction à la programmation Web % UQAM — Département d'informatique % Plan de cours — Été 2022 * Horaires, locaux et enseignants: Responsable(s) du cours ======================= Coordination ------------ Beaudry, Éric PK-4635 Enseignement ------------- Tsheke Shele, Johnny 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. Formulaires, 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 Bibliothèque jQuery. Historique. Inclusion JavaScript dans HTML. Validation de formulaires Web côté client. Format de données Json. 5. Multimedia, Formats d'image et de vidéo. CSS avancé. Pages Web avec design réactif (ex.: pour mobile). Bibliothèque Bootstrap, etc. 6. Injection de fragments HTML au chargement. Fonctions standards dans les navigateurs. Manipulation dynamique de l'arbre DOM. Typescript, Introduction à la Programmation par composants Web (Angular) 7. Routes, Application monopage (Single Page Application - SPA), modèles des formulaires, manipulation données json côté client dans la programmaion par composants. 8. Examen intra. 9. Services, injection des dépendances et appels des méthodes http (get, post, etc) 10. Génération dynamique de documents HTML et autres côté serveur. Programmation PHP. 11. Traitement de requêtes côté serveur. Méthodes GET et POST. Témoins (*Cookies*). Enjeux de sécurité. Soumission de fichiers. 12. XML, Manipulation des données (données json, base de données, etc) coté serveurs. Sécurité et vie privée. Bonnes pratiques. Notions de session et stratégies de gestion des sessions. Mécanismes et stratégies d'authentification.\ 13. Images vectorielles SVG. Canvas 2D. Visualisation de données avec graphiques, etc. 14. Sites web multilingues, déploiement d'un site ou d'une application Web. Infrastructures et services infonuagiques. Aperçu des technologies populaires; programmation CGI; Java Servlets; incorporation de scripts dans des modèles HTML (ASP, JSP, PHP); Node.JS; etc 15. Examen final. Modalités d'évaluation ====================== Description sommaire Date Pondération ---------------------- ----------------- ------------- TP 1 Semaines 3 à 5 10% TP 2 Semaines 7 à 10 20% TP 3 Semaines 12-14 20% Examen Intra Semaine 8 25% Examen Final Semaine 15 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 -