Projects (Overview with Links to Details)
CSE 415: Introduction to Artificial Intelligence
The University of Washington, Seattle, Spring 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: 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 Kimberley Bautista.
OPTION 2: Game Playing Techniques. 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 3: Feature-Based Reinforcement Learning for the Rubik Cube Puzzle. This option involves applying reinforcement learning to a problem whose state space is so large that it requires that states be represented in terms of a much more limited set of patterns or features (and therefore in groups of states) rather than their full details (and individually). The feature-based approach is important in practice. However, the Rubik Cube puzzle is sufficiently easy to understand that it grounds this option in something familiar. It builds on Assignment 6. 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 a standard HMM algorithm and demonstrate it in an application. Click here for more information. The lead TA for this option is Divye Jain.
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 WebQ survey. In order to get full credit for Milestone A, respond by its deadline of Friday, May 24 at 11:59. PM.
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 May 29. 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. The code must be working and ready to demo in class on Wednesday, June 5. When it is turned in Tuesday night, it also needs to be commented and presentable, if it isn't already.

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 Wednesday, June 5. 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.