Helix: A First Game Retrospective

131525-Thumbnail Image.png
Description
The original version of Helix, the one I pitched when first deciding to make a video game
for my thesis, is an action-platformer, with the intent of metroidvania-style progression
and an interconnected world map.

The current version of Helix is a turn based

The original version of Helix, the one I pitched when first deciding to make a video game
for my thesis, is an action-platformer, with the intent of metroidvania-style progression
and an interconnected world map.

The current version of Helix is a turn based role-playing game, with the intent of roguelike
gameplay and a dark fantasy theme. We will first be exploring the challenges that came
with programming my own game - not quite from scratch, but also without a prebuilt
engine - then transition into game design and how Helix has evolved from its original form
to what we see today.
Date Created
2020-05
Agent

RecyclePlus: A Sustainability iOS Application

131529-Thumbnail Image.png
Description
RecyclePlus is an iOS mobile application that allows users to be knowledgeable in the realms of sustainability. It gives encourages users to be environmental responsible by providing them access to recycling information. In particular, it allows users to search u

RecyclePlus is an iOS mobile application that allows users to be knowledgeable in the realms of sustainability. It gives encourages users to be environmental responsible by providing them access to recycling information. In particular, it allows users to search up certain materials and learn about its recyclability and how to properly dispose of the material. Some searches will show locations of facilities near users that collect certain materials and dispose of the materials properly. This is a full stack software project that explores open source software and APIs, UI/UX design, and iOS development.
Date Created
2020-05
Agent

The Vulnerabilities of Using Passwords and Username Based Systems

131747-Thumbnail Image.png
Description
One of the major sources of authentication is through the use of username and password systems. Ideally, each password is a unique identifier known by a single individual. In reality however, exposed passwords from past data breaches reveal vulnerabilities that

One of the major sources of authentication is through the use of username and password systems. Ideally, each password is a unique identifier known by a single individual. In reality however, exposed passwords from past data breaches reveal vulnerabilities that are traceable to passwords created today. Vulnerabilities include repetitions of characters, words, character sequences, and phrases that are used in a password. This project was observed in English to highlight the vulnerabilities that can come from utilizing the English language. However, the vulnerabilities highlighted in this project can also be applicable in languages across the world. It was observed that through the common types of digital attacks, brute force attack and dictionary attack work effectively against weak passwords. Brute force attack revealed that a user could expose an alphanumeric password of length eight in as little as one and a half days. In addition, dictionary attacks revealed that an alphanumeric password of length eight can be exposed in a shorter amount of time if the password contains a single long word or phrase thought to be secure. During this attack analysis, it found that passwords become significantly more secure in the utilization of alphanumeric passwords of minimal length of eight. In addition, the password must also not be a particular phrase or word with simplistic characteristics for adequate strength against dictionary attack. The solution to using username and password systems is to create a password utilizing as many characters as possible while still retaining memorability. If creating a password of this type is not feasible, there is a need to use technological solutions to keep the current system of username and passwords as secure as possible under daily life. Otherwise, there will be a need to replace the username and password system altogether before it becomes insecure by technology.
Date Created
2020-05
Agent

Robotic Swarm Coordination Without Master Node Using Visual Fiducial Markers for Localization

132414-Thumbnail Image.png
Description
A common design of multi-agent robotic systems requires a centralized master node, which coordinates the actions of all the agents. The multi-agent system designed in this project enables coordination between the robots and reduces the dependence on a single node

A common design of multi-agent robotic systems requires a centralized master node, which coordinates the actions of all the agents. The multi-agent system designed in this project enables coordination between the robots and reduces the dependence on a single node in the system. This design change reduces the complexity of the central node, and makes the system more adaptable to changes in its topology. The final goal of this project was to have a group of robots collaboratively claim positions in pre-defined formations, and navigate to the position using pose data transmitted by a localization server.
Planning coordination between robots in a multi-agent system requires each robot to know the position of the other robots. To address this, the localization server tracked visual fiducial markers attached to the robots and relayed their pose to every robot at a rate of 20Hz using the MQTT communication protocol. The robots used this data to inform a potential fields path planning algorithm and navigate to their target position.
This project was unable to address all of the challenges facing true distributed multi-agent coordination and needed to make concessions in order to meet deadlines. Further research would focus on shoring up these deficiencies and developing a more robust system.
Date Created
2019-05
Agent

Improving Patient Medical Awareness through an Android-based Assistant

Description
As modern advancements in medical technology continue to increase overall life expectancy, hospitals and healthcare systems are finding new and more efficient ways of storing extensive amounts of patient healthcare information. This progression finds people increasingly dependent on hospitals as

As modern advancements in medical technology continue to increase overall life expectancy, hospitals and healthcare systems are finding new and more efficient ways of storing extensive amounts of patient healthcare information. This progression finds people increasingly dependent on hospitals as the primary providers of medical data, ranging from immunization records to surgical history. However, the benefits of carrying a copy of personal health information are becoming increasingly evident. This project aims to create a simple, secure, and cohesive application that stores and retrieves user health information backed by Google’s Firebase cloud infrastructure. Data was collected to both explore the current need for such an application, and to test the usability of the product. The former was done using a multiple-choice survey distributed through social media to understand the necessity for a patient-held health file (PHF). Subsequently, user testing was performed with the intent to track the success of our application in meeting those needs. According to the data, there was a trend that suggested a significant need for a healthcare information storage device. This application, allowing for efficient and simple medical information storage and retrieval, was created for a target audience of those seeking to improve their medical information awareness, with a primary focus on the elderly population. Specific correlations between the frequency of physician visits and app usage were identified to target the potential use cases of our app. The outcome of this project succeeded in meeting the significant need for increased patient medical awareness in the healthcare community.
Date Created
2019-05
Agent

A Tool for Researching and Presenting Evidence in High School and College Debates

132553-Thumbnail Image.png
Description
Debate provides a valuable educational opportunity for students to learn a variety of portable research and public speaking skills, but many of its goals are hindered by the lack of a dedicated software. Currently, the primary tool for research and

Debate provides a valuable educational opportunity for students to learn a variety of portable research and public speaking skills, but many of its goals are hindered by the lack of a dedicated software. Currently, the primary tool for research and presentation of evidence is paperlessdebate.com's Verbatim, which is built as a template for Microsoft Word. While functional, Verbatim suffers from several shortcomings; its reliance on Word means that it cannot be fully cross-platform, and it also means that it is difficult to streamline Verbatim's workflow for the particular needs of debaters. Thus, the goal of this project was to fill the need for a stand-alone, cross platform application that debaters (and coaches) can use to research and present evidence. The bulk of the project consisted of creating a specialized editor, including a variety of features catered towards usability in a range of debate contexts. Additionally, the software is integrated with a back end database such that it can also replace the mixture of storage solutions (such as Dropbox and Microsoft's OneDrive) that teams currently use to maintain and share their data. In order to make the software more extensible and to improve its accessibility, it is released as free open source software under the GNU General Public License v3.0. This paper describes the core features of the application and the motivation behind those features' implementations, and briefly includes a discussion of the companion mobile app for Android devices. It also reviews the technologies that were used to create the software's implementation.
Date Created
2019-05
Agent

Random Python Program Generator for JavaScript

132577-Thumbnail Image.png
Description
The most important task for a beginning computer science student, in order for them to succeed in their future studies, is to learn to be able to understand code. One of the greatest indicators of student success in beginning programming

The most important task for a beginning computer science student, in order for them to succeed in their future studies, is to learn to be able to understand code. One of the greatest indicators of student success in beginning programming courses is the ability to read code and predict its output, as this shows that the student truly understands what each line of code is doing. Yet few tools available to students today focus on helping students to improve their ability to read code. The goal of the random Python program generator is to give students a tool to practice this important skill.

The program writes randomly generated, syntactically correct Python 3 code in order to provide students infinite examples from which to study. The end goal of the project is to create an interactive tool where beginning programming students can click a button to generate a random code snippet, check if what they predict the output to be is correct, and get an explanation of the code line by line. The tool currently lacks a front end, but it currently is able to write Python code that includes assignment statements, delete statements, if statements, and print statements. It supports boolean, float, integer, and string variable types.
Date Created
2019-05
Agent

Honey, I Forgot the Milk: An Alexa Shopping Assistant

132669-Thumbnail Image.png
Description
If you’ve ever found yourself uttering the words “Honey, I forgot the—” or “how did I miss the—" when coming home from the grocery store, then you’re not alone. This everyday problem that we disregard as part of life may

If you’ve ever found yourself uttering the words “Honey, I forgot the—” or “how did I miss the—" when coming home from the grocery store, then you’re not alone. This everyday problem that we disregard as part of life may not seem like much, but it is the driving force behind my honors thesis.
Shopping Buddy is a complete Amazon Web Services solution to this problem which is so innate to the human condition. Utilizing Alexa to keep track of your pantry, this web application automates the daunting task of creating your shopping list, putting the power of the cloud at your fingertips while keeping your complete shopping list only a click away.
Say goodbye to the nights of spaghetti without the parmesan that you left on the store shelf or the strawberries that you forgot for the strawberry shortcake. With this application, you will no longer need to rely on your memory of what you think is in the back of your fridge nor that pesky shopping list that you always end up losing when you need it the most. Accessible from any web enabled device, Shopping Buddy has got your back through all your shopping adventures to come.
Date Created
2019-05
Agent

Using Machine Learning to Predict the NBA

132774-Thumbnail Image.png
Description
Machine learning is one of the fastest growing fields and it has applications in almost any industry. Predicting sports games is an obvious use case for machine learning, data is relatively easy to collect, generally complete data is available, and

Machine learning is one of the fastest growing fields and it has applications in almost any industry. Predicting sports games is an obvious use case for machine learning, data is relatively easy to collect, generally complete data is available, and outcomes are easily measurable. Predicting the outcomes of sports events may also be easily profitable, predictions can be taken to a sportsbook and wagered on. A successful prediction model could easily turn a profit. The goal of this project was to build a model using machine learning to predict the outcomes of NBA games.
In order to train the model, data was collected from the NBA statistics website. The model was trained on games dating from the 2010 NBA season through the 2017 NBA season. Three separate models were built, predicting the winner, predicting the total points, and finally predicting the margin of victory for a team. These models learned on 80 percent of the data and validated on the other 20 percent. These models were trained for 40 epochs with a batch size of 15.
The model for predicting the winner achieved an accuracy of 65.61 percent, just slightly below the accuracy of other experts in the field of predicting the NBA. The model for predicting total points performed decently as well, it could beat Las Vegas’ prediction 50.04 percent of the time. The model for predicting margin of victory also did well, it beat Las Vegas 50.58 percent of the time.
Date Created
2019-05
Agent

Predicting Sneaker Resale Prices using Machine Learning

132957-Thumbnail Image.png
Description
This thesis dives into the world of machine learning by attempting to create an application that will accurately predict whether or not a sneaker will resell at a profit. To begin this study, I first researched different machine learning algorithms

This thesis dives into the world of machine learning by attempting to create an application that will accurately predict whether or not a sneaker will resell at a profit. To begin this study, I first researched different machine learning algorithms to determine which would be best for this project. After ultimately deciding on using an artificial neural network, I then moved on to collecting data, using StockX and Twitter. StockX is a platform where individuals can post and resell shoes, while also providing statistics and analytics about each pair of shoes. I used StockX to retrieve data about the actual shoe, which involved retrieving data for the network feature variables: gender, brand, and retail price. Additionally, I also retrieved the data for the average deadstock price for each shoe, which describes what the mean price of new, unworn shoes are selling for on StockX. This data was used with the retail price data to determine whether or not a shoe has been, on average, selling for a profit. I used Twitter’s API to retrieve links to different shoes on StockX along with retrieving the number of favorites and retweets each of those links had. These metrics were used to account for ‘hype’ of the shoe, with shoes traditionally being more profitable the larger the hype surrounding them. After preprocessing the data, I trained the model using a randomized 80% of the data. On average, the model had about a 65-70% accuracy range when tested with the remaining 20% of the data. Once the model was optimized, I saved it and uploaded it to a web application that took in user input for the five feature variables, tested the datapoint using the model, and outputted the confidence in whether or not the shoe would generate a profit.
From a technical perspective, I used Python for the whole project, while also using HTML/CSS for the front-end of the application. As for key packages, I used Keras, an open source neural network library to build the model; data preprocessing was done using sklearn’s various subpackages. All charts and graphs were done using data visualization libraries matplotlib and seaborn. These charts provided insight as to what the final dataset looked like. They showed how the brand distribution is relatively close to what it should be, while the gender distribution was heavily skewed. Future work on this project would involve expanding the dataset, automating the entirety of the data retrieval process, and finally deploying the project on the cloud for users everywhere to use the application.
Date Created
2019-05
Agent