Good to know: Competitive programming means squeezing cows into an elevator and other conundrums

The clock is ticking and these students in the new Saint Rose competitive programming class are asked to get through four problems involving prime numbers, matching delimiters, magic squares and climbing bovines.

Forty-five minutes had elapsed, of the 75 minutes allotted. Seven of the 14 students had successfully completed at least one programming question, of the four assigned. The event was not especially visual, college students with heads riveted to a computer screen tapping their keyboards loudly enough to mimic a small hailstorm.

But this was something important — the final class of a new Saint Rose course known as competitive programming. The best answers would net not just a good grade but a chance to advance to the CCSCNE 2015 regional competition next month at College of the Holy Cross. That’s the Consortium for Computing Sciences in Colleges – Northeast Region, and Saint Rose has placed as high as third out of 29 teams.

To qualify this time, computer information systems students, who are part of one of the College’s fastest-growing disciplines, were putting together just about everything they had learned about programming, data structures and algorithms and throwing them at the problems.

These included “What’s Prime Around Here?” which asked: “Write a program that reads in an integer value from the keyboard (you may assume a valid integer that fits in 32 bits is entered.) Another, “Cows in a Skyscraper” requested a program to fit as many cows as possible into an elevator in order to minimize the number of trips needed, using such variables as their weight and the maximum weight allowed in the elevator.

computer story 5

Deciding whether the programs were good, great or not quite there were computer science professors Mark Gilder and James Teresco, who used the top scores to determine which students would more on to intercollegiate competition.

“I have a series of tests to put to their programs. They get points for any tests they solved correctly,” said James Teresco, associate professor of computer science, as he and Mark Gilder, an assistant professor, stood at the front of the room and vetted student responses on their own laptops.

They either accepted the answers as correct, or sent them back with the designation “incorrect output.” Not only accuracy but speed mattered, Teresco explained, as a tie for the most tests passed would be broken by the individual who solved them the most quickly.

“They have the option to make corrections and resubmit or to move on to a different problem,” said Teresco. “But they only have till 4 o’clock. They have to prioritize which will bring the best result.”

The point of competitive programming, a sort of slash-and-burn, half-semester, one-credit course, is to get students to look beyond the usual goal of building a perfectly designed and documented program. The point is to get them to think like they are on the job, at a hospital, bank, university, government agency or any setting where information is needed fast and system repairs are needed instantly.

“This is typical for any programmer – sometimes they just need to get the job done and put out the next fire,” Teresco said.

In fact, as he and his colleagues note, there are more jobs in computing than in any other field under the science, technology, engineering and mathematics umbrella – and not enough people to fill them. This is borne out at Saint Rose, where graduate enrollment has already nearly doubled this academic year and will continue to grow. The computer science graduates will have a large variety of career choices, as web designers and developers or as programmers in a private company or in a government agency.

For now, the four top finishers, Rains Jordan, Scott Whitney, James Wing and Andy Reifman-Packett had earned a berth on the Saint Rose team headed to CCSCNE 2015.

“Everyone will be sending their best students,” noted Teresco. “Now they will go from being competitors to working as a team.”

 

  1 comment for “Good to know: Competitive programming means squeezing cows into an elevator and other conundrums

  1. Bryan Burns
    March 26, 2015 at 8:48 AM

    Awesome!!!

What do you think?