teaching programming; any research or results?
started 1/16/2004; 1:47:33 PM - last post 2/4/2004; 12:57:32 PM
|
|
Robert Holwerda - teaching programming; any research or results?
1/16/2004; 1:47:33 PM (reads: 258, responses: 8)
|
|
There are quite a few languages, tools and methods designed for teaching novices how to program. Most of these are backed by some sort of philosophy or vision about the best way to teach the important aspects, and what those important aspect are.
But evidence of the effectiveness of a method is often anecdotal, consists mainly of testimonials or is limited to stories of the successes of the best students (but not of the performance of the less talented ones).
Does anyone know of any systematic research into teaching programming, perhaps comparing different methods, or truly measuring their effectiveness?
At my university (HAN University in the Netherlands) we teach programming to 300 novices each year, and frankly, we're not that happy with our results (using a pretty traditional course with Delphi.) We would like to base our strategy for improvement on something more solid than our personal hunches of what might work.
We are familiar with the published results of the TeachScheme project, but that's all we've found up to now. I would like to present my felow-teachers with a survey of research.
I would be very grateful to any pointers from the LtU community, and I will post the survey here if I can turn up anything substantial.
thanks
|
|
Ehud Lamm - Re: teaching programming; any research or results?
1/16/2004; 3:01:21 PM (reads: 251, responses: 0)
|
|
|
Ehud Lamm - Re: teaching programming; any research or results?
1/16/2004; 3:04:29 PM (reads: 251, responses: 0)
|
|
The PPIG may also be worth a look (though in general, I am quite skeptical of this sort of research).
|
|
Peter Van Roy - Re: teaching programming; any research or results?
1/18/2004; 1:33:19 PM (reads: 186, responses: 0)
|
|
In the last few years, my school (the engineering faculty at UCL)
has completely overhauled the way it teaches the first two years.
Before, we used a fairly traditional approach, lectures supplemented
with labs and exercise sessions. Now we use a technique known as
'Problem-Based Learning (PBL)', in which there are many fewer
lecture hours, and these are replaced by 'projects', one- or two-week
long sessions of groups of up to eight students, in which they have
to solve some concrete problem and find and study the material
needed for solving it. There is a rather large literature on the effects
of PBL on studying. At UCL, the IPM (pedagogy department) is doing a
controlled study of our PBL overhaul, to see what we can conclude
in a rigorous way.
See, e.g., the talk
Construire une
formation d'ingénieur: le rôle de l'apprentissage actif (in French)
by Elie Milgrom.
|
|
Peter Van Roy - Re: teaching programming; any research or results?
1/18/2004; 1:45:29 PM (reads: 175, responses: 1)
|
|
Does anyone know of any systematic research into teaching programming, perhaps comparing different methods, or truly measuring their effectiveness?
It depends on what you mean by "teaching programming". For example,
if you want to teach
students concurrent programming in general, and you limit yourself to teaching
them Java, then your approach is demonstratably wrong. This is because Java's
concurrency is both inefficient and inexpressive. I mentioned to our department
head that I wanted to teach concurrent programming in a second-year course,
and he exploded that it was impossible (he is familiar only with the traditional
approaches, using shared-state concurrency and concepts such as monitors).
Nevertheless, we have now several years of experience of doing exactly that.
Seif Haridi and Christian Schulte with Datalogi II at KTH (Stockholm) and Seif
Haridi with CS2104 at NUS (Singapore). Christian Schulte won best teacher
award at KTH for his course and Seif Haridi got extremely positive remarks
both times he taught his.
Our approach starts with a simple functional language and then adds
concurrency in a second step. This is rather nontraditional; the traditional
approach would add mutable state in a second step (or do away with the
functional language completely). For more information, check out the
CS2104
course materials.
|
|
Dominic Fox - Re: teaching programming; any research or results?
1/18/2004; 2:06:58 PM (reads: 174, responses: 0)
|
|
Anecdotally (and hence somewhat off-topic here), I recently recommended Mozart/Oz + CTM to a young (undergraduate-age) colleague who wanted to learn more about programming. For the immediate purposes of our place of work, C# In A Nutshell would have been more appropriate; but he did say he wanted to learn about programming...
One thing I did enjoy was pointing out the Oz manual's tutorial on finite domain constraint programming to him, and watching him get to grips with that. I think that learning to program is a lot more fun if you don't get pent up in the Java box the whole time. The most interesting thing for me about Oz and CTM is that they not only cut across some of the habitual distinctions between, say, OOP and logic programming, but they also offer an approach in which the different "orientations" are deeply connected. Once that starts to sink in, and you begin to see the divisions between Java and Lisp and Prolog as contingent features of the (recent) history of programming rather than immutable truths of logic or facts of nature, then you have a much better basis for judging the true value of the technologies marketed by Microsoft and Sun.
|
|
Noel Welsh - Re: teaching programming; any research or results?
1/19/2004; 9:02:30 AM (reads: 143, responses: 0)
|
|
I'd love to see a survey of what's out there. I've just started tutoring a first-year Java class and I'm curious as to what different approaches could be taken. In addition to the above resources I've found the following two sites useful. I haven't yet found any emperical studies to support the various different approaches. The sites are:
http://www.bluej.org/
http://www.cs-ed.org/
|
|
Isaac Gouy - Re: teaching programming; any research or results?
1/20/2004; 11:07:11 AM (reads: 123, responses: 0)
|
|
|
Isaac Gouy - Re: teaching programming; any research or results?
2/4/2004; 12:57:32 PM (reads: 79, responses: 0)
|
|
|
|
|