CS Students Become Inventors of Real-World Software Apps

1-16-2015
Writer(s): Jesica E. Hollinger

CS seniors in the Software Engineering Track get more than an education – they become inventors of real-world software applications with major potential for global impact.

Professor H.E. (Buster) Dunsmore is responsible for the CS 49000-SEP (Software Engineering Senior Project) course, which every undergraduate student in the Software Engineering Track must take.

"The Senior Project is the capstone event in Software Engineering.  Teams of four - six students choose the product they want to develop.  Most projects are selected by team members based on their interests,” Dunsmore said. “Some are projects suggested by our Corporate Partners Program members.  I continue to be amazed at the amount of work the students put into these projects, the way they weave in concepts from most of the courses they have taken, and the professional quality of the software they produce," he added.

CrowdStock, one of the five teams in the class in Fall 2014 with members Michael Clayton, Matthew Crabill, Billy King, Isabel Lee Li, and Adam Rice created their application because they realized there was an opportunity to provide open crowd sourcing to the stock market – an untapped value in current stock market information. 

Clayton said that CrowdStock utilizes a web interface to gamify the collection of mass prediction date, enabling users to then leverage these metrics to make informed investments in a social manner.  

“Users gain reputation points for making accurate predictions. Other users can follow the prediction activity of high reputation profiles in order to make informed investments in the real stock market,” he added.

As for future plans, Clayton indicated that the team would keep moving forward with CrowdStock, developing a beta program that will obtain authentic data and increase interest in the application. The application has the potential to be wrapped into a widget by a larger financial company and incorporated into their product line.

The team members of Purdue IO, Josh Bowman, Darren Cheng, and Hayden McAfee thought they could improve upon myPurdue, the University’s official scheduling site.  Together, they focused on creating an application that would make scheduling easier and more accessible for end users.

Users often find that the course catalog and registration system lack an accessible, easy to use interface to expose useful and relevant class and scheduling information to students trying to manage their class schedules. 

Although many students are capable of developing improved user interfaces and mobile experiences for myPurdue, they often encounter roadblocks due to the lack of an open API to consume scheduling data from myPurdue and perform actions on behalf of the user. McAfee says what happens next could be very exciting for the team.

“We’ve already created a demonstration application showcasing how our API can be used to provide a fast and easy way to browse courses http://dev.purdue.io/ . Our system is open to use for any developer, so we can’t wait to see what sort of creative uses Purdue students can come up with,” McAfee said. “Since our API is entirely open source, it’s even possible in the future to augment Purdue’s class data with things such as ratings and reviews,” he added.

The team members of AppBooster set out to find a fast and straightforward way to setup and deploy an application. Rendong Chen, Hanxin Jin, Tianqi Liu, and Kaiwen Xu established a platform that hides details of the server environment, offering a fast and straightforward way to setup and deploy an app, and to provide proper isolation between apps running on the server. 

AppBooster
Team AppBooster's image from their design document.

The deployment process is integrated with application development workflow and lets developers deploy certain versions of their codebase whenever they choose.  Jin said the team used Scrum methodology while developing the app in group meetings and discussions, as they developed their project.

“The challenges were that lots of technologies were unfamiliar to us at the beginning of developing our project. Our way to overcome this obstacle was simply spending more time learning,” Jin said.  “In the future, we might add more language support for our platform,” he added.

One of the five teams in the Fall 2014 class, OpenTec with members including Christopher King, Spencer Smith, and Christopher Williams created a seismic activity application that displays seismic events occurring in the past 24 hours, appearing as dots on a map of the world.

As Williams described the team’s project, he said it was created from the cumulative knowledge the students learned in their software engineering courses, along with the ability to develop and manage projects of various sizes.

“When an event is clicked on, a navigation bar displays data such as magnitude, location, and a graph of the actual wiggle data,” Williams said. “The ‘wiggle’ data is a digital representation of the needle that moves across the paper when an event is happening – similar to viewing a lie detector test,” he added.

Sam Dickson, Evan Hanau, Jason Salter, and Niraj Venkat, the members of Team Envy Game Engine, set out to create distributed rendering.  Current real-time rendering technology favors the rendering of graphical scenes within the confines of a single machine’s hardware.

Distributed rendering is typically used to create non-real time scenes, but there are few viable options for distributed rendering in real-time using smaller, consumer grade hardware.  The Envy team created a rendering solution for developers who cannot afford to set up an expensive cluster, or who are interested in creating distributed graphics software with a smaller footprint.

Dickson said the concept matched all of the teammates interests, and Salter added that the application has the potential to live on past the senior project.

Venkat added that users could actually interact with the rendering as it’s happening.

“This app has the ability to make changes in real time instead of the traditional single computer,” Venkat said. “The team will continue to work on the app to enhance its potential and address the challenges with its functionality and how to improve and optimize its application, while stabilizing its networking portion,” he added.

CS 49000-SEP was first offered in Fall 2011.  Spring 2015 will be its eighth semester.  Professor Dunsmore has been the instructor, supervisor, and mentor of the course every semester. 

The course has grown from a modest size of 10-15 students with four to five teams to its current Spring 2015 enrollment of 62 students and 15 teams.  The spring enrollment is typically larger, since most students do their Software Engineering Senior Project in their final semester – which is spring for most students.