Your final project is an opportunity to pull together all the things you’ve learned this year and to learn a new skill or two by leveraging documentation-reading abilities. It’s important to me that you be able to bring an ambitious project to completions and that you have a tangible product to show for your time in this class.
You are welcome to work in groups of up to three. I reserve the right to veto groups.
Your deliverables are:
- Project description due 5/10 (5 points)
- Project update due 5/24 (5 points)
- Software due 6/10 for seniors and 6/23 for underclassmen (40 points)
- Demo video due 6/10 for seniors and 6/23 for underclassmen (10 points)
You are to create a complete program to complete a task of your choice. I want you to pick something that you are excited about so am giving you a lot of freedom. I will be evaluating you on the following aspects:
- In-class productivity
Examples from another AP class.
Classic 2-D games and board games are surprisingly simple to implement and very satisfying. The basic ideas can also be adapted to different themes of your choice (Connect 4 AJ Heads, for example). Think Pacman, Tic-Tac-Toe, Checkers, Frogger, Space Invaders, Asteroids (project description, starter code), Lunar Lander, Pong, Connect 4, Tetris, Minesweeper, Duck Hunt… these are also good for exploring artificial intelligence ideas.
You can use what we learned when doing Graphics with Java Applets. Here is some easy to understand documentation that you can skim. Here is a pretty good tutorial for a pong game that you can use to get started.
You may want to consider using a game library like Pulpcore that handles things like collision detection, fancy animation and more complex physics. This tutorial is close to working on the school computers; I can help you get it running quickly. Slick is another promising library.
Here are some great data sets that would be easy and interesting to use in a project — periodic table of elements, full books, demographic data, etc. You could create a program somewhat like what we did with Baby Names to allow the user to interact with the data given and see interesting trends.
Here is a collection of great project ideas, many of which are related to the data sets above and include hints on how to get started. In particular, check out digital signal processing, rogue, 8-puzzle (how to solve a 15-puzzle automatically), calculating Kevin Bacon numbers, finding shortest paths between cities, baseball elimination, Markovian candidate (determining who said a particular quote), word search game.
FacePamphlet, a Facebook clone. This is good for someone who wants to learn a little about user interfaces but who doesn’t want to design something from scratch. Here is starter code. I would expect you to go beyond what is there — making the interface cleaner, adding things that can be done with profiles, etc.
You will create a 1-2 minute video about your product. The video should answer the following questions:
- What problem are you solving? (in the case of a game, for example, when is it to be played? By whom?)
- How is your approach unique?
- What are some neat features?
- What challenges did you come across?
This should be fun and not particularly stressful. You can borrow a camera and mic from me but make sure you let me know when you need them. You can also use screen capture software. Look at this example and others from the Google Demo Slam for inspiration. JayCut is online video editing software. You will turn in the video either by e-mailing Ms. Martin a link or putting it in the shared folder.