-----

CS 151, Project and Project Proposal

-----

For the final project, you must implement an algorithm from some area of AI. I recommend working in a team of 2-3 people. However, you can work individually. Your algorithm need not be state of the art: older algorithms are ok and significantly easier to build.

Project due dates:

You will only receive one grade, for the whole project. However, you'll lose points on your project if you don't turn in the proposal, or if you turn in something that doesn't look like a good-faith attempt at a proposal (severely defective).

If you are working in a group, each person must write their own version (i.e. in their own words) of the proposal and report.

General structure

Your project must be an implementation of some AI algorithm. You can use any reasonable programming language. The best choice of language depends on the project topic. Someone working with the robot base will probably have to work in C. But if the project involves extensive list or symbolic manipulation, it will be easier in a high-level language (e.g. Scheme, ML, Prolog).

Your project can depend on outside code, so long as you also build code of your own to go with it and you properly document/acknowledge what parts of the implementation you got from elsewhere. The same goes for code that you built for some previous or concurrent course.

As part of your project, you must dig up three research papers related to what you are implementing. A brief summary of these papers and their relationship to your project should be included in your project report.

Ideas for projects

Here are some ideas for project topics. It is not an exhaustive list.

Projects involving speech or visual perception are not impossible. However, I think it will be very hard to make them doable and fun unless you happen to have prior relevant background.

Extending something you did for a previous course (e.g. neural nets) is ok. However, you must describe the previous project to me, so I can grade you on the extent of the extension.

It's ok to write a piece of AI code to fit into an existing program, such as a game. However, you must check early on whether the existing code is easy to interface to. Some teams last year got into trouble by trying to extend code that was difficult to hack into. If it's difficult to patch into existing code, it may be more sensible to just use the existing code as motivation and simulate the input and output for the module you are building.

If you wish to work with the mobile robots, you will need to speak to Zach Dodds and Chuck Scheid about the current state of the robots. The two robots are supposedly both working and there is supporting software that allows you to give them simple commands.

It is a good idea to pick a topic which contains a core algorithm that you can clearly build, plus add-ons that you can build if you have time. This will allow you to have a working system by the end of the term, regardless of whether work goes faster or slower than you planned. It's not that I can't grade partly-working systems but, rather, that it's much more satisfying to have something that runs.

What to turn in for the project

For your project, you must give me the following:

The 1-page proposal should contain

The proposal isn't a contract. You can change things later if necessary. However, it's a chance for me to see where you are going.

The final write-up is due at the end of term. The due date is firm because it's the latest I can make it and still turn in off-campus senior grades on time. The report should be typed and in literate English. It can be whatever length is necessary to clearly describe what you've done.

Your final write-up must include a brief discussion of three research papers related to your project. (The different people in a group project can examine the same papers or different papers, as you prefer.) Papers might come from journals, conference proceedings, collections of papers in book format, or the web. Chapters from textbooks are not acceptable.

For group projects, each person must submit their own versions of all written work. Obviously, the content will be very similar across the group, and you will presumably share figures, performance data, etc. However, each of you should write your own version of the text, in your own words. In addition to describing what you built, you can also tell me which parts of the project were done by which members of the group.

As a group, you must also demo your project for me. As we get near the end of the term, arrange a suitable date and time (prior to the due date given above).

Finding research papers

There are a lot of AI books in Sprague, in the section whose call numbers start with Q335. A few AI books seem to be elsewhere, e.g. Honnold.

Sprague also subscribes to the journal Artificial Intelligence, the main archival journal for this field.

Notice that many recent papers are available on the web pages of their authors, and that Fleck may have copies of some papers, journals, and proceedings not in Sprague. If that fails, there's always Caltech and/or interlibrary loan.

I've put some particularly useful books and conference proceedings on reserve in Sprague.


This page is maintained by Margaret Fleck.