[comp.ai] Suggestions for Course

steve@hubcap.UUCP ("Steve" Stevenson) (10/23/87)

I have to teach an AI course for folks with little or no
background.  I'd like to use prolog, but want to have them
learn it as much on their own as possible.  Any suggestions
for texts?

At this time, I think I would like to concentrate on theorem
proving with perhaps some non-traditional stuff (fuzzy?) included.
Any suggestions here?
-- 
Steve (really "D. E.") Stevenson           steve@hubcap.clemson.edu
Department of Computer Science,            (803)656-5880.mabell
Clemson University, Clemson, SC 29634-1906

morley@ncrcam.Cambridge.NCR.COM (/usr/acct/morley) (10/23/87)

In article <587@hubcap.UUCP>, steve@hubcap.UUCP ("Steve" Stevenson) writes:
> I have to teach an AI course for folks with little or no
> background.  I'd like to use prolog, but want to have them
> learn it as much on their own as possible.  Any suggestions
> for texts?

How about Turbo Prolog?  Some will argue that it is not "true" Prolog, but
it is very close to the real thing.  The manual is in tutorial form, and is
easy to learn and use.  Also, Borland International offers a discount to
students.  The price is very reasonable.

> -- 
> Steve (really "D. E.") Stevenson           steve@hubcap.clemson.edu
> Department of Computer Science,            (803)656-5880.mabell
> Clemson University, Clemson, SC 29634-1906

grimlok@hubcap.UUCP (Mike Percy) (10/23/87)

in article <321@ncrcam.Cambridge.NCR.COM>, morley@ncrcam.Cambridge.NCR.COM (/usr/acct/morley) says:
> Xref: hubcap comp.lang.prolog:345 comp.ai:820
> 
> In article <587@hubcap.UUCP>, steve@hubcap.UUCP ("Steve" Stevenson) writes:
>> I have to teach an AI course for folks with little or no
>> background.  I'd like to use prolog, but want to have them
>> learn it as much on their own as possible.  Any suggestions
>> for texts?
> 
> How about Turbo Prolog?  Some will argue that it is not "true" Prolog, but
> it is very close to the real thing.  The manual is in tutorial form, and is
> easy to learn and use.  Also, Borland International offers a discount to
> students.  The price is very reasonable.
> 

True about TProlog, it is almost Prolog, but not quite. In fact, at some
places it is downright divergent and unusable. But for the environment
Dr. Stevenson is in, nearly every one of his students has used at least
Turbo Pascal and possibly TurboC. They are familiar with the Borland
systems, and can concentrate on their programs rather than than their
compiler and how to use it. Also, the speed of testing is nice, the
debugging trace is helpful, and Clemson has plenty of PCs. In these
days, when the VAX machines are quickly becoming overloaded, any PC
implementation will be a plus.

So Dr. Stevenson, here is my vote for TProlog, with the proviso that you
declare to the poor students that TProlog is a mere shadow of the true
power of the language.

Mike Percy
Clemson University

bts@unc.cs.unc.edu (Bruce Smith) (10/24/87)

Turbo Prolog for an AI course?  Why not FORTRAN, for that matter?
Quoting (without permission) from Alan Bundy's Catalog of AI Tools:

    FORTRAN is the programming language considered by many to
    be the natural successor of LISP and Prolog for AI research.
    Its advantages include

	1. It is very efficient for numerical computation (many AI
	   programs rely heavily on number crunching techniques).

	2. AI programs tend to be very poorly constructed, meaning
	   that control needs to move frequently from one part of a
	   program to another.  FORTRAN provides a special mechanism
	   for achieving this, the so-called GOTO statement.

	3. FORTRAN provides a very efficient data structure, the
	   array, which is particularly useful if, for example, one
	   wishes to process a collection of English sentences each
	   of which has the same length.
______________________
Bruce T. Smith, UNC-CH
bts@unc.edu

wagner@rocky.STANFORD.EDU (Juergen Wagner) (10/25/87)

Great! I believe, Bruce hit the right point. Teaching a programming
language whose conceptual structure is that different from what most
people think of programming languages, should not be done using almost a
counterexample of that paradigm. Some people are convinced that
TurboP#$@$ is a real Prolog (which might be true in their understanding
of AI languages), and there might be applications where sliding away
from PASCAL over TurboProlog to (REAL) Prolog (just to introduce changes
step by step), but it is definitively no good choice for teaching
typical AI programming techniques which (by their nature) require symbol
crunching rather than number crunching. And if I first have to write a
bundle of declarations before I find out that this highly nested and
flexible data structure I have in mind cannot be implemented that way,
this is not what I expect of such a programming language.

Sure, TurboP#$@$ is available on IBM/PCs. But there are also other nice
Prologs around, even a Public Domain one (SBProlog, mentioned in this
newsgroup some time ago). So, why not take a real Prolog even if it is
only line-oriented, and even if you have to write the main parts of your
programs outside Prolog with a conventional text editor? The idea of an
AI course should be to convey to basic principles and the special way of
thinking and reasoning about (so-called) AI problems. Exploring and
experimenting with programs gives a good impression of that.

Ok. No more flames about TurboP#$@$.

Juergen Wagner,			(USENET) gandalf@portia.stanford.edu
Center for the Study of Language and Information (CSLI), Stanford CA

ed298-ak@violet.berkeley.edu (Edouard Lagache) (10/25/87)

	I think that PROLOG is a much better choice for an intro course
	on A.I.  (someday maybe I will write a paper on why).  As to getting
	a PROLOG to use on IBM PCs, there are a number of Public Domain
	PROLOGs around.  One that I think would be fine for this use is
	put out by Automata Design Associates and can be found in 
	various software libraries or contact them at:

		A.D.A.
		1570 Arran Way
		Dresher, PA, 19025
		(215) 646-4894

	I think they charge $10 for a copy of their PD PROLOG, but that 
	would be a one time investment.

						Edouard Lagache
						lagache@violet.berkeley.edu

gleicher@duke.cs.duke.edu (Michael Gleicher) (10/25/87)

(Couldn't bear it any longer - I have to put my two cents in)
(I am not a teacher - I am a student who has gone through the courses in
	question) 

An excellent point has been brought up - What is the real reason for wanting
to teach Prolog in an AI course?  (by the way, replace prolog with lisp in
most cases in this article)

	1) Because you want to foster the belief that Prolog and AI go
	   together -
		This is downright BAD and wrong! 
	2) Because in order to read much of the literature, you must 
	   understand Lisp/Prolog because it gets refered to alot -
		This one I agree with
	3) Because it is the IN thing to do -
		I'm not even going to comment
	4) Because it allows rapid prototyping so a small system that really
	   solves problems can be built in a short amount of time -
		If this is your real goal, be sure not to get sidetracked.
		In the AI course that I took, we were taught prolog, and
		wrote programs to solve non-ai problems. I neither learned
		about how to write AI programs nor how to rapidly build
		a system in Prolog. I did learn some bad Prolog habits
		because I was trying to program prolog the same way that
		I would have coded in C - because there wasn't enough time
		for someone to show me to think otherwise.

		On the upside, We did have an assignment with DCG's that
		was interesting (only that had any notion of an
		AI problem to solve (natural language) or that showed me
		a place where I couldn't use conventional programming tactics)

What using AI in a class DID do for me was allow me to get a summer job where
I really learned prolog, doing things that were NOT AI. 

The best part of my AI class was when we looked briefly at many areas of
interest in the current research (expert systems, natural language, planning,
connectionism, ...). Unfortunately, this was at the end of the course. Maybe a
more effective way to teach AI would be to show the applications and use them
to justify why you need to study logic and predicate calculus and frames and
... 

Using Turbo prolog could only accomplish #1 and #3 on the list above, but
other people have already said this.

Again, I am not a teacher, just a student who has taken these courses, and is
still interested in the subject DESPITE the courses.

And -
	PROLOG IS NOT JUST FOR ``AI''
Mike

wagner@rocky.STANFORD.EDU (Juergen Wagner) (10/26/87)

In my opinion, Prolog and AI are not that much interwoven as they are, just
because some people in a small room somewhere decided to use Prolog for their
(so-called) AI problems, but because Prolog is SUITABLE and ADEQUATE for this
class of problems for a number of reasons. One shouldn't argue that Prolog is
no good to be taught in an AI class because of bad experience with this type
of courses. If fact, requests for information on how to teach these courses
will hopefully improve them.

Juergen Wagner,			(USENET) gandalf@portia.stanford.edu
Center for the Study of Language and Information (CSLI), Stanford CA

mdf0@bunny.UUCP (Mark Feblowitz) (10/26/87)

With regard to the use of Turbo Prolog, I would like to make bring up the 
standard argument against "experience polution." The notion that an 
educational tool can afford to be non-standard or inferior because it is 
"only for beginners" assumes that the beginner will be able to reformulate 
his/her attitudes or habits when the appropriate time arrives. 

For this reason, I recommend the use of a Prolog implementation that is 
more compatible with C&M Prolog. My favorite Prolog for the PC is
Arity Prolog. It is what I consider to be a production quality Prolog
development environment. It:

	is FAST, 
	links to assembly code or C
	has a full virtual memory system
	can run either compiled or interpreted
	...

The compiler comes with a "lint" facility for static precompilation analysis
of typical Prolog programming errors.

There is a low-end interpreter for the beginner, and I believe that there
are educational discounts available (contact Arity Prolog to verify this).

Although I have encountered a few bugs, the folks at Arity have been
quite supportive in fixing these bugs.

I am looking forward to their upcoming version 5, which aparently has 
an integrated editor and enhanced user-interface capabilities, 
among other things.

Arity Prolog is located in Concord, MA, (617) 371-1243.

I am NOT a representative of, nor do I have any financial
interest in Arity Corp. I am merely a satisfied user of Arity Prolog. 


Mark Feblowitz   GTE Laboratories, Inc., 40 Sylvan Rd.  Waltham, MA 02254
						(617) 466-2947
CSNET:  feblowitz@GTE-LABS.CSNET
UUCP:   feblowitz@bunny.UUCP       old UUCP:  harvard!bunny!mdf0
-- 
Mark Feblowitz   GTE Laboratories, Inc., 40 Sylvan Rd.  Waltham, MA 02254
						(617) 466-2947
CSNET:  feblowitz@GTE-LABS.CSNET
UUCP:   feblowitz@bunny.UUCP       old UUCP:  harvard!bunny!mdf0

des@jplpro.JPL.NASA.GOV (David Smyth) (10/26/87)

In article <1746@unc.cs.unc.edu> bts@unc.UUCP (Bruce Smith) writes:
>Turbo Prolog for an AI course?  Why not FORTRAN, for that matter?
>Quoting (without permission) from Alan Bundy's Catalog of AI Tools:
>
>	2. AI programs tend to be very poorly constructed, ...
>	           ... FORTRAN provides a special mechanism
>	   for achieving this, the so-called GOTO statement.
>
>	3. FORTRAN provides a very efficient data structure, the
>	   array, which is particularly useful if, for example, one
>	   wishes to process a collection of English sentences each
>	   of which has the same length.

Well, I must admit that I tried exactly this:  I used FORTRASH for
my homework assignments in my "Intro to AI" course.  The professor's
response: "What is this?  Some kind of a joke?"

I explained that SUCKTRAN with a stack is Turing equivalent, and
so there was nothing he could do in Lisp that I could not do in
SUCKTRASH.  Besides, the Lisp system at school ran on one of those
dinosaurs that all the undergrads had to use, so it was predictably
unreliable and SLOW.  I, on the otherhand, had acess to all these
neat-o bitchen machines at work with various FORTRAN viruses,
which both worked and had good response.

It did take me awhile to develop libraries I needed, like
variable length array support (Lisp, at some level, has to
be concerned about running out of contiguous space too, you know -
or didn't you %^)

Anyway, I passed.  Probably got an A too.

steve@hubcap.UUCP ("Steve" Stevenson) (10/27/87)

in article <10475@duke.cs.duke.edu>, gleicher@duke.cs.duke.edu (Michael Gleicher) says:

Xref: hubcap comp.lang.prolog:357 comp.ai:845
One of the reasons to use prolog is to give my students another language model.
It also motivates the study of certain topics in resolution.  The question of
what's right or wrong with the exact prolog used is less important in my mind
as long as the students see that TurboPascal is not the world.

-- 
Steve (really "D. E.") Stevenson           steve@hubcap.clemson.edu
Department of Computer Science,            (803)656-5880.mabell
Clemson University, Clemson, SC 29634-1906

nau@mimsy.UUCP (Dana S. Nau) (11/02/87)

In article <1746@unc.cs.unc.edu> bts@unc.UUCP (Bruce Smith) writes:
>Turbo Prolog for an AI course?  Why not FORTRAN, for that matter? ...

In article <1361@byzantium.swatsun.UUCP> hirai@swatsun.UUCP writes:
> [lots of flames about FORTRAN]

To me, it seemed obvious that the original posting was a joke--in fact, a
rather good one.  Too bad it got taken seriously.
-- 

Dana S. Nau				ARPA & CSNet:  nau@mimsy.umd.edu
Computer Sci. Dept., U. of Maryland	UUCP:  ...!seismo!mimsy!nau
College Park, MD 20742			Telephone:  (301) 454-7932