## Class Information

**Lecture Times:** T/Th 8-9:45AM, 110 Phyical Sciences Building (sections are optional TA office hours below)

**Instructor:** Robert Levinson

**Office Hours:** Wednesday 2-4PM in E2 255, after class or by appointment.

**Phone number:** 459-2087

**E-mail:** levinson@soe.ucsc.edu - Write me!

**Teaching Assistant:** Morgan Maddren

**Office Hours: **Monday 10am-12pm, 312B/C Baskin Enginering

**Section 1**** (optional)**: Wednesday 11-12:10PM, 192 Engineering 2

**Section 2 (optional): **Friday 9:30-10:40AM, 136 Physical Sciences Building

**E-mail:** mmaddren@soe.ucsc.edu

**Reader (mainly for Project Euler projects):** Jisheng Yang

**E-mail:** jyang53@soe.ucsc.edu

**Prerequisites:** CMPS140. Undergraduate standing and CMPS101 or instructor's permission. You should have some previous exposure to recursion. The more computer science you know, the better.

## Reading

**Required:**

**Optional:**

- Artificial Intelligence: A Modern Approach. Russell and Norvig Publisher: Prentice Hall. Third Edition.

Text is resourceful and often used in CMPS241.
- ANSI Common Lisp. Paul Graham. Call this "ACL" <---- good for learning Lisp.
- Practical Common Lisp. Peter Seibel. (for more practical examples)
- A Gentle Introduction to Symbolic Computation. David Touretsky.

**Common Lisp bible and language standard:**

## Evaluation

1. Written Assignments 4 parts (H1-H4) from AI book.

2. Project Euler (E1-E4)

3. Lisp + Pile Driver Project (P1-P4)

4. 1 Midterm

5. Final exam

Exceptional performance of your project agents will be recognized (bonus points).

Minimally at least 45% on each part is required to pass the course. The 5 areas will then be weighed 20-20-20-20-20 and final grades computed based on a 90-80-70-60 scale where 70 percent is passing (C) and 90 percent is A- or better.

## Policies

Homework, programming assignments, and project assignments may be done in groups of 1 or 2 or 3 that remain steady throughout the quarter, and also must be turned in at class time (or other, if specifically announced).

DON'T CHEAT!!!!

It is fine and encouraged to discuss homework problems and projects with other students - BUT CHEATING or ACADEMIC DISHONESTY on any course item (such as direct verbatim copying from a member outside your group or during an exam) will result in not passing the course and other highly undesirable consequences.

No incompletes for the course will be given.

## Notes

About 30 percent of the course material will be about Common Lisp. Prior familiarity is not assumed.

In addition, students will write "Adaptive Pattern-Oriented Game Players" in Lisp. The learning methodology used follows the instructor's model for experience-based learning and others.

Tournaments may be run at various points in the quarter and up to 40% percent of your project grade will depend on your agent's performance.

Past games invented by the instructor are called "Lowball", "Undercut" "Stocker", "Election" and "MasterMind+". Last year's game was called "RPS Safari". This year's game will be called "Pile Driver" there will be one game of Pile Driver played by students with Lisp crossed with Project Euler (see projecteuler.net), and another game of Pile Driver played by student agents!

Course Equation: Total Information = Diversity + Symmetry.

Course Affirmation 1: Every day and in every way my agent and I are growing in intelligence and understanding.

Course Affirmation 2: Exploiting mathematical structure is easy, rewarding and fun.

## Running Common Lisp

sbcl On most cats machines like unix.ic:

(quit) to exit or ^D to exit.

On soe.ucsc.machines (like sundance.soe.ucsc.edu) /usr/local/sbcl

or sbcl should work.

(we may further specify which Lisp(s) to run when the projects begin.

## Lecture and Assignment Schedule

Unless otherwise announced in class. A few changes should be expected.

HW1-HW4 are written assignments from AI.

E1-E4 are project assignment involving Project Euler.

P1-P4 are project assignments involving PileDriver.

### I. Introduction to AI and Lisp Programming

- Read chapters 1 and pp. 442-451 in AI.
- Read chapters 2,3,5,6,9 in ACL. (or you may learn Lisp some other way)

**Thursday Jan 17**

**HW1 is due! **Exercises 1-10 on page 19 of AI (keep answers brief).
**E1 is due!** Turn in as many Project Euler solutions in Common Lisp as you find on the www.

**Thursday January 24**

**P1 is due!** Do problems P31-P41** here**. Do each problem in a separate file matching their naming conventions for files (e.g. "p31.lisp") and functions (e.g. (is-prime) ). CANCEL Problems P37-P38.

II. Search and Heuristics

**Thursday January 31**

**HW2 is due!** Exercises 8-14 on pages 47-48.

**Tuesday Feb 5**

**E2 is due!** Complete at least 3 additional project euler problems.** (Note: This was pushed back from Jan 31)**

**Thursday Feb 7**

**P2 is due!** Simple Pile Driver agent and environment.

**Thursday Feb 14**

**HW3 is due!** Exercises 1-11 on page 87.

III. Games

**Thursday Feb. 21**

**P3 is due! Intermediate Pile Driver Agent.**
**Midterm Exam**

IV. Machine Learning

- Read Chapters 6 and 8 in AI.

**Tuesday Feb 26**

**E3 is due!** complete 3-9 additional Project Euler problems.

**Thursday Feb. 28**

**H4 is due!** Problems 1-9 on pp. 141-2.

**Tuesday Mar. 12**

**P4 is due! Advanced Pile Driver Agent.**

**Thursday. March 14**

**REVIEW**
**E4 is due! **Complete 1-3 additional Project Euler problems.

**Final Exam:** Tuesday March 19 12-3pm @ PSB 110. (Cumulative and Closed Book)