CSC 550: Introduction to Artificial Intelligence
Spring 2004
HW1: AI and Scheme
- In the paper Computing Machinery and Intelligence, Turing describes several objections to the concept
of a thinking machine, and attempts to refute those objections. Which of these objections do you find the most
credible? Or, conversely, which of Turing's refutations do you find to be the weakest? Explain your reasoning.
- Turing's paper describes a test for identifying artificial intelligence called the human/computer imitation
game,which subsequently became known as the Turing Test. Suppose you were to serve as judge in the Turing
Test. What line of
questioning would you pursue in order to distinguish between the human and the computer pretending to be human?
Explain your reasoning.
- In a file named sentence.scm, define the following Scheme functions:
- random-element: has one input, a list, and returns a random element of that list.
For example, the call (random-element '(a b c)) should evaluate to
either 'a, 'b, or 'c, with equal likelihood. Hint:see documentation on the
predefined random function.
- noun, article, and verb: which have no inputs and return a random word
of the appropriate type. For example, the call (noun) might return woman or ball.
Each function should have at least five words of that type to select from.
- sentence, noun-phrase, and verb-phrase: which have no inputs and return phrases
(i.e., lists of words) of the following forms:
noun-phrase <-- article + noun
verb-phrase <-- verb + noun-phrase
sentence <-- noun-phrase + verb-phrase
For example, the call (noun-phrase) might return (the ball), the call
(verb-phrase) might return (kicked the ball), and the call (sentence)
might return (the woman kicked the ball). When defining these functions, you should make use of
previously defined functions to simplify code and make changes easier.
- Copy the Eliza program from www.creighton.edu/~davereed/csc550/Code/eliza.scm
and make the following modifications:
- The Eliza rules currently include a rule that looks for the word "computer", and responds accordingly.
However, this rule will not catch the plural "computers". Add a rule to the database that simiarly responds to
user input containing "computers".
- Add a rule to the Eliza rule database that recognizes the phrase "I hate ___" in the user's input. When this
phrase is found anywhere in the user input, Eliza should respond with either "Hate is such an intense emotion" or
else a response of the form "What is it that you hate about ___".
- Add at least three more rules to the Eliza rule database of your own design.
- As it is currently written, the only way to terminate the Eliza program is to issue a break (by clicking on
the
Break button). Augment the program so that any user input that contains the word "bye" will
result in the response "Have a nice day." and will terminate the program.