A mobile app for improving children’s cognitive abilities
Timeline: September 2016 - April 2017 (8 months)
Deliverables: Project plan, System Architecture Design, Final product (mobile application + web application + backend server)
It is the Final Year Project of my bachelor’s degree in Computer Science at the University of Hong Kong. The project consists of the following components:
I chose the topic of Open Crowdsourcing and created the project plan.
The goal of the project is to participate in the whole software development process and carry out the project with milestones, continuous monitoring and deliverables. All deliverables adhered to IEEE Software Engineering standards.
I defined three objectives:
In traditional Chinese thought, children who learn, write and read slowly are always branded as “lazy”. However, many possibilities could lead to troubles with learning. One of the common possibilities is dyslexia. Dyslexia is one of the Specific Learning Difficulties (SpLDs). Children with dyslexia not only have difficulties in reading and writing but also have difficulties in pronouncing multisyllabic words and distinguishing words with similar sounds. Most people are unfamiliar with dyslexia or neglect the importance of intervention. They might not consider bringing their children to have a formal screening test. Even if they wanted to, the screening test might cost several thousand Hong Kong dollars which is not affordable to lower-income families. Therefore, a simple, free-of-charge, easy-to-use application is necessary for testing their children and alerting the parents to signs and symptoms of dyslexia in advance.
This project consists of two applications.
It provides a set of training games designed for preschool to kindergarten children. The application evaluates the children’s performance in different abilities:
It provides interactive charts on gender, education level distribution and the average score on individual games. It analyzes the game exercises and children’s performance more accessible and efficient. In the long term, after collecting sufficient data, it should be able to discover the weakest abilities of dyslexic children and find the most effective training method to help them. The collected data could also help researchers to design a better assessment method by analyzing the incorrect answers from the children.
I compared three similar applications that help children with dyslexia or other special educational needs.
It is an Android application that provides many matching games for improving children’s visual perception. They will learn to make connections between pictures, letters, shapes and backgrounds. However, there is only a single game mode, which is to select identical objects. The children may easily get bored.
It is an Android application of a ball rolling game to improve children’s memory. Children need to roll the ball to finish the maze. Parents can adjust the game difficulty and starting point of the maze. The idea of parent involvement is good, but the variety of the game level is not large enough. Also, the interface could be more colourful.
It is an iOS application with six games for testing memory and learning skills. The interface is attractive and provides information about the users’ strengths and weaknesses. The overall idea and game design are excellent, but the application is not designed for preschool and kindergarten children.
I identified several advantages and disadvantages among the above applications, and I concluded with the following insights:
DyslexHero determines the difficulties of the game exercise based on their education level. It divides into three stages: Beginner(preschool), Intermediate(K1-K2) and Advanced(K3).
It includes 5 game exercises, each corresponding to one specific category of weak abilities. It randomly generates all the questions in each category. The children will be required to play all the games once before they can freely play the game exercise.
As the target users are young, they may not fully understand the games' written instructions. Therefore, the games will involve verbal instructions. I applied a text-to-speech (TTS) extension for generating voice dialogue.
The five types of game exercises are:
This project has a client-server architecture. It is mainly constructed by four components:
It is an open-source JavaScript runtime environment. It is used to build the server in this project for handling requests from the application, and storing and receiving data from MongoDB.
It is a JavaScript library that enables bidirectional event-based communication. One part of Socket.io is used as a server-side library for Node.js server. Another part is for the client-side application.
It is an open-source, document-oriented database program. It stores all the data in this project, including user registration information, players’ scores and game questions.
It is a flexible and minimal web application framework based on Node.js. It is used to invoke a series of middleware functions and to visualize the game statistics.
The Node.js server, database and web application are hosted in a Virtual Private Server (VPS) provided by DigitalOcean. The operating system of the VPS is Ubuntu LTS 14.04. Express framework is used for developing the web analytics dashboard.
Unity is the main development platform used in the game application. It supports cross-platform game development for Android, iOS, Windows, Linux, etc. It also supports C# and JavaScript programming languages. Unity Community provides many assets and tutorials that are a good reference for the project. The testing platform of the application is an iPad Air 2 with iOS 10.3.1.
These are the screen captures of the final product.
While this project is useful for testing student abilities and getting an understanding of dyslexia, there are several possible improvements that can be made in the future to further increase the flexibility, efficiency, and effectiveness of research.
It would be better if the researchers could customize the questions in the games on the web interface. For example, they may customize the symbols showing on the buttons in the working memory game, or they may change the items showing in the processing speed game. Those customizations could also affect children’s performance in the games. Therefore, with this feature, they can assess the children with different variables and find the most effective methods to help them.
The game difficulties depend on users’ education level. In the current version, if the users go up one grade in school, they must create a new account for playing the games with higher difficulties. Otherwise, the collected data will remain on the old education level and may affect the accuracy of the data analysis.
To me, this project was not only a software development exercise but also an opportunity to find a meaningful way to solve real problems. The idea is to help parents to spot the sign of dyslexia as soon as possible and support children through early intervention. Although there are no resources to continue developing this project, I wish the project could raise awareness of dyslexia.