Assignment 6: Projects
CSE 473: Introduction to Artificial Intelligence
The University of Washington, Seattle, Spring 2023

Overview

Partnerships of two are optional but encouraged on this assignment.

This assignment is called a "project" in the spirit of encouraging somewhat more independent exploration of a subject within AI than the preceding assignments have offered. There is more flexibility in topic here, although there is some bias towards embracing the currently hot topic of language modeling, even in Option B on enhanced game agents.

There are three topic options for the project: (A) language models (building on the ideas from Assignment 1), (B) enhanced game agents (building on the ideas from Assignment 3), and (C) language parsing using probabilistic context-free grammars (which does not build directly on a previous assignment but which is related to the PCFG worksheet and which deals with language modeling through syntax).

Each option has challenges and opportunities for learning new material. The staff will attempt to support all the options, but we expect students to take the initiative to learn the relevant techniques, within reason, to complete their chosen option. Each of the three options has its own web page with additional information. However, all three options have the following requirements.

Requirements

Regardless of which of the three topic options you are doing, you should submit the following files as a Zip archive to the GradeScope "assignment" that corrsponds to your option.
  1. Code (one or more files). If you are doing the language modeling option, submit your Jupyter notebook file. If you are doing the game agents option, submit the files needed to run your agent. If you are doing the PCFG parsing option, submit the Python file with your implementation.
  2. A project report as a PDF file. Required sections in the project report are listed below.
  3. Output, if not part of a Jupyter notebook file or part of your report. If you are doing the game agents option, you should submit at least one file representing a transcript of a complete game, including moves, state displays in ASCII, and commentary by the agents and/or the game master.

Project Report

The report should contain the following sections.
  1. Full names and UWNetID of each partner.
  2. Project Option and Suboption, if any. For example: Enhanced Game Agent -- Baroque Chess.
  3. Abstract: a 50 to 200 word summary of the approach you took to your project, what you tested, and what results were.
  4. Starting code you used, which might have come from an earlier assignment (such as your A3 agent), or from Karpathy's GitHub archive (for Option 1).
  5. Data that you used and where it came from, if using data, such as in Option 1 or Option 3. If you created any data set of your own, explain how you did it.
  6. Details of what changes you made to the code you started with or just what features you implemented in your project. Explain why you made the changes and what, if any, challenges you faced in this.
  7. Tests you did with your implementation... depending on the option, explain what training, and/or testing you did, and some of the issues that came up when you did the training or testing.
  8. Give a short excerpt (3 to 15 lines) of code you wrote or heavily modified. Explain this code, focusing on its role within the overall implementation, roughly how it works, and why we could consider it interesting.
  9. How well does your system work, in terms of output quality? Give both strengths and weaknesses. If appropriate, provide illustrations where something notable happened in the output that showed a strength and showed a weakness.
  10. What additional functionality or code improvements would be next on your list if you had more time to spend on this?
  11. Any option-specific report requirements mentioned in those options' details.
  12. What have you learned in this project?
  13. What have you learned that you would like to share with the rest of the class?
  14. Any other comments about your experience in the project.

Links to the Option Pages

  1. Language Models: Details
  2. Enhanced Game Agents: Details
  3. Parsing with Probabilistic Context-Free Grammars: Details

 

FAQ

  • Q. Is there starter code for A6?
    A. There is no special starter code. However, some options have suggestions for code to use.
  • Q. Are there any autograders for A6?
    A. No.
  • Q. What do we need to turn in?
    A. Two items: (a) a zip file containing your code and data; (b) a PDF file containing your report.
  • Q. Are we allowed to use ChatGPT on this project?
    A. Yes. However, there are conditions for your use of ChatGPT or other AI service. At the very least, if you use ChatGPT you agree to indicate, in your report, where and how you used it, what it provided to you, and how you processed what you received. Each option has additional guidelines about how you may, if you wish, use large language models in this project.
  • Q. If we include material obtained with the help of ChatGPT and it turns out to be inaccurate or even wrong, are we responsible for that?
    A. Yes. You need to fact-check and accurracy-check any information you provide in your project that came from agents or outside sources not known to be very reliable.