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.

 
Jonathan Chiu
Marketing Director
3DP Technology Limited

Jonathan handles all external affairs include business development, patents write up and public relations. He is frequently interviewed by media and is considered a pioneer in 3D printing products.

Krutz Cheuk
Biomedical Engineer
Hong Kong Sanatorium & Hospital

After graduating from OUHK, Krutz obtained an M.Sc. in Engineering Management from CityU. He is now completing his second master degree, M.Sc. in Biomedical Engineering, at CUHK. Krutz has a wide range of working experience. He has been with Siemens, VTech, and PCCW.

Hugo Leung
Software and Hardware Engineer
Innovation Team Company Limited

Hugo Leung Wai-yin, who graduated from his four-year programme in 2015, won the Best Paper Award for his ‘intelligent pill-dispenser’ design at the Institute of Electrical and Electronics Engineering’s International Conference on Consumer Electronics – China 2015.

The pill-dispenser alerts patients via sound and LED flashes to pre-set dosage and time intervals. Unlike units currently on the market, Hugo’s design connects to any mobile phone globally. In explaining how it works, he said: ‘There are three layers in the portable pillbox. The lowest level is a controller with various devices which can be connected to mobile phones in remote locations. Patients are alerted by a sound alarm and flashes. Should they fail to follow their prescribed regime, data can be sent via SMS to relatives and friends for follow up.’ The pill-dispenser has four medicine slots, plus a back-up with a LED alert, topped by a 500ml water bottle. It took Hugo three months of research and coding to complete his design, but he feels it was worth all his time and effort.

Hugo’s public examination results were disappointing and he was at a loss about his future before enrolling at the OUHK, which he now realizes was a major turning point in his life. He is grateful for the OUHK’s learning environment, its industry links and the positive guidance and encouragement from his teachers. The University is now exploring the commercial potential of his design with a pharmaceutical company. He hopes that this will benefit the elderly and chronically ill, as well as the society at large.

Soon after completing his studies, Hugo joined an automation technology company as an assistant engineer. He is responsible for the design and development of automation devices. The target is to minimize human labor and increase the quality of products. He is developing products which are used in various sections, including healthcare, manufacturing and consumer electronics.

Course Code Title Credits
  COMP S321F Advanced Database and Data Warehousing 5
  COMP S333F Advanced Programming and AI Algorithms 5
  COMP S351F Software Project Management 5
  COMP S362F Concurrent and Network Programming 5
  COMP S363F Distributed Systems and Parallel Computing 5
  COMP S382F Data Mining and Analytics 5
  COMP S390F Creative Programming for Games 5
  COMP S492F Machine Learning 5
  ELEC S305F Computer Networking 5
  ELEC S348F IOT Security 5
  ELEC S371F Digital Forensics 5
  ELEC S431F Blockchain Technologies 5
  ELEC S425F Computer and Network Security 5
 Course CodeTitleCredits
 ELEC S201FBasic Electronics5
 IT S290FHuman Computer Interaction & User Experience Design5
 STAT S251FStatistical Data Analysis5
 Course CodeTitleCredits
 COMPS333FAdvanced Programming and AI Algorithms5
 COMPS362FConcurrent and Network Programming5
 COMPS363FDistributed Systems and Parallel Computing5
 COMPS380FWeb Applications: Design and Development5
 COMPS381FServer-side Technologies and Cloud Computing5
 COMPS382FData Mining and Analytics5
 COMPS390FCreative Programming for Games5
 COMPS413FApplication Design and Development for Mobile Devices5
 COMPS492FMachine Learning5
 ELECS305FComputer Networking5
 ELECS363FAdvanced Computer Design5
 ELECS425FComputer and Network Security5