0% found this document useful (0 votes)
54 views

Capstone Final Proposal

Uploaded by

api-428087497
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
54 views

Capstone Final Proposal

Uploaded by

api-428087497
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 17

The Recursion Escape: When Bits Byte

CST499-30_SU20: Computer Science Capstone

Craig Calvert, Kevin Bentley, Brian Sheridan, Samuel Pearce

April 12, 2020


1

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

bridge from an everyday user to a maestro of the computer world.

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

are trying to bridge the gap.

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

help provide a deeper understanding for professionals.


2

Table of Contents

Part One

● Background 3

● Goals and Objectives 4

● Environmental Scan 5

● Stakeholders and Community 7

● Methodology 7

Part Two

● Ethical Considerations 8

● Legal Considerations 9

Part Three

● Timeline / Budget 10

● Resources Needed 11

● Milestones 11

● Risks and Dependencies 11

● Final Deliverables 12

● Usability Testing / Evaluation 13

● Team Members 14

References 16
3

Background

Project name and description

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

way of challenging experienced and inexperienced programmers.

Problem and/or issue in technology

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.

Solution to the problem and/or issue in technology

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

supporting the older ones.


4

Evidence that the proposed project is needed

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.

Goals and Objectives

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

with further development.

The objectives include:

● Creating a database of programming questions and answers that would be presented to

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

to use images/pictures, and if time permits provide a fully interactive process.


5

● 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

engaged over repeated use.

● The game will be developed in HTML to provide a user experience that would be

available across multiple platforms.

● The game will provide a score to the user at the end of each game to help the user judge

their understanding of the concepts.

● The game will be available to the users online so the database and game can be updated

without requiring the user to download patches or updates.

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

against other users’ robot battle tanks (Robocode Home, n.d.).

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

different exercises and not focused on gameplay.


7

Stakeholders and Community

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

nominal fee to the public for maintenance.

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

candidate would be a good fit for an open position.

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

JavaScript to interact with the game controller.

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

controller, the user interface, or a separate container still to be determined.

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

the languages that they would like to interact with.

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

Week 1 4/29 - 5/5 ● Build Storyboards


○ User interactions
○ Game flow
○ Appearance
● Setup Services
○ Online Database
○ Web Hosting
● Develop Database Structure
○ Question for the user
○ Admin Profiles
○ User Profiles
● Start to generate questions and populate the database

Week 2 5/6 - 5/12 ● Continue to generate questions for database


● Start building the frontend GUI
○ HTML for the View
■ Setup containers for display
■ CSS / Bootstrap
○ JS to provide Controller
■ Provides the interface for user interaction
● Connect to Database

Week 3 5/13 - 5/19 ● Finish working on the GUI


● Wrap up the database

Week 4 5/20 - 5/26 ● In-house testing


● Address issues and bugs

Week 5 5/27 - 6/2 ● Focus group testing address any issues

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

designing this project.


11

Resources Needed

The main resources that we intend on using for this project are as follows:

● Computer (Desktop, laptop, etc.)

● Internet connection

● MySQL database through Google Cloud

● Cloud virtual machine to host the program

● Github

● ZOOM Video Conferencing

Milestones

The major stages associated with the completion of the project include but are not limited to:

● Completion of the database

● Integration to the database

● Recursive game flow

● User interactive graphics

● User/admin areas

Risks and Dependencies

With all projects there are anticipated risks, our team sees them as the following:

● The availability of team members.

○ Team member availability due to job responsibilities.

○ Team member availability due to personal reasons.


12

● Online collaboration

○ Finding time to collaborate, or meet, online due to work schedule/responsibilities

or family obligations.

● Technical issues

○ Unforeseen problems achieving specific features of our program due to factors in

either programming issues or software performance.

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

programming issues or software performance.

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

arrangement will continue to be applied to this project.

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

securely stored and not exposed to possible attack.

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

their development. To guarantee cross-browser compatibility, several different browsers will be

used to test the web application and detect any possible problems that might arise due to a

specific web browser. The following features will be tested:

● Connection to the user database when a user signs up.

● Connection to the admin database when an administrator logs in.

● Connection to the user database when a user logs in.

● 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.

● User game history.

● Game scoring accuracy.

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

perform and provide feedback on the following:

● Ability and ease to create a user account.

● Ability to log into the site.

● Enjoyment/clarity of gameplay.

● Scoring accuracy of the game.

● Overall usability of the program (clarity, navigation of the app, etc.).

● Additional functionality could be added to the program.

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

be added to the program.

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

responsibilities are as follows:

● Kevin Bentley

○ Setup hosting for database and GUI

○ Help to generate questions for the database

○ Admin and User Accounts

○ Software Testing

● Craig Calvert

○ Help to generate questions for the database

○ Create the HTML interface and support the frontend

○ Facilitate game flow

○ Software Testing

● Samuel Pearce

○ Help to generate questions for the database

○ Acquire graphics and support for frontend

○ Implement security protocols

○ Software Testing

● Brian Sheridan

○ Help to generate questions for the Database

○ Create user experience

○ Interactions to database

○ Software Testing
16

References

Breakout. (2019, March 25). Escape Room History: Escape Game Origin: Breakout Games.

Retrieved from https://breakoutgames.com/escape-rooms/history

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

Robocode Home. (n.d.). Retrieved from https://robocode.sourceforge.io/

Software Spotlight. (1984, November). Retrieved from

https://archive.org/stream/02-your-commodore-magazine/Your_Commodore_Issue_

02_1984_Nov#page/n35/mode/2up

You might also like