May 10, 2021

Software Development Students Solve Real World Problems

Students in Computer Science 488 Software Development have spent the spring semester writing software to address several real world problems: equipment inventory management, video games for earthquake preparedness education, and visual tracking of fruit fly larvae in biology experiments.

The course, taught by Associate Professor of Computer Science Peter Drake, has students working in teams of 4-8 to meet the needs of real, external customers. They gain experience solving problems that are larger and messier than anything they’ve encountered in previous courses. Along the way, they learn about project management, version control, teamwork, communication, and best practices for designing reliable, maintainable software.

The customer for this semester’s first project was Glenn C. Devitt, Neighborhood Emergency Team Administrator for the Portland Bureau of Emergency Management (PBEM). The challenge was to develop a website and database to allow PBEM to keep track of the many pieces of equipment loaned out to volunteers. Using a combination of JavaScript (including the React library), HTML, and CSS, students developed a system that works on both desktop and mobile platforms.

“The student team was extremely professional, all around,” said Devitt. “The product they created is fantastic and, perhaps equally important, they managed the project very well and conducted our meetings efficiently. The students precisely understood our business goals, asked insightful questions, and met our technical specifications. In fact, they exceeded our expectations by identifying and correcting some potential problems in our proposed system, and by taking initiative to add security elements that better protect our data. The entire collaboration was smooth and produced an excellent result for PBEM.”

“I learned a great deal about collaboration, communication, and inclusivity, both within my team and with our customer,” said Nabil Khan, one of the students working on this project. “I also learned what software development can look like in the workplace after graduation.”

The second project involved creating video games to teach citizens to prepare for earthquakes such as those spawned by the Cascadia Subduction Zone off the coast of the Pacific Northwest. This is part of research supported by a multi-year National Science Foundation grant and led by Associate Professor of Geological Science Elizabeth Safran, Associate Professor of Psychology Erik Nilsen, Associate Professor of Rhetoric and Media Studies Bryan Sebok, and Drake. Students in the class began constructing the second of four games using the sophisticated Unity game engine and the C# programming language. Other students working with these faculty over the summer will complete the game, which will then be used in experiments to study its effectiveness as an educational tool in various conditions.

Student Terin Trachtenberg spoke highly of the experience. “Working on the earthquake game in this class was very difficult at times, but also very rewarding. I don’t think I’ve ever taken a class like this before; I feel like it’s unique in the way it resembles the actual workflow I can expect from a real software development job, if I choose to pursue one in the future. Knowing that the work I and my teammates did is helping a real project is a great feeling, too!”

The final team made improvements to a Java program, developed by a previous CS 488 team, to track fruit fly larvae in videos recorded by Associate Professor of Biology Norma Velazquez Ulloa.

“The team I worked with cleaned the code, made the user interface easier to use, and added new features to the software,” reported Velazquez Ulloa. “Our partnership worked seamlessly and I appreciated that the students came up with additional ideas to better the software on the coding side, which I would not have known to ask for. This new version will allow us to analyze larvae videos faster and more efficiently than ever before.”

CS 488 is offered every spring.