% INF3190 — Introduction à la programmation Web % UQAM — Département d'informatique % Plan de cours — Été 2021 * Horaires, locaux et enseignants: Responsable(s) du cours ======================= Coordination ------------ Beaudry, Éric PK-4635 Enseignement ------------- Simard, Carl 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, etc.. 2. Langage HTML. Évolution du langage 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 feuille de style CSS. Motivation : séparation du contenu et du style. Historique, versions et niveaux. Inclusion CSS dans HTMl. Syntaxe. Sélecteurs, hiérarchie, règles et priorité. Modèle de boîtes. Positionnement. 4. Génération dynamique de documents HTML 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. 5. Formulaires Web. Traitement de requêtes côté serveur. Méthodes GET et POST. Témoins (*Cookies*). Enjeux de sécurité. Soumission de fichiers. 6. Programmation côté client. Motivation. Langage JavaScript. Historique. Inclusion JavaScript dans HTML. Validation de formulaires Web côté client. Injection de fragments HTML au chargement. Fonctions standards dans les navigateurs. Manipulation dynamique de l'arbre DOM. 7. Bibliothèques couramment utilisées dans le monde du Web: Bootstrap, JQuery, affichage de cartes, visualisation de données avec graphiques, etc. 8. Examen intra. 9. Application Web. Langages d'échange de données XML et JSON. Services d'API REST. Traitement asynchrone. Traitement de formulaires. 10. CSS avancé. Pages Web avec design réactif (ex.: pour mobile). 11. Multimédia. Formats d'image et de vidéo. Images vectorielles SVG. Canvas 2D. 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. Notion de session et stratégies de gestion des session. 14. Déploiement d'un site ou d'une application Web. Infrastructures infonuagiques. 15. Examen final. Détails ------- - Les quiz tirés au hasard d'une banque de questions Moodle et devront être réalisés en 20 minutes (sur une période de quelques jours). - Les devoirs sont constitués d'une partie quiz (5%) et d'une partie écrite (20%) avec des questions à développement, de réflexion, d'étude de cas, etc. Ils seront réalisables de façon asynchrone sur plusieurs cours, mais sont calibrés pour demander 3h de travail. - Les travaux pratiques doivent être réalisés en groupe. Modalités d'évaluation ====================== Description sommaire Date Pondération ---------------------- ------ ------------- TP 1 10% TP 2 10% TP 3 20% Quiz 1 S5 5% Quiz 2 S12 5% Examen Intra S8 25% Examen Final S15 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, 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 -