Suggestions for the next year
Dec 18, 2000
Method
-
This year, I required students to read the chapter before class then used
class time to have them answer questions or do short exercises on scratch
paper. The students seemed to learn more from this than lecturing,
so I'd suggest doing it again.
-
After trying several other approaches, I picked students to answer the
questions by bringing a stack of small cards, one for each student. I'd
flip over a card, announce the name, and ask the question. When the
stack was exhausted, I'd shuffle the deck and start over.
-
Initially, students were embarrassed when they couldn't answer a question
in class, so they read the chapters in advance as requested. Eventually,
they got used to the embarrasment, apparently, because fewer students came
to class having read the chapter as the semester wore on. I would
suggest making question-answering count about 25% of the course grade.
I'd use a larger stack of cards so that each student name appear about
3 times in the stack. As questions are put to students, I discard
the card into one of three piles: question answered successfully, question
answered unsuccessfully and student absent.
-
Pop quizes would be also encourage reading the chapter, and would provide
valuable assessment data.
-
Although it seems embarrassing just to ask the definition of a concept
or term, I should do that more often. Student performance on such
qualitative questions on the exams was surprisingly bad. In general,
I should spend less time walking through algorithms and more time trying
to get them to see the big picture. For instance, few students realized
that the main reason that POP planning is better than situation state search
is that divide and conquer usually works. Few students could describe
the essential idea separating forward from backward chaining. Few
students could say why hiearchical planning is usually better than non-hierarchical
planning.
-
Doing short exercises in class is good, as it gets them to think. However,
it is hard to get their errors out in the open in order to discuss them.
I usually just called on a student to write his or her solution on the
board. This seemed to work better then having students switch papers
and critique their partner's work. It would have been even better
if I could have had them put their papers under a camera in order to show
the work to the whole class without copying it onto the board--the copying
was slow, and it prevents me from having more than one error exposed.
Curriculum
-
Because few of the students knew Lisp and Prolog, and I believe that an
introductory knowledge of both is just as essential for AI students as
an introductory knowledge of Search and Logic, I devoted 2 classes to teaching
lisp and 2 to teaching Prolog using a laptop and a projector. This
seemed to suffice, as I did not hear many complaints yet the students finished
the assignments. However, the assignments did not require all that
much knowledge of the languages. I really wish I did not have to
use class time for teaching a programming language, especially knowledge
of the languages are not on the exams nor on the CS department's qualifying
exam in AI.
-
In order to make room for teaching Lisp and Prolog, I did not cover the
chapters 13, 16 and 17 as I have in past years when I did not teach the
programming languages. I should have cut out game playing (5) and
put in 16 (decision theory) instead. If I didn't have to teach the
programming languages, I'd add in two machine learning chapters (18 and
19) as those topics are covered on the CS qualifying exam in AI.
-
Students needed much more practice in writing FOL expressions than they
got. Students who knew FOL before the class remained much better
at it than students who learned it during the class. A drill-and-practice
program is needed for this skill.
-
The prolog planning engine seems to be quite slow compared to UCPop, so
it would be best not to use it anymore.
-
The projects didn't seem to provide as much learning as I had hoped.
Despite writing Prolog KB and planner KBs, students still made lots of
mistakes on the exams that were directly relevant to what the projects
were supposed to cover. It would be better to require 1581 (AI programming
languages) as a pre- or co-requisite. This would be even more attractive
if that course had students use Prolog, Klone, Genie and other tools as
well as Lisp.