Projects should be done in pairs and taken from the following list of possible projects. Contact possible partners and advisors and work out the details for spring advising.

Title Description Advisor
Interactive Makefile maker Create an app to ask the user questions and create a makefile from the results. Prof. Norman
Seat Your Students App Create an app to pull names/pictures of students from Moodle and allow the professor to rearrange them on a small screen to mimic where students are seated in the classroom Prof. Norman
Blockly extension to Excel Create an extension to Excel to allow users to create formulas using drag-and-drop programming blocks. Prof. Norman
Crayowulf Build a mini-Beowulf cluster by networking together multiple system-on-a-board computers (e.g., Nvidia Jetson TK-1, Raspberry Pi 2, etc.). Use CAD software to design a Cray-1-shaped enclosure; print enclosure using Calvin's 3D printer. Configure its (Linux) operating system and parallel computing software (MPI, CUDA, etc.). Benchmark it (e.g., HPL, HPCG, etc.), for comparison to other supercomputers. Write parallel software demonstrating its capabilities. Adams
Extending the Jedi Trainer Continue to improve the Jedi Trainer VR Game by adding enhancements. Adams
Create an Original VR Game Design and build an original virtual reality game using the department's VR equipment. Adams
Calvin 'Scheduler' Design and implement an intuitive user interface for the 'Scheduler', a web service designed by previous CS students to help department chairs create, edit, and verify semester course schedules. You will need to run UX studies and work closely with department chairs to improve and iterate on your designs. Adams
(and T. Wodarek)
Machine learning for song recommendations Learn about and test various machine learning algorithms to improve song recommendations offered by Hymnary.org in response to searches at that website. Given a file of millions of queries, responses offered by the search engine, features of recommended songs, and data on songs clicked, you'll try various machine learning algorithms to see if you can improve on the results the search engine currently offers. Plantinga
Robodrummer Write a program that follows a performance of a hymn in a score. The program could then automatically turn the page for a musician performing the music or insert a missing line of the score such, such as a drum or bass line, by outputting midi commands. Plantinga
Backpain Tracker App Create an Android (and iOS) app that people can use to track and report their back pain to their doctors. It allows the user to specify where on their back the pain is, when it hurts, what they've been doing that day, etc. Prof. Norman
Blockly language implementation to control Scribbler robots Use the blockly language to create a blocks-based language that allows users to drag-and-drop coding blocks to control the Scribbler Robots and Flukes via bluetooth Prof. Norman
Donor Kiosk Using APIs from Igenico, TSYS, and a Donation website, along with an Android or iPad tablet connected to an EMV enabled mPOS Card Reader, create a PCI compliant donation kiosk with a nice UI experience for the donor. This project will be done in consultation with staff and according to the requirements from Cru, one of the largest missions organizations in the world. (Objective-C, Swift or Java depending on platform chosen) Prof. Norman, with Kent Keller of Cru
Event Kiosk Using APIs from Igenico, TSYS, and EventRegistrationTool.com website, along with an Android or iPad tablet connected to an EMV enabled mPOS Card Reader, create a PCI compliant conference registration kiosk with a nice UI experience for the registrant. The kiosk could be used in both for event registration and for payment onsite at events.This project will be done in consultation with staff and according to the requirements from Cru, one of the largest missions organizations in the world. (Objective-C, Swift or Java depending on platform chosen) Prof. Norman, with Kent Keller

Projects are generally chosen from the list given above. However, if you have another idea, feel free to discuss it with an appropriate faculty member.

Some projects from the past involved mentors outside of the Department of Computer Science. This is acceptable but you’ll need one official mentor from the department as well. This mentor will serve as your administrative liaison to the department.