% INF3190 — Introduction à la programmation Web % UQAM — Département d'informatique % Plan de cours — Hiver 2021 * Horaires, locaux et enseignants: Responsable(s) du cours ======================= Coordination ------------ Mosser, Sébastien PK-4820 Enseignement ------------- Tsheke Shele, Johnny PK-4115 Groupes: 040 - Les étudiants doivent consulter régulièrement les moyens de communication de l'enseignant avec le cours-groupe: > - Le canal de discussion sur https://mattermost.info.uqam.ca/ > - Le cours sur moodle > - Les courriels UQAM Description du cours ==================== 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. Objectif du cours ================= Ce cours vise à fournir aux étudiants les connaissances nécessaires dans la programmation du web du côté client et du coté serveur: - Comprendre l'évolution du web et des langages de marquage; - Étudier les aspects de structure, de style et traitement dans une application web; - Se familiariser avec les langages fondamentaux du web; - Se familiariser avec les outils de développement d'application web; - Étudier les éléments importants de programmation du côté du client à l'aide de langages de scripts tels que JavaScript; - Se familiariser avec l'approche de programmation d'applications interactives avec des composantes web; - Comprendre les bases de la programmation du côté des serveurs web; - Appliquer les concepts appris dans des cas pratiques; - Se familiariser avec l'asynchronisme et la programmation événementielle omniprésentes sur le web; - Se familiariser avec les méthodes de développement de l'industrie et le débogage d'application web. Quelques aspects pratiques ========================== Compte tenu du contexte actuel de COVID-19, de la nécéssité de proposer une solution adaptée au plus grand nombre et du surcharge de travail engendré pour l'enseignant; les activités se poursuivront sous la forme suivante: - Cours à distance. - Les présentations, les vidéos et les références seront mises à la disposition des étudiants sur la plateforme au choix de l'enseignant. - Les séances synchrones par vidéoconférence serviront à illustrer la matière, discuter, répondre aux questions et faire le suivi des travaux. Contenu du cours ================ Donné à titre indicatif seulement. 1. Introduction, structure d'un document web et accessibilité 2. Programmation web dynamique (Typescript/Javascript) 3. Introduction à la partie arrière (Node.js) - Gestionnaire de paquets (npm) - Routes, chemins et paramètres des endpoints - etc. 4. Formulaires HTML et validation des données coté client 5. Fond / Forme (CSS) 6. Fond / Forme avancée (Bootstrap) 7. Représentations et échanges de données (JSON, XML) 8. Examen Intra 9. Introduction à la programmation par composants web (Angular, s1) - Application monopage - Concepts (composants, modules, services, templates/vues, etc.) - Directives 10. Modèles/Templates (Angular, s2) - Affichage dynamique - Variables - Expression - Évenement (Template statements) - etc. 11. Formulaires strucrés et non structurés (Angular, s3) - Formulaires structurés (Ractive) - Formulaires non structurés (Template-driven) 12. Injection des dépendances (Angular, s4) - Services, - etc. 13. Navigation entre composants (Angular, s5) - Routings - etc. 14. Aperçu des concepts et technologies populaires du web 15. Évaluation Orale Modalités d'évaluation ====================== Description Pondération Échéance ------------------ ------------- ---------------------- Examen intra 25% 2021-03-11 Evaluation orale 20% 23 avr au 7 mai 2021 Lab noté 1 5% 2021-02-08 Lab noté 2 10% 2021-04-12 TP1 15% Semaines 5 à 7 TP2 25% Semaines 12 à 14 Détails ------- - Un examen dure 3h et les questions sont tirées au hasard d'une banque de questions Moodle. La série et l'ordre des questions/réponses éventuelles pourraient donc varier d'une personne à l'autre. L'examen porte sur toute la matière vue à date. - Les laboratoires notés sont à remmetre au cour d'une séance de laboratoire. L'énoncé sera tiré au hasard d'une banque des questions Moodle. Prévoir environ 30 minutes pour le laboratoire noté 1 et 60 minutes pour le laboratoire noté 2. Le laboratoire noté porte sur toute la la matière vue à date. - Les laboratoires notés et les TP sont à rendre sur moodle. Aucune remise par courriel ne sera acceptée. - L'évaluation orale consistera à faire un exercice pratique (modification d'un TP ou autre) sous le regard de l'enseignant et/ou à répondre oralement à des questions (sur un TP, type mise en situation, etc) d'environ 15 minutes. L'entretien se fera sur zoom et sera enregistré, mais ne sera pas diffusé. L'enregistrement sera détruit 6 mois plus tard s'il n'y a pas de contestation de la note. - Pour les évaluations orales, les étudiants devront prendre rendez-vous et être disponibles durant des plages horaires proposées. Ces plages pourraient être en dehors des heures des cours. - Lors des évaluations orales et des présentations des travaux, les étudiants doivent avoir une webcam et du matériel audio(écouteurs, micro). 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 à 50%. Si ces seuils ne sont pas atteints, la mention échec sera automatiquement attribuée au cours. Médiagraphie ============ VO Présentations du cours et manuel d'exercices (disponibles sur ). VR sur le web : - - - VR Reg Braithwaite -- JavaScript Allongé, the "Six" Edition VR David Sklar -- Learning PHP, A Gentle Introduction to the Web's Most Popular Language O'Reilly Media, 2016. (Disponible en ligne, après un abonnement gratuit, à BAnQ) VR FELKE-MORRIS, Terry -- *Web Development and Design Foundations with XHTML* -- 5/E. ADDISON-WESLEY, 2010. Fortement recomandé. VR SEBESTA, Robert -- *Programming the World Wide Web* -- 5/E. ADDISON-WESLEY, 2010. VR LEMAINQUE, Fabrice -- *HTML, XHTML, CSS, Scripts, Le guide Complet* -- EDITIONS MICRO APPLICATION, 2008. VR NEBRA, Mathieu -- *Réussir son site Web avec XHTML et CSS* -- EYROLLES, 2010.