2019 Computer Science Capstone Symposium

May 3rd and May 4th

Join the Computer Science Department to hear the senior capstone presentations. Student presentations will take place Friday and Saturday. All talks are scheduled in Morken 203.

Friday, May 3rd

1:45pm – PLU Club App
Hengthai Liv (BSCS), Jimmy Nguyen (BSCS), Jeremy Pallwitz (BSCS)

The PLU Clubs App aims to create a better experience for PLU students to conveniently access all PLU Clubs. Inspired by the social media of today, this Android mobile application and server will act as a communication hub that connects clubs’ members and boards efficiently. Users will be able to view, join, and create clubs and activities. The application also has the ability to recommend clubs to the user based on responses to an in-app interest survey. Following REST API and Android MVVM architecture, we have created a communication hub with ease of access and centralized information.

2:20pm – BookClub
Walker Lavoy (BSCS), Vân Nguyen (BSCS), Nick Wagner (BSCS)

BookClub is a web and IOS application that allows for the buying, selling, and trading of textbooks. With an account, users will be able to upload and manage books they have for sale. The Cordova framework on the front end allows for cross-platform development using Angular and Typescript, and efficiently wraps the project in production level builds allowing for code re-use between platforms. The Node.js and Express API written in JavaScript connects to and queries MariaDB, which contains the database holding all user and book data. The main goal of the BookClub application is to provide a user-friendly experience and create an easy way to sell old textbooks or buy new ones from peers.

2:55pm Break

3:15pm – Bits and Bytes: Learning the Basics of Computer Science Via a Puzzle Based Video Game
James Gentry (BACS), Wyatt Gleason (BSCS), David Min (BSCS)

Bits and Bytes is a puzzle based video game designed to help students learn and practice basic computer science concepts. Bits and Bytes was implemented using the Unity Engine. The game allows the player to explore pixelated maps and solve puzzles to practice concepts like variables, conditionals, and loops. These puzzles are based on the concept of “Parson’s Problems”, where code is separated into blocks and then mixed up so that it must be placed in the correct order to solve the problem. The player uses an inventory of code blocks they find throughout the game world or acquire from enemies in order to solve the puzzles and progress to the next level. These enemies can display varying behavior and will attack the player when they get close making it more difficult to get each puzzle piece required for progression.

3:50pm – Customized Bible Commentary Builder
Nathan Kosylo (BSCS)

This project implements a WordPress plugin and supporting website that allows pastors and scholars to collaboratively write custom Bible commentaries and store information in a MySQL database. These commentaries provide additional historical, translational, and cultural information to enhance one’s study of the Bible. Authors are assigned commentaries to write, with secondary contributors providing their cultural insight on the passages. The commentaries can then be published to the front end of the website for users to browse, bookmark, and download.

Saturday, May 4th

9:30am – StudioNotes: A Digital Audio Workspace Application
Emma Poffenberger (BACS)

StudioNotes is a digital audio workspace desktop application, where users can record, edit, playback audio and have a convenient place to take notes too. With the use of multithreading, users are able to multitask and perform many of these tasks at the same time. Using Python and many of its libraries such as PyAudio, Tkinter, and MatPlotLib I have developed this basic digital audio workspace to provide an easy user interface for both experienced users and beginners.

9:55am – Coding the Concepts: A web-based study tool for new computer science learners
Pardeep Haer (BACS), Kate Morgan (BSCS, BA Mathematics), Sami Lynn (BSCS)

Coding the Concepts is an online interactive tool that can be used by students for studying concepts of the new AP Computer Science Principles course being offered at various high schools. The course is endorsed by the CollegeBoard, encouraging students to understand the principles of computer science and computation, and take opportunities to use current technologies for self-expression and worldly understanding. The purpose of our web app is to provide introductions to overarching concepts, and give students another way to focus on learning course material. Our website features a number of study aids and games including: vocabulary quizzes, flashcards, a binary numbers game, ethics writing prompts, and an introduction to loops. The study aids and games were created using a variety of tools including Fisher and Yates algorithm, Durstenfeld Shuffle, CSS transitions class, and dynamic HTML (DHTML). The website is designed using custom images, and created using html, css, and javascript.

10:30am – Break

10:50am – MushAI: Poisonous Mushroom Recognition
Dawson Faker (BACS, BA Philosophy), Jacob Leigh (BACS), Caroline Powell (BACS)

The Pacific Northwest is the perfect place for a mushroom to reside. Enthusiasts and amateurs enjoy finding and collecting these mushrooms, but they do not know if the mushrooms they are picking up are poisonous or not. MushAI provides help to individuals wanting to recognize mushrooms without having to risk hurting themselves. MushAI is a mobile friendly web application that uses artificial intelligence to identify a mushroom through image recognition. We used ImageAI’s custom recognition library to train a model based on several thousand images of different species of poisonous mushrooms we gathered from websites such as MushroomObserver.com and iNaturalist.com. Our website utilizes PHP and the CodeIgniter framework to let users upload an image to our server. This is then passed to our model to predict its species and display to the user essential information on that mushroom from our database.

11:25am – Automated Modeling of HIV Treatment Data: a Collaboration with Fred Hutch
John Smith (BSCS), Emily Shane (BSCS), Natalie Stephenson (BSCS)

This web application was a collaboration with the Fred Hutchinson Cancer Research Center. Our aim was to streamline the analysis of HIV treatments in order to quantify the effectiveness of each treatment. We automate the mathematical modeling of data retrieved in HIV clinical trials — making it easier and faster for clinicians to analyze their experiments in the search for a cure to HIV. The web interface allows clinicians to input data from clinical trials, analyze them through existing mathematical models, and view resulting insights. For example, a clinician could discover intricacies that lead to a better understanding of a medicine’s effects on HIV infection. Using CodeIgniter’s MVC architecture, the interface allows clinicians to view and select models from among those available in a MySQL database, then execute math modeling R scripts on an Apache server.

12:00pm – Lunch

12:50pm – Summit Log: Cross-Platform Outdoor Tracker Mobile Application
Robin Naggi (BSCS), Jacob Rohweder (BSCS), Isaiah Scheel (BSCS)

Summit Log is a mobile application that was written for both Android and iOS. Hikers are able to create a list of hikes they have done, a list of hikes they wish to do, upload photos of hikes they have done, and look at other people’s hikes. It is built using Google’s Flutter SDK that uses one codebase written in Dart to compile to both Android and iOS. The app also utilizes other Google platforms for the back end support like the Firebase API and the NoSQL database of Firestore.

1:25pm – Everybody Loves Ray: A Java-built, Physically-based Rendering Engine
Seth Chapman (BACS, BS Mathematics), Ethan Wiederspan (BSCS)

Everybody Loves Ray is a physically-based rendering system, gathering input from a single specification file and rendering a scene containing 3D models and point lights. Using a simple, easy-to-understand set of input parameters, this Java-based client uses a ray-tracing algorithm to simulate material qualities at a level approaching photorealism. The program uses a customized implementation of Sean R. Owens’ openOBJLoader to parse object and material file specifications, while the ray-tracing algorithm itself is a Whitted-style implementation, allowing for reflection and refraction via backwards ray propagation. Additionally, the program employs several methods for accelerating the rendering speed using an Octree data structure. When the program is finished rendering the scene, the file can be exported as a simple PNG file.