School of Science and Technology 科技學院
Computing Programmes 電腦學系

A Mobile App for Learning Computational Thinking

Matthew Tsz Kin CHEUNG, Henry Wai Hang YIU, Tintin Lok Tin HO

  
ProgrammeBachelor of Computing with Honours in Internet Technology
SupervisorDr. Keith LEE
AreasE-learning
Year of Completion2019

Objectives

Computational thinking skill is an important skill for everyone, giving us the confidence to solve difficult problems efficiently and creatively. This critical skill can also help children make a better decision and solve a large complex task.

The aim of this project is to create an attractive mobile game, which involves programming virtual robots and collaborative problem solving, for children to improve their computational thinking skill through practicing programming theory. This project not only stimulates interest and motivation for learning by a gamification learning approach, but also improves children's communication skill by allowing children to share their views and to explore their leadership skill.

To achieve the aim, the main objective of the project is to develop a mobile game that can provide a platform for children to enhance their computation thinking skill.

The project has defined a number of sub-objectives as follows:

  • Design and implement a visual programming environment to control a robot to complete the task. Players are required to apply programming theories to control the robot in the game.
  • Design and implement a game client. The game client will be created in Godot engine and it is built for Android and Web.
  • Design different game levels to teach programming theories. Users can follow the guidelines in the game and learn different types of ways to finish the game.
  • Design and implement a backend server. The game will support with a backend server which connects with database and manages data between different users.

Video Demonstration

Background and Methodology

Background

A study suggests programming is a good way to strengthen computational thinking. However, according to a research, there are several factors which make programming hard to introduce to children. First, programming cannot raise children interest, second, it is hard for children to master the syntax, and third, there is no sufficient guidance and encouragement.

Techniques and technologies used

From the above reasons, this application has applied a block-based programming approach to create an attractive game. Godot Engine, block-based programming, and MagicalVoxel have been used in the project.

Godot

A cross-platform game engine which can create both two-dimensional and three-dimensional games.

Block-based programming

Blocks of command for children to choose, instead of memorizing the programming syntax.

MagicaVoxel

A free 3D modeling software based on voxel assembly and with a user-friendly interface.

System architecture

The system has consisted of three components: client, server, and the data store. The responsibilities of different components are shown as below.

Figure 1: The system architecture of Robocook (The classic 3-tier client-server architecture)

 

System Implementation

 

The whole game has consisted of a set for single-player and then another set for multi-player. Each grouped into a number of chapters, and each chapter will teach players a single programming concept.

In each chapter, players are required to move different blocks and to complete different tasks with a correct logic.

Table 1: Example of some chapters and their topics

Figure 2: Chapter 1 – Sequential

Figure 3: Chapter 2 – Iteration

Figure 4: Chapter 3 – Branching

In each chapter, there are different levels. Each level is actually a programming puzzle for players to solve. When the difficulty of the chapter increases, the game will be more challenging to complete.

Figure 7: Showing difficulty progression in the game

Figure 8: Interface in the game

Evaluation

Figure 9: The performance on users applying Computational thinking (CT) skills in the application

About 70% of the users agreed that they were able to apply five core elements of CT skills. This result showed that users were able to apply their CT skills and develop it step by step with corresponding chapters in the process of studying.

Conclusion and Future Development

First, some players reflected that we should provide more hints and instructions in each level so that players can think of more details and will not ask for help immediately.

Second, we would like to support internationalization by adding different languages because it will lead to more and more children being able to use our application. It can help us to increase the number of users joining our application. People from different countries can solve the levels in multi-players mode and make friends with each other.