• Aucun résultat trouvé

Cadre théorique

Dans le document Université de Montréal (Page 102-106)

CHAPITRE 4 - PRATIQUES EFFECTIVES DE PROGRAMMATION VISUELLE CHEZ DES ÉLÈVES DU

4.2 Cadre théorique

L’approche socioconstructiviste offre des assises théoriques fort utiles pour l’étude des pratiques effectives de programmation d’élèves du primaire. C’est donc cette approche qui a servi de cadre d’analyse à notre étude. Lev Vygotsky, figure emblématique du socioconstructivisme et père de la théorie historico-culturelle, a souligné l’apport de la collaboration dans l’apprentissage. Le passage de l’apprentissage seul à l’apprentissage avec autrui, et vice-versa, a un effet significatif sur le développement et la réussite de l’activité intellectuelle (Vygotsky, 1934). Cette approche met en lumière les dynamiques inhérentes à la collaboration ; par exemple, Wood, Bruner et Ross

26 Nous entendons par « pratiques effectives » les pratiques que les élèves mettent en œuvre concrètement, dans un contexte authentique.

(1976) avancent que malgré les capacités naturelles de résolution de problème des enfants, il convient de tenir compte de l’apport d’autres pairs plus compétents pour l’assister dans le processus. D’ailleurs, cette disparité des compétences individuelles évoque l’asymétrie de dyades ou d’équipes, référant ici à la notion de conflit sociocognitif, une composante majeure de l’approche socioconstructiviste. Ce conflit représente en fait deux ou plusieurs points de vue différents pour la résolution d’un même problème, se traduisant à terme par un apprentissage par la voie de l’autre (ou des autres). Notons ici que l’intérêt principal de cette confrontation des idées est l’effet sur l’apprentissage, puisque selon Mugny et Doise (1978), les performances effectuées en équipe surpassent les performances que chacun des individus aurait pu offrir seul, à l’instar de Vygotsky, qui affirmait qu’en collaboration « l’enfant peut toujours faire plus et résoudre des problèmes plus difficiles que lorsqu’il agit tout seul » (Vygotsky, 1997).

La programmation, fortement associée au processus de résolution de problème, est définie comme étant l’action d’écrire, à l’aide d’un langage informatique, une série d’actions qui sont interprétées puis exécutées par un ordinateur (Blackwell, 2002). Le programme permet donc de médiatiser les interactions entre l’humain et l’ordinateur. Considérant la nature de l’agent de traitement de l’information (l’ordinateur), il est essentiel que les informations transmises soient dépourvues de toute équivoque ou ambiguïté (Hardouin-Mercier, 1974; Turski, 1978). Par ailleurs, il n’est pas rare d’entendre dans le discours francophone les termes programmer et coder employés de façon synonymique. Or, nous suggérons de différencier ces deux procédés : le premier, programmer, consiste à réaliser une série de consignes organisées de façon structurée, c’est-à-dire un algorithme, et le deuxième, coder, consiste à traduire en quelque sorte les consignes en langage naturel vers des termes qui pourront être compris par l’ordinateur. Il est donc vrai de dire qu’il faut coder pour programmer, mais l’inverse ne l’est pas. Les programmes, qui peuvent être rédigés à l’aide de différents langages informatiques27, fonctionnent à partir d’opérateurs variés. Par exemple, il est possible d’établir des conditions, des boucles, des variables booléennes (comme vrai et faux), etc. Il est aussi possible d’assembler plusieurs de ces

opérateurs en un tout qui permet d’effectuer une certaine opération : on parle alors de fonction.

L’agencement de ces opérateurs et codes permet la création d’algorithmes, qui eux permettent la création de programmes entiers dont le niveau de complexité peut varier grandement en fonction du contexte.

Bien que la programmation soit une activité des plus propices à la mobilisation, voire au développement, de nombreuses compétences et processus cognitifs comme la résolution de problèmes (Barr et Stephenson, 2011; Komis et Misirli, 2013; Lai et Yang, 2011) et la collaboration (Mauch, 2001; Nugent et al., 2009; Petre et Price, 2004), il nous semble que sa complexité inhérente puisse rendre son utilisation au primaire parfois difficile à concevoir. Or, avec l’avènement d’une multitude d’applications et de sites internet voués à l’apprentissage ludique de la programmation (i.e. Scratch, Code.org, Swift Playgrounds, etc.), nous pouvons sans doute parler d’une démocratisation de cette activité, à travers les âges.

Les deux principales adaptations permettant de rendre la programmation accessible à des enfants de 6 à 12 ans sont, d’une part, la programmation visuelle, et d’autre part, la programmation tangible. Alors que la première permet de représenter les lignes de codes par des boîtes unies à l’aide de liens (Green et Petre, 1996), l’autre consiste en l’animation de dispositifs robotiques à l’aide de la programmation, ce qui permet aux apprenants de voir concrètement le résultat de leur programme, donc, d’avoir une rétroaction immédiate quant à la validité (ou la non-validité) de leur programme. Cette dernière est d’ailleurs associée au maintien de la motivation et au développement d’une certaine confiance vis-à-vis de la programmation considérant qu’elle peut être, dans sa forme écrite, très complexe et peu motivante pour des élèves du primaire (Pullan, 2013). Enfin, outre le fait de représenter un objet d’apprentissage (apprendre la programmation), elle peut aussi être un outil (apprendre avec la programmation). Romero, Lepage et Lille (2017) déclinent ces deux volets en cinq types d’usages inscrits dans un continuum allant de la consommation passive à la co-création participative de connaissances, à laquelle les auteurs associent un potentiel socioconstructiviste important (figure 9).

Figure 9. – Types d’usages de la programmation (Romero, Lepage et Lille, 2017).

En développant leur connaissance des concepts de programmation, les élèves sont en mesure de l’utiliser en vue d’apprentissages n’étant pas associés à la programmation, notamment en procédant à la création de contenu, seuls ou en collaboration avec des pairs.

4.2.1 Les pratiques de programmation : aperçu de la littérature

Plusieurs études empiriques ont été réalisées en lien avec l’utilisation de la programmation en contexte pédagogique. Il est notamment question d’impacts sur la compétence en résolution de problèmes (Bugmann et Karsenti, 2018a; Karsenti, Bugmann, et al., 2018; Komis et Misirli, 2011), en collaboration (Moreno-León et Robles, 2015; Pinto-Llorente et al., 2017) ou encore sur la motivation (Sáez-López et al., 2016). Or, avant de poser la question des impacts de la programmation, il semble pertinent et nécessaire de chercher à comprendre comment elle se déroule au primaire. C’est la raison pour laquelle nous nous sommes intéressé aux pratiques effectives d’élèves.

Mis à part la taxonomie des types de tâches de programmation proposée par Bower (2008), qui offre une perspective théorique et macroscopique peu adéquate pour l’enseignement primaire, il a été difficile de trouver des études proposant des classifications ou des catégorisations des pratiques associées à la programmation au primaire. En revanche, les travaux de Ruf, Berges et Hubweiser (2015) offrent des pistes intéressantes propices à une transposition dans le contexte de l’enseignement primaire. En effet, ils ont recensé puis analysé des manuels ou cours d’apprentissage de la programmation pour l’enseignement secondaire (n=4) et universitaire

des programmeurs novices, ce qui facilite l’adaptation pour des élèves plus jeunes. Parmi les 1098

« tâches » recensées, les auteurs ont été en mesure d’établir 11 types différents28 (tableau 7).

Type de tâche Écrire le code

Écrire le code en utilisant un code donné Ajuster, étendre ou compléter le code Optimiser le code

Déboguer le code

Définir les bonnes conditions pour le code Tester le code

Transformer le code Tracer/expliquer le code

Spécifier un problème pour le code donné Dessiner un diagramme pour le code

Tableau 7. – Types de tâches de programmation (Ruf, Berges et Hubweiser, 2015)

Il s’avère que par sa constitution, et le fait qu’elle résulte de l’analyse d’ouvrages pédagogiques destinés à des programmeurs novices, cette classification de Ruff et ses collègues (2015) est très pertinente à la réalisation de nos travaux avec des élèves au primaire. L’objectif de cette étude est donc de déterminer, en s’appuyant sur les travaux des auteurs précités, les pratiques effectives de programmation visuelle d’élèves du primaire lors d’activités de programmation visuelle et tangible.

Dans le document Université de Montréal (Page 102-106)