Mattia A. Fritz
TECFA, Université de Genève
Combien pourra-t-il reconstituer de cierges avec les neuf bouts de cierges qu'il a récupérés ce matin dans l'abbatiale ?
Au total, il récupère 4 cierges !
Implémentation en code JavaScript.
//Set the initial number of pieces available
var numberOfPieces = 9;
//How many pieces are needed for a candle?
var piecesRequired = 3;
//Set a variable to be incremented for each new candle
var totalCandlesObtained = 0;
//Go on until the number of candles can be divided by the pieces
while (numberOfPieces / piecesRequired >= 1) {
//At each cycle define the new number of candles
numberOfPieces = Math.floor(numberOfPieces / piecesRequired);
//Add it to the previous total
totalCandlesObtained += numberOfPieces;
}
//Print the result
console.log('TOTAL:' + totalCandlesObtained + ' candles');
Récursivité
Au total, il obtient {{totalCandles}} cierges.
Dans la littérature scientifique, les différentes définitions de la pensée computationnelle peuvent être placées sur un continuum entre deux pôles opposés :
— Aho 2012, p. 832
Traduction libre
— Denning, 2016, p. 33
Traduction libre
— Fritz, 2019
Définition provisoire
L'informatique regarde aux sciences sociales, et les sciences sociales utilisent de plus en plus l'informatique.
— Fritz & Schneider, 2019
Diviser un problème complexe ou un système en petites parties plus simples à gérer.
/*
* Use pseudo-code to identify the main steps to solve the problem
*/
// Set the initial state of the game
// Apply the main rules of the game
// Update the score and check if the game is over
Identifier des similarités entre problèmes ou à l’intérieur du même problème donné.
function1 () {
console.log("Hello world!")
}
function2 () {
console.log("Hello JavaScript!")
}
// Identify the pattern and apply it
function hello(name) {
console.log("Hello " + name + "!")
}
hello("world");
hello("JavaScript");
Se focaliser exclusivement sur les parties importantes du problème.
let learner = {
nickname: "Computational Geek",
initialLevel: "beginner",
currentLevel: "intermediate",
aimedLevel: "advanced",
chanceOfSuccess: 0.8
}
Trouver une solution à travers une règle composée par une série d’étapes.
// Reverse the order of a word
function reverseWord(word) {
return word.split('').reverse().join('');
}
reverseWord("JavaScript"); //Donne "tpircSavaJ"
Ces informations ne sont pas suffisantes pour apprendre et tirer profit de la pensée computationnelle. Il est nécessaire de combiner les connaissances déclaratives et procédurales.
Il existe principalement trois modalités d'enseignement de la pensée computationnelle qui peuvent être combinées :
Plus de recherche nécessaire sur bénéfices et transfert entre
différentes modalités.
Activités qui n'utilisent pas un dispositif numérique, mais une modélisation abstraite du fonctionnement.
Environnements graphiques qui emboîtent des instructions en forme de briques.
Capture d'écran de Scratch. Crédits : MaranerG.isera-rovereto, CC BY-SA 4.0, via Wikimedia CommonsUtiliser une notation conventionnelle destinée à formuler des algorithmes et produire des programmes informatiques qui les appliquent.
* Pas dans toutes les filières
post_id | thumb |
---|---|
6272 | 0 |
6272 | 1 |
6272 | 1 |
6272 | 0 |
Un simple clique...
Se trouver entre deux systèmes computationnels complexes et distincts, en plus distribués !
Les concepts abordés dans cette présentation sont traités de manière plus exhaustive dans Initiation à la pensée computationnelle avec JavaScript sur EduTechWiki.
EduTechWiki est un wiki sur la technologie éducative hébergé est maintenu par TECFA, une unité de l'Université de Genève, depuis 2006.