Le codage pour enfant

Porteuse du projet : Léa MAUFFREY

Date : 2019/2020

Contexte : Mémoire

Fichiers : [...]

Liens : [...]

Synthèse

[...]

Fiche technique

Introduction / présentation du sujet

Mon sujet de mémoire porte sur l’importance de l’apprentissage du codage et des nouvelles technologies aux enfants.

Aujourd’hui la technologie est omniprésente, mais reste un domaine compliqué et les objets ne sont pas modifiables, ce sont des objets fermés ce qui empêche d’en comprendre le fonctionnement et de se l’approprier. Les formes et fonctions de l’objet sont imposées par le fabriquant et le marché. On considère souvent notre génération et encore plus les nouvelles générations comme des « digital native » mais l'utilisation se limite la plus part du temps à la consommation plus qu'à la création de contenue numérique. D'après Mitch Resnick l'un des créateurs du logiciel Scratch c'est comme savoir lire mais pas écrire. L’objectif et à la fois de démystifier l’informatique, de s’autoriser la modification des objets informatiques. De donner aux enfants un moyen de reprendre le contrôle de leur environnement et de prendre en main un outil utile et d’en faire un usage créatif et ré-enchanter le numérique grâce au méthode d’apprentissage alternative.

Plusieurs réformes sur l'apprentissage du numérique à l'école sont mise en place mais c'est une matière entière à créer et cela pause des problèmes en terme de formation des professeurs et de l'utilisation d'outils pédagogiques.

Problématique

Existe-t-il des moyens plus efficaces d’enseigner par l’apprentissage du code ? L’apprentissage du code permet-il d’enseigner des compétences plus larges ? Comment mettre en œuvre des systèmes qui permettent de faciliter l'apprentissage du code ?

Etat de l'art

https://docs.google.com/document/d/1pKF9WANqkKmm_f9-9Rlf8wbGAkZ7YmuZALsIBexld0Y/edit?usp=sharing

Propositions

Mon objectif est de créer des dispositifs servant de support à l'apprentissage du codage et de l'informatique par l'interdisciplinarité. Du point de vue du design, je cherche à trouver des moyens formels pour apprendre à coder tout en sensibilisant à la pensée informatique et au enjeux du numériques. Dans cette optique, l'apprentissage par l'interdisciplinarité permettrai non seulement de s'exercé dans une autre discipline en apprenant le code, mais aussi de commencé cette apprentissage sur des bases familières ou au moins plus engageantes.

Mise en place d'atelier de création numérique et d'initiation à Scratch avec des enfants de 9 à 13 ans

Réalisation : https://scratch.mit.edu/studios/25159112/

Création de dispositifs d'aide à l'apprentissage du langage CSS à l'aide de mini jeux créer sur processing.

C'est code permettent d'illustré les fonctionnalités de bases de CSS, la couleur pour le caméléon, la taille pour le poisson et la positions pour le scarabée. il est possible de faire varié les fonctionnalités grâce à des potentiomètre.

Code Processing

// librairie
import processing.serial.*;
// variables
PImage img;
int s=80;//saturation
int v=100;//valeur
String capteur = "";
String css1 = " .caméléon {";
String css2 = " color : ";
String css3 = " }";
Serial myPort; // Créer une serial class pour les data Arduino
float val; // Data recu part Arduino
int[] serialInArray = new int[3];
int serialCount = 0;
boolean firstContact = false;
void setup() {
size(700, 500);
img = loadImage("caméléon.png");
// initialisation du port série
printArray(Serial.list());// liste de tous les ports séries disponibles
String portName = Serial.list()[0]; // Afficher les donées arduino
myPort = new Serial(this, portName, 9600);
}
void draw() {
noStroke();
colorMode(HSB, 360, 100, 100);
fill(val, s, v); // donnée à la teinte la valeur du capteur arduino
rect(0, 0, 500, 500);
image(img, 0, 0, 500, 500);
println(val);
fill(#cccccc);
rect(500, 0, 200, 500);
fill(#ffffff);
text(css1, 520, 50);
text(css2, 530, 65);
text(val, 575, 65); //écrire la valeur du capteur arduino
text(css3, 520, 80);
}
void serialEvent(Serial myPort) {
int inByte = myPort.read();
if (firstContact == false) {
if (inByte == 'A') {
myPort.clear();
firstContact = true;
myPort.write('A');
}
}
else {
serialInArray[serialCount] = inByte;
serialCount++;
if (serialCount > 2 ) {
val = serialInArray[0];
// afficher les données arduino dans la console
println(val);
myPort.write('A');
serialCount = 0;
}
}
}

Code Arduino

http://www.arduino.cc/en/Tutorial/SerialCallResponse
*/
int firstSensor = 0; // first analog sensor
int secondSensor = 0; // second analog sensor
int thirdSensor = 0; // digital sensor
int inByte = 0; // incoming serial byte
void setup() {
// start serial port at 9600 bps:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
pinMode(2, INPUT); // digital sensor is on digital pin 2
establishContact(); // send a byte to establish contact until receiver responds
}
void loop() {
// if we get a valid byte, read analog ins:
if (Serial.available() > 0) {
// get incoming byte:
inByte = Serial.read();
// read first analog input, divide by 4 to make the range 0-255:
firstSensor = analogRead(A0) / 4;
// delay 10ms to let the ADC recover:
delay(10);
// read second analog input, divide by 4 to make the range 0-255:
secondSensor = analogRead(1) / 4;
// read switch, map it to 0 or 255L
thirdSensor = map(digitalRead(2), 0, 1, 0, 255);
// send sensor values:
Serial.write(firstSensor);
Serial.write(secondSensor);
Serial.write(thirdSensor);
}
}
void establishContact() {
while (Serial.available() <= 0) {
Serial.print('A'); // send a capital A
delay(300);
}
}

Création de dispositifs d'aide à l'apprentissage du langage HTML en réalité augmenté.

Ce dispositif se compose d'un jeu de carte avec sur chacune d'elles les principales classe du langage HTML. La réalité augmenté fait apparaître sur chacune des cartes une matriochka qui lui est associé. Grâce aux matriochkas, il est possible de reconstituer une arborescence et donc comprendre la structure d'un code HTML.

Création d'une histoire interactive.

Pour chaque page, on a une illustration et un code associé.

// variables globales
PImage img0,img;
char letter;
String words = "";
void setup() {
size(1200, 1920);
// texte
textSize(36);
fill(#000000); // noir
//charger le chat
//dessin du chat
img0 = loadImage("ChatM.png");
}
void draw() {
background(#ffffff);
// dessiner le chat
image(img0, 450, 640,300,320);
// dessin du texte
fill(#26617f); // bleu
text(words, 100, 100, 1200, 1000);
textSize(150);
// dessin du motif superposé au chat
superposerMotif();
// effacer tout si on appuye sur ENTER
if (key == ENTER) {
fill(255);
rect(0, 0, width, height);
//réinitialiser la chaine de caractères
words ="";
// dessiner le chat
image(img0, 450, 640,300,320);
}
}
void keyTyped() {
// The variable "key" always contains the value
// of the most recent key pressed.
if ((key >= 'A' && key <= 'z') || key == ' ') {
letter = key;
words = words + key;
// Write the letter to the console
println(key);
}
}
void superposerMotif() {
if (words.equals("soleil")) {
img = loadImage("SoleilM_1.png");
image(img, 140, 270, 920, 920);
}
if (words.equals("nuage")) {
img = loadImage("NuageM.png");
image(img, -300, -100, 1900, 1920);
}
if (words.equals("vent")) {
img = loadImage("VentM.png");
image(img, -460, -600, 2500, 3000);
}
if (words.equals("souris")) {
img = loadImage("SourisM.png");
image(img, 0, 0, 1200, 1920);
}
if (words.equals("chat")) {
img = loadImage("Chat2M.png");
image(img, 448, 638,305,325);
}
}

Pour mon macro-projet j'envisage de créer un dispositif narratif. L'idéale serai d'avoir une histoire dont on peut modifier le contenu en codant.

Fiche arts, techniques & civilisations

https://docs.google.com/document/d/1cTTTeFs6xjzgZD_wKgPwZT4O595kYgCOL3Sm0GjJJ-I/edit

Fiche de lecture

[...]

Rapport de stage

[...]

Entretien

[...]

Lexique

[...]

Bibliographie

Rikimbili, Ernesto Oroza

Naissance d'une pédagogie populaire, Élise Freinet

Qu’est-ce que l’éducation populaire ? http://www.education-populaire.fr/definition/

Petit Lexique des pédagogies “différentes”, Antonella Verdiani, https://www.colibris-lemouvement.org/magazine/petit-lexique-pedagogies-differentes

Réenchanter le monde, la valeur de l'esprit contre le populisme industriel, Bernard Stiegler

Un manifeste Hacker

Question Numérique : promesse / transition (2013/2014-2015)

Pour un humanisme numérique, Milad Douheihi

“Quelle informatique enseigner à l’École, au Collège et au Lycée et pourquoi ?” par Gilles Dowek https://www.youtube.com/watch?v=8n7Z8fDKe3A

Pourquoi apprendre le codage informatique aux enfants ?, Denis Peiron, https://www.la-croix.com/Famille/Education/Pourquoi-apprendre-codage-informatique-enfants-2016-11-29-1200806682

Pharmakon, Ars industrialis, http://www.arsindustrialis.org/pharmakon

Let's teach kids to code, Mitch Resnick, https://www.ted.com/talks/mitch_resnick_let_s_teach_kids_to_code#t-13180

Références