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.
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 language | English |
---|---|
Title of host publication | ECGBL 2018 12th European Conference on Game-Based Learning |
Editors | Melanie Ciussi |
Publisher | Academic Conferences and Publishing International Limited |
Pages | 325-334 |
Number of pages | 10 |
ISBN (Electronic) | 9781911218999 |
ISBN (Print) | 1911218999 |
Publication status | Published - 4 Oct 2018 |
Publication series
Name | Proceedings of the European Conference on Games-based Learning |
---|---|
Volume | 2018-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