Read
In this class you will be turning in paper copies of most of your homework; however, you will have to keep all of your homework in a CVS repository. Hang all of the coursework under a directory called cmsi485 if you wish. I strongly suggest you manage all your work with Eclipse.
Your repository might be structured like this:
/ (repository root)
...
cmsi485
notes
...
exercises
...
papers
...
projects
src
...
edu
cs
lmu
your_id
search
...
nlp
...
sentrygun
...
lib
...
test
...
docs
...
Create a separate file for each homework problem that isn't part of a larger project. Use open file formats, such as plain text, pdf, png, etc. For this assignment, you might have the following files:
projects/docs/sentry/funspec.pdf
papers/ai_cognition.pdf
exercises/peas.txt
exercises/reflex_vacuum_agent.txt
exercises/agent_functions_vs_programs.txt
exercises/stochastic_vacuums.txt
projects/src/edu/lmu/cs/yourid/search/Problem.java
projects/src/edu/lmu/cs/yourid/search/EightPuzzle.java
projects/src/edu/lmu/cs/yourid/search/DfidSolver.java
projects/src/edu/lmu/cs/yourid/search/EightPuzzleDemo.java (Swing)
For homework problems that ask you for code, stick a large, visible comment block at the top of the code explaining the purpose of the code (and perhaps, what question it is an answer to). For problems asking for short answers or other written answers, please make sure the file is self contained: you do not have to write out the question verbatim, but make sure the question is implicit in the answer.
Print out the files comprising your answers to the following problems (2up to save trees) and turn them in at the beginning of class on February 2.
package edu.lmu.cs.yourid.search;
public interface Problem<State, Action> {
Action[] actionsFor(State state);
State go(State state, Action action);
boolean isGoal(State state);
}