Par Hugo G. Lapierre, chargé de cours en intégration des technologies à la pratique enseignante à l’Université du Québec à Montréal
Programming is a discipline that occupies an increasingly important place in the curriculum of elementary and secondary schools in Quebec, whether in the form of concentrations, extracurricular activities, or even, more indirectly, through the use of robotics to contextualize learning in mathematics or science.
However, although programming is gaining in popularity, its teaching remains unknown and can prove to be a real challenge for teachers. As such, the article by Brown and Wilson (2018) highlights practical advice, taken from a review of the scientific literature in the field of programming didactics.
These tips, which are quite simple, are likely to promote student learning. Among all the advice offered by these authors, the five most essential have been retained and are presented here.
1- Believe in the ability of all your students to learn to program
Programming is a learning known to be difficult and often associated with very contrasting performance in students, which may suggest that some have innate skills for programming and others not.
It has even been proposed that a "programming gene" ("geek gene”) Can explain the ease of some students for programming (and, conversely, the difficulty of others who are devoid of this gene). However, this hypothesis has received no scientific support to date and has even been strongly criticized because of its simplistic and deterministic nature: according to several authors it is the most lasting myth, the most widespread and the most harmful to computer learning.
In this sense, the first piece of advice is simply to believe in the ability of all students to learn to program. Learning to program is not innate and, as with all learning, programming skills can develop and improve through practice.
It therefore appears risky to believe that “some children can succeed and others cannot”, because adhering to this false belief can unfortunately negatively influence educational interventions intended for students who have more difficulty, and even hinder their learning.
2- Do not only work on the “writing” aspect of programming
The second tip refers to the importance of not only working on skills related to writing programming. Indeed, although the literature highlights significant challenges related to the syntax, semantics and design of functional and efficient lines of code, it is also important to develop the skills of learners in reading code as well as debugging (debugging), two skills too often neglected in the first apprenticeship of novices, but nevertheless essential.
To do this, it is necessary to develop and plan activities where students read and comment on non-functional or non-optimal lines of code in order to correct them, in parallel with more traditional activities where students write code. .
3- Plan programming sessions with a peer
Peer programming is a programming practice where two programmers share a single computer. This type of dyad programming is not only a programming practice often employed in the workforce, but research indicates that it is also a good way to learn.
Indeed, the pupils who work in pairs can cooperate during the practical exercises, which is likely to encourage them more. They can, in addition, help each other to clarify the other's misunderstandings during the task. This has the effect of contributing to the learning of both parties: the weaker student can benefit from individual explanations received from the stronger, while the stronger student consolidates his learning by having to explain his thinking, which requires him to reactivate notions that he may not have thought of for a long time.
Brown and Wilson (2018) also indicate that when dyad programming is used, it is important that all students are placed in a dyad, and not just learners who are struggling, so that no one feels isolated.
From a practical point of view, this advice is all the more interesting, because at the same time it reduces the amount of material needed in the classroom, which often represents a significant constraint. However, it is not recommended to team up three learners per computer or robot, as the third member is often isolated and does not take an active part in the task.
4- use live coding
In addition to the presentation of pre-produced lines of code via slides or in an educational booklet, teachers should also try, as often as possible, to write lines of code in real time in front of their students. This teaching strategy thus allows learners to observe how an expert diagnoses and corrects his errors as he goes along, something that novices have a great need to do, but which is unfortunately absent from most textbooks.
This strategy also has the advantage of slowing down teachers who often tend to present the code too quickly, which can cause their audience to disengage. In addition, this makes it possible to raise specific questions in the students who could, for example, seek to understand in real time the reasoning behind the use of one function rather than another.
5- Stick to a single programming language during learning
Finally, the last tip is linked to a basic principle in education that applies to several areas: the transfer is only done with a master's degree. Thus, it appears preferable that the teacher selects a single programming language and stick to it until the learners have made sufficient progress before introducing a second or even changing the language. The literature seems to indicate that the transfer from one programming language to another, when introduced too early in the learning process, is likely to confuse students and contribute to eroding their confidence.
Do you do programming with your students or do you use robotics to contextualize learning? Share your experience and your projects with us by writing to email@example.com.
Complete reference of the popularized text : Brown, NC, & Wilson, G. (2018). Ten quick tips for teaching programming. PLoS computational biology, 14 (4), e1006023.
In addition: Read the article Integrating educational robotics into the classroom by Hugo G. Lapierre, published in Specter, the magazine of the Association for the teaching of science and technology in Quebec.