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