News

School of Computing Applied Computer Science Master's Presentations

April 27, 2022

The School of Computing is happy to announce that there will be 8 graduate students of the Applied Computer Science Master's program presenting their final projects tomorrow, Thursday, April 28th from 9am - 11am in the Grand River Room of Kirkhof. The details of their projects can be found below:

 

A Website 60 Million Years in the Making

CIS Master’s Project

Presented By: Dan Schindler

Advisor: Dr. Robert Adams


Abstract:

The Paleo Prospectors company offers guides and exclusive access to locations rich in fossils for the purpose of digging up and collecting these fossils. As new leadership joined the company, it became apparent that the old infrastructure for hosting their website and tracking clients, signups, and finances was in dire need of replacement. This project seeks to address the issues that the original infrastructure cannot handle or potentially exacerbates. These issues include but are not limited to: An AWS EC2 instance hosting multiple websites, leading to common cross-contamination; unwieldy database access for the company leadership; frequent cyberattacks resulting in thousands of false registrations; lack of integration to the accounting software Xero; excessive site maintenance; unresponsive turnaround time for needed content updates to the website. To address these issues, the new infrastructure includes: hosting the website from its own Firebase server; development of the (a?) Xero environment; multiple layers of registration validation; integration with Xero. A full Content Management System (CMS) has been started and planned as part of future work.

 

Platform independent cryptography library for React Native

CIS Master’s Project

Presented By: JiYí Hoffmann

Advisor: Dr. Jonathan Engelsma

Abstract:

Cryptography in React Native has been historically always an issue. Many libraries try to solve this problem by choosing pure JavaScript or separate native implementations. JavaScript implementations ported from web or backend frameworks end up being insecure due to an insufficient randomness generation as they can rely on web-specific features to seed the generators. On the other hand, libraries using native implementations suffer from ambiguity between platforms causing them to behave differently on each device. React-native-cryptopp aims to solve this problem by using the new JavaScript Interface shipped with React Native allowing it to directly interact with C++ code. The main advantage over other solutions is a single codebase for both operating systems that uses a well-tested and time-proven library called Crypto++ under the hood. As an added benefit, it is able to reach incredibly fast synchronous execution speeds. React-native-cryptopp provides hashing functionality, AES encryption, public-key cryptography such as RSA, as well as elliptic curve cryptography and is fully open-source.

 

Creating a Unity-Based Simulation to Explore Effectiveness of a Roomba

CIS Master’s Project

Presented By:  Natalie G. Boardway

Advisor: Dr. Erik Fredericks


Abstract:

As technology advances, autonomous robotics platforms have been deployed to automate in-home tasks, such as vacuuming. As a foundation for future research, I created a 3-D simulation of an iRobot Roomba in Unity, where a Roomba can move around a room as a result of physics calculations, collect dirt particles, and collide with objects in its path. Based on existing models’ approaches to pathing I gave the Roomba the ability to pick its next direction randomly or move in a defined pattern traversing columns. I also created 3 increasingly complex rooms to explore the conditions in which each approach to pathing can succeed. To test the fidelity of the models, I ran the simulation 50 times for each combination of pathing type and room layout and analyzed the data collected. My results suggest that pathing type and room layout have a significant effect on the time taken to complete the simulation, the percent of the board covered, percent of dirt collected and battery remaining when the simulation ends. 

 

A Framework to Solve some NP-Hard Problems with GPUs Using Brute Force

CIS Master’s Project

Presented By:  Esteban Echeverri Jaramillo

Advisor:  Christian Trefftz


Abstract:

Brute force is a term used in computer science to refer to methods that consider all the possible candidate solutions to a problem and then select the optimal solution. Brute force is usually very time consuming yet it is relatively easy to write a solution based on this approach. In this project, brute force was used to solve three different NP-hard graph problems: maximum clique, maximal independent set and minimum dominating set. Thrust, a library provided by NVIDIA, simplifies the programming of NVIDIA Graphical Processing Units (GPUs). Thrust provides host and device vectors. Thrust also provides functions similar to the ones used in functional programming, in particular map and reduce. Thrust was used to write code to solve these problems and experiments were carried out on two different kinds of GPUs. The experimental results show that GPUs with higher capacities (larger memory and larger number of processors) can solve small instances of these problems in short amounts of time.

 

A Learning Database for Information Literacy CIS Master’s Project

Presented By:  Kyle Felker

Advisor: Jagadeesh Nandigam


Abstract:

Teaching college students basic database searching skills is a fundamental part of information literacy instruction.  Yet librarians who teach these skills often have difficulties using "live" library databases to teach these skills.  Real library databases often contain thousands of items, which can overwhelm fledgling researchers.  Live library databases are also constantly updated with new information, which makes lesson planning difficult.  Finally, databases can often contain a multitude of searching options and filters, contributing to student confusion about what options to use and how to use them.  What librarians often want is a training database with fewer options and a smaller, stable result set, designed especially for teaching.  I worked with an instruction librarian to develop a such a training database that provides basic search functionality and a small, stable pool of results.  This database can be used in classroom instruction or with asynchronous assignments to help students learn basic search skills that they can then transfer to real library databases.  

 

Disc Golf Indie Video Game Development: An 

Implementation of Online Multiplayer Networking

Master’s Project

Presented By:  Jon Griesen

Advisor: Erik Fredericks

Abstract:

Video game development is a pursuit that has increasingly been enabled at the individual level by advances in general computing technologies and associated development frameworks. This paper serves as an outline of the project deliverable Disc Golf GDX – an independent implementation of a top-down disc golf video game featuring turn-based online multiplayer. An exploration of the overall development process and design decisions inherent to the game are covered in detail and linked to various applied computer science concepts. Emphasis is placed on the construction of game mechanics suitable to the form of client-server architecture known as a listen server, as well as how this model enables fully featured online multiplayer. Project work concludes with a functional game deliverable supporting engaging gameplay at both the single player and multiplayer levels, intuitive and functional graphical user interfaces, and a polished form factor that invites interest and curiosity from prospective players. Challenges facing the implementation of the game are considered alongside opportunities for ongoing refinements and notable enhancements are presented as a basis for ultimately releasing a production version of the game deliverable.

 

Comparative Evaluation of Software Fuzzers

CIS Master’s Project

Presented By:  Jacob Coddaire

Advisor: Dr. Andrew Kalafut


Abstract:

Software fuzzing is the practice of executing automated, varied inputs against a software target (a single function call) to find programming errors that could lead to a software vulnerability. Fuzzers can be used for software at all levels – web applications, mobile applications, command line applications, even firewall and networking applications. Thousands of vulnerabilities have been found through fuzzing, and many open-source projects have automated fuzzing configured as part of their CI/CD pipeline.

For this project, the goal was to comparatively evaluate three different command line software fuzzing utilities – LLVM’s libFuzzer, AFL++ and HonggFuzz. This paper discusses the entire analysis, from setting up the lab environment to reading and understanding fuzzer results after a program is fuzzed.

We cover three separate fuzzing attempts. The first is a simple program with an obvious buffer overflow vulnerability. The second duplicates the Heartbleed vulnerability (CVE-2014-0160) [1] in OpenSSL. The third evaluates encryption functionality in OpenSSL for vulnerabilities.

Finally, we conclude by comparing metrics between the three fuzzers including ease-of-use, overall speed, overall defects found, and reporting options. We then consider different tradeoffs for each fuzzer and provide recommendations on which fuzzer to use for different situations.

 

Measuring Meaning: NLP for Legal Applications

Master’s Project

Presented By:  Elliott Church, J.D.

Advisors: Jerry Scripts, Ph.D., Greg Wolffe, Ph.D., David Zeitler, Ph.D.

 

Abstract:

As a step toward automated, semantic redlining, the implementation and testing of certain graphical and mathematical methods of document feature engineering for paraphrase identification are described and explained. The collection of methods, referred to as "document similarity profiling," combines pre-existing methods of natural-language processing and analysis (including grammatical parsing, word vectorization, and graph subsumption) with a calculus-based method of quantifying similarity in a effort to improve the accuracy of paraphrase identification. The methods are tested and compared to state-of-the-art methods on the well-known Microsoft Research Paraphrase Corpus. Key concepts, including “radius of synonymy," “similarity profiling,” and “similarity index” are explained. Data-processing and computational steps are illustrated and discussed, including methods of graphical textual representation and analysis that are designed to highlight the directional nature of subject-object relationships and quantify the proximity of word meaning, which, it is hypothesized, m improve the accuracy of paraphrase identification, particularly in a specialized, legal context. Next steps for further development and testing are proposed.

Share this news story

View More News



Page last modified April 27, 2022