Sign In

Communications of the ACM

ACM News

Programming 'Boot Camp' Offers Basic Training


boot camp

John Stamey's breakthrough came during a moment of frustration. Several years ago, the Coastal Carolina University computer science professor was teaching second-semester students who, to his amazement, still couldn't so much as write a loop. So he ditched his syllabus and started from scratch. "I said, 'We're just going to do a boot camp. You have two weeks to write these 100 programs.' "

The drill-sergeant strategy worked: by term's end, Stamey says, "the level of programming went from nowhere to everywhere."

Since then he's taken the approach to the greenest recruits: CS majors taking his department's most elementary programming class, which uses Python to ease students into the key components of structured programming: statements in sequence, loops, and IF statements. Despite these modest learning goals, only 76 percent had typically finished with a C or better—but in the first boot camp, the pass rate jumped to 95 percent, with most students earning an A or B.

In contrast to the old curriculum, which assigned three to four programs per semester, the new course has each student write 370 very short programs. A typical program from midway through the boot camp prints the multiples of 10 from 200 to 400, one per line, or asks the user to input two numbers and print their sum and product. "It may get repetitive, but I'll tell you what: you'll learn," Stamey says.

The idea of teaching through hundreds of short programs isn't new. Northeastern University CS professor Matthias Felleisen, an ACM Fellow and winner of the 2009 Karl V. Karlstrom Outstanding Educator Award, has been doing it for about 18 years and popularized it in "The Little Schemer" (MIT Press, 1995). But the approach was a revelation for Stamey, who was excited enough by the results to present them at a conference and publish his own book, "Computer Science Boot Camp" (John W. Stamey, Jr., 2009).

Not everyone's impressed. Shriram Krishnamurthi, a computer scientist at Brown University who also teaches programming to middle-school and high-school students, questions the emphasis on particular programming constructs instead of more generalizable skills. "The student has not been given a way to do programming—they've learned the constructs of one programming language," he says. "What happens when the students go on from this to other courses?"

Some hit a wall. Stamey later found that although performance in the second-semester course did improve after students had taken the first-semester boot camp (compared to students who'd followed the old curriculum), the difference was less dramatic than in the first boot camp—a result Stamey attributes in part to the second-semester switch from C++ to C, which he says is a tougher language. But he remains confident the boot camp is good for his students, many of whom are drawn to Coastal Carolina for its low tuition and nearness to Myrtle Beach. "For students who don't have the best math skills when they come in, I think for some of them it helps."
 


 

No entries found