Final Project Ideas

posted by: Ms. Martin 16 May 2010 No Comment

You will spend the remaining month of AP Computer Science creating a project of your own design.  I realize that there’s a lot of pressure involved in coming up with a good project idea so I’m providing starting points below.  I’ve organized the ideas by category.  Note that the research-only (no coding) options can get you up to a 90% (if you do a stellar job) — after all, this is a programming class and I want to encourage you to choose an option that will result in a software product.  That being said, this could be a great option for those of you who have found that programming is not quite for you and need a grade boost.

You are welcome to work in groups of up to three.  I reserve the right to veto groups.

Grading

Your grade will depend on:

- Remaining on task — very little off-topic chitchat, demonstration of good problem solving skills, etc.

- The project itself (paper, software, series of exercises demonstrating new skill, etc)

- A ~5min presentation showing off what you’ve done

- A 2-3 page writeup with the following sections:

• Project goal: What is the general problem addressed by your project?  Are you learning a new skill?  Are you designing a game for a particular niche?
• Motivation: Why is what you’re doing valuable to you or others?
• Design and architecture: Describe how the parts of your system fit together. What software tools did you choose to use and why?  What classes are you implementing and why?
• Implementation challenges: What were the tricky problems you had to overcome, and how did you solve them?
• Conclusion: How well did you achieve your goals?  Were you on task for the majority of the allotted time?  Are you proud of your product?

Some ideas I’ve thought of, in no particular order, and in no way meant to restrict your options.

Games in Java

Games are a great source of interesting computer science problems.

- Focus on AI: write a command-line driven game for a popular board game such as Checkers or Othello.  You could even start with Tic-Tac-Toe.  Other games to write interesting AI for can be found here.

- Focus on visuals: Learn to use Swing for graphics.  Here is a pretty good tutorial on Java game programming.

- Set game: I have good starter code for getting you going with a graphical version of the game.

- Gridworld game: Check out ideas and starter code at http://www.themrmiller.com/ap/projects/ap11.shtml

Animation or visualization in Processing.js

- Use information from the New York Times API and display it in some interesting way.  You’ll need to figure out some standard Javascript and JSON which can be mixed with the Processing.js Java-like language.

Game in Processing.js

- Side scroller: for inspiration, check out Pianoman, complete with source.

- Strategy game: for inspiration, check out Sheep Herding, complete with source or the Plumber Game (in Flash, but an interesting idea).

Learn a new skill

Now that you know the basics of Java, you’re ready to expand your CS knowledge very rapidly.

- Learn Python: Python is a modern, object-oriented scripting language.  It’s go lots of great libraries.  Teach yourself some Python and implement a relatively complex project in it — something like Baby Names.

- Learn JavaScript: JavaScript is a client-side web scripting language interpreted by browsers.  It allows for all kinds of cool interactivity in websites.  The patterns in JavaScript are different than those in Java so it will take some getting used to.  Learn the basics and then implement something like a hangman game or fifteen puzzle game that runs in browser.

- Learn Swing: get to know Java’s graphics library.

Research paper

Note that the highest possible grade you can get on this is 90% if you do an amazing job.

Research an area of computing that interests you and write a paper and presentation about it.  You should use several trusted sources and use sources like Wikipedia just as starting points.  I would expect at least 5 pages of quality text accompanied by an engaging presentation.  Possible topics:

- Privacy.  For example, you could explore the history of the Facebook privacy settings and write a summary of how they currently stand and why they’re so controversial.  Alternately, you could look into the US’ privacy laws and how they’re enforced.

- Artificial Intelligence.  What is?  What breakthroughs have there been?  What are useful applications?  Alternately, you could focus on one AI researcher or the evolution of a single project such as the ASIMO robot.

- Future of wireless technologies.  WIMAX, 4G, etc.  What impact they’ll have on businesses, why they’re not implemented yet, who will control them, etc.

- Open source software.  What is it?  What are examples of open source projects?  What open source licenses exist?  What controversies are there surrounding open source software?

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Leave a comment

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>