|Teaching Compiler Design MLF@VM.CPD.UA.ES (Mikel L. Forcada) (1995-02-14)|
|Re: Teaching Compiler Design firstname.lastname@example.org (1995-02-17)|
|From:||email@example.com (Bill Leonard)|
|Organization:||Harris Computer Systems, Ft. Lauderdale FL|
|Date:||Fri, 17 Feb 1995 23:03:40 GMT|
"Mikel L. Forcada" <MLF@VM.CPD.UA.ES> writes:
> I am currently part of a team that teaches Compiler Design in the
> University of Alacant in Spain. This year (1994-1995) we have adopted a
> completely new methodology, largely inspired on the "Teaching/Learning
> as Research"  paradigm, which in turn is based in "Human
> Constructivism" [2,3]. Most of this methodology has been applied to the
> teaching of "basic" science (physics, chemistry), and we are trying to
> "translate" it to the more "technological" field of compiler design (we
> haven't been able to locate specific bibliography on this --- relevant
> references will be very welcome!).
> In the new methodology, the classroom and the computer laboratory become
> a research laboratory, where "novel researchers" ---the students---
> perform their research (that is, develop the techniques needed for
> compiler construction) under the supervision of a "research advisor"
> ---the teacher. The emphasis is on problem solving.
If I understand you correctly, this technique of teaching is currently
being applied in some of the public and private high schools in my area in
several subjects, notably mathematics. My wife teaches mathematics at the
college level and also tutors high school students in math. In both
environments she has noticed that students who are being taught this way
are not learning the skills they need.
Some of the problems she has noticed are similar to the ones Mr. Forcada
mentioned, but the primary problem is that this method is far too slow to
be practical. The student has to spend a lot of time trying to work out
a solution on his/her own before the "real" solution is revealed. Seldom
do the students work out the "real" solution on their own.
Related to this is the level of insight required to come to a clever
solution on one's own. No one person can "discover" all the world's
mathematics (or any other subject) on their own. The higher level the
problem, the less likely the student is to even recognize the true nature
of the problem and its correct solution. Clever solutions are usually
based on viewing a problem from a non-obvious angle, and that kind of
insight just doesn't come every day to every student, no matter how smart
In the realm of compilers, this is very true. Modern parsing techniques,
indeed all formal language theory, is based on a particular view of the
problem that, to the uninitiated, is not necessarily obvious. I remember
my first attempt at parsing, before I had been taught any theory about it.
I doubt that I would ever have approached the problem in a way that would
eventually lead to anything remotely resembling a modern parser, at least
not in a reasonable time.
> The results of the application of these methods to the subject of
> Compiler Design have not been completely evaluated, since this is the
> first year we try. Some observations and problems follow:
> (a) Students are too used to unidirectional (teacher-to-student)
> classroom situations and appear reluctant to participate in a more
> active environment. Also, they tend to take verbatim notes when the
> teacher speaks, but seldom do so when it is a student who proposes a
But the fact is, much more knowledge can be transferred this way in a given
amount of time. If we all lived to be 600 years old, maybe we wouldn't
care, but we don't live that long.
> (d) Students recognize that they understand theory much better when
> theory comes as a formal answer to a problem they have been working
> hard to solve, rather than when it comes as a revealed truth that is
> subsequently applied to solve some example problems.
Probably true, but how many problems can they practically "work hard to
solve" in the few years they have to learn all they need to know?
> (e) The "coverage" of the course lectures becomes smaller. Since a lot
> of time is spent in understanding each problem, lots of material
> (for example, LALR(1) parsing this year) are left out. In exchange,
> what is covered is better learned, we hope!
The "better learned" will come as small consolation to those poor students
when they find they don't have the skills required to get a job!
Harris Computer Systems Corporation
2101 W. Cypress Creek Road
Fort Lauderdale, FL 33309
Return to the
Search the comp.compilers archives again.