[comp.edu] programming contest for beginners?

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