Projects
A project should be a substantial (6 assignments' worth) body of work, undertaken individually or in pairs. It should involve some research into the state of the art, a specific identified problem, and an approach to solving it that is implemented.
The project is giving you an opportunity to use your knowledge and skills in practice and to learn how to do research in CS. You can do a literature review for your final project, but it should be well-researched, and have its own value: for instance, by addressing a specific identified question of AI through surveying the approaches taken in literature.
The final project represents 30% of the final mark for the course, and consists of the following:
- A project proposal (5%): 1-page long. A well thought-out description of what you will do and why you should do it. It should identify any collaborators.
- A presentation of results (5%). A short presentation of what you've done on the last day of class (Dec. 8th).
- A final report (20%). A professional-quality report (think conference paper) on what you have accomplished, to be handed in on the last day of class.
Here are some suggestions for themes of final projects:
Game-playig agent
Develop an intelligent agent to play (a part in) a computer game of your choice. The agent could use logic, knowledge representation and inference, probabilistic reasoning and planning, to achieve its goals and play the game.
Expert system
Develop a decision-making help system, which helps users to find answers to some real-world problems. Your expert system could help with career choices, diagnoses, or maybe programming.
Text understanding
Develop a system that has text processing and understanding capabilities. For example, it could be an interface to a web search engine that attempts to understand queries that are full English sentences or questions.
Machine translation
Can you automatically translate text written in another language into English and do better than BabelFish? What if the text comes from some specific domain (e.g., software user manuals)?
Behavior modeling
Use your knowledge of AI techniques to propose a functional (algorithmic) model of some aspect of human or animal behavior. Find some experimental data which describes this behavior, and see if your hypothesis, implemented in code, makes predictions that agree or don't agree with existing animal/human data.
Multi-agent intelligence
Develop a simulator of an environment or a game where multiple agents can interact, cooperate or compete for resources. Develop an automatic way to generate agents that would do well in your simulation. Do your results tell us anything about any real-world situation where multiple players exist?
A simulated intelligent robot
Using existing physics simulation libraries (e.g., ODE), develop a simulated robot. It could be a mobile gripper in a blocks world, or a wheeled robot in some city environment. Implement and compare different planning and behaving approaches.