neitzel@infbs.UUCP (08/23/87)
What about having a "programming contest" for students, who learn their first programming language? Has anybody done something like this before? I think of a contest, where the students program and/or "trade" small, re-usable functions/modules for a continous project. "Trading" functions means: Programming is not for free, but you have to invest some card-money per line, or something like that. You may "sell" your software to other participants, who then don't have to program these functions on their own, but still have to integrate your functions into their code... I hope you get the idea. Martin Neitzel ...!mcvax!unido!infbs!neitzel [Even if this looks like a project for an advanced course in software engineering, it could teach essential insights to the newcomers: - what makes programs hard to read and understand - the trade off between simplicity and generality - the worth of documentation - typical problems like "scopes" and "name conflicts" and all the other things you can't experience when programming on your own. Of course you must not be suprised, if such a programming project with newcomers is a total failure, when you look at the software coming out of it. The students will make one error after another. But they would learn from exactly these errors, because they would ask themselves "Why?". The traditional programming assignments usually don't let the student detect his own deficiencies.]
ed298-ak@violet.berkeley.edu (Edouard Lagache) (08/25/87)
My thesis advisor (Prof. Charles Woodson, of the School of Ed, UCB) has uses a variant of the contest idea for his introductory LISP classes. He has held "programming parties" where the class will meet in the evenings, have a pizza, and then spend the remaining part of the evening trying to solve a problem. It has a number of nice features: it helps build up a help network among students, allows students to compare notes on individual problem solving styles, and puts students in a situation will with time constraints without excessive competition. Programming parties work in his classes becuase is classes are somewhat unique. Classes are small (around 10), include both beginner and intermediate LISP programmers, and contains a good fraction of graduate students. Nevertheless I like the concept and think it well worth trying if an appropriate class setting can be arranged. Edouard Lagache School of Education U.C. Berkeley lagache@violet.berkeley.edu
shebs@utah-cs.UUCP (Stanley Shebs) (08/26/87)
We have a sort of a programming contest in our ug/grad expert systems class. For about the last half of the quarter, the students work on an rule-based system to steer a robot rover around a simulated Titan (a moon of Saturn) landscape. Sort of like Rog-O-Matic, but the simulator is designed to be somewhat more friendly to deal with. Anyway, at the end of the quarter, we have an elimination-style tournament (complete with pizza), in which four rovers compete at a time (i.e. in the same simulation, so they have to race for samples and maybe zap each other). The prizes are t-shirts. It takes all afternoon, but is quite exciting, what with students cheering for their rovers, watching them fall off cliffs, wander in circles, and try to collect samples of themselves! Definitely the highlight of an otherwise grueling class... Of course, the official grading of this project is done individually and separately, so the competition is strictly for fun. stan shebs shebs@cs.utah.edu
pattis@uw-june.UUCP (Richard Pattis) (08/26/87)
I've supplied students with a simulator for landing a probe on a planet (like a 1-d lunar lander, but a few extra constraints) and asked students to write an autopilot that can read the probe's status and decide how much fuel to burn (again under more realistic constaints - like you can't have 0 fuel at one moment and have it open full throttle the next and then return to 0 the next). At the end of the assignment I change the planet (new size, mass atmosphere, etc.) and have a contest to see who can land with the most fuel. Of course, most programs crash either the probe or themselves. This can be done in a beginning programming course if the students know a bit of physics and are instructed in simple feedback loops. Rich