CMSC 671: Introduction to Artificial Intelligence
Fall 2010

Home News Schedule Homework Grading Useful Links Final Project

Final Project

Project Descripion

For the final course project, you will work in groups of two or three students to design, implement, demonstrate, evaluate, and report on a working AI system that investigates the techniques learned in the course in more depth.

Download the project description document to get started. It contains some ideas for final projects, but you can choose your own project (that adheres to the requirements). Additionally, I will post in this page some useful links to resources and papers that might help you in choosing your project. Check for updates.

Types of projects

  1. Experimental study: For this type of project, the emphasis is not on programming, but rather on testing existing known technology on novel data sets, and/or comparing against other known technologies. For this type of project, you may use software that is available off-the-shelf (ideally, in the public domain). Of course, the less programming you do, the more work I will expect in data analysis and analysis of your experimental results. Note that you might still have to do some programming in order to apply the existing tools to your dataset and do your comparisons, evaluation, analysis, etc.
  2. Application project: In this type of project, the emphasis will be on the implementation and application of AI technologies to some domain. If you choose this type of project, you will implement the AI techniques you chose and apply them to some specific problem.

Suggested Projects

You can select one of the following suggested projects or develop your own project:
  1. Sudoku-puzzle-solving system that uses tabu search, the min-conflicts heuristic, and/or problem-specific ordering heuristics to find solutions efficiently.
  2. An HTN planner that plays a solitaire card game such as Freecell or Spider, with a reinforcement learning component that learns operator preference heuristics.
  3. A constraint-based scheduler that incorporates temporal reasoning and dependency-directed backtracking.
  4. A genetic algorithm for solving the Traveling Salesman Problem or for automated design of combinational logic circuits.
  5. A distributed constraint satisfaction algorithm for the n-queens puzzle, map coloring problem, or a Sudoku puzzle.
  6. 6. EXPERIMENTAL project: Conduct a machine learning experiment with some existing datasets (check the UCI machine learning repository). For example, demonstrate some (known) differences between different learning algorithms across different data sets. The authors of the book have a repository of the algorithms in Python here. The slides of the Nov. 16 class show a use case of this implementation. You might also want to check WEKA, a collection of machine learning algorithms (in Java).
  7. A Naive Bayes classifier for spam email filtering
  8. A general tree classifier (ID3, C4.5), which you can use to classify different domains, e.g. the restaurant example in the book, the tennis/golf example (here is a link with the files) and more complex examples like:
    Classifying members of Congress (Republican, Democrat) based on records for a series of votes in Congress (example taken from this page). There are three files available for this example:

Project Deliverables

(midnight time for everything)

Topic and teams

Nov. 12

List of team members, project type, area of work, and problem domain.

Design/Status Report

Nov. 19

Design of your application/experiment, current status report

Presentation of your work

Dec. 7, Dec. 9

Oral presentation of your work

Final Report and system implementation

Dec. 15

Final report for your project, implementation, distribution of work report