My research aims to find cost-effective ways of teaching computer science in resource-constrained schools. Before designing my research, I conducted a literature review of computer science education theory.

Notable theorists on computational thinking in early education

Papert’s influence on computer science education

In computer science education literature, it’s impossible to escape Papert’s contributions to the field. He fathered the constructionist approach to education, what is now the MIT Media Lab, and the Logo programming language.

Papert and constructionist education movement

Constructionist learning is a form of experiential learning, in which students learn by participating projects. Teachers facilitate the connection of ideas and concepts by coaching students rather than lecturing them.

Papert on introductory computer programming languages

Papert wrote that an instructional computer programming language should have a “low floor, high ceiling, wide walls.” In essence, a language should allow students to begin quickly, build complex projects and support a wide variety of project types.

Wing on Computational Thinking

In her influential article on computer literacy, Jeanette Wing argues that computational thinking should be taught alongside other basic skill sets like reading and writing.

Teaching computer science in 2017

This section reviews the relevant literature to teaching computer science in modern classrooms.

Pair programming and secondary school girls’ enjoyment of programming and the subject Information Technology (IT) 

The article can be found here.

This qualitative study found that girls enjoyed programming more when they worked in pairs. The researchers found:

  • Girls were more likely to enjoy programming. (Werner et al., 2004b)
  • Female computer science students are more likely to underestimate their abilities. However, the confidence gap is reduced when female students program in pairs (Margolis & Fisher, 2002; Werner et al., 2004b).
  • Females generally have lower retention rates in computing-related majors. Pair programming increases retention rate for both males and females.

The influence of a game-making project on male and female learners’ attitudes to computing

This quantitative study explores student engagement in learning computer science principles through a game-making project. They worked with 225 students, testing their abilities before and after the game-making project. Surprisingly, they found that the project made students less likely to study computer science in the future.

Game-making as a means of teaching computer science

The authors conclude: “There was a significant difference in self-reports of intrinsic motivation and deep learning strategy use; children who made their own games enjoyed it more and reported using deeper learning strategies than those who played existing games.”

The Game: Neverwinter Nights and the Adventure Autor plug-in

This study employs complex, fantasy, role-playing game for computers called Neverwinter Nights. The study authors developed a module, Adventure Author, which allows students to create their own storylines within the game. The game-designing software employs the CARSS framework, which requires students to consider the context, activities, roles, stakeholders and skills required in game design.

Shortcomings of using resource-intensive software to teach computer programming

As stated on their website, this program requires modern computers with high performance graphics cards. Unfortunately, this program is likely too resource-intensive for the computers in developing countries.

Understanding problem solving behavior of 6–8 graders in a debugging game

This study examines the efficacy of teaching debugging as a means of teaching computer programming concepts.

Debugging requires a deeper understanding than writing new code. However, 85% of studies investigated learning outcomes by teaching concepts.

A study by Kinnunen and Simon suggested that college freshmen experience frustration during debugging. Since debugging can often be discouraging, its imperative to equip students with the proper toolkits to reduce churn within computational degrees.

Scratch is a visual programming language designed to get students to “a-ha” moments quickly. By employing blocks, which serve as ready-to-use blocks of code, Scratch is designed to prevent students from making syntactical errors. However, students often have trouble diagnosing errors when their code does not work, as the program does not have much functionality for debugging.

This study uses a program called BOTS, in which students diagnose and solve a series of progressively-harder problems.