Learning to program is hard, everyone that has learned programming can attest to that. Contrary to topics like mathematics and language which we have been teaching for hundreds of years, programming education is relatively new. Therefore there are many open questions such as: what is the best age to learn programming? what concepts confuse children most? how should a teacher teach programming if they do not know a lot about it themselves. These are the research questions we aim to answer.
One of the topics we study are ‘misconceptions’, specific misunderstandings learners have while programming. For example, some children---and even some students---think that a variable can hold multiple values, or that a variable remembers old values. We study how these misconceptions occur and what we can do in teaching to resolve them. We also build new and experimental programmering environments to explore if they can be used to lower the risk of misconceptions.
Another important topic we focus on is how to teach programming. Some people believe that children will naturally pick up programming and adults should not stand in their way too much. Other people believe children learn best when they are explained important concepts in detail. These debates have been explored in mathematics and language and other topics extensively, but in programming we are still looking for the best didactic strategies.
More information about the research done at the Programming Education Research Lab can be found on the website of PERL.