Final Project
It's time to begin thinking about your final project! You can
choose to do essentially anything inside the area of AI, so long as I
approve it in advance. You can build on material we do in class, or
you can use it as an opportunity to learn about subject matter we
don't have time to cover. Make sure you check out the course syllabus to see how much the project
is worth: it may be a smaller portion of your grade than you
expect. It is my expectation that you should put about as much work
into this as you have for one of our large assignments, and so I
proportioned the grade accordingly.
Added this for next time: Make sure that when you
submit your final project, you also submit an explanation of what you
have done, how I should run your code, and how I should interpret your
results. This does not need to be long. It should merely prevent a
problem I've had in the past: students have submitted work that I
can't figure out what they did.
Here is a list of projects that people have done for CS 327 in the
past. Keep in mind that I vary the topics a bit each year and the
order that I cover them, so we may not have covered some topics yet in
this list. Similarly, there are topics we may have covered that you
may not find in this list. Some of these sound harder than they are;
others seem deceptively simple, but require significant amounts of
work at the end to actually make them work properly.
- Implementing Knn to Classify Bedform Stability Fields
- Blackjack Using Genetic Algorithms
- Computer game players: Go, Poker, Scrabble, Magic: The Gathering
(be careful, shouldn't be a rehash of Othello)
- Reinforcement learning in playing Bridge
- Computer puzzle solvers: Minesweeper, mazes
- Pac-Man with intelligent monsters
- Automated 20-questions player
- Paper on planning
- Neural network spam filter
- Learning neural networks via genetic algorithms
- Solving neural networks via backprop
- Code decryptor using genetic algorithms
- Box pushing agent (competing against an opponent)
- Evolving a perfect candidate
- Motion planning via A*
- Evolving optimal auction strategies
- Evolving Othello strategies
Here's a list of topics that didn't work so well:
- Too complicated games: Risk, Yahtzee, Scrabble, Chess, Battle
Simulation
- Got too focused in making game work
- I sometimes had trouble running the game
- Game was often incomplete
- Didn't have time to do enough AI
- Problems that were too vague
- Simulated ant colonies / genetic algorithms
- Bugs swarming for heat (emergent intelligence never happened)
- Emergent ants via game of life
- Finding paths through snow
- Boosting on protein folding data
- Couldn't get boosting working right, needed more time on small
datasets (spent lots of time parsing protein data)
For CGST 360, here are some general suggestions, though I'm open to
your ideas:
- Use Weka (a downloadable machine learning tool) to try
predicting results on a dataset that interests you.
- Write a technical paper about it some AI topic that we haven't
covered
- The LEGO Mindstorms robots are programmable through a graphical
programming language that comes with the bots, that we must have on CD
somewhere in one of our closets. This is geared towards junior high
and high school students, but it's extremely powerful
nonetheless. Learn how to program in this environment and get your bot
to do something interesting, like navigate a maze.
Here is what CGST 360 students have done in the past:
- Took Connect Four from 117 class, and added intelligence to it
(minimax, etc)
- Used Weka to try predicting own student grades
-
- Wrote a paper on metaphor and natural language processing (catch
here is to make sure you do some technical analysis, not just a
literature survey)