Students Find Software Solutions to Real-World Problems
How can you determine how much money you need to earn to live in a particular city? How can a town, state, or country ensure its elections are free of hacking and fraud?
Computer science is all about solving problems, and this summer Keene State computer science students are coming up with solutions to these two very different real-world problems. A 2019 grad is also continuing to work on a project he’s been part of for the last two years: designing a tool to automate parts of the software development process.
Here’s a quick look at the work these students are doing in Computer Science Professor Elvis Foster’s lab:
Living Wage Economic Analysis System: “With this system,” says rising junior Drew Pickett, “we’ll be able to figure out the living wage based on location.” Drew, a computer science major/math minor from Bridgewater, Massachusetts, is working with another student, James Cunningham, on the project.
The idea is that a person who is moving to a new town or trying to decide where to move will be able to access a living wage calculator online, plug in a city or town, and find out how much they’d need to earn to afford housing, food, entertainment, and so on in that place. The system can even provide a breakdown of the salary needed for thrifty vs. comfortable vs. luxury living.
The project began as a collaboration with Keene State Economics Professor Patrick Dolenc, whose students were compiling cost-of-living information for the Keene area. It depends on more collaborators: a network of researchers from colleges and universities across the country who will upload data about the cost of living in their areas.
Electoral Management System: Students Quinlan Wood and Adam Zett are refining a software package that towns, states, and countries could use to keep track of voters and run elections. The system is three-pronged: One subsystem stores voter data – name, address, party affiliation. A second contains ballot information – what offices are up for election, who is running, and so forth. A third is a voter interface – a screen on a computer where voters input their votes at the polls on election day.
The three subsystems work together, says Quinlan, to ensure a closed election system – computers using the system would be linked to each other but not to the internet – that would be easy for all users and could quickly and accurately tabulate election results.
“Our objective,” says Dr. Foster, “is to start a state-wide or maybe a national conversation about how we could have an automated electoral management system that is safe and reliable, and adaptable to different situations.”
“I’ve definitely learned a lot working on this project,” says Quinlan, a senior computer science major/math minor from Westerly, Rhode Island.
Innovative Software Engineering Methodologies Facilitator: He graduated in May with a computer science degree, but Ryan Collins ’19 is continuing work on a software tool he’s been refining for the last two years, initially working with another student who has since graduated.
The tool, the Innovative Software Engineering Methodologies Facilitator, is aimed at making it easier for software engineers to create programs by automating some of the documentation processes.
Ryan has just launched his career with a full-time job as a software engineer with Fidelity Investments, a position he landed after holding an internship at Fidelity. He credits his work on the new software tool with providing the experience he needed to get the internship.
“Software engineering is so much about interacting with people,” he says. “The technical aspect, how well you do your job, is incredibly important, but even more so, you’re always working with some business unit, and you’re always working with other developers. Being diplomatic and being able to handle your work while working with somebody else is something you just can’t learn working on your own personal project. You need to be on a team.”
Dr. Foster adds that computer science students at Keene State learn by taking on the same kinds of projects that professionals do. “The idea of training software engineers, as we do in our department, is to prepare them to go into the real world by identifying a real-world problem and then trying to do something about it,” he says.