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 (fondamnteaux 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 utilsé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 - 11:45 : JavaScript et le DOM (+ présentation Codepen.io)
- 11:45 - 12:30 : transfert de connaissances, JavaScript avec CSS3 et SVG
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 :
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
Workshop Codepen.io :
- Présentation Codepen.io
- Fork et travail sur les exemples
Références :
- Tutoriel JavaScript de base
- Exemples Codepen.io :
Transfert de connaissances : JavaScript avec CSS3 et SVG
Utiliser JavaScript avec :
- SVG :
- CSS
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 examples en cours, mais il faudra au moins adapter le code JavaScript (pas simplement changer l'intituler des boutons et du contenu HTML modifié)
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.
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"
- 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éez 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 de base
- Tutoriel JavaScript sur W3schools
- Il existe des dizaines de tutos sur le web et des livres
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.