Introducing novice programmers to functions and recursion using computer games

Bobby Law

Research output: Chapter in Book/Report/Conference proceedingConference contribution

2 Citations (Scopus)
187 Downloads (Pure)

Abstract

Having got to grips with the basic building blocks of programming, novice programmers must progress to more challenging concepts such as functions and recursion. To get the most from their programming journey novice programmers must attempt to bridge the gap between the solid foundation they have built and the more challenging programming concepts that will help expand their programming armoury. Functions and recursion can present a stumbling block for the novice programmer as they can be difficult to visualise, especially, recursion. The novice programmer can find it difficult to understand the flow of control of a program and this can be compounded by having to understand the backward flow of control of recursion. This unfamiliarity with recursive activities, like Alice, can lead the novice programmer down a rabbit hole of confusion from which they find it difficult to escape, shattering their confidence.
The stumbling block for novice programmers is building a mental model of the program stack and subsequently identifying the backward flow of control from the last invocation of the recursive method.
Novice programmers can find themselves caught in a web of code that helps little with their ability to understand this powerful programming technique. Hence, the ability to visualise such a technique could open the door to better understanding for the novice programmer. There are many computer games available which are designed to teach programming concepts using a visual interface, requiring the programmer to apply problem solving and computational thinking to derive a solution to the puzzle posed. Such programs offer a way to visualise abstract concepts such as recursion and offer a solution mechanism that does not require the novice programmer to implement their solution steps using a programming language. Offering a program language agnostic approach, the novice programmer, can build an understanding of the concept of recursion such that they should be able to develop an algorithm that could be programmed using any programming language.
This paper will discuss an ongoing attempt to introduce functions and recursion to second year Game Design students undertaking a C++ game development module.
Original languageEnglish
Title of host publicationECGBL 2018 12th European Conference on Game-Based Learning
EditorsMelanie Ciussi
PublisherAcademic Conferences and Publishing International Limited
Pages325-334
Number of pages10
ISBN (Electronic)9781911218999
ISBN (Print)1911218999
Publication statusPublished - 4 Oct 2018

Publication series

NameProceedings of the European Conference on Games-based Learning
Volume2018-October

Keywords

  • Programming
  • Problem Solving
  • Recursion
  • Functions
  • Methods
  • Procedures

ASJC Scopus subject areas

  • Software
  • Artificial Intelligence
  • Education
  • Human-Computer Interaction
  • Control and Systems Engineering
  • Computer Networks and Communications
  • Computer Graphics and Computer-Aided Design

Fingerprint

Dive into the research topics of 'Introducing novice programmers to functions and recursion using computer games'. Together they form a unique fingerprint.

Cite this