AP CS Final Project Spring 2013

posted by: Mr. Bergquist 27 May 2013 No Comment

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 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 with approval, I reserve the right to veto groups.

Your deliverables are:

  • Project Proposal description must be turned in by May 31st – should be in by now. (10 Classwork points)
  • In class productivity – attendance and keeping focused on project during class, just like in a real work place (10 points, about 1 earned per day)
  • Working software stored for your demo’s due by Thursday, June 5th for seniors   and Thursday, June 12th for underclassmen (25 Project points along with Presentation…)
  • Presentations: Monday June 9th for Seniors (Senior Finals) and Tuesday June 17th for underclassmen (Finals)
  • Instructions:
    1) Create your Project Folder in our Shared Class Folder: My Computer > S: > embergquist > Writeable > AP CS > Period 4 or 6 >
    2) Place a copy of all java code (or similar) and necessary data files in this folder
    3) Compile the code in that folder (using JGrasp please) and make sure that it runs fine – you will be executing from here for the demo’s on Thursday, 6/4 (seniors), the next week for others.
    4) Let Mr. Bergquist know that you have everything in place ready for grading & demo’s
    Keep in mind I will be reviewing the code for grading.


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:

  • Completeness
  • Ambition
  • In-class productivity



Bagels (AKA MasterMind, Playable online Version)
Two you can do in DrawingPanel:
FloodIt – very doable game
Conway’s Game of Life
- Look at the posters around the room from last year and on the file cabinet.

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.

Data Crunching

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.

Additional Resources from Previous years:

Optoinal: Storing code online
Or consider GitHub – has student accounts

Graphics - SVG: Scalable Vector Graphics
Oracle Summary
PowerPoint on 2D Graphics in Java.

- Swing Tutorial looks pretty good.

- Applet Sample:
Java File HelloWorld2.java (from Ms. Martin)
Requires this image & .wav file to be in the same folder:

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>