阿宾顿 computer science

阿宾顿 computer science students develop software for real-world

Two 宾州州立大学阿宾顿分校 computer science majors created scheduling software for a real-life customer, experiencing the full development life cycle — from coding to client meetings — while working on the buildout.

Senior Alec Goldenberg and junior David Martinez tackled the client’s request as part of the class CMPSC 487 Software Engineering, 教 Ishtiaque侯赛因, assistant professor of computer science.

Ishtiaque侯赛因

“An undergraduate software-engineering course can give students a glimpse into the real world. 在我的课程中, that's what I tried to do, have a real customer and let students build a solution for the problem,” Hussain (pictured left) said.

He offered the students several alternatives for their course project, and they chose the most challenging one.

“Dr. Hussain told us it had a higher chance of failure compared to the other options,” Martinez said.

“But he encouraged us to pick this one because he was trying to see what we were capable of,戈登伯格说.

The problem was presented by Zafer Hatahet, division head for science and engineering at 阿宾顿. 每学期, Hatahet would spend hours manually scheduling courses using multiple parameters including the list of classes, requirements and faculty preferences. 

“Dr. Hatahet was looking for something a little more robust than pencil and paper,” Martinez said.

Hussain said they had numerous meetings with the customer during the fall semester. 

“We showed him prototypes of the solution, 得到了他的反馈, and modified and implemented features to his satisfaction. The students learned firsthand that a customer's requirements change all the time. It requires great communication skills in eliciting and confirming the actual need, and then technical skills in implementing and delivering the software.他说.
According to Martinez, it was an iterative process. 

“It was a great learning experience, and it was humbling. We would go over the coding with Dr. Hussain, and he would pick it apart,他说.

After months of research and coding, the pair successfully developed and delivered the scheduling software, executing a genetic algorithm for Hatahet’s problem in the Python programming language.

Hussain plans to continue having students implement software for real customers in the software engineering course. 

“Software engineering in the real world is not just programming a solution. It involves customers, and meeting their actual needs is a big challenge. Sometimes customers don't know what they really want, or they cannot express their needs. 因此, people in the software development industry must have technical skills as well as good soft skills, 例如, great communication skills, working in a team environment, being agile in adapting changes.他说.

Hussain was impressed by Goldenberg and Martinez.

“Alec and David were open to challenges, worked hard as a team in learning new software development tools, experienced the full software development life cycle, and finally delivered a working product. And in the process, I think, they figured out their strengths and weaknesses in software engineering. Alec and David are now in a good position to get ready for the workforce when they graduate,他说. 

Goldenberg found the undertaking gave him a better grasp of his career expectations. 

“This project gave David and I a glimpse into the expectations of a client. A project like this teaches real world skills, which can help you with getting an internship or a real job,他说.