Presentations are listed in alphabetical order by the presenter's last name.
Detect Motion with a Raspberry Pi
My project is a motion detector/distance measuring device that sends information to a webpage. I used a little computer called a Raspberry Pi to operate a distance measuring device. All Fall Semester, I worked on setting up a breadboard that connected the measuring device with the Raspberry Pi. I then set up a connection from the school’s Wi-Fi to the Raspberry so that live information could be sent over the network to a webpage that I created, also with the help of virtual computers on the network. This project will demonstrate how a DHCP connection works, which is Dynamic Host Connection Protocol. And why it did not work for my project. It will also cover hardware engineering, since I used breadboards and then how different voltages can affect devices. I will also show the code that I used to ensure that the device was acting the way that I wanted it to. The distance detector stays in a room in the Science building where it just waits for motion. When someone walks in, it registers that someone walked in and then measures the distance at which they were from the device. It then sends it to the webpage that I created. If no one walks in, then nothing happens. This project embodies network systems, and hardware. This is a simple demonstration of how many security systems are built today. Take alarms on priced objects, when someone is too close to the object, the alarm goes off.
Presenter: Massa Atsu / Mentor: Frederick Portier, Ph.D.
Course Scheduling Improvement
The purpose of this project is to create a potential solution to scheduling courses so that all students are able to take all required courses required for their majors and minors within the Department of Computer Science and Mathematics. This will be an implementation of a final project that I did last semester for CMSCI 359, where I created a Course Registration System database application, where a database was created that contained all courses that were being offered in the Department of Computer Science and Mathematics. The tables in this database include a table for the courses that are being offered, a table for the sections of each course, a table for all faculty in the department, a table for the enrollments, and a table with all students. It also has an application layer where students are able to enroll in one or more courses. For this project an administrative layer will be added to the application where an administrator will be able to add courses to the courses table in the database. There will also be additional tables that will be added to the database which include, a table that contains all majors and minors that are offered in the department, a table with all classrooms in the first floor science building, and a table that contains a schedule for all courses that are being offered. To solve the problem, algorithms will be created using Graph Theory that will be encoded to the application that will schedule the courses within ideal parameters. Ideal parameters would include courses required for both Math and Computer Science majors cannot be offered at the same time. However a class that is prerequisite for another class, can be offered at the same time. For instance, CMSCI 254 can be offered at the same time as CMSCI 125 since no one will take 254 and if they haven’t taken 125 yet. The algorithms will occur as soon as the administrator adds the courses to the database. Specific Graph Theory algorithms will be researched and experimented with so they can be encoded to the application. The goal of the research is to create a system which most efficiently sets up a schedule for classes in the Department of Computer Science and Mathematics.
Presenter: Pablo Badia / Mentor: Brian Heinold, Ph.D.
Unity game development: choosing between three different save-state methods within the context of creating a 2D game
Unity 2D Game Development is exciting to dive into, but it's not without its many learning curves. One of these necessary learning curves is the concept of managing game objects in a way they can be saved, so the player can exit the game without losing all progress and not feel forced to complete the game in one sitting. This lightning talk peels back the layers of obscurity between three different saving concepts used in Unity 2D game development.
Presenter: Thomas Batson / Mentor: Scott Weiss
Academic Point Tracker App
By utilizing existing software in the form of Android Studio and Google Sheets, it is possible to create a functional mobile application capable of tracking Academic Development points for students at the Mount. With an emphasis on creating a secure application, design decisions need to be made about how to keep the application from being taken advantage of and maintain security. To do this, choices are to be made in hashing techniques, their benefits, their repercussions, and their impact on the overall performance of the application.
Presenter: Sean Campbell / Mentor: Scott Weiss
The Driver Safety Buddy
First semester of this school year I would commute to school. Unfortunately, I witnessed the accident where the young high school student was t-boned by a 16 wheeler. This caused me to drive much more cautiously for a period of time, and it led me to want to develop something that would help me drive more safely. The Driver Safety Buddy will be a software program that will count the amount of times I drive over the speed limit for a specific prolonged period of time. Then with the data gathered I am hoping to be able to analytics on said information which will be able to classify the driver as either safe, aggressive, dangerous, etc.
Presenter: Joseph Contreras / Mentor: Brian Heinold, Ph.D.
Best UI For the Programmer and the User
My presentation will be about a choice I am making during the process of working on my Senior Project. My Senior Project is a program that sets up a schedule for booking classrooms across campus for classes or other events. A choice I am making for this project is what is the best way to represent the user interface for the schedule. My two options are a text-view of a list of the events in the classrooms or a calendar view, which shows what events are in what classroom each day. I will go over what is best for a programmer to code and get the opinions of my peers and see which view they prefer if they were using the program. I will present my findings on both sides of the decision.
Presenter: John Czapski / Mentor: Scott Weiss
Framework vs Framework
I will be researching backend and frontend frameworks which are used in real life work to accelerate projects so that it can be delivery as fast as possible meanwhile still maintaining great performance. The two main frameworks that I will dive deep into is Spring (Backend) and Angular (Frontend). I will use these frameworks which I thought to be the best to develop a webapp for my client who needs a server-driven website to work to serve their customer online. Other than that, I will also research about 2 different project structures which are monolith and micro-services which decide the scalability, performance and cost of a project.
Presenter: Vu Do / Mentor: Scott Weiss
Robotics Simulation
There is a growing lead in technology, specifically robotics where some jobs are being replaced with robots. Robotics in industries are used in many ways. For example, the company, Amazon, being able to use robots to move specific packages into different locations. Many companies are moving to new technology so there is more efficiency in different areas. In the demonstration, we are simulating a robot retrieving, moving and placing boxes to show how it can be helpful.
Presenter: Jack Erlandson / Mentor: Brian Heinold, Ph.D.
Mount Lifting App: Database Comparison
My senior project is for the athletes. I hope that it spreads to all athletes here at the mount in some way, but for now it’s for the men’s lacrosse team in particular. Every time we are away from the mount, we are expected to continue to compete by maintaining and improving our strength and conditioning. It’s hard to say every player will know what to do, so our strength coach Joe Sharp emails us an excel packet for the time we are away. Some team members print out the packet and carry it with them, and the others pull up the packet through their phone in the email. The idea of the app is make it easy for the student athletes to follow the workout routine on the convenience of their phone. The application will be an IOS app, since the entire team has IPhones. Our senior project theme is ‘choice’, which comes into play on the back end of the application in the ways in which I store the users. By storing users, I’m referring to when the user of the application opens the app they are required to sign up or login. Therefore I’ll have two implementations of the same application essentially. However, in the first application I use Google firebase. Where as in the second application I will use SQLlite. The two databases offer a variety of pros and cons that I plan to compare and contrast throughout the presentation of my project. Upon logging in, the user will be brought to a welcome page the also gives the option of strength or conditioning. Whichever is selected, the workouts pertaining to that category will appear for the entire month as they are on the packets we receive currently. The comparison of the two databases will be the focus of my presentation, but I do plan to show the fully functional application on my own phone as well as through the simulator.
Presenter: Evan Falkowski / Mentor: Scott Weiss, Ph.D.
Running app
The purpose of this project is to give runners the ability to make their own running paths and to keep track of their progression whilst running on the paths that they have created. The application will have the background of a map relevant to the runner’s location, for example, like Apple Maps. The application will also feature a few buttons the user can interact with, for instance a stopwatch and pins. The runner will be able to pin his or her real time location, making a start pin and an end pin, which will signify a unique path. Before each run, the runner can either choose to create a path, or choose a previously existing path. The runner can create as many paths as they would desire. In order for the application to determine the actual path between two pins, however, it will first have to track the runners location every second from the time it takes the runner to pin the start location to the end location. The runner will also have the ability to keep track of their time on each run path, how many times they have stopped for a break, and how long the break was. In addition, the runner will also be able to see how long each path is (in miles), and how many miles they ran on a run. Theoretically, as the runner uses the application through time, they will see if they are progressing on each path, in terms of average breaks taken and the average time it takes to complete the run. I decided to take on this project because I recently got into running over the summer. I was so passionate about it to the point where I found myself running everyday of the week for a while. After a few weeks of running, I quickly realized that I needed a way to record how long it takes to complete each run (automatically, of course) in order for me to know if I was ever progressing- in terms of conditioning. Soon after, this whole idea of pinning start/end locations to create a personal running path came to mind, and I wanted to pursue it since I have never come across an application with this feature in it. By creating this application, I will have the ability to confidently make an idea of mine become a reality.
Presenter: Michael Hargenrader / Mentor: Scott Weiss
Chemical Tracking Database
This will be a quick presentation on the work that went into creating a chemical database management web application for our Science Department, and the problems that arose during the development process. The main focus of the presentation is going to be on the "choice" that we had to make, which was the choices of database storage techniques in my case. These two choices will likely be a MySQL database and a google-sheets/excel database. In addition to this choice, I will also briefly go over the several pieces of software which were used to actually develop this web application. In the event that the presentation is not long enough involving the choice aspect of the Senior Project, there will be an inexhaustible list of developmental difficulties to explore. The biggest deliberation over which problems to include depend on the difficulty and solutions to said problems.
Presenter: Matthew Kennedy / Mentor: Brian Heinold, Ph.D.
QuickStat: Easier Statistics
My project will be a statistic-grabbing web application that fetches the statistics for players and teams from the NBA and NFL and displays them in an ordered table, with the option to display a graph of a specific statistic’s progression over the season. The presentation of the project will revolve around a "choice" I had to make in development. The “choice” in my project will be whether to use the API’s raw output or to use R to format the data myself. The raw data of APIs can be clustered, incomplete and difficult to understand. To combat this, I could use R’s data formatting functions to do it manually. There is a drawback to both approaches: the raw data would be faster but could potentially harm data integrity (i.e. fumbles displayed under touchdown column). Conversely, to format it manually, I would have to store it somewhere and the function I use to format the data will be called with each API call. This would likely slow the application down after numerous calls. If I can create a fast algorithm to sort, clean-up and neatly display the data, the speed difference would be negligible, but this option would be preferable.
Presenter: Justin Kimble / Mentor: Scott Weiss
Using Machine Learning (K-Nearest-Neighbor) to Predict Graduation
For my Computer Science senior project, I wanted to research and work with a machine learning algorithm. While researching the different types of algorithms, it came down to a choice few, but I ultimately selected the K-Nearest-Neighbor algorithm. The algorithm works off of placing new points based on the Euclidean distance and a K-value. This K-value is the most important aspect of the project because it looks at the points around it that are similar and bases its new value off them. If the K-value is 3, it will only look at the nearest 3 values and if, for example, 2 of those values are ‘blue’, it will label the new value as ‘blue’. However, if you choose a K-value of 20, the algorithm could become biased with large groupings of data. The target is to find the best K-value for the dataset. The dataset I am working with is anonymized student data from the Mount which covers features such as GPA, credits, gender, race, ethnicity, major, and religion. This dataset includes quantitative and qualitative features. I will be manipulating the data in order to work with one another and be used to predict based on their similarities. The choice aspect of my project will be deciding the K-value in conjunction with the quantitative and qualitative in order to predict the highest graduation percentage with the lowest error rate.
Presenter: Mason Lipford / Mentor: Rebecca Portier
RevWorm: ReLU vs Sigmoid
RevWorm is a program designed to use image recognition to determine whether or not a worm is moving forwards or backwards. The problem is that the difference between the front and end of the worms is just that the tail is slightly sharper. It's difficult for even a human to discern quickly. However, image recognition can possibly do this but what activation function is better, ReLU or sigmoid? ReLU is an activation function that takes the maximum of the input and zero. Sigmoid is equal to 1/(1+e^-x) which makes it learn quickly at first but slower as it progresses. Each activation function has its own pros and cons. ReLU can learn quickly but can also have problems where nodes are effectively dead and can never be activated again and with such a difficult problem, ReLU may end up dying quickly. Sigmoid is slower to learn and has diminishing returns so getting it to work accurately is an uphill battle. The lightning talk will be about my experience using ReLU and sigmoid on such a difficult problem and whether or not ReLU is too fragile for the problem and if sigmoid's diminishing returns makes it impractical for such problems.
Presenter: John Mellor / Mentor: Scott Weiss
A Web Crawling Application and Data Storage
A web crawler is an internet bot that collects information about a website such as the URL, content, and links. One of the most prominent examples of web crawlers, which many people reference each day, are search engines. Intrigued by our everyday use of web crawlers, for my computer science senior project, I wrote an application that uses a web crawler to extracts links from web pages and displays the relationship between the extracted links in a crawl diagram. This diagram allows one to see the interconnectedness of the internet. As a part of this year’s theme, “Make a Choice,” I had to choose how to store crawled data, in a database or tree. The project utilizes Scrapy, a web crawling framework; a MySQL relational database; Flask, a micro-web framework; Python, a programming language; and skills developed in the computer science curriculum.
Presenter: Cheyenne Norwood / Mentor: Rebecca Portier
Object Detection
Object detection is a very prominent area of study today. There are many different object detection models that will yield different results. Varying from speed to accuracy. My senior project is to train two object detection models, Yolov3 and Fast-RCNN and testing which network is better on a small data set. I have collected and labeled my own data to train the models on and have tested their accuracy by implementing them into a drone. During my lightning talk I will discuss my results.
Presenter: Miles Patrick / Mentor: Scott Weiss
The Computer Con
AI machine learning techniques provide much game play experience in video games whether it be piloting enemies, generating content, or personalizing gameplay experience. But what about playing the games? This lightning talk will explain how a neural network evolutionary algorithm can be used to make a bot able to pass a level of a common video game like Frogger or Super Mario Brothers. This bot is based upon a famous bot called MarI/O produced to pass a different level.
Presenter: Ian Schirra / Mentor: Brian Heinold, Ph.D.
Senior Project Presentation
This presentation will focus on the research I have done involving the choice between two different databases for my senior project. This project involves designing an Android application as well as a website that can be utilized by the Mount Custodial Staff in order to conduct room inspections more effectively. An appropriate database is needed to store all of the information regarding room inspections done on campus. I will discuss my research involved in deciding between two databases, Google Sheets or Zoho Sheet, and why my eventual choice on one of these two databases was made. I will go into the pros and cons of each database, how each one could be implemented for my project, how each one can be implemented based on different needs, as well as how these databases are utilized in the workforce.
Presenter: Joshua Snavely / Mentor: Scott Weiss
Facial Recognition System
For my computer science senior project, I wanted to make a facial recognition system for the cyber lab in room 109 in the science building. The theme was make a choice, so I chose to try to do this using either a laptop, or a raspberry pi and camera. This project is mainly for professor Rafiq, he wanted a way to know who is using the lab on a daily basis, as well as how many people go in per day. My project will make use of a program running facial recognition software, and a database. The database will hold all the faces and names of known people in it. When a face comes into frame of the camera, a box will be displayed around the face, and will display the name of the person if it recognizes them.
Presenter: Eric Stanley / Mentor: Athar Rafiq