taxonomie des outils existants

Quelques surveys existants

https://www.cs.cmu.edu/~caitlin/papers/NoviceProgSurvey.pdf

Dans ce survey, la taxonomie est intéressante :

 Teaching Systems
 Mechanics of programming
 Expressing programs
 Simplify typing code
 Find alternative to typing programs
 Structuring programs
 New programming models
 Making new models accessible
 Understanding program execution
 Make programming concrete
 Models of program execution
 Social learning
 Side by side
 Network of interaction
 Providing reasons to program
 Solve problems by positioning objects
 Solve problems using code
 Empowering systems
 Mechanics of programming
 Code is too difficult
 Improve programming languages
 Activities enhances by programming
 Entertainment
 Education

Présupposés

  1. On voudrait ne pas restreindre la taxo à l'algoprog
  2. On se concentre sur les outils prévus pour un usage pédagogique (par exemple, on ignore Coq même si c'est utilisé en TP car à la base c'est pas fait pour ça)

Catégorie environnement de programmation pédagogique

  1. Programmation recursive
  2. Programmation Java
    • Dr Java
    • BlueJ
    • Hop3x = outil de suivi en temps réel de séances de TP java : dashboard pour l'enseignant pour une intervention plus efficace
  3. Autres

Caractéristiques plus ou moins communes

  • livre, videos, communauté
  • installation simple ou en navigateur
  • environnement de programmation, de mise au point,

Outil assistant pour apprendre un langage

Outils spécialisés pour l'enseignement de l'informatique théorique

Catégories

  • médias numériques,… (plusieurs catégories)
  • des activités mathématiques autour des nombres, des formes
  • des activités mathématiques autour de la logique
  • des outils numériques pour coder le jouet programmable Bee-Bot. http://www.epi.asso.fr/revue/articles/a1204d.htm
  • des outils numériques pour communiquer, collaborer
  • http://blog.codeweekfrance.org/apprendre-a-coder-outils-et-ressources-en-francais-1-4/ pas de catégories…, juste “pour qui?” enfants, ados, adultes
  • cenralisée ici : http://codeweekfrance.org/resources/ avec Age (enfant, ado, adulte) / Cible (atelier, solo, scolaire, périscolaire…) / Support (web, android, iOS…) / Langue (sans texte, français, anglais,…)
  • http://alternativeto.net/software/light-bot/ Catégories: licence (open source, free, commercial) / platform (Mac, Windows, Steam, Linux, Web/cloud, GitHub, BSD…) / customisability (No features added, Customizable)
  • http://app-enfant.fr/applications/tag/programmation/ Catégories: Age, Prix, Notes sur 5: Ambiance / Ergonomie / Educatif / Durée de vie / Globale, plateforme (iOS, Android), langues
  • http://eduscol.education.fr/jeu-numerique/#/article/1858
  • Pour les petits toujours: http://www.robotturtles.com/ (jeu de plateau), la “prog” des 4ans
  • Les produits de chez tralalère dès 8 ans par exemple : http://www.tralalere.com/education/ressources/projets/gamecode-jeu-pour-apprendre-coder-creer-jeux-video
  • Catégorisation possible selon les compétences visées (source complète de la SIF : http://www.societe-informatique-de-france.fr/wp-content/uploads/2014/01/2014-01-CSP-programme-informatique-college.pdf)
    • Modéliser : utiliser un langage formel pour décrire un phénomène (exemple passer un nom au pluriel)
    • Abstraire : par exemple, en écrivant un programme qui permet de trouver la sortie d'un Labyrinthe, l’apprenant doit s'interroger sur la manière de représenter son labyrinthe. Il apprendre ainsi à abstraire une situation en gommant les détails non pertinents, à retrouver des invariants.
    • Projeter : un élève qui écrit un programme doit imaginer ce que ce programme fera
    • Réaliser : pour atteindre ces objectifs, il devra décomposer son projet en parties – par exemple un programme en fonctions, réaliser chaque partie, les valider (tests), identifier ses erreurs et les corriger. L'informatique est la technique où la boucle de test et de correction d'erreurs est la plus courte et la plus facile à mette en œuvre. L'erreur en informatique n'est, en outre, pas une faute qui dévalorise l'élève, mais une composante essentielle du processus de création.
    • Travailler en groupe : si les premiers exercices d'un élève sont souvent des activités individuelles, dès les premiers mois de l'apprentissage de l'informatique, les élèves réalisent des projets en groupe. Cela leur demande de négocier les objectifs et la répartition des tâches, d'expliquer leur travail et de comprendre le travail de leurs camarades.
    • Interagir avec un objet matériel : un élève n'écrit jamais un programme pour lui seul, ou pour son professeur, mais avant tout pour que ce programme soit exécuté par une machine, c'est-à-dire un objet matériel. un outil d'apprentissage peut viser une ou plusieurs de ces compétences
Outils de visualisation: survey très complet de 2013
@article{Sorva:2013:RGP:2543488.2490822,
  author = {Sorva, Juha and Karavirta, Ville and Malmi, Lauri},
  title = {A Review of Generic Program Visualization Systems for Introductory Programming Education},
  journal = {Trans. Comput. Educ.},
  issue_date = {November 2013},
  volume = {13},
  number = {4},
  month = nov,
  year = {2013},
  issn = {1946-6226},
  pages = {15:1--15:64},
  articleno = {15},
  numpages = {64},
  url = {http://doi.acm.org/10.1145/2490822},
  doi = {10.1145/2490822},
  acmid = {2490822},
  publisher = {ACM},
  address = {New York, NY, USA},
  keywords = {CS1, Introductory programming education, engagement taxonomy, literature review, notional machine, program dynamics, program visualization, software visualization},
}
Taxonomies des environnements de programmation et langages pour débutant - 2005
@article{Kelleher:2005:LBP:1089733.1089734,
  author = {Kelleher, Caitlin and Pausch, Randy},
  title = {Lowering the Barriers to Programming: A Taxonomy of Programming Environments and Languages for Novice Programmers},
  journal = {ACM Comput. Surv.},
  issue_date = {June 2005},
  volume = {37},
  number = {2},
  month = jun,
  year = {2005},
  issn = {0360-0300},
  pages = {83--137},
  numpages = {55},
  url = {http://doi.acm.org/10.1145/1089733.1089734},
  doi = {10.1145/1089733.1089734},
  acmid = {1089734},
  publisher = {ACM},
  address = {New York, NY, USA},
  keywords = {Human-computer interaction, computer Science education, learning, literacy, problem solving},
}
Programmation par démonstration
@article{Smith:2000:PEN:330534.330544,
  author = {Smith, David Canfield and Cypher, Allen and Tesler, Larry},
  title = {Programming by Example: Novice Programming Comes of Age},
  journal = {Commun. ACM},
  issue_date = {March 2000},
  volume = {43},
  number = {3},
  month = mar,
  year = {2000},
  issn = {0001-0782},
  pages = {75--81},
  numpages = {7},
  url = {http://doi.acm.org/10.1145/330534.330544},
  doi = {10.1145/330534.330544},
  acmid = {330544},
  publisher = {ACM},
  address = {New York, NY, USA},
}
@book{cypher1993watch,
  title={Watch what I Do: Programming By Demonstration},
  author={Cypher, Allen},
  year={1993},
  publisher={MIT Press}
}
@inproceedings{guibert2003teaching,
  title={Teaching and Learning Programming with a Programming by Example System},
  author={Guibert, Nicolas and Girard, Patrick},
  booktitle={International Symposium on End User Development},
  year={2003}
}
@inproceedings{smith1993pygmalion,
  title={Pygmalion: An executable electronic blackboard},
  author={Smith, David Canfield},
  booktitle={Watch what I do},
  pages={19--48},
  year={1993},
  organization={MIT Press}
}
@inproceedings{Frison2015,
  author = {Frison, Patrice},
  title = {A Teaching Assistant for Algorithm Construction},
  booktitle = {Proceedings of the 2015 ACM Conference on Innovation and Technology in Computer Science Education},
  series = {ITiCSE '15},
  year = {2015},
  isbn = {978-1-4503-3440-2},
  location = {Vilnius, Lithuania},
  pages = {9--14},
  numpages = {6},
  url = {http://doi.acm.org/10.1145/2729094.2742588},
  doi = {10.1145/2729094.2742588},
  acmid = {2742588},
  publisher = {ACM},
  address = {New York, NY, USA},
  keywords = {algorithm visualization, direct manipulation, novice programming environment, programming by demonstration},
}
Comparaison des Travaux pratiques en classe et des TP à distance
@article{Corter:2004bf,
  author = {Corter, J E and Nickerson, J V and Esche, S K and Chassapis, C},
  title = {{Remote versus hands-on labs: a comparative study}},
  journal = {Frontiers in Education {\ldots}},
  year = {2004},
  pages = {F1G--17--21 Vol. 2}
}
Un historique intéressant de la didactique de l'informatique

http://www.adjectif.net/spip/spip.php?article381