« STIC:STIC I - exercice 2 (Yoshi) » : différence entre les versions

De EduTech Wiki
Aller à la navigation Aller à la recherche
(Page créée avec « {{ En construction }} {{stic12}} <categorytree mode="pages" depth="0" style="float:right; clear:right; margin-left:3px; border:1px solid gray; padding:0.7ex; background-co... »)
 
mAucun résumé des modifications
 
(74 versions intermédiaires par 2 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
{{ En construction }}
{{stic archive}}
{{stic12}}
<categorytree mode="pages" depth="0" style="float:right; clear:right; margin-left:3px; border:1px solid gray; padding:0.7ex; background-color:#f9f9f9;">STIC</categorytree>
<categorytree mode="pages" depth="0" style="float:right; clear:right; margin-left:3px; border:1px solid gray; padding:0.7ex; background-color:#f9f9f9;">STIC</categorytree>
==Introduction==
==Introduction==


Ce deuxième exercice du cours STIC I introduit les premiers concepts de programmation et ''computational thinking'' à travers la création d'une première application interactive avec Scratch, un logiciel développé par le MIT.
Ce deuxième exercice du cours STIC I introduit les premiers concepts de [[Introduction à la programmation|programmation]] et [[pensée computationnelle]], à travers la création d'une application interactive avec [[Scratch]], un logiciel développé par le MIT, et une activité guidée pour vos [[premiers pas avec JavaScript]].


===Connaissances/compétences envisagées===
===Connaissances/compétences envisagées===
Ligne 10 : Ligne 9 :
À l'issue de cet exercice vous devez avoir acquis les connaissances/compétences suivantes :
À l'issue de cet exercice vous devez avoir acquis les connaissances/compétences suivantes :


* Développer une perspective critique sur la pensée computationnelle et le rôle de l'informatique à l'école
* Développer une perspective critique sur la [[pensée computationnelle]] et le rôle de l'informatique à l'école
* Comprendre les grands principes de la programmation (variables, structures de contrôles, boucles, ...)
* Exposition "souple" aux grands principes de la [[Introduction à la programmation|programmation]] (variables, structures de contrôles, boucles, ...) qui seront approfondis pendant le semestre
* Comprendre les grands principes des applications interactives et savoir identifier des liens potentiels avec l'apprentissage
* Comprendre les grands principes des [[Interactivité avec JavaScript|applications interactives]] et savoir identifier des liens potentiels avec l'apprentissage
* Utilisation de Scratch en tant qu'outil de développement, mais également de transfert de connaissance sur la programmation
* Utilisation de [[Scratch]] en tant qu'outil de développement/création/expression, mais également de transfert de connaissance sur la programmation
* Introduction "souple" à [[JavaScript]] (en prévision des autres périodes) avec un tutoriel étape par étape ([[Premiers pas avec JavaScript]])


=== Prérequis ===
=== Prérequis ===


Lecture obligatoire :
Lecture conseillée avant le cours :


* [[Introduction à la programmation]]
* [[Introduction à la programmation]]
Ligne 26 : Ligne 26 :


* 09:00 - 09:15 Présentation du domaine STIC (I et II)
* 09:00 - 09:15 Présentation du domaine STIC (I et II)
* 09:15 - 10:30 Introduction à STIC I (Concepts, Objectifs, ...) --> '''Inscription au cours sur Moodle'''
* 09:15 - 10:30 Activité Scratch
* -- Pause --
* -- Pause --
* 11:00 - 12:00 Présentation de Scratch
* 11:00 - 12:00 Introduction à STIC I (Concepts, Objectifs, ...)
* 12:00 - 12:30 Introduction à JavaScript en prévision de P2
** Inscription au cours sur Moodle pour évaluation et feedback
** Journée de Support Libre
** Illustration et analyse de quelques exemples d'application
** Description du cours et du matériel pédagogique
* 12:00 - 12:30 Introduction à JavaScript en prévision de P2 : {{Goblock | '''[[Premiers pas avec JavaScript]]''' }}
** Activité d'auto-apprentissage
** '''À entamer le plus tôt possible : possibilité d'en discuter lors de la Journée de Support Libre'''
** Consignes pour l'exercice 2
 
=== Hands-on Scratch ===
 
; Activité individuelle (10-15 minutes)
 
* [https://scratch.mit.edu/ Lien direct vers Scratch]
* [https://scratch.mit.edu/projects/editor/?tip_bar=getStarted '''Essayez le tutoriel de base ''']
 
; Activité de groupe
 
Essayer du matériel pédagogique commercial, prévue pour 8 ans et plus, et qui permet de développer des applications avec [[Scratch 2.0]].
 
[[Fichier:Scratch 2 environment.png|800px|vignette|néant|Environnement de développement graphique de Scratch 2.0]]


=== Présentation du cours ===
=== Présentation du cours ===
Ligne 35 : Ligne 55 :
==== Inscription au cours sur Moodle ====
==== Inscription au cours sur Moodle ====


'''Inscription obligatoire'''
{{Bloc important |
* Lien à l'espace STIC I sur Moodle : http://tecfalms.unige.ch/moodle/course/view.php?id=308
'''Inscription obligatoire !!'''  
}}
 
* '''Lien à l'espace STIC I sur Moodle : http://tecfalms.unige.ch/moodle/course/view.php?id=330'''
 
Espace utilisé pour les notes (avec grille d'évaluation disponible en cliquant sur le devoir) et feedback collectif dans le Forum.
 
'''Ne pas utiliser le Forum pour de l'aide, utilisez le Wiki ! '''


Participation facultative au '''séminaire de codage''' :
==== Journée de Support Libre (avec partie STIC) ====
* Tous les lundis de la semaine en présence M2 (donc le lundi après le vendredi STIC -> consolidation de la ''mémoire à moyen terme'')
* Lien à l'espace du séminaire de codage (pour info) : http://tecfalms.unige.ch/moodle/course/view.php?id=291


==== Thématiques ====
Participation facultative à la '''Journée de Support Libre''' (JSL) :
* Tous les '''jeudi''' de la semaine en présence M2
** donc le jeudi après la semaine en présence pour M1 qui prévoit STIC au vendredi -> consolidation de la ''mémoire à moyen terme''
* Une partie de la journée, de '''10h à 12h''', est spécifiquement consacrée à STIC, avec la présence d'au moins un assistant/moniteur '''si il y a assez d'étudiants intéressés'''.


Introduction à STIC I :
{{Bloc important | Merci de confirmer votre participation à l'avance à travers le forum de l'espace Moodle ! }}
* '''[http://tecfalms.unige.ch/moodle/course/view.php?id=291 Espace Moodle de la Journée de Support Libre]'''


* Perspective du cours
==== Illustration et analyse de petites applications interactives ====
* Pensée Computationnelle (Computational Thinking)
* Interactivité/Interaction et apprentissage


==== Support ====
{{Bloc important |
Support utilisé :


* [http://tecfa.unige.ch/perso/mafritz/teaching/slides/stic-1-introduction.html#/ Slides interactives]
; Anatomie des exercices STIC I
* [http://tecfa.unige.ch/perso/mafritz/teaching/stic-1/apps/number-sorting-game/ Exemple d'application avec 3 modalités interactives différentes]


==== Activité de comparaison entre 3 versions interactives ====
# Identifier une problématique ('''la plus spécifique possible''') liée à l'apprentissage, selon vos connaissances et intérêts
# Trouver une ('''simple''') solution algorithmique (i.e. automatisée)
# Implementer la solution dans une ('''simple''') application interactive
# Faire un rapport qui explique le dispositif
#* D'un point de vue pédagogique (objectifs, scénarisation, guidage, ...)
#* D'un point de vue technique (interactions prévues, input/output, ...)


<gallery>
}}
STIC 1 ex2 compare writing.png|Writing version
STIC 1 ex2 compare point.png|Point & Click version
STIC 1 ex2 compare drag.png|Drag & Drop version
</gallery>


=== Hands-on Scratch ===
; Applications pour la lecture


Showcase :
Deux applications avec le même type d'interaction possible, mais qui sous-tendent deux processus d'apprentissages différents :


* [[Enseignement de l'informatique à l'école]] / [[:Catégorie:Education au numérique]]
* {{Goblock | [https://maltt-stic.github.io/stic-1-app-examples/01-reverse/ esrever] }} : entraînement de la voie d'assemblage (construction des mots à travers le déchiffrage des lettres)
* Présentation de [[Scratch]] (lien direct: [https://scratch.mit.edu/ Scratch Official Site])
** L'algorithme permet d'afficher les lettres qui composent un mot à l'inverse, de cette manière on ne peut pas utiliser la forme du mot.
* Exemples hands-on : [https://scratch.mit.edu/search/projects?q=kaebee projets kaebee]
* {{Goblock | [https://maltt-stic.github.io/stic-1-app-examples/02-blink/ Mot clignotant] }} : entraînement de la voie d'adressage (reconnaissance des mots par leur "forme")
** L'algorithme affiche le mot seulement pour 200ms, de cette manière on n'a pas le temps de construire le mot lettre par lettre.


[[Fichier:Scratch 2 environment.png|800px|vignette|néant|Environnement de développement graphique de Scratch 2.0]]
Liens vers le ''repository'' avec les fichiers des exemple : [https://github.com/MALTT-STIC/stic-1-app-examples MALTT-STIC/stic-1-app-examples]


=== Introduction à JavaScript ===
; Application "Number sorting"


'''Préparation pour la deuxième période''' :
Même application déclinée avec trois modalités interactives différentes :


* Problème des néophytes avec programmation : difficulté avec la syntaxe
* {{Goblock | [http://tecfa.unige.ch/perso/mafritz/teaching/stic-1/apps/number-sorting-game/ Number sorting game] }}
* Progression néophytes -> expert équivaut à passer de la question "comment?" à "pourquoi?"
* Importance de s'exposer à la syntaxe JavaScript avant P2 -> on commence à coder !
* Nous allons utiliser JavaScript pour les exercices 3, 4, 5 et 6 -> Investissement pour la période ;)


Deux activités conseillées (voir plus bas pour les détails) :
Activité - pour chacune des modalités interactives :


* Suivre le [[Tutoriel JavaScript de base]]
# Identifiez toutes les "microinteractions" (que se passe-t-il quand vous cliquez/saisissez/glissez-posez)
* Examples/Hands-on/Task/Solution pour JavaScript Essential (même système que HTML et CSS en [[MINIT]]
# Essayer de comparer les trois versions, par exemple :
#* Identifier des publics cibles qui peuvent être plus ou moins à l'aise avec une modalité ou l'autre
#* Évaluer des supports (ordinateur, tablettes, smartphones, ...) pour lesquels les versions sont plus ou moins adaptées
#* Illustrer à quel point les versions permettent une marge d'erreur
#* Autre...
# Repérez et évaluez le guidage et les instructions


Autres possibilités :
==== Description du cours et du matériel pédagogique d'accompagnement ====


* [[Review de ressources pour débuter JavaScript]] (ressources proposées par les étudiants MALTT des dernières volées)
; Introduction à STIC I
* Trouver un MOOC, [https://github.com/EbookFoundation/free-programming-books/blob/master/free-programming-books.md#javascript autres livres], ... selon vos envies et disponibilité de temps


'''Attention''' : limitez-vous aux aspects de syntaxe, on verra l'application de [[Tutoriel JavaScript côté client|JavaScript dans les pages web]] en P2
* voir {{ Goblock | '''[[STIC:STIC I (Yoshi)]]''' }}


==== Tutoriel JavaScript de base ====
; Illustration du matériel pédagogique d'accompagnement


Le [[Tutoriel JavaScript de base]] est une synthèse des éléments fondamentaux du langage, voir schéma suivant :  
Nous allons utiliser une sélection de ressources tirée de l'[[Initiation à la pensée computationnelle avec JavaScript]] :


[[Fichier:JavaScript trois niveau js.png|néant|thumb|400px|Les trois niveaux du code JavaScript.]]
* {{Goblock | '''[[EduTech Wiki:Livres/STIC I - Support de cours|STIC I - Support de cours]]''' }}


Il propose directement des exemples que '''vous pouvez tester directement dans la Console JavaScript de votre navigateur'''. Pour l'ouvrir :
Vos commentaires/critiques sur le matériel sont les bienvenus et seront considérés dans la contribution wiki obligatoire. Le matériel nécessite également d'édition (fautes d'orthographe, ...)


* Internet Explorer : Menu Outils > Outils de développement (ou F12)
=== Introduction à JavaScript ===
* Firefox : F12 ou plus de fonctionnalités via l'extension [http://getfirebug.com/ Firebug]
* '''Chrome : Menu Outils > Console JavaScript (ou F12)'''
* Safari : D'abord dans les Options > Avancées cocher la case "Afficher le menu Développement dans la barre des menus", puis CTRL+Alt+I ou CTRL+Alt+C
* Opera: Menu Page > Outils de Développement > Opera Dragonfly (ou CTRL+Shift+I)


[[Fichier:JavaScript tutoriel base console error.jpg|thumb|800px|none|Console des erreurs en Google Chrome]]
'''Préparation pour la deuxième période''' :


La console JavaScript est un endroit très utile pour tester du code JavaScript pour deux raisons :
* Problème des néophytes avec programmation : difficulté avec la syntaxe
* Importance de s'exposer à la syntaxe JavaScript avant P2 -> on commence à coder !
* Nous allons utiliser JavaScript pour les exercices 3, 4, 5 et 6 -> Investissement pour la période ;)


* On peut saisir directement du code dans la console et l'évaluer. Dans l'image suivante, les lignes précédées par > sont des lignes avec du code, et les lignes précédées par <- proposent le résultat de l'évaluation du code.
==== Activité d'auto-apprentissage ====


[[Fichier:JavaScript console code.png|none|frame|La console du navigateur évalue directement du code.]]
Pendant la période à distance, vous devez '''suivre et adapter pour le rendu de l'exercice 2''' le tutoriel suivant :


* On peut communiquer avec la Console JavaScript. Par exemple la notation <code>console.log()</code> permet d'écrire un message dans la Console. Pour ceux qui ont utilisé Flash, cette instruction est similaire à la fonction trace() de Flash. Voici un exemple :
* {{Goblock | '''[[Premiers pas avec JavaScript]]''' }}


<source lang="JavaScript">
Voir la partie sur la tâche/projet plus bas pour plus d'informations sur le rendu attendu.
for(var i = 0; i < 5; i++) {
    console.log("Cycle actuel : " + i);
}
</source>
Le résultat de ce script dans la console JavaScript est le suivant :


[[Fichier:JavaScript tutoriel base console log.jpg|cadre|néant|La méthode log() de l'objet Console permet d'afficher des messages dans la console JavaScript.]]
{{Bloc important | Lancez-vous tôt dans cette étape, par exemple avant la '''Journée de Support Libre''', ainsi que vous puissiez discuter de vos difficultés à ce moment avec un assistant ou vos collègues ! }}


==== Workshop / Activité complémentaire pour P2 ====
== Projet 2 / Tâche ==
Workshop files from GitHub :


* https://github.com/MALTT-STIC/stic-1-javascript-essentials
Voici de suite la description détaillée de la tâche et le matériel de support à votre disposition pour compléter l'exercice pendant la période à distance.  


Instructions :
=== Lectures et matériel de support ===


# Télécharger et extraire le fichier zip sur votre ordinateur -> bouton "Clone or Download"
Ces articles proposent les contenus utiles aux finalités pédagogiques du cours. Pour compléter l'exercice ou atteindre les objectifs spécifiques à votre dispositif (voir plus bas), d'autres ressources peuvent être nécessaires.
# Ouvrir le dossier avec [[Brackets]]
# '''Pour tester les scripts''' : copier et coller le code dans la '''console JavaScript''' du navigateur (voir plus haut)
#* Regardez bien les erreurs affichées par la Console
#* Vous pouvez tester des bouts de code ou tout le code du fichier


'''Attention''' : exemples à terminer/résoudre avant P2 !
* {{ Goblock | [[Introduction à la programmation]] }} : aspects théoriques
* {{ Goblock | [[Premiers pas avec JavaScript]] }} : aspects pratiques, tutoriel étape par étape
* {{ Goblock | [[Pensée computationnelle]] }} : aspects théoriques (lecture facultative)


== Projet 2 / Tâche ==
=== Dispositif ===
=== Dispositif ===


Imaginez une première application interactive liée à un contenu d'apprentissage et développez-la avec Scratch :
Suivez d'abord et adaptez dans un deuxième temps le tutoriel
* {{Goblock | '''[[Premiers pas avec JavaScript]]''' }}
pour créer une petite application interactive de type ''Flash card'' :


* Créez un projet avec Scratch 2.0
* Creez une page HTML5 qui contient un mécanisme interactif permettant de switcher entre deux images à travers un bouton
* Déterminez l'architecture de l'application à travers les blocs de code de Scratch
* Créez/adaptez deux versions d'une image dont le switch entre version peut représenter un intérêt pédagogique
* Incorporez (i.e. ''embed'') l'application dans une page HTML5 sur le serveur tecfaetu.unige.ch (nb '''pas dans votre page du rapport''')
** Vous pouvez garder l'effet ''flash card'' ou inventer quelque chose de différent avec le même mécanisme
* L'application doit servir à un objectif déclaré dans votre rapport (pas juste votre objectif d'apprentissage !)
* Vous pouvez réutiliser le code de l'exemple de base, mais il faudra adapter le tout (images, consignes, ...) aux finalités de votre dispositif
* Vous n'êtes pas obligés d'inclure le mécanisme du compteur (e.g. si cela n'a aucun sens dans votre application)


==== Contraintes ====
==== Contraintes ====


* Contenu selon vos envies, mais en rapport avec une thématique MALTT
* Contenu selon vos envies, mais en rapport avec une thématique MALTT
* Vous devez utiliser dans votre application '''au moins''' les éléments suivants :
* Vos deux versions de l'image '''doivent être en format SVG''' et vous devez inclure le SVG en tant qu'élément externe
** 2 blocs de type '''Événements''' (e.g. quand drapeau vert est cliqué + autre à votre choix)
** Voir {{Goblock | [[Tutoriel SVG avec HTML5]] }}
** 1 bloc de type '''Contrôle > Si... alors''' ou '''Si... alors... sinon'''
* Vous pouvez utiliser des images déjà créées ('''avec droit d'utilisation et en citant la source'''), '''mais vous devez apporter des modifications au moins à l'une des versions de l'image en SVG''', par exemple :
** 1 bloc de type '''Contrôle > répéter''' (e.g. répéter X fois ou répéter jusqu'à)
** Ajouter des labels
* Vous avez le droit d'utiliser tous les éléments graphiques/sons/etc. mis à disposition directement par Scratch
** Changer la couleur
** Si vous utilisez d'autres éléments, '''faites très attention qu'ils soient libres de droits et citez la source dans votre rapport'''
** Ajouter/masquer un élément
* Créer une page HTML5 valide/bien formatée qui '''[https://wiki.scratch.mit.edu/wiki/How_to_Embed_a_Project incorpore l'application Scratch]''' avec quelques informations en plus (e.g. introduction, consignes, ...)
** ...
* Les modifications doivent être illustrées dans le rapport


===Critères d'évaluation ===
===Critères d'évaluation ===
Ligne 171 : Ligne 192 :


* Application ne marche pas
* Application ne marche pas
* ''Stage'' désorganisé et/ou graphisme confus (e.g. difficile à identifier les objets)
* Les images ne sont pas en format SVG ou ne sont pas incluses en tant que fichiers externes
* Interaction sans finalité (e.g. cliquer pour activer simple message "hello")
* Vous n'avez pas modifié vous-mêmes au moins l'une des images
* Utilisation d'éléments graphiques/sons/etc. pas libre de droits
* Vous avez utilisé des images que vous n'avez pas le droit d'utiliser et/ou dont vous ne citez pas la source
* Lien vers l'application directement sur Scratch (pas incorporé dans une page HTML5)
* Code HTML5 mal structurés


;Bonus :
;Bonus


* ''Stage'' bien organisé et/ou graphisme cohérent
* Vraie adaptation aux objectifs de votre dispositif
* Interaction facile à comprendre/initialiser
* Images SVG de bonne qualité et utiles à montrer un phénomène ou sous-tendre un processus d'apprentissage
* Complexité des blocs de script (e.g. utilisation de variables, broadcast, ...)
* Adaptation du guidage et des consignes à votre public cible (e.g. âge, compétences techniques, ...)
* Page HTML5 qui contient l'application bien structurée, avec informations complémentaires
* Scénarisation pédagogique claire et cohérente (à qui comptez-vous faire utiliser le dispositif ? dans quel contexte ? etc.)


=== Rapport ===
=== Rapport ===


Faites un rapport selon les guidelines habituelles :
Faites un rapport selon les guidelines des rapports STIC :


* voir [[STIC:Rapport STIC I et II]]
* voir {{Goblock | [[STIC:Rapport STIC I et II]] }}


En particulier pour cet exercice, essayer de :
En particulier pour cet exercice, essayez de :


* Identifier clairement les objectifs/public cible de votre application
* Dans la partie '''Objectifs''' de votre rapport :
** Identifiez et illustrez la problématique à laquelle vous allez contribuer avec votre dispositif
** Essayez de préciser au maximum le public cible de votre dispositif
** Définissez dans quel cadre les utilisateurs peuvent être intéressés à utilisez le dispositif (tous seuls, avec de l'aide d'une autre personne, dans le cadre d'un cours, en auto-apprentissage, ...)
** Soyez raisonnables dans vos attentes : identifier un objectif simple et précis
** Soyez raisonnables dans vos attentes : identifier un objectif simple et précis
* Essayez de justifier en quoi l'interaction proposé soutienne vos objectifs d'apprentissage/d'utilisation
** Essayez de viser une compétence bien spécifique, plutôt que quelque chose de générique
* '''SVP dans la section lien mettez''' :
* Dans la partie '''Design''' de votre rapport :
*# Le lien à la page HTML5 qui incorpore votre application
** Illustrez comment votre dispositif arrive à "résoudre" la problématique que vous avez définie dans les objectifs
*# Le lien à l'application directement sur Scratch (de manière qu'on puisse voir les blocs de code qui compose votre dispositif)
** Décrivez l'activité à faire avec le dispositif (i.e. cliquer pour masquer/afficher de l'information) et en quoi cette activité sous-tende aux objectifs d'apprentissage
** Essayez d'illustrer avec des mots les grandes lignes du fonctionnement de votre dispositif (i.e. imaginez qu'on lise votre rapport '''avant''' de voir le dispositif)
* Dans la section '''Production'''
** Illustrez vos changements à l'image ou aux images SVG
 
'''Attention''' : vu que le dispositif est déjà disponible en grand partie, nous nous attendons à un effort dans la rédaction du rapport, surtout au niveau des objectifs et du design (i.e. scénarisation et guidage pédagogique)


=== Contribution Wiki ===
=== Contribution Wiki ===
Ligne 202 : Ligne 231 :
Contribution libre sur l'ensemble de ce wiki (ou wiki anglais) :
Contribution libre sur l'ensemble de ce wiki (ou wiki anglais) :


* voir [[STIC:Rapport STIC I et II#Contribution_Wiki]]
* voir {{Goblock | [[STIC:Contribution Wiki]] }}


Quelques suggestions en rapport avec l'exercice :
Quelques suggestions en rapport avec l'exercice :


* Améliorer la page [[Enseignement de l'informatique à l'école]] (corrections, test des liens, etc.)
* Améliorer la page [[Enseignement de l'informatique à l'école]] (corrections, test des liens, etc.)
* Éditer/commenter les ressources du matériel pédagogique d'accompagnement
* Ajouter des ressources dans la catégorie [[:Catégorie:Education au numérique]]
* Ajouter des ressources dans la catégorie [[:Catégorie:Education au numérique]]
* Améliorer/Implémenter/Ajouter ressources liés à [[Scratch]], surtout [[Scratch 2.0]]
* Améliorer/Implémenter/Ajouter ressources liés à [[Scratch]], surtout [[Scratch 2.0]]
Ligne 212 : Ligne 242 :
=== Délai ===
=== Délai ===


Dimanche 20:00 avant la semaine des cours présentiels P2
{{Bloc important | Dimanche, 28 octobre à 21:00 }}
 
=== Version alternative pour experts ===
 
Si vous connaissez déjà un peu de JavaScript, vous pouvez vous lancer dans un dispositif plus complexe en utilisant directement le SVG comme élément interactif :
 
* Voir {{Goblock | [[SVG avec JavaScript]] }}


== Ressources ==
== Ressources ==
Ligne 220 : Ligne 256 :
* [[Enseignement de l'informatique à l'école]]
* [[Enseignement de l'informatique à l'école]]
** [http://www.rts.ch/play/radio/forum/audio/faut-il-obliger-les-enfants-a-suivre-des-cours-de-programmation-informatique-a-lecole?id=7638246 Débat RTS]
** [http://www.rts.ch/play/radio/forum/audio/faut-il-obliger-les-enfants-a-suivre-des-cours-de-programmation-informatique-a-lecole?id=7638246 Débat RTS]
* [[Pensée computationnelle]]


=== Techniques ===
=== Techniques ===
Ligne 232 : Ligne 269 :
* [[Scratch 1.0]] sur ce wiki (contenu pour l'ancienne version mais certains concepts sont encore valables)
* [[Scratch 1.0]] sur ce wiki (contenu pour l'ancienne version mais certains concepts sont encore valables)
* [[:en:Scratch]] sur EduTechWiki en anglais (contenu principalement sur version 1.0)
* [[:en:Scratch]] sur EduTechWiki en anglais (contenu principalement sur version 1.0)
* [https://scratch.mit.edu/search/projects?q=kaebee Exemples de ressources créées par K. Benetos]


==== JavaScript ====
==== JavaScript ====


* [[JavaScript]]
* [[JavaScript]]
* [[Premiers pas avec JavaScript]]
* [[Tutoriel JavaScript de base]]
* [[Tutoriel JavaScript de base]]
; Pour aller plus loin :
* [http://eloquentjavascript.net/ Eloquent JavaScript] (Part 1: Language)
* [http://eloquentjavascript.net/ Eloquent JavaScript] (Part 1: Language)
* [https://github.com/MALTT-STIC/stic-1-javascript-essentials Exercices et exemples à voir/compléter pour P2]
* [https://github.com/MALTT-STIC/stic-1-javascript-essentials Exercices (facultatifs) et exemples à voir/compléter pour P2]


=== Liens ===
=== Liens ===
Ligne 270 : Ligne 312 :


=== Discussion de cette page ===
=== Discussion de cette page ===
Utilisez la page discussion de '''cette page''' pour poser des questions. Pour insérer un nouveau titre, utilisez simplement le "+".
Utilisez la page discussion de '''cette page''' pour poser des questions. Pour insérer un nouveau titre, utilisez simplement un "nouveau sujet".


'''Important''': Si vous cliquez sur l'étoile ("Ajouter cette page à votre liste de suivi"), le wiki vous enverra un mail après chaque modification de la page.
'''Important''': Si vous cliquez sur l'étoile ("Ajouter cette page à votre liste de suivi"), le wiki vous enverra un mail après chaque modification de la page. On vous conseille aussi de régler [[Spécial:Préférences#mw-prefsection-watchlist|vos préférences wiki]] pour tout ce qui est suivi.


=== Séminaire de codage ===
=== Journée de Support Libre ===


Le lundi après la semaine des cours en présence (i.e. le lundi suivant le cours STIC du vendredi), un séminaire de codage est organisé par TECFA.  
Le jeudi de la semaine après la semaine des cours en présence M1 (i.e. celle où vous avez STIC le vendredi), une Journée de Support Libre et organisée pour vous aider, entre autre, à progresser avec vos exercice STIC. '''La présence d'au moins un assistant/moniteur spécifiquement pour STIC est garantie de 10h à 12h s'il y a assez d'étudiants qui ont manifesté leur présence.'''


* voir [http://tecfalms.unige.ch/moodle/course/view.php?id=291 Séminaire de codage sur Moodle TECFA]
* voir [http://tecfalms.unige.ch/moodle/course/view.php?id=291 Journée de Support Libre] pour plus d'informations et pour annoncer votre présence à la journée

Dernière version du 12 septembre 2019 à 18:01

Cette page fait partie des archives des cours Cours STIC (STIC I, STIC II,STIC III,STIC IV)

Introduction

Ce deuxième exercice du cours STIC I introduit les premiers concepts de programmation et pensée computationnelle, à travers la création d'une application interactive avec Scratch, un logiciel développé par le MIT, et une activité guidée pour vos premiers pas avec JavaScript.

Connaissances/compétences envisagées

À l'issue de cet exercice vous devez avoir acquis les connaissances/compétences suivantes :

  • Développer une perspective critique sur la pensée computationnelle et le rôle de l'informatique à l'école
  • Exposition "souple" aux grands principes de la programmation (variables, structures de contrôles, boucles, ...) qui seront approfondis pendant le semestre
  • Comprendre les grands principes des applications interactives et savoir identifier des liens potentiels avec l'apprentissage
  • Utilisation de Scratch en tant qu'outil de développement/création/expression, mais également de transfert de connaissance sur la programmation
  • Introduction "souple" à JavaScript (en prévision des autres périodes) avec un tutoriel étape par étape (Premiers pas avec JavaScript)

Prérequis

Lecture conseillée avant le cours :

Activité en salle de classe

Programme

  • 09:00 - 09:15 Présentation du domaine STIC (I et II)
  • 09:15 - 10:30 Activité Scratch
  • -- Pause --
  • 11:00 - 12:00 Introduction à STIC I (Concepts, Objectifs, ...)
    • Inscription au cours sur Moodle pour évaluation et feedback
    • Journée de Support Libre
    • Illustration et analyse de quelques exemples d'application
    • Description du cours et du matériel pédagogique
  • 12:00 - 12:30 Introduction à JavaScript en prévision de P2 :
    • Activité d'auto-apprentissage
    • À entamer le plus tôt possible : possibilité d'en discuter lors de la Journée de Support Libre
    • Consignes pour l'exercice 2

Hands-on Scratch

Activité individuelle (10-15 minutes)
Activité de groupe

Essayer du matériel pédagogique commercial, prévue pour 8 ans et plus, et qui permet de développer des applications avec Scratch 2.0.

Environnement de développement graphique de Scratch 2.0

Présentation du cours

Inscription au cours sur Moodle

Inscription obligatoire !!

Espace utilisé pour les notes (avec grille d'évaluation disponible en cliquant sur le devoir) et feedback collectif dans le Forum.

Ne pas utiliser le Forum pour de l'aide, utilisez le Wiki !

Journée de Support Libre (avec partie STIC)

Participation facultative à la Journée de Support Libre (JSL) :

  • Tous les jeudi de la semaine en présence M2
    • donc le jeudi après la semaine en présence pour M1 qui prévoit STIC au vendredi -> consolidation de la mémoire à moyen terme
  • Une partie de la journée, de 10h à 12h, est spécifiquement consacrée à STIC, avec la présence d'au moins un assistant/moniteur si il y a assez d'étudiants intéressés.
Merci de confirmer votre participation à l'avance à travers le forum de l'espace Moodle !

Illustration et analyse de petites applications interactives

Anatomie des exercices STIC I
  1. Identifier une problématique (la plus spécifique possible) liée à l'apprentissage, selon vos connaissances et intérêts
  2. Trouver une (simple) solution algorithmique (i.e. automatisée)
  3. Implementer la solution dans une (simple) application interactive
  4. Faire un rapport qui explique le dispositif
    • D'un point de vue pédagogique (objectifs, scénarisation, guidage, ...)
    • D'un point de vue technique (interactions prévues, input/output, ...)
Applications pour la lecture

Deux applications avec le même type d'interaction possible, mais qui sous-tendent deux processus d'apprentissages différents :

  •  : entraînement de la voie d'assemblage (construction des mots à travers le déchiffrage des lettres)
    • L'algorithme permet d'afficher les lettres qui composent un mot à l'inverse, de cette manière on ne peut pas utiliser la forme du mot.
  •  : entraînement de la voie d'adressage (reconnaissance des mots par leur "forme")
    • L'algorithme affiche le mot seulement pour 200ms, de cette manière on n'a pas le temps de construire le mot lettre par lettre.

Liens vers le repository avec les fichiers des exemple : MALTT-STIC/stic-1-app-examples

Application "Number sorting"

Même application déclinée avec trois modalités interactives différentes :

Activité - pour chacune des modalités interactives :

  1. Identifiez toutes les "microinteractions" (que se passe-t-il quand vous cliquez/saisissez/glissez-posez)
  2. Essayer de comparer les trois versions, par exemple :
    • Identifier des publics cibles qui peuvent être plus ou moins à l'aise avec une modalité ou l'autre
    • Évaluer des supports (ordinateur, tablettes, smartphones, ...) pour lesquels les versions sont plus ou moins adaptées
    • Illustrer à quel point les versions permettent une marge d'erreur
    • Autre...
  3. Repérez et évaluez le guidage et les instructions

Description du cours et du matériel pédagogique d'accompagnement

Introduction à STIC I
Illustration du matériel pédagogique d'accompagnement

Nous allons utiliser une sélection de ressources tirée de l'Initiation à la pensée computationnelle avec JavaScript :

Vos commentaires/critiques sur le matériel sont les bienvenus et seront considérés dans la contribution wiki obligatoire. Le matériel nécessite également d'édition (fautes d'orthographe, ...)

Introduction à JavaScript

Préparation pour la deuxième période :

  • Problème des néophytes avec programmation : difficulté avec la syntaxe
  • Importance de s'exposer à la syntaxe JavaScript avant P2 -> on commence à coder !
  • Nous allons utiliser JavaScript pour les exercices 3, 4, 5 et 6 -> Investissement pour la période ;)

Activité d'auto-apprentissage

Pendant la période à distance, vous devez suivre et adapter pour le rendu de l'exercice 2 le tutoriel suivant :

Voir la partie sur la tâche/projet plus bas pour plus d'informations sur le rendu attendu.

Lancez-vous tôt dans cette étape, par exemple avant la Journée de Support Libre, ainsi que vous puissiez discuter de vos difficultés à ce moment avec un assistant ou vos collègues !

Projet 2 / Tâche

Voici de suite la description détaillée de la tâche et le matériel de support à votre disposition pour compléter l'exercice pendant la période à distance.

Lectures et matériel de support

Ces articles proposent les contenus utiles aux finalités pédagogiques du cours. Pour compléter l'exercice ou atteindre les objectifs spécifiques à votre dispositif (voir plus bas), d'autres ressources peuvent être nécessaires.

Dispositif

Suivez d'abord et adaptez dans un deuxième temps le tutoriel

pour créer une petite application interactive de type Flash card :

  • Creez une page HTML5 qui contient un mécanisme interactif permettant de switcher entre deux images à travers un bouton
  • Créez/adaptez deux versions d'une image dont le switch entre version peut représenter un intérêt pédagogique
    • Vous pouvez garder l'effet flash card ou inventer quelque chose de différent avec le même mécanisme
  • Vous pouvez réutiliser le code de l'exemple de base, mais il faudra adapter le tout (images, consignes, ...) aux finalités de votre dispositif
  • Vous n'êtes pas obligés d'inclure le mécanisme du compteur (e.g. si cela n'a aucun sens dans votre application)

Contraintes

  • Contenu selon vos envies, mais en rapport avec une thématique MALTT
  • Vos deux versions de l'image doivent être en format SVG et vous devez inclure le SVG en tant qu'élément externe
  • Vous pouvez utiliser des images déjà créées (avec droit d'utilisation et en citant la source), mais vous devez apporter des modifications au moins à l'une des versions de l'image en SVG, par exemple :
    • Ajouter des labels
    • Changer la couleur
    • Ajouter/masquer un élément
    • ...
  • Les modifications doivent être illustrées dans le rapport

Critères d'évaluation

Selon la Grille d'évaluation : cliquer sur le devoir dans l'espace Moodle du cours pour voir les critères.

Malus
  • Application ne marche pas
  • Les images ne sont pas en format SVG ou ne sont pas incluses en tant que fichiers externes
  • Vous n'avez pas modifié vous-mêmes au moins l'une des images
  • Vous avez utilisé des images que vous n'avez pas le droit d'utiliser et/ou dont vous ne citez pas la source
  • Code HTML5 mal structurés
Bonus
  • Vraie adaptation aux objectifs de votre dispositif
  • Images SVG de bonne qualité et utiles à montrer un phénomène ou sous-tendre un processus d'apprentissage
  • Adaptation du guidage et des consignes à votre public cible (e.g. âge, compétences techniques, ...)
  • Scénarisation pédagogique claire et cohérente (à qui comptez-vous faire utiliser le dispositif ? dans quel contexte ? etc.)

Rapport

Faites un rapport selon les guidelines des rapports STIC :

En particulier pour cet exercice, essayez de :

  • Dans la partie Objectifs de votre rapport :
    • Identifiez et illustrez la problématique à laquelle vous allez contribuer avec votre dispositif
    • Essayez de préciser au maximum le public cible de votre dispositif
    • Définissez dans quel cadre les utilisateurs peuvent être intéressés à utilisez le dispositif (tous seuls, avec de l'aide d'une autre personne, dans le cadre d'un cours, en auto-apprentissage, ...)
    • Soyez raisonnables dans vos attentes : identifier un objectif simple et précis
    • Essayez de viser une compétence bien spécifique, plutôt que quelque chose de générique
  • Dans la partie Design de votre rapport :
    • Illustrez comment votre dispositif arrive à "résoudre" la problématique que vous avez définie dans les objectifs
    • Décrivez l'activité à faire avec le dispositif (i.e. cliquer pour masquer/afficher de l'information) et en quoi cette activité sous-tende aux objectifs d'apprentissage
    • Essayez d'illustrer avec des mots les grandes lignes du fonctionnement de votre dispositif (i.e. imaginez qu'on lise votre rapport avant de voir le dispositif)
  • Dans la section Production
    • Illustrez vos changements à l'image ou aux images SVG

Attention : vu que le dispositif est déjà disponible en grand partie, nous nous attendons à un effort dans la rédaction du rapport, surtout au niveau des objectifs et du design (i.e. scénarisation et guidage pédagogique)

Contribution Wiki

Contribution libre sur l'ensemble de ce wiki (ou wiki anglais) :

Quelques suggestions en rapport avec l'exercice :

Délai

Dimanche, 28 octobre à 21:00

Version alternative pour experts

Si vous connaissez déjà un peu de JavaScript, vous pouvez vous lancer dans un dispositif plus complexe en utilisant directement le SVG comme élément interactif :

Ressources

Théoriques

Techniques

Scratch

JavaScript

Pour aller plus loin

Liens

Enseignement du CT à l'école

Bibliographie

Computational Thinking

  • Aho, A. V. (2012). Computation and computational thinking. Computer Journal, 55, 833–835.
  • Denning, P. J. (2016). Remaining Trouble Spots With Computational Thinking. Cacm, 60, 33–39.
  • Wing, J. M. (2006). Computational thinking. Communications of the ACM, 49, 33–35.

Scratch

  • Resnick, M., Maloney, J., Monroy-Hernández, A., Rusk, N., Eastmond, E., Brennan, K., … Kafai, Y. (2009). Scratch: Programming for All. Communications of the ACM, 52, 60–67.

JavaScript

Aide

Discussion de cette page

Utilisez la page discussion de cette page pour poser des questions. Pour insérer un nouveau titre, utilisez simplement un "nouveau sujet".

Important: Si vous cliquez sur l'étoile ("Ajouter cette page à votre liste de suivi"), le wiki vous enverra un mail après chaque modification de la page. On vous conseille aussi de régler vos préférences wiki pour tout ce qui est suivi.

Journée de Support Libre

Le jeudi de la semaine après la semaine des cours en présence M1 (i.e. celle où vous avez STIC le vendredi), une Journée de Support Libre et organisée pour vous aider, entre autre, à progresser avec vos exercice STIC. La présence d'au moins un assistant/moniteur spécifiquement pour STIC est garantie de 10h à 12h s'il y a assez d'étudiants qui ont manifesté leur présence.