In education, there is and has always been debate about how to teach. One of these debates centers around the role of the teacher: should their role be minimal, allowing students to find and classify knowledge independently, or should the teacher be in charge of what happens in the classroom, explaining students all they need to know? These forms of teaching have many names, but the most common ones are exploratory learning and direct instruction respectively. While the debate is not settled, more and more evidence is presented by researchers that explicit direct instruction is more effective than exploratory learning in teaching language and mathematics and science. These findings raise the question whether that might be true for programming education too. This is especially of interest since programming education is deeply rooted in the constructionist philosophy, leading many programmers to follow exploratory learning methods, often without being aware of it. This talk outlines this history of programming education and additional beliefs in programming that lead to the prevalence of exploratory forms of teaching. We also explain the didactic principles of direct instruction, explore them in the context of programming, and hypothesize how it might look like for programming.
Felienne is an assistant professor at Delft University of Technology, in the Software Technology department where she researches programming education for elementary school children. What cognitive skills are needed for programming? What misconceptions can occur when children are learning to program? These are some of the questions that intrigue Felienne. She runs the project for students, and has developed campuswide programming education at TU Delft. She is also one of the hosts of SE radio, one of the most popular software engineering podcasts on the web. If she is not coding, blogging or teaching, she is probably dancing Lindy Hop, running or playing a (board)game.