### CSC 550: Introduction to Artificial Intelligence Spring 2004 HW1: AI and Scheme

1. 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.

2. 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.

3. 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.

4. 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.