2012-2013 SOFTWARE ENGINEERING PROJECTS |
PROJECT 'CHALLENGE' RATING (offered
to assist you with project management strategies) |
||
Routine |
Typically some deep thinking required, but not necessarily a lot of coding. |
|
Hard |
Likely involves either a multiplicity of new concepts, designs and/or algorithms. |
|
Really Hard |
Start immediately, think
hard, employ a stepwise refinement strategy and post concerns
as required. |
Drivers' Ed. The Final Project. With many of you about to get behind the wheel in the months ahead, the ACES Driving School (it actually exists!) is pleased to announce our own Drivers' Education course. We're going to take this project to another level. Rather than me laying down the specification of the task, we're going to develop the requirements together through collaboration and observation. To facilitate the discussion,
Avatar zelda = new Avatar(hyrule,random.nextInt(7),random.nextInt(7),
Direction.values()[random.nextInt(4)*2], random.nextInt(100));
Direction.values()
returns the array of all possible directions from which we selected an (even) one. Once the direction is identified, you'll find the face(Direction) method we developed a couple of weeks ago handy.Campus Clean Up (Focus: the while statement). To keep our redeveloped campus in tip-top shape, a student from each House has been selected for the task of helping to clean up the perimeter. Fortunately, each Georgian is only required to pick up litter that corresponds to his own House colour. Georgians are only required to tidy up the perimeter of the campus, not the interior area. Futhermore, Georgians can't carry any more than 9 pieces of litter. Once they reach their limit, Georgians simply appear to stop. Download and unzip CampusCleanUp.zip and take the project for a spin. As you will notice, every time the application is run, the campus dimensions vary, but always remain bounded by perimeter walls that your code will exploit.
Task.
Save The Planet (Focus: the if statement). In recognition of Earth Week here's a project to enable you to (what else?) save the planet. As you can see by the opening scene below, the planet is in bad shape. The only way to restore it to healthy status is to undertake (what else?) a binary challenge.
Mario represents an object of the BinaryBot class. Every time the application runs, a random number of Things (between 0 and 15 inclusive) appears at (1,2). He must pick up all the Things, enter the 4-bit nybble-chamber and deposit all the Things across the chamber in piles that are the appropriately-weighted powers of 2 (8-4-2-1). Once he has completed the task, his backpack will be empty and he can ask if the east Wall at (1,5) is passable. If he has been successful, the method returns true and the Wall will not block his passage. Once on the planet, he can request that the planet be saved.
Download and extract all the files from SaveThePlanet.zip and run it as many times as it takes to gain an understanding of the task.
NOTE: This project sets up a little differently than the previous ones and will likely become the norm.
A total of 6 classes are required of which you are required to develop only one, BinaryBot.
The source code of the driver is provided but only the bytecode (.class) files are provided for the other four.
This bytecode is made available to your project by adding the SaveThePlanet.jar file to its Build Path in precisely the same manner as you add becker.jar to each project.
Identify the /doc folder as the Javadoc location and you'll be able to access the documentation within Eclipse.
The 3 .gif image files must be added to the root folder of the project as you have become accustomed.
Task.
Soccer Drill (Threads). An athlete from each house has been selected to compete in a demonstration event to promote an indoor House Soccer League being held in the gym this term. Competitors line up on Avenue 1, on each of the first 4 streets. Soccer balls are placed on Avenue 2. Competitors pick up their ball on Avenue 2 and dribble it to Avenue 10, drop it off, and turn around on Avenue 11. They duplicate the drill (exactly!) on the way back, eventually coming to rest with themselves and their ball in the same position as at the start of the drill. Athlete icons are to be loaded as gif images in their house colour and assigned a random speed over the closed integer interval [1,5]. Here's the zip file containing SoccerDrill.jar and the 9 gif images.
Task.
In SoccerBallIcon:
g.drawImage(bi, 40, 40, 64, 64, 0, 0, 24, 24, null;
In AthleteIcon:
g.drawImage(bi, 10, 30, 93, 79, 0, 0, 83, 49, null);
SuperHeroes. Based on Programming Project 3.10. Read the problem specification on page 163 as many times as it takes to fully understand the task before beginning. Ignore part a) where it requests that the buildings are read in from a file. Instead, create the buildings as requested in part b). The highest credit will be reserved for those projects that reflect a stepwise refinement approach leading to well-named, single-purpose methods. I've incorporated an icon technique that uses an image file to provide for a more interesting simulation. Finally, since an execution of the project will not be provided you are to rely exclusively on the written specifications of the task.
Task.
Attach fully javadoced CityBuilder and SpiderBot source (.java) files (only!) to an email to handin with the Subject Line SuperHeroes by the deadline.
EscapeMaze. Each of you has a unique 5×5 maze you are to navigate your way out of. The exit of the maze is located at the east wall of intersection (4,4) (see below left).
Task.
Take Your Seat. Robots need to be programmed to find their seat in Room 210.
Task.
Submitted your fully documented TakeYourSeat.java source file to handin by the deadline, under the Subject Line: Take Your Seat.
Four Corners. For your first formal submission, you are asked to duplicate the Robots configuration so it appears exactly as depicted in the screen capture to the right at the moment of launch. You can click on the image for a larger view. Here are a couple of points to remember for those hoping to earn the highest possible credit,