[comp.edu] Logo and Problem Solving Course

mfrydenb@server1.prime.com (Mark Frydenberg) (10/26/89)

Hi Ken.

I tried sending this directly to you, but it bounced back to me. Here
are some thoughts about a course I taught which used technology as a tool 
and Logo as a vechicle for fostering creative thinking skills.

-------------------

My name is Mark Frydenberg. In 1986, at the University of Hartford, 
Dr. Marilyn Schaffer (e-mail address mschaffe@hartford.bitnet) and I taught 
two different strands of a three-week summer institute for the college of
education, entitled "Technology as a Tool:  Using the Computer for Creative
Problem Solving" (or something like that.)  Marilyn's strand mostly involved 
creating curricula which used educational software, and creating criteria
for evaluating such software. The strand that I taught was essentially a
course for people who knew how to program at least a little bit in Logo -- 
and concentrated on different applications  for which we would develop
Logo solutions together. I didn't expect students to be able to do the
programming themselves, but expected they could appreciate the problem
solving involved (representation, data structures, etc) and without getting
bogged down in the syntax of Logo, expand upon it.

Let me tell you a bit about the way we organized this  class and what 
I remember about what we did.

The course met Mon-Thurs 830-430, for three weeks, with a morning and an
afternoon presentation, break, and Lab time built in.

For each presentation there were built in "lab activities" that people
were expected to do. (relatively easy things.)  There were also "Logo
Discoveries" which were slightly more involved; students had to do some
number of logo discoveries (directed assignments) a project (where they
created a Microworld ) and keep a journal of their progress on their
project, where they could track their own problem solving skills in 
programming -- ie., things they tried that worked or didn't work,
for example -- At first I wrote it this way but then decided realized
that I have to do this same thing somewhere else, so i made a procedure
out of it..., etc. They also had to write a user guide for the program
they made, describing instructions for use and suggestions for classroom
use.

To give you an idea, One of the better projects I remember was done by a
teacher who taught middle school biology. She used (Commodore 64) Logo
sprites in the shapes of the bones of the lower body, and after putting
them on the screen, the player had to type in the name of a bone (eg left.femur)
and then use a joystick to move the bone to the proper location. The program
had locations stored for when the bone was in the right place on the screen.
Once all the bones were in place, some flashy graphics occurred. It wasn't a
"win or lose" game, but rather one of discovery. Though it appeared to be
highly "graphics oriented" there was a fair amount of list processing needed
to represent the names of the bones, and the "correct" locations for them 
on the screen. And above all, the project had a specific purpose fo rthat
teacher.. I remember she said she would have her students design the sprties
for the upper body bones; then by changing the locations in a list, the same
program would "work" for teaching about upper body skeletons.  She kept a 
complete log of her progress.

I remember teaching property lists (what they did, not how to implement 
them) and using "blocks world" as a simple example.  In the interest of 
time, I prepared  a disk for the students containing many procedures from
the lectures (or from the articles and texts we used) already typed in.
Their job was to play around with the procedures, then perhaps add to
them.  For example, in Blocks World, we had different shapes for modelling,
and they had to add a different shaped block, or add color to the blocks
or check for things like "you can't put anything on top of a triangular
shaped block because it doesn't have a flat top."  Dan Weston's "The
Second Logo Book" gives a nice discussion and implementation of Blocks
World (but his implementation of Property Lists is extremely ineffecient.)

A Logo Discovery type question would be "use property lists to represent
your family tree using the relationships "father.name"  and "mother.name" and
"sex".  Then have them write procedures to determine if people were
siblings    TO SIBLINGS :PERSON1 :PERSON2 
	      ; siblings if have the same mother and same father
              OUTPUT (GPROP :PERSON "FATHER.NAME = GPROP :PERSON2 "FATHER.NAME)
                 AND (GPROP :PERSON "MOTHER.NAME = GPROP :PERSON2 "MOTHER.NAME)
            END

or the name of the paternal grandfather of a person
	TO PGRAMP :PERSON
	OUTPUT (GPROP (GPROP :PERSON "FATHER.NAME) "FATHER.NAME)
        END
etc.

We looked natural language through an  Eliza-type program (David Thornburgs
"Beyond Turtle Graphics" was the other book along with Weston's that we
used for the course. Thornburg has a mini eliza program called "Doctor"
which formed the basis for our discussion.)

We examined applications of Logo to math problem solving by exploring pascal's
triangle, simulating random events, etc. We did a lot with modelling problems
similar to "the four bugs problem" and went off on exploring what would happen
under different conditions such as if one bug went faster than another, if
the starting number of bugs was different, if their starting locations were
different, etc. See Abelson and DiSessa's Turtle Geometry (MIT Press) for
lots of ideas as to how to explore Predator/Prey problems such as this.
This one went over big because the solution (a) was conceptually easy to 
understand and (b) gave interesting and striking graphics. They were
given a working program to start with and expand upon. Logo Discoveries
here would involve suggesting other scenarios and then keeping a "scrapbook"
of the graphics from different results.

We did some of the standard stuff like "mad libs" and creating words from
different prefixes, roots, and suffixes. We did some graphing.  

One of my goals was to show that there's more to logo than turtle graphics
but turtle graphics can be an effective way to show what's going on in the
"inner workings" of a program. We did a fair amount of talking through
"words and lists" and recursive programming techniques.

I did a lot of Logo stuff at Hartford (where I did my undergraduate study
in math/cs) but haven't been able to do much more since grad school days.
Now I keep a close ear to the Logo world, attend boston computer society
Logo group meetings when I can, dabble around on my commodore 64 once in
a while, and check out any new logo books at the bookstores. 

Since '86, there's been a number of newer books. You might want to see
Paul Goldenberg's  "Language and Logo" published by MIT press - he goes into
a number of language applications you described in your posting.
Brian Harvey's "Computer Science Logo Style" (also MIT PRess) is a 3 volume
set of how to use logo to teach cs - may be a good reference but probably
not for what you're trying to accomplish in your class. In any case,
Have the students definitely read Seymour Papert's Mindstorms (Basic Books?)
for a great discussion of kids, computers, problem solving, and ideas. 
Even if they're not education students, Papert gives an explanation of the 
philosophy that is inherant with the Logo language and the "no threshold no 
ceiling" ideas that encourage problem solving within a microworld environment.

Incidentally, Minsky and Papert have an article in "Mind Design"  or "brain-
storms"  (edited by Dennett? ) one of the cognitive science anthology books)
in which they present a slightly different notion of microworlds than that 
which Papert describes in  MindStorms.

Polya's How to Solve it and Droney's How To Solve It By Computer are both
good references. The latter uses Pascal to talk about problem solving
through algorithms in the same style as Polya.


I always thought that Hofstadter's Godel Escher Bach was good reading to 
introduce problems and problem solving; and he explains recursion in a
unique way. He also gives some Lisp code which could probably be converted
into Logo without much difficulty for some of the "problems" he suggests
(eg. HOTPO :TATO -- the conjecture that when you sstart with a number and
halve it if it's even, or triple plus one it when it's odd, you will eventually
end up with a 1). This problem got us talking about what it takes to "prove"
something, and we had fun trying to find  numbers which brought the longest
pathways to 1. GEB is also interdisciplinary enough to be read by people
from all backgrounds and keep their interest.


Now... let me see what I haven't attempted to answer from your message...


>1. We can provide student's access to: microvaxen running Berkeley UNIX, IBM 
>  PC's or Macintoshes.  We are in need of a LOGO interpreter for the class.
>  Requirements:
>-It must be inexpensive if not public domain. ( < $50.00)
> -It must be as "standard" as possible, or it must come with a 
>reference/tutorial.
>-It must have flexible licensing agreements (student's should be able
> to sell it if they choose.)
>-It should be a complete implementation of LOGO.
	 
There is a version of Logo for the VAX. It's outdated and with the PC's
you have access to, that would be a better bet. Terrapin, Inc. (617-322-4800)
of Malden MA markets one of the major Logo verrsions for both PCs and Macs.
YOu might get in touch with them - I know they have classroom packages and
which include copying and distribution licensing rights. It's complete.

"Apple" markets its own version; it's more than $50, though. I don't think
you can get a public domain version of Logo that's complete -ie, has all
the graphics and the words and lists that make up the language.
LogoWriter is the other version out that's popular these days marketed
by LCSI. They've been doing a lot lately with Lego/Logo, using Logo to control
things that kids make with Lego blocks by attaching receptors and gears and
Then there's Coral System's Object Logo... if you want to get into object
oriented programming stuff.

I used Logo on my Commodore 64 in the old days. It was fun. It was cheap.
It took a long time to load. It was state of the art in '86. 

You can get a public domain lisp which is relatively complete. Most PD Logo's
are really only turtle graphics interpreters. There's turtle graphics in
TurboPascal and Turbo Pascal handles recursion, but if you're not teaching
programming, that's as good a reason not to use TurboPascal. Logo is much
"friendlier."

>2. If the version of LOGO the student's are using does not come with a good
>   manual.  We need a LOGO textbook which is not machine specific.
>3. We need a primary textbook for the class which should cover such topics as
>   -How to we solve problems?
>   -How can we solve problems?
>   -Formalizing problem solving strategies.
>   -Improving Critical thinking skills.
   
Check out the books I've described in my message. You'll find that most
Logo texts are written for one version of Logo or another (LCSI or Terrapin
for example) - and it shoudn't be too hard to tell the differences. Eg;
Terrapins IF :X > O THEN PRINT [HELLO] is IF :X>0 [PRINT [HELLO]] in LCSI.
Some primitives have slightly different names.

>If you have any thoughts or ideas for satisfying these three needs please send
>me e-mail.  Thanx in advance for any help you can offer.

>Ken Collier                            ...arizona!naucse!kwc

Let me know if I can help you further.  I really enjoyed playing around with
this stuff -- it was a recreation for me. I do hope this helps.. If you want
to discuss some of these ideas further, get back to me. I can even probably
dig up a copy of the syllabus and readings etc. if I look hard enough..

I'd be curious to hear how your course shapes up. 
 
Mark  Frydenberg

mfrydenb@server1.prime.com