December 1994 for Fall 1994
Lee,
Finally I think this evaluation is ready. If I have opened up any
questions which you would enjoy hearing my response to, fee free to
write me and request on.
Thank you for the course. Have a wonderful break.
Introduction Chris Kawecki
My reading of the course was that it had six main goals:
1-to make me a proficient programmer of advanced features of lisp
2-to make me a proficient programmer in CLOS
3-to give me an understanding of agents
4-to give me an understanding of genetic algorithms and genetic programming
5-to introduce me to current AI research
6-to give me experience with presenting projects
Self Evaluation -- the focus of this self-evaluation is whether the 6
goals were accomplished for me.
1-to make me a proficient programmer of advanced features of lisp
I am now a proficient programmer of advanced features of
lisp. I learned the basics of lisp partly a year and a half ago and
partly this summer. I became comfortable with the language in general
with my first project. I learned about macros in two stages: 1, reading
the Lisp book at the beginning of the semester ; 2, completing a
portion of the final exam that dealt with macros. I was amazed at how
much of lisp I had missed when I learned it for the final exam. I had
to relearn packages when I ran into them in CMULISP. My code would not
be as fast or insightful as often as Lee's was, but I would understand
his method and understand most of its benefits when confronted with
his code.
2-to make me a proficient programmer in CLOS
I understand the concepts behind CLOS, can understand CLOS
code, and can write my own. I was introduced to OO two years ago and
have been picking up pieces here and there since. I did not make
extensive use of CLOS, but I have showed a sufficient understanding of
CLOS to demonstrate that I could use it extensively without additional
learning, to the degree that any project is suited for it.
3-to give me an understanding of agents
A slightly controversial answer: My frank opinion is that an
understanding of agents means being able to give a number of
two-sentence definitions of agents, roughly corresponding to the
definitions given by the schizophrenic AI community. No extensive
project is required for such simple "concepts". Thus, I feel that an
email message I sent to Lee regarding his "agent proof" is the real
proof that I "understand" agents. I also wrote a paper on agents' role
in the file system of distributed operating systems, which was a good
exercise in TeX and writing, but in my self-evaluative world I had
already passed the proof.
4-to give me an understanding of genetic algorithms and genetic programming
I learned the difference between the two. I learned about
koza's package, and I am competent in using it.
5-to introduce me to current AI research
Reading from the AAAI journal, ACM, and attending all the
classes gave me a good breadth-first look.
6-to give me experience with presenting projects
Any time spent presenting something to an audience is good
experience. I was not fully able to enter the "selling" frame of
mind which Lee hoped we would all get into.
Class Evaluation
When I initially read the course description, I remember
thinking that what we planned to cover could be fit into fewer
weeks. I think for me this is probably true. Each of the 4 programming
projects required between 3 and 7 days of work, which leads me to the
conclusion that I was working on a project for approximately one-third
or one-fourth of the course time. Of course, that was intense time. If
I had been spending such intense time for the entire length of the
course, I would have to consider it one of at most two such learning
activities. Personally it would work better for me to have done the
course in three intense weeks rather than three months. Of course, I
am downplaying content. But that's no surprise, coming from
process-man. But I have good reason to downplay content! Content is
more easily forgotten (ask any university student a reasonable content
question about what they were learning one year ago) and compare how
well they can answer it to how well they can answer a process
question. I agree with Alfred North Whitehead, whose idea this college
is founded upon. That idea is that the quantity and variety of
information is so overwhelming that what must be learned now is how to
deal with it, not the facts themselves. Most of our class time was
devoted to facts themselves, and I think a better use for much of that
time would have been working on projects.
I am very impressed with the energy of the professor.
Some general ideas I have thought of that might be tried in the
class:
-Email out a set of problems (like the exam questions) that relate to
the material either weekly or biweekly. Preferably, mail it out a week
early, and if students can complete the problems, it is clear that
they would do not need to attend class. Alternately, hand out the
exams on the first day.
-Bring in someone who can be critical of computer science as a field,
specifically saying (for example) artificial intelligence is payed for
by defense budgets; AI scientists are all soldiers.
-Meet at least once each with each of the students in the
class. Preferably, once at the beginning to figure out what they need
most, and once at the end to talk with them about what they learned +
where they're going. (kind of an advising role -- folks really benefit
from second or third opinions)
-Don't dwell on "evaluation". At the beginning of the class, you were
suggesting that we do certain things (proofs, xxx) because otherwise
we won't be evaluated. Perhaps one might try to explain why the things
you learn will be important to your education, rather than important
to your evaluation. If someone then suggests "but I can get that same
education by doing XXX" and they do XXX, seems like they ought to be
evaluated for that. (You certainly made steps in this direction with
your proofs, and I applaud that. I just felt very unmoved -- almost
sickened -- that the argument for why I was doing something was to "be
evaluated".)
-I rarely did the reading. The same goes for everyone else in the
class. This is because when I did, I was bored most of the class. Seems
like either the class is going to have to go far beyond the reading,
or the reading should not be required. Otherwise, it seems inevitable
that we'll have a lot of students who have to lie to you, claiming
that they did the reading.
-tell us about ACM contests, especially ones that might mesh well with
AI. Wouldn't it be great for the class project of some subset of the
class to be kicking butt in an ACM contest? We certainly have the best
programmers in the valley, and probably some of the best in the country.
ckawecki@hampshire.edu
Last modified: Fri Jan 6 00:23:31 1995