A mobile application to encourage blood donations, a website for rating college courses and professors, and a social network for fitness enthusiasts were among the semester-long projects developed by LSU computer science seniors this year in the college’s Software Systems Design course.
Anas “Nash” Mahmoud, an assistant professor of computer science at LSU, teaches the course and pushes students to create software applications from the ground up — from design to development to pitching the product to potential investors.
“The whole idea of the class is to give the students real-life experiences — how to create software from scratch,” Mahmoud says. “Most people think they can create software randomly without a process, but this doesn’t work.”
Nine student teams each developed software applications over the course of the spring semester and pitched them to a “Shark Tank”-style panel of peers and software industry representatives.
Among the projects was “Tiger Blood,” a blood-donation app for Android devices aimed at the LSU community. The app notifies students, faculty and staff when a blood-donation event is happening on campus so they can participate. It also keeps track of how often a user donates blood and can send reminders to donate blood at the appropriate time. Another feature allows area hospitals to announce a blood shortage via the app to call for donations.
Another team created LSU Course Review, a website that lets students easily rate classes and comment on professors via a browser or a mobile device. Another project, “Form Fit,” is a social network for fitness enthusiasts that lets users create a profile and connect with others about their workout routine. Users can post information or videos about their workouts for feedback or access detailed information about muscles to help customize workouts.
Planning Before Coding
Mahmoud says every semester at least a few student groups kick off the project by concocting an ambitious plan for an elaborate piece of software with a long list of complicated features. “They are convinced they can do it,” he says. “Once they start gathering the requirements they discover this is probably way too much and impossible to implement.”
That dose of reality is an integral part of the course. Although students are free to take on any type of project they want, the course builds in an extensive planning process before the first line of code is ever written. Mahmoud and his teaching assistant work with the students to map out the features for the project, the target audience and a commercialization plan.
After about a month of planning, the teams have a fully developed software-requirements specification document that serves as a guide as they move into the development phase.
Working as a Team
A typical app produced for the course has 10-15 features, ranging from relatively basic functions like a login screen to more complex services like a shopping cart or video module.
Student developers are required to use GitHub, a web-based version-control code repository, to manage their code, and they have access to hardware and other support from industry sponsors. Mahmoud says the open-ended nature of the projects leads many students to explore new software technologies to make their projects a reality.
“Each year I see new tools and I see new technologies and it makes me so happy knowing students are updated on the new technologies out there,” Mahmoud says. “The students are doing a lot of research on their own.”
Mahmoud says he has stopped allowing video game projects because he found they were often driven by a single group member’s vision of what the game should be, which makes team dynamics difficult. But non-gaming software applications can still present their own problems, particularly in a group setting that forces developers to work together over an extended period.
“The teamwork aspect is very challenging,” he says.
Pitching the Product
Once the development process is complete, the teams must present their product and detail its features to a panel in presentations of 10 minutes or less. Guest audience members often include representatives from companies that create end-user software, mobile apps and video games. This year a representative from IBM will be among the guests.
The presentation process is a major part of the overall course, and is emphasized and workshopped throughout the semester. A significant portion of the class time is focused on presentation skills and developing a strategy to sell their product, Mahmoud says.
For Mahmoud the final presentations are the culmination of months of work by the students and the moment he truly knows how successful the applications will be. “The presentation, for me, it’s closure for the semester,” he says. “It’s a long process and I’m always happy to see the final product.”