% INF3190 — Introduction à la programmation Web % UQAM — Département d'informatique % Plan de cours — Automne 2021 * Horaires, locaux et enseignants: Responsable(s) du cours ======================= Coordination ------------ Beaudry, Éric PK-4635 Enseignement ------------- Simard, Carl DS-2965 Groupes: 020 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. 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 Semaines 5 à 7 15% TP 2 Semaines 12 à 14 20% Lab noté 1 S5: 2021-10-04 5% Lab noté 2 S13: 2021-11-29 10% Examen Intra 2021-10-31 25% Examen Final 2021-12-19 25% Détails ------- - Les laboratoires notés sont à remmetre au cours d'une séance de laboratoire. L'énoncé sera tiré au hasard d'une banque des questions. Prévoir environ 30 minutes pour le laboratoire noté 1 et 60 minutes pour le laboratoire noté 2. Un laboratoire noté porte sur toute la la matière vue à date. - Les laboratoires notés et les TP sont à rendre selon les instructions de l'énoncé. **Sauf indication contraire, aucune remise de TP ou de laboratoire noté par courriel ne sera acceptée**. 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. 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 -