Related articles |
---|
Teaching Compiler Design MLF@VM.CPD.UA.ES (Mikel L. Forcada) (1995-02-14) |
Re: Teaching Compiler Design bill@amber.ssd.csd.harris.com (1995-02-17) |
Newsgroups: | comp.compilers |
From: | "Mikel L. Forcada" <MLF@VM.CPD.UA.ES> |
Keywords: | courses, question |
Organization: | Universidad de Alicante |
Date: | Tue, 14 Feb 1995 04:10:25 GMT |
Dear colleagues,
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" [1] 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. Instead of following
a textbook, and the classical "first theory, then some example problems"
lecture system, an integrated program of classroom activities is carried
out. A typical cycle would be:
(a) Initially, the problems to be solved are posed and clarified, and
classroom research is carried out in an attempt to find a general
solution. Work is carried out in small groups (4-6 people) and
progress is periodically reported to the whole class for discussion.
(b) Theory, formalizations, and algorithms from the literature are
presented only after the students have devoted enough time to solve
the problem in small groups and have reached a point where the
problem has been formulated (broken into smaller problems) in such a
way that the theory is applicable. This way, we maximize the chances
that new knowledge and skills are meaningfully acquired, since they
relate very closely to the problems the student has been trying to
solve (the affective factor is crucial in this learning step).
(c) Finally, the solutions are applied to new situations, to check their
ranges of applicability and reinforce learning and acquisition.
Classroom work is closely connected to laboratory work, which eventually
aims at constructing compilers for specified source-machine
configurations. The progress of students is continuously evaluated,
based on laboratory work and short written tests to ensure that each
student knows what he or she has been doing in the laboratory.
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
solution.
(b) Most classrooms aren't designed for this kind of class. There is
only one blackboard, and students sit in long classroom benches that
make group work unconfortable.
(c) Groups are too big: 60 students per class is quite typical. That
doesn't help either.
(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.
(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!
We would be very happy to discuss our way of teaching with other people,
so that we can learn from each other's experience. Has anyone of you
tried anything similar to what I have just described? Our materials are
in Spanish, but I could consider translating some of them if some of you
are interested.
Thank you for your interest!
Mikel L. Forcada (mlf@vm.cpd.ua.es, mlf@dtic.ua.es)
Departament de Tecnologia Informatica i Computacio
Universitat d'Alacant
E-03071 Alacant, Spain.
References:
[1] D. Gil, J. Martinez-Torregrosa: "A model for problem-solving in
accordance with scientific methodology", Eur. J. Sci. Educ.
5:4(1983)447-455.
[2] R. Driver, V. Oldham: "A constructivist approach to currriculum
development in science" Studies Sci. Educ. 13(1986)105-122
[3] J.D. Novak: "Human constructivism: towards a unity of psychological
and epistemological meaning-making", in Proc. 2nd. Intl. Seminar on
Misconceptions and Educational Strategies in Science and Mathematics
(Ithaca, NY: July 26-29, 1987).
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.