Capstone Final Proposal
Capstone Final Proposal
Executive Summary
Computers are relatively new in the terms of history, but since their introduction they
have helped to put people on the moon, opened up global markets, and provide many new and
exciting fields of employment and study. Computers run on two aspects, hardware and software.
Software provides a functionality that is built using various languages that tend to be mysterious
to the user. Only by understanding the magnitude of different languages can a user fully unlock
the true potential of the computer. This brings us to the goal of this project, to help facilitate the
There are many different programs out there that try to achieve the same goal, most of
them require the student to totally immerse themselves into a stale environment. This technique
tends to create frustration and a loss of interest, causing the student to eventually give up. Other
programs are built to be games that tend to be too simple leading to boredom. This is where we
The goal of our project is to bring a fun and interactive learning environment that keeps
users engaged but provides them with the appropriate building blocks to advance in a career as a
successful programmer, brush up on programming languages that might have been lost, or to
Table of Contents
Part One
● Background 3
● Environmental Scan 5
● Methodology 7
Part Two
● Ethical Considerations 8
● Legal Considerations 9
Part Three
● Timeline / Budget 10
● Resources Needed 11
● Milestones 11
● Final Deliverables 12
● Team Members 14
References 16
3
Background
The recursion escape will allow users to be able to select a certain type of programming
language which will become the language that the user would have to focus on for the game. The
game is going to be based around the concept of an escape room where users will solve various
puzzles to gain access to the next room. During the course of the game, the problems that the
users will need to solve will become progressively harder and harder; this feature would be a
Learning a programming language can be quite the challenge, you are faced with so
many unfamiliarities that even though it is easy to get started, it is just as easy to give up. With
advancements in computing, new coding languages tend to permeate the market and older
languages are left behind. The major problem is that students learn the newer languages on the
market and neglect the older ones that still need to be maintained.
This game will act as a fun and engaging way to allow new programming users to get a
basic understanding of various ways of programming. Currently, learning how to code online
involves a series of exercises that a user has to work their way through. These can be somewhat
dull at times. An interactive game will be more engaging for users to experience. Even for users
who need to refresh themselves on a particular programming language, the game would provide
a fresh way of bringing themselves up to speed by teaching the newer language and still
There are many different programs on the market today that are aimed at teaching
programming to students. At a younger age, games are focused on logical thinking by using
block programming to move an object around a given space. Then when students get older there
are programs that emerge the students into strict line coding. There has not been an option to
bridge that gap in the student’s curriculum or provide a thrilling experience to engage older
programmers.
The objectives of this project are to create a fully functional game that will act as a base
model to be further developed in the future. The ideal project would provide a user experience
that can measure the success of the game and see if it would be a viable option to move forward
the user. The database will contain enough questions that repeated questions will be
avoided over a reasonable amount of time. All questions contained in the database will be
categorized by difficulty.
● The setup of graphical rooms to give the user perspective of the questions being
presented to them. Since interactive graphics can be time-consuming, the idea would be
● The first iteration of the game will focus on one programming language to provide
questions to the user, and if time permits provide additional languages that will be user
selectable at the start of the game to concentrate on the user’s preferred programming
language.
● Provide a dynamic user interface that will draw the user in and that will keep the user
● The game will be developed in HTML to provide a user experience that would be
● The game will provide a score to the user at the end of each game to help the user judge
● The game will be available to the users online so the database and game can be updated
Environmental Scan
The concept of an escape room game is not something new but might be one of the few
instances where a game was developed to be played on a computer before it was ever played in
the physical world. One of the earliest escape room games was developed back in 1988 by John
Wilson (real-life escape rooms weren't truly developed until 2007 in Japan) (Breakout, 2019)
(Projects, 2020). His game, Behind Closed Doors, was a text-based game where users had to
enter text commands to answer questions correctly to proceed from room to room. Since then
escape room games have evolved over time into Flash-based (soon to be replaced by WebGL)
web games and then mobile apps. Some of the best online escape room games found on the
6
Internet are The Mystery of Time and Space, The Crimson Room, The Submachine Series, and
Neutral Escape Games, just to name a few. All of these escape room games have held to the
same concept of puzzle-solving to proceed through the game. However, none of them involved
(nor could any be located during research) that included coding as a challenge/puzzle for the
escape room.
Much like escape room games, programming games have been around since the
mid-’80s, based largely on a computer in the game being hacked (Software Spotlight, 1984).
Over time programming games have developed into puzzle games and competitive games.
Today even popular games such as Minecraft have had players develop mods for the game that
help teach kids to program new mods for the game (Finley, 2017).
Online there is quite a selection of different sites offering coding games to learn or build
upon coding skills. Depending on the game the focus can be from elementary school children on
up to adults. Many of the basic sites work on the idea of issuing program commands to move and
object, usually an icon or figure of the player. Other sites, such as Robocode, have you compete
against other players. There the users develop a robot battle tank using Java or .NET to battle
In addition to these types of sites, there are educational sites such as Codecademy and
Code.org that offer more of a straightforward coding environment. These sites offer the ability to
learn coding in many different languages, however, their approach is through completing
The major stakeholder for the project will be the programming team that will make the
initial version of the game that will be sent out for testing and viability. If that game turns out to
be a success with the initial installment, the programming team will provide maintenance and
upgrades as needed to reach a larger audience. If the project becomes a success that shows to fill
a specific need in the marketplace, the programming team will create an LLC and charge a
The primary end-user of this game would be anyone who is interested in learning a new
programming language or anyone who wants to refresh their memory on languages they already
know and understand. This could mean that students enrolled in programming classes can utilize
the software to increase their chances of success in the course they are taking. Teachers also
could use this software to see if it would become something viable that students in the course
might feel comfortable using as a learning tool. The last major area that might be interested in
using this type of software are companies that could use it as a screening process to see if a
Methodology
This project, the concepts, and the timing that needs to happen would be a perfect fit for
agile implementation using a tracking program like Pivotal Tracker. Upon final approval of the
project, the team will meet to set up a coordinated plan to map out the features and requirements
that will be included in the first iteration of the project. To highlight the major areas that the
team will be focusing on will include the database of questioning, the interface for the user, and
8
the controller that is responsible for the progress of the game. To highlight the database, the
team will decide on an online database system that will be reliable and provide the necessary
functions that will be required. The team will then start building questions that populate the
database and segregate them based on difficulty and languages. With the first iteration, the team
will focus on one language but the database will be set up for future expansion and additional
languages.
The database will also include a table of links for graphics that will assist in providing
graphics for the user experience. The graphics will be housed in a repository and sorted based on
a method that is still to be determined. The user interface will be built with HTML and
The game controller will provide the interface between the database, the graphics
repository, and the user interface. The final interaction and the progression of the game between
the user and the game itself are still to be determined whether they will be housed in the game
Ethical Considerations
There are a few ethical considerations that must be accounted for. Access to the software
will be one of the major factors. We are trying to mitigate this issue by developing our project as
a web development software that can be accessed by almost anyone with a computer and an
internet connection. This does not solve all possible connection issues but we feel it is the best
possible option. The other major area that might be an issue would not be prevalent until this
project becomes a viable option, and that is to move forward into production. The issue would
9
be the cost of accessing the software. The goal is to make the software at the lowest cost
possible and still make enough profit to improve the performance and the interactions within the
game while still trying to reach the largest audience possible. One possibility that has been
suggested is to help low income and underprivileged communities. These communities are the
most affected by the cost of the product, and we could look into government educational funding
that might be able to bring the product for use in the classroom. There is also the possibility that
in the future the project could include pricing tiers that would allow a customer to only pay for
Legal Considerations
The first major concern that the team will have to take into account is the quality of
questions that would be asked within the game and doing the research to verify that the questions
that are being used do not conflict with any other copyrights that might have already been
registered. Other legal considerations that have to be taken into account would not be present till
after the capstone project has been completed and the team has determined that the project is
worth investing in. The first hurdle that would be presented would be to create an LLC and
copyright the product under the LLC, where all members of the team would have a controlling
interest in the company. The last major legal consideration that could present itself is getting
approval from the Department of Education to allow the software to be used in a classroom
setting. This would take into account applying for government grants that would help with the
distribution cost to bring it to the scale that is needed to allow access to millions of children.
10
Timeline
Budget
Our team does not foresee any costs related to the development of the project. This is
because we plan on using open resources and personal knowledge/experience in developing and
Resources Needed
The main resources that we intend on using for this project are as follows:
● Internet connection
● Github
Milestones
The major stages associated with the completion of the project include but are not limited to:
● User/admin areas
With all projects there are anticipated risks, our team sees them as the following:
● Online collaboration
or family obligations.
● Technical issues
Scheduling a group project is an exercise in balancing personal life, work-life, and school
life. The risk is in members of the team not being able to adjust, or being overwhelmed in
personal life or work, and not contributing to the team project (possibly putting project goals in
jeopardy). Technically there is always the possibility of unforeseen risks arising due to either
Our team has been working together since the beginning of this program and has
developed a strong working relationship where team contribution from each member has never
been a problem that would have kept a project from being completed on time. For past projects,
each team member has been informed of the development of a specific aspect of a project and its
path forward. This way, should some unforeseen work/life scheduling conflict occur, another
team member could pick up the task and continue development. This same teamwork
Final Deliverables
The main deliverable is an engaging interactive web app game where the user will be
able to test themselves on the knowledge they have concerning a computer language or topic. A
13
database will be used to store an extensive amount of questions/images that will be randomly
displayed to the user, on the topic they are testing themselves on. The ability for users to register
with the web app. For administrators to be able to log into the web app. To present a pleasant
user interface that is easy to use for both users and administrators. A scoring system that will
allow both users and administrators to easily determine the knowledge level of the user upon
completing the game. Provide a secure web app that will ensure user information and data is
Usability Testing/Evaluation
The testing of the program will be performed by the team throughout the entire
development process of the project. The functionality of features will be tested concurrently with
used to test the web application and detect any possible problems that might arise due to a
● Question accuracy. The team needs to guarantee that the question displayed to the user is
from the correct category that the user has chosen for the game.
In addition to the above testing, focus group testing is scheduled to be conducted during
14
week five of the team schedule. The focus group will primarily involve individuals who have had
some experience with programming languages. A link to the program will be provided to each
member of the focus group prior to testing. A set of instructions will also be provided to the
tester containing detailed instructions on the goals for testing and what the developers are
looking to achieve with the testing group. Upon accessing the program the tester will need to
● Enjoyment/clarity of gameplay.
Upon completion, the tester will be required to answer a Google Form questionnaire so
that the development team may be able to gain a better understanding of the strengths and
weaknesses of the program. The development team will use this feedback to help solve any
unforeseen problems of functionality within the program or any possible improvements that can
Team Members
This project is being developed by Kevin Bentley, Craig Calvert, Samuel Pearce, and
Brian Sheridan. All four developers have worked together as a team since entering the Computer
Science program at California State University, Monterey Bay. Team member roles and
15
● Kevin Bentley
○ Software Testing
● Craig Calvert
○ Software Testing
● Samuel Pearce
○ Software Testing
● Brian Sheridan
○ Interactions to database
○ Software Testing
16
References
Breakout. (2019, March 25). Escape Room History: Escape Game Origin: Breakout Games.
Finley, K. (2017, June 3). New Minecraft Mod Teaches You Code as You Play. Retrieved from
https://www.wired.com/2014/08/learntomod/
Projects, C. to W. (2020, March 28). Real Life Escape Game. Retrieved from
https://www.wikizeroo.org/index.php?q=aHR0cHM6Ly9lbi53aWtpcGVkaWEub
3JnL3dpa2kvRXNjYXBlX3Jvb20
https://archive.org/stream/02-your-commodore-magazine/Your_Commodore_Issue_
02_1984_Nov#page/n35/mode/2up