STIC:STIC I - exercice 3 (Wall-e)
Introduction
Cet exercice introduit la sensibilisation à la programmation avec JavaScript. Les concepts fondamentaux de la programmation seront abordés, et ensuite appliqués à l'interactivité des pages web.
Connaissances/compétences envisagées
À l'issue de cet exercice vous devez avoir acquis les connaissances/compétences suivantes :
- Connaître les bases de la programmation et ses composantes principales (variables, types de données, structure de contrôle, etc.)
- Identifier des mécanismes de Input/Output et les rapporter à des actions de l'utilisateur, du système, etc.
- Reconnaître un gestionnaire d'événements et le type d'événement déclencheur
- Connaître les bases de la syntaxe JavaScript (fondamentaux du langage)
- Comprendre l'implémentation de JavaScript dans un navigateur web et sur des pages web dynamiques
- Savoir créer des interactions simples à travers la combinaison gestionnaire d'événement + manipulation du DOM
Prérequis
Lectures conseillées (sans code !!!) :
- Introduction à la programmation (environ 20 minutes)
- JavaScript (environ 10 minutes)
Logiciels utilisés pendant l'activité en salle de classe :
- Brackets
- Outils de développement Google Chrome
Activité en salle de classe
Programme
- 09:00 - 09:30 : présentation de JavaScript dans le contexte du développement web
- 09:30 - 10:30 : introduction à la syntaxe de JavaScript
- -- pause --
- 11:00 - 12:30 : JavaScript et le DOM
Présentation de JavaScript
Brève mise en contexte de JavaScript dans le développement web :
- Développement frontend et backend
- Importance de l'environnement
- JavaScript côté client
Slides présentation (format PDF)
Introduction à la syntaxe de JavaScript
Survol des éléments fondamentaux du langage :
- Syntaxe
- Éléments principaux (variables, opérateurs, types de données, structure de contrôle, boucles, ...)
Références :
Workshop
Workshop files from GitHub :
JavaScript et le DOM
Interaction de JavaScript avec le navigateur web :
- L'objet global window
- Inclure JavaScript dans une page HTML
- Manipulation du DOM
- Gestionnaire d'événements
Principe de base :
- Identifier un élément dans le DOM
- Lui appliquer un gestionnaire d'événement
- Créer une fonction qui :
- Identifie les éléments à modifier suite à l'événement
- Applique les modifications et met à jour le DOM
Exemples Codepen.io :
- Démo : mise à jour du DOM après téléchargement de la page
- Simple manipulation du DOM avec JavaScript
- Modifier le comportement "normal" du navigateur web
- Événements liés à la souris
- JavaScript et CSS
- L'éléments this dans le DOM
- JavaScript et formulaires HTML
- JavaScript et les événements lié au temps
Ces exemples (et plus) sont disponibles également ici http://codepen.io/collection/XgkejK/
Utiliser JavaScript avec SVG :
Références :
Workshop
Workshop files from GitHub :
Projet 3 / Tâche
Dispositif
Imaginez un design pédagogique interactif dans lequel l'utilisateur puisse déterminer des modifications par rapport au contenu initial.
- Créez une page HTML5/CSS qui contient des éléments interactifs (e.g. click, mouseover, etc.)
- Ajoutez une ou plusieurs manipulations du DOM suite à un événement (e.g. afficher un feedback, remplacer une image, etc.)
- Le tout doit servir à un objectif déclaré dans votre rapport (pas juste votre objectif d'apprentissage !)
Contraintes
- Contenu de la page selon vos envie, mais en rapport avec une thématique MALTT
- Vous devez inclure un fichier JavaScript externe et évitez du code JavaScript dans les attributs (e.g. onclick="...")
- La page doit contenir au moins deux éléments interactifs (e.g. bouton, zone de texte modifiable, ...)
- Vous devez créer au moins une manipulation du DOM qui modifie le contenu de la page sans actualiser la page ou pointer vers une autre lien
- Vous pouvez utiliser du clipart (SVG ou autre) fait par d'autres, mais citez la source dans le rapport et dans la page de votre dispositif
- Vous pouvez utiliser des bouts du code depuis les exemples en cours, mais il faudra au moins adapter le code JavaScript (pas simplement changer/adapter le contenu HTML)
Pour les plus ambitieux
- Vous pouvez essayer l'une des Bibliothèques JavaScript listés ou en proposer une autre.
- Vous pouvez utiliser jQuery (mais pas jQuery UI qu'on verra en P3) à condition que vous ayez compris les principes du "vanilla" JavaScript.
Si vous maîtrisiez bien JavaScript, concentrez-vous sur les aspects interactifs/ergonomiques/pédagogiques de l'application : il ne suffit pas de savoir coder pour créer un bon dispositif !
Critères d'évaluation
- Malus
- Mauvais liens (fichier JavaScript, CSS)
- Utilisation de JavaScript dans les attributs HTML
- Copier/coller d'un snippet de code présenté au cours ou tiré d'internet sans aucune modification
- Agencement de la page approximatif
- Interaction pas claires/pas bien indiquées
- Bonus
- Code bien organisé et "élégant"
- Documentation du code (raisonnable : pas plus de commentaires que de code...)
- Utilisation de techniques de programmation (cycles, structure de contrôle, etc.)
- Indications pertinentes sur les interactions disponibles (e.g. guidage, texte descriptif, ...)
- Design graphique soigné (e.g. bonne utilisation CSS)
- Organisation du contenu
Rapport
Faites un rapport selon les guidelines habituelles :
En particulier pour cet exercice, essayez d'expliquer :
- En quoi les interactions que vous avez créées soutiennent vos objectifs d'apprentissage/d'utilisation
Contribution Wiki
Contribution libre comme d'habitude :
Quelques suggestions :
- Ajouter/améliorer Review de ressources pour débuter JavaScript
- Mettre à jour/contrôler les Liens JavaScript
- Cherchez des pages liées à JavaScript mais qui ne sont pas dans la Category:JavaScript
- Corrections/améliorations des pages JavaScript, Tutoriel JavaScript de base, Tutoriel JavaScript côté client
Délai
Lundi 08:59 avant la semaine des cours présentiels P3
Liens
Technique
- JavaScript
- Introduction à la programmation
- JavaScript
- Tutoriel JavaScript de base
- Tutoriel JavaScript côté client
- Tutoriel JavaScript sur W3schools
- Il existe des dizaines de tutos sur le web et des livres mais attention : contrôlez qu'il s'agit de ressources récentes, si non il y a le risque de suivre des pratiques obsolètes.
Bibliographie
- Livre recommandé pour débutants
- JavaScript for Kids (Pas forcément pour enfants, pas super drôle, mais bien écrit). La version e-ebook ne coûte pas très cher et elle est partageable.
- Livres pour débutants/intermédiares avec aussi de la théorie (free on the web/pay printable version)
- Haverbeke, M. (2015). Eloquent JavaScript. A modern Introduction to Programming. Second Edition. San Francisco, CA: No Starch Press. Accès libre depuis internet: http://eloquentjavascript.net/
- Simpson, K. (2015). You Don’t Know JS: Up & Going. O’Reilly Media. Accès libre à la version non editée de toute la série de livres https://github.com/getify/You-Dont-Know-JS
- Livre sur les microinteractions (pas de code)
- Saffer, D. (2014). Microinteractions. Designing with details. Sebastopol, CA: O’Reilly Media.