Projects (Overview with Links to Details)
CSE 415: Introduction to Artificial Intelligence
The University of Washington, Seattle, Autumn 2019
This assignment in the course is called the project, because it differs from the earlier assignments in that there is more flexibility in the topics; there are four options instead of one or two, and within each option there is some flexibility in terms of techniques involved and implementations. We intend that the project be done in partnerships of two people. However, it is OK to work individually.

Whereas earlier assignments focused primarily on specific techniques and coding, the project offers an opportunity to think more broadly about building AI agents or systems, to collaborate and communicate with someone about the issues, and to be more creative in the design of the experiment, application or agent.

OPTION 1: Baroque Chess Agents. This option is for those who wish to further explore the issues of creating competitive game-playing agents. It builds on Assignment 5. Click here for more information. The lead TA for this option is Rob Thompson.
OPTION 2: Problem Formulation for a "Wicked Problem.". This option is for those who wish to further explore the issues of assignments 2 and 3. It not only builds on those assignments but serves as a follow-up to the 4-page worksheet on the theory of problem solving applied to global problems that we saw near the beginning of the quarter. Click here for more information. The lead TA for this option is Emilia Gan.
OPTION 3: Backgammon Agents. This option involves applying either reinforcement learning or neural nets to a problem whose state space is large. The game of Backgammon also includes randomness through the game mechanic of rolling dice. This option is the newest and most experimental one this quarter. While your agent should be able to compete with others using the game master, the precise AI techniques you use are relatively flexible, and the way you document your use of a technique (such as feature-based Q-Learning) will be more important than whether your implementation of that technique actually makes your agent play better. Click here for more information. The lead TA for this option is Bryan Van Draanen
OPTION 4: Hidden Markov Model Applications. In this option, a team will implement two standard HMM algorithms and demonstrate them in an application. This option may appeal to students who want exposure to an AI concept that we will not be covering otherwise this quarter. Click here for more information. The lead TA for this option is Aishwarya Mandyam.
Partnerships. Partnerships are strongly encouraged but not required. Besides the advantages of a partnership in terms of sharing work, gaining experience with collaboration and communication, and probably having more fun, partnerships will be eligible for the extra credit section of the report, in which each student describes the partnership experience within the project.
Milestone A. There are three separate turn-in deadlines for the projects. Milestone A is very simple, and only requires answering 3 questions in a short Python program. In order to get full credit for Milestone A, edit your MilestoneA.py file, test it, and turn it in via Canvas by the deadline of Tuesday, Nov. 19 at 11:59. PM. The template is here. Each partner should separately submit a copy of that file, so that both partners can be easily given credit in Canvas.
Milestones B and C. Details for these milestones will become available around the time Milestone A is due.

Milestone B consists both of a progress report and a piece of working code that reflects the progress of your implementation. This is due on November 25. For this milestone, turn in both your Python file(s) and a 1-paragraph document that answers the questions: (a) what are the main techniques you are featuring in your project? (b) How far along is your implementation (what works, what does not yet work?).

Milestone C involves (a) final code and (b) final report. These are due Monday, Dec. 2, at 1:00 PM. The code must be working. The code should also be commented and presentable. You might be asked to show your code during the demo. Clearly, you should also have your project software ready to demo in class on Monday, Dec. 2.

Criteria.

Each project should address the following criteria.

  1. Originality. The project must not be an edited version of something developed elsewhere.
  2. Demonstration of an appropriate artificial intelligence technique. (In this project this is not likely to be an issue, since each option is oriented around some specific AI techniques.)
  3. Transparency. The implementation should take specific steps or incorporate explicit features to help the user understand how the program works, typically showing in some form, key intermediate results, status of longer computations, and relationships among key data structures, rules, states, or constraints.
  4. Interactivity. The program should allow the user to control the computation through interaction. There can be default parameter settings, but it must be possible for the user to easily override many of the defaults.
Demonstrations.

Project presentations are currently scheduled to take place during class on Monday, December 2. During the demonstration period, each student should complete two peer evaluations. Printed copies of the forms will be available in class. Each team should bring a laptop to class that day in order to demo your project to small groups. The time will be spent with multiple presentations to small groups happening simultaneously.

What to Turn In.

Turn in the following files (zipped up or tarred) by the Milestone C deadline. (Late days are not allowed in the project.) Report.pdf; code files; data files if doing Option 4.

Reports

The report should be an electronic document in the form of a PDF file. The key elements of your report include:

  1. title of project;
  2. names and roles of each teammate;
  3. what the program is supposed to do;
  4. technique used and brief description (half a page) of how that technique works. If you use multiple AI techniques then describe each one but with somewhat less detail for each one;
  5. either a screen shot or a transcript of an interesting sample session;
  6. brief demo instructions;
  7. code excerpt showing some interesting part(s) of your Python code and some explanation of it;
  8. brief description of what each team member learned in this project;
  9. what you would like to add to your program if you had more time;
  10. citations for any references you used in the project. This should include the names and URLs of any websites that you used and whose ideas or other resources were incorporated into your project. In each case, describe in a sentence what role that website played in your project and what you incorporated from it.
  11. For 5 points of extra credit, include a section with a heading "Partners' Reflections" with two subsections, one for each partner. Each subsection should give the partner's name, main role(s) in the project, a description of the challenges and benefits of the partnership from that partner's perspective.
If required, further details will be announced later.