The aim of this project was to create a children educational application that reinforced the fundamentals of maths. The rationale for the app was to create a multipurpose math resource app that contained a wide variety math topics and resources all in one place.
The purpose behind the app was to create an interactive learning platform that would continue parallel to children in class studies and supplement there at home learning. The steps involved for the development of the application were research gathering such as conducting surveys and interviews with teachers.
The research gathering allowed us to work out what the application should be able to do based on what the users would like. The design of the application would meet the requirements of the application that were set out by us. Testing was carried out throughout the development of the app.
There were a few difficulties when it came to the testing the app, but the overall result showed that the application was functional and simple to use. Further work on the application would include adding more math topics such as fractions and decimals. Other subjects could be added to the application such as English and Irish. Another aspect that could be carried out would be a teacher/student user system that would allow the teacher to view the students’ progress with the app.
The aim of this project is to create an educational Android application for children. This application would teach young children basic maths skills in a fun, colourful way. The target users of the app are children between the ages of 5 and 8, as well as teachers with students in this age group. The app would teach children maths through games and quizzes, and the teacher would be able to use the app to view their students’ progress.
The application area for this project is education. As stated above, the main goal of this project is to create an app that is educational while still being fun. There is a constant need for educational apps in the marketplace, with more and more children using smartphones and tablets. These technologies can be used for education as well as entertainment.
The development environment used in this project was Android Studio. Android Studio allows Android apps to be built and tested easily, and it is well-documented (see Implementation chapter).
This project was undertaken as part of a two-person team. Each team member contributed to the project and worked well together. Various project management tools were used throughout the course of this project, such as GitHub and Trello (explained in the Project Management chapter).
The project was undertaken in several phases: Requirements, Design, Implementation, and Testing. Each of these phases have their own chapter where they are explained in more detail.
This section will discuss requirements gathering and requirements modelling. The requirements gathering was the research process where educational applications were looked at and studied for their features and components. Surveys and interviews were conducted to gather further information that would help create the application. Requirements modelling looks at dividing requirements into functional and non-functional constraints.
While researching for the project several children’s educational applications were looked at and assessed on aspects that would be applicable to the application being made. Out of all the applications that were examined, three were selected as they contained relevant features such as reward systems, teacher-student interaction and math-based games. Another aspect that was taken into consideration was the visual appeal and colour scheme.
Numeracy Box is designed to provide an extensive bank of teacher-controlled activities and games. These focus on the statements and examples relating to number and the number system in the national numeracy strategy.
Numeracy box has a child and teacher section. The child section contains the child’s profile and activities that they were assigned. When the child icon is clicked the names of the children registered would appear and the child could select their name or create a new profile. The teacher section was for the teacher so that they could monitor children progress and assign them different activities. The teacher could also set the difficulties of the activities.
The ‘Dress the dog’ game was a number game where the child had to select the correct number of dots on the shirt in order to dress the dog.
‘Star hunt’ was a counting game where the child would collect stars. The child could have to count in 2’s, 3’s etc. Once they collected all the stars the game was finished.
‘Amazing Amanda’ was a counting/matching game where the child had to match the correct sequence of flowers provided by the robot. The game would finish when the bar was full.
‘Monster Feet’ was a counting game where the child had to place the footprint in the correct answer. The reward for this game was the child was able to see the monster that made the footprint.
An advantage to Numeracy Box is the teacher-student interaction. The programme allows the teacher to customise the child’s personal experience and learning outcomes. The application lets the teacher change the level of difficulty depending on the child’s ability and age.
Visually the program is not as appealing as more modern children’s apps. Numeracy Box is an older program from the early 2000s. Its design can be considered outdated with its lack of colour and interesting theme.
Amazing Coin is an educational game for children to practice identifying and solving maths problems with coins. It teaches children how to recognize, count, add, pay and make change with coins. As illustrated in figure 8 above, Amazing coin rewards the children with money which in turn allows them to buy food in the store and eat them later.
The ‘What comes next’ game has the child selecting which coin goes next based on the pattern with the coins. The pattern could be highest to lowest, lowest to highest or counting up in 5’s.
The shop is where the child could purchase items for the fridge based on the money, they earned for completing the ‘What comes next’ game.
The coin games are engaging and interesting to play. The variety of games are fun and teaches children valuable math-based skills. The reward system is satisfying as it allows children to earn currency from the different games and use them in the virtual shop.
The reward system does not match the overarching theme. They look like two different applications were put together. The main game has an underwater theme while the reward system is a grocery store themed activity in the app.
To help give a better understanding of the user’s needs, a teacher persona and a child persona were created. A teacher would be a relevant user as they would assist and monitor the child while they use the application. Before the child would use the application, the teacher would test it themselves to see if it correlates with their learning plan.
The child would be the main user of the application. Narrowing down a child user can be difficult as children can vary greatly in many aspects. This includes skills, age, disabilities and social background. That is why the teacher persona is created as it would complement the child persona and help narrow down needs.
The teacher persona shows that the application must be simple and easy use in relation to both teacher and child. The application must have activities that are relevant to the teacher’s learning outcomes for the child. The application should allow the teacher to incorporate it into the classroom environment in a natural manner. Finally, the application must be able to improve the math skills of the children using the app.
The child persona shows that the application must be engaging and challenging for children. How the application appears visually is also important as the child may become bored and lose interest. The child must be rewarded for completing tasks as it gives an incentive for the child to continue using the app.
During the process of this project 3 interviews were conducted. Semi-structured, open-ended interviews were conducted with 3 primary school teachers of varying ages and experience. These interviews lasted between 30-40 minutes. This decision was made, as this method of interviewing would be best in order to acquire the participants perceptions, opinions and advice directly and more freely. These participants were chosen because they would provide vital insight into the subject and target users of the application as they themselves are in the teaching profession.
The interview participants were informed before the interview that their identities would remain anonymous within this project. The participants looked over the interview notes that were taken down by the researchers during the interview and gave permission for these notes to be used in this project.
All the participants were asked the same set of questions created by the researchers. A sample of the questions that were asked were:
“From your experience, what age range do you think this type of app should be aimed at?”
“What theme do you think would appeal to children using this app the most and encourage the most engagement (e.g. Animal Themed, Monster Themed etc.)?”
“Do you think there should there be a system to create a log in account for each child? If so, what do you think the benefits of this would be? If not, what do you think the negatives would be?”
“Should there be a reward system for the user of the app? If so, what kind of rewards system do you think would encourage the most engagement and user satisfaction?”
Reoccurring and/or contrasting answers and themes were noted during these interviews. For example, in relation to Q2 above, there were 3 common answers:
Keep it simple
Colourful/visually appealing
Engaging sound effects
The participants all voiced the same idea that an application like this must be simple enough for the child to use on their own, colourful/visually appealing enough to keep their attention and include enjoyable non- educational, fun little aspects such as quirky sound effects.
This data made it clear to the researchers that the visuals and user experience is just as important as the coding aspect of creating this app.
In relation to contrasting answers that were noted during the interview, Q4 gave a lot of varying opinions on the rewards system of the application. For example, one teacher suggested rewards system of virtual money earned that could be used in a virtual shop in the app to unlock more themes, sound effects, new character animations etc. While another teacher suggested a star reward system. These differed in that the first idea is quite intricate and creates more incentive to keep engaging with the app in order to unlock more fun features. The second suggested idea, in contrast, was simpler and more traditional in that the incentive is to gain more stars than other students. Both ideas encourage greater user engagement with the app but in 2 very different ways. It gave the researchers a better insight into what kind of reward system motivates children. It made the researchers think about the different ways that reward systems can motivate children. This information is vital for the application, as choosing the correct incentive for children in the chosen age range is the most important part of the application experience.
The aim of the survey was to further narrow down the list of requirements for the application. From the data collected from the 8 surveys conducted, the researchers narrowed down the theme for the application and the subject of the application.(see Appendix A)
The most popular subject suggested throughout the survey was Maths, which is the subject the researchers intend to build the app around. Animals was a popular theme suggested throughout the survey answers as well as the interview answers, which in turn led the researchers to choose an animal theme for the application.
The surveys also allowed the researchers to get a broader selection of reward system ideas that were not considered before, such as rewarding attempts as well as rewarding perfect answers.
As mentioned earlier in the document, the visual appeal of the application is one of the 3 key elements that were mentioned in the interviews. The survey allowed the researchers to expand on that point and get a range of colours that the participants of the survey found throughout their professional experience were the most appealing to children. From the data collected the researchers confirmed the 4 most suggested colours were Yellow, Green, Red and Blue. The most popular colours suggested were mainly primary colours, which was an expected outcome from the researchers due to the fact they were talked about during the earlier interviews.
From the interviews, the researchers got a more narrative insight as to what the participants thought of a log in account system for the application. In the surveys the researchers created a close ended question in relation to a log in account system. It was a simple yes or no answer option for this question in the survey. 5 out of the 8 survey participants said yes to the login account system idea. This is a 62.5% yes vote in favour of the system, which was invaluable information for the research. This was done in order to gain more quantitative data that could be measured, whereas the interviews provided more details on what the participants actually thought of the idea and what they thought were the benefits/negatives of the idea. This gave the researchers a great mixture of qualitative and quantitative data for their research.
From the research, process requirements were narrowed down into functional and non-functional.
Child
1. The student will be able to login
2. The student will be able to register
3. The student will be able to play games
4. The student will be able to view progress
5. The student will be able to spend reward
6. The student will be able to play quiz
Teacher
1. The teacher will be able to view all students
2. The teacher will be able to view single student report
3. The teacher will be able to assign games to student
4. The teacher will be able to assign quiz to student
The goal while implementing the requirements is to deal with the student side and then develop the teacher side of the app. For example, if a game is implemented the idea is to work on the teacher being able to view the results from said game. The end to end functionality is an important aspect in the development of the application.
Level Up system
Sound
Security/privacy child only see their progress
A systems non-functional requirement may include performance under which such things as response time may be included. It is also related to maintainability and scalability of the app. In the Math Fun app non- functional requirements would include a level up system where the child can reach a new level after completing activities and quizzes.
The actors within the use case diagram are the student and the teacher. The use cases are goals. The actor interacts with the use case.
The technologies that are planned on being used in the development of the application are Android Studio and SQL Lite. Android Studio allows application development within the android operating system. SQL Lite would be the local database where the information would be stored.
Android has a large learning curve. To overcome this android developers’ resources and tutorials will be very beneficial.
Due to time constraints certain functionalities will be prioritised. This will include the quiz, My Animals, and game activities. This is to ensure that if all functional requirements are not complete, it will still be a nice working app.
The overall goal was to establish requirements through various research methods. It is through this research process that a more concrete image of a children’s math application was established.
Researching children’s applications allowed features and design elements to be picked out and analysed. This would help build the foundations for the application.
The interviews, surveys and personas helped narrow down requirements and design aspects that were not fully realised yet such as colour and theme. This also gave insight into the maths learning curriculum as well as the teachers learning plan.
The main lessons in this app will be math-based. Reinforcing the lessons will be quizzes. The theme will Animals with bright colours.
This section will discuss the program design and the user interface design of the application. The program design section will look at aspects such as the technology used to create the app, the structure of Android studio, design patterns, the application architecture and database design. The user interface design will look at wireframes, user flow, style guide and storyboards for games.
The program design refers to the design required to make the task of programming and coding of the application more straightforward.
Android studio was chosen as it is an easy way to create application quickly and efficiently. The official integrated development environment for Google’s Android operating system is Android studio. This means that an application can be created for any android device. It was also chosen as it met the requirements that were needed in creating the children’s application.
Other possible technologies were unity as it is used for making games. The decision to use Android studio was based on the fact it is more efficient for creating apps for tablets and phones.
An android project within android studio consists of source files, resource files and app modules. The folders and files inside android studio include:
Manifest file/folder
Java folder
Resource folder
Gradle scripts
The manifest file is always present in an android project’s root directory. The manifest file gives the java package a name which provides it with a unique identifier. Within the manifest folder is the manifest file. The manifest file is used to create an android application. Inside the file are application components such as activities, android version, services and metadata.
Throughout the development of the app the java folder will hold java file. When creating a new project, a default file called Main Activity is created. This activity file is the first screen that appears when the application is launched.
The Resource folder consists of UI strings, images and XML layouts. This is where the non-code sources are stored. The drawable folder holds the images that are used throughout the development of an android application. The layout folder consists of XML layout files. This defines the user interface of the application. The midmap folder allows icons to be defined. These icons can be used on the home screen of an application. Finally, the values folder holds XML file such as style definitions colours and strings.
The gradle is an automated build system. It consists of files that define a build configuration. Theses configurations are applied to all modules in the project application.
1.Build.gradle(Module)
Implementations and plugins build configurations that are applied to the applications modules.
2.Build.gradle(Project)
Build-scripts.
Android is loosely based on Model View Controller (MVC).
The Model is all classes that represent data. In relation to the application this would be the quiz class and the AnimalEntity class. The View and controller are dependent on the Model. In relation to the controller the model helps update data. The Model also allows the View to retrieve the data.
View is the UI layer, which is the visible layout on screen that the user can interact with. In quiz activity the resources are defined in various XML files (activity_quiz.XML) in the resource folder.
Activities making decisions and passing data to the correct place. Controls the application logic and will react to inputs from a user. It presents the requested data to the user. The data is retrieved from the Model.
Application architecture allows the applications framework to be defined. This section will discuss figure 15 in relation to the applications architecture.
Android architecture components are an assortment of different libraries that help build and maintain applications. These components will be used in the building process of the application project.
The data for the application will be stored in an SQLite database. The room persistence library is used as a wrapper around SQLite. This will reduce repetitive code when it comes to creating tables and database operations. Java classes can be turned into entities. Each represents a table in the SQLite database. The Data Access Object (DAO) is used to communicate with the SQLite.
The next architecture component that will be used is ViewModel class. There will be several ViewModel classes within this app. The ViewModels will hold and prepare data for the different interfaces. This means that the data will not be placed directly into the activities and fragments. The activities will connect to the view model and retrieves the relative data. The viewModel is the gateway for the UI controller to the rest of the app. Database operations are not initiated from an activity directly.
The only data source will be the room database and the connection point to the SQLite will be the DAO. The ViewModel will not call the methods on the DAO directly. Instead there will be a simple repository class used in between. The repository is a simple java class and is not a part of the architecture components library. The repository can mediate between different data sources such as the SQLite database. The ViewModel does not have to interact with the different data sources directly. It does not have to worry about the data source and the way in which it is fetched. The repository creates a clean API where the ViewModel can connect to. It is an abstraction layer that gives ViewModels a single access point.
The database is used in the application so the data for the quiz and Animals can be retrieved, managed and stored. An ERD diagram was created to represent the different entities within the database.
Entities can be an object, person, place or thing that is tracked in the database. In relation the application one of the entities is Questions. The Questions entity has attributes which are the ID, question, options A to D and answer. The table below shows an example of Questions entity represented as a row and the attributes are represented as the columns.
The UML diagram represents the classes within the app. The classes have attributes and behaviours. Private operations hide information outside the class partition. Public operations allow all other classes to view the marked information. An attribute is a piece of data that contains values that describe each instance of that class. Also known as fields, variable or properties.
In the questions class, an instance of this class is a specific question. Inside the questions class attributes are created such as ID, question and answer. This allows a specific instance of the questions class to be identified.
Methods allows the behaviour of a class to be specified. In the questions class the behaviours include being able to change questions and read a question.
The attributes for the AnimalEntity class would be ID and text. The behaviours in the AnimalEntity class would allow an Animal to be changed and readable.
The wireframes were designed to show the structural layout of the application. Each wireframe created for the application describes functionality and lays out the content on each page.
Figure above shows the wireframe for the main menu of the application. The application main menu has a simple structure and layout to make it easier to navigate.
Figure above displays the activity and quiz menu. The menus would be separate but would have the same layout structure.
The shop wireframe focuses on the placement of the content that could be purchased in the shop. The organisation of the content helps establish how it should be interacted with.
The user flow diagram reflects the journey the user will take while using the application. This establishes how the user will experience the app and ensures that important processes are not missed. Objectives are created for the user, for example in user flow diagram figure it shows the flow of how a user might take a quiz or exit a quiz.
The colours used for this application are blue green and yellow. These colours were chosen based on the survey results. The data collected showed that blue, green and yellow were the most recurring colours. The teachers who participated in the survey found that children were the most responsive to these colours.
Figure above shows the use of the colour palette that was selected based on survey results. This colour palette would change later during the project cycle to a green and orange colour palette (see appendix E). The final version of the project would use warmer colours and cut out the cooler colours that were initially chosen such as blue.
The quiz page as can be seen in figure 27 is designed to display multiple quiz options for the user to choose from. The final version of the application only has one quiz due to time restraints. This meant that the quiz menu design was altered to suit the single quiz. (see Appendix E)
Figure above shows the design for the shop/My Animals. The design shows a list of animals that the user could purchase and view.
The typography selected for the application were Noteworthy-Bold and Noteworthy-light. Other fonts were looked at such as comic-sans, Bubblegum-sans and Jollygood-sans. Certain aspects were taken into consideration before deciding on a font. First was readability, as it is important that the child can read what they are seeing. The second aspect that was taken into consideration was the style of the font. The font has a handwritten appeal to it. Children can often become bored and uninterested in fonts that lack character.
Three small games based around the maths curriculum are being developed within the application. The first game is a shape game. The child is given a shape and they must tap the correct shape to earn points. If the child taps the wrong shape a message appears and tells them to try again. (figure 31)
The second game is a money counting game (figure 32). The money game asks children to make a certain amount of money with the coins given. The child clicks on the coin and the number is added to the total. If the child goes over the amount a message pops up encouraging the child to try again.
The design of the application would change during the project life cycle. This is due to features being cut due to time constraints. The program design would stay the same except for cut features like the shop. The user interface design had changes such as colour scheme and style guide. The storyboards for the games would also change and be re-worked to a colour matching game and a number matching game. The design for the final version of the application has core elements that were planned from the beginning such as quiz and games.
The aim of the project was to create a children’s education application that is fun and engaging for the user. The goals for the project were to design, implement, test and document a complex software application. Perform a usability test and analysis of a complex software application. Identify the skills needed to work effectively as part of a team in a workplace environment. Analyse and evaluate my own skills, attitudes and limitations, and identify my own training goals and requirements. Explain the principles and practices of industry-standard IT project management and apply those principles and practices in managing a software project. Identify and assess business opportunities available in the IT.
The technologies used for this project was android studio. This was used to create the project as it is an efficient and quick way of creating applications. Working android studio was a new and engaging experience. Throughout the project life cycle, I was consistently learning new skills from android studio. I learnt about project files and folder structures and how each component contributes to the overall application. The software itself is straight forward however it is prone to bugs and error on occasion. This tested my debugging skills and problem-solving abilities.
Research was an important aspect for the overall project. My initial research was conducted to determine what was going to be the final idea developed. The research conducted determined that there was a gap and a need in the market for a children’s educations application that was multi-purpose. The research included speaking with educational professionals. This gave me a perspective from a potential user point of view rather than a programmer’s idea of an app. The research solidified the final
application that was created.
Design is an import aspect when it comes to developing mobile applications. Firstly, I looked at program design.
I learnt about the simplification of design
Breaking tasks into smaller blocks
Make the design consistent this involves visual consistency and functional consistency
Design accessibility
Functional testing is an essential part of a project lifecycle. When conducting testing there is a lot to consider for example finding bugs and errors, testing performance, user-friendly design and making sure basic application requirements are met. During the project I learned what level of errors to accept and when to stop testing. For example, ‘My animals’ was not fully functional after a long period of testing. From this I learned when to stop testing a certain bug an come up with an alternative due to project time restraints.
The user testing aspect was partially successful. Although I was not able to test appropriate users I did learn about the planning and organisation involved in user testing. The surveys and consent forms, along with finding participants allowed an in dept look at what it takes to make an application user friendly.
The overall result of the project was successful. The application was created and was mostly functioning. Most of the features of the app (e.g. quiz activity, games and navigation) were functioning as required. However, ‘My Animals’ was not fully functional as it had some bugs and errors to be worked on/fixed. These errors included being unable to update the reward system in the game (e.g., unable to add an animal). Functional testing was taken place to try and determine where the issue was in relation to the reward system. However, when ‘My Animals’ was implemented into the main application, the animal icons/profiles were not showing up and CRUD was not functional.
Despite these bugs, the bulk of the application was functional. For example, the quiz was able to display quiz questions that were stored in the database. The sound section of the application was also a success as it played different sounds when the user got a question correct or incorrect. The colour matching game and number matching game were successfully working as well. This meant that most of the code implantation into Android Studio was functional.
I am satisfied with the result of the parts of the project that I contributed. While I am left frustrated with that parts of the application that did not work, this gives me an incentive to continue working on the project and future developments.
Before creating an application, there are many different aspects to consider in relation to project management. These include things like creating and agreeing on feasible project goals and getting a clear understanding of who the target users are. It was discovered throughout this project that these aspects need to be set out and structured clearly before beginning the project. This will create order and limit unnecessary time wasting if these are organized at the start of the project.
When it came to project management tools, it was discovered throughout the project that they may hinder rather than assist the project flow. As mentioned earlier, there was Errors with GitHub that wasted vital time within the project and Trello was found to not be efficient for the members of this team. As we relied heavily on constant communication, we opted for more simplistic project management tools such as a journal and Excel. It was discovered that not all project management tools are going to suit every team. It is important to discuss this early in the project as well to avoid confusion and pacing issues within your project timeline.
Teamwork was another major aspect of successful project management. The roles that each team member took on allowed for the project to run smoothly. For example, taking on a leadership role and assigning tasks to other team members and taking on a reviewer/editor role to ensure the end results was up to scratch.
From this project I experienced what it would be like to work on a team project in a workplace setting. I learned about responsibility, time management and teamwork. I developed my technical skills and improved as a programmer. This was through consistent work and engaging with my team member and supervisor. My supervisor guided me when it came to technical difficulties throughout the project. For example, when certain pieces of the code were not working, they guided us in the right direction in the form of tutorials of from their own experience as a programmer. This was invaluable knowledge sharing which greatly enhanced, not only our project outcome, but also our own technical skills. A lot was also learned in relation to project timelines and how ours lacked in terms of setting realistic deadlines and milestones within the appropriate time. Giving extra time in each milestone for errors or learning curves is essential and something that will be included in future projects going forward.
Many aspects could be developed further going forward. For example, more maths games added to the application (e.g., fractions, decimals) and a more complex and functional rewards system to allow a teacher to reward and motivate the child for completing tasks and quizzes. The project could have a more complex database that allowed information to be stored from quiz results to task results which would factor into the reward system as well. A login system that would allow a child to have an individual account that could keep track of their progress and give them the opportunity to customize and create their own ideal version of learning. For example, color font customization and having more options for the theme (e.g., Space Theme, Dinosaur theme).
Another aspect that could be further developed is the teacher side of the application. This would include teachers being able to monitor children’s progress in quizzes and tasks as well as being able to assign tasks to the children based on their learning needs and learning level
14.1: Architecture Components. (n.d.). Retrieved from https://google-developer-training.github.io/android-developer-advanced-course-concepts/unit-6-working-with-architecture-components/lesson-14-architecture-components/14-1-c-architecture-components/14-1-c-architecture-components.html?q=
Dialogs : Android Developers. (n.d.). Retrieved from https://developer.android.com/guide/topics/ui/dialogs
Guide to app architecture : Android Developers. (n.d.). Retrieved from https://developer.android.com/jetpack/docs/guide
Introduction to Activities : Android Developers. (n.d.). Retrieved from https://developer.android.com/guide/components/activities/intro-activities
Ireland. (n.d.). Retrieved from https://www.oecd.org/ireland.
MediaPlayer overview : Android Developers. (n.d.). Retrieved from https://developer.android.com/guide/topics/media/mediaplayer
Meet Android Studio : Android Developers. (n.d.). Retrieved from https://developer.android.com/studio/intro
Projects overview : Android Developers. (n.d.). Retrieved from https://developer.android.com/studio/projects
Room Persistence Library : Android Developers. (n.d.). Retrieved from https://developer.android.com/topic/libraries/architecture/room
Save data in a local database using Room : Android Developers. (n.d.). Retrieved from https://developer.android.com/training/data-storage/room
The AndroidManifest.xml File. (n.d.). Retrieved from https://stuff.mit.edu/afs/sipb/project/android/docs/guide/topics/manifest/manifest-intro.html
Uenlue, M., & Uenlue, M. U. M. (2019, October 21). Subscription business model: Netflix. Retrieved from https://www.innovationtactics.com/subscription-business-model-netflix-overview/.