CSD 3939 Home Page The Next Page
Middlesex Logo

CSD 3939 Course Work 1

Mazes

Due Date: End of Week 12 (Jan 12 and 13 2017)

20% of Overall Course Mark


The coursework is to build a system in Java that solves mazes. The mazes will be described by numbered nodes and pairwise connections. The system should take a file name as an argument, and a second argument that says whether the system should generate one or all solutions to the maze. The two modes are thus, give one solution, and give all solutions. Example test data is given, but the system should work on unseen data released on the 11th.

The code should be written entirely by the student. You are entirely welcome to discuss the project with others, but you need to write every single character.

The system should be run on the training mazes, and submitted by 5 pm on January 12th. At 5 pm, the test mazes will be released. The student should run their unmodified system on the test mazes, gather the results and submit the final project. This should be submitted by 5 pm on January 13th to Unihelp.

The system should solve the three training sets ( maze 1, maze 2, and maze 3) in both modes. The tests sets will appear here on the 12th. Note that in all of the mazes, the starting state is 0, and the goal state is 1.

There are four old test sets test 1, test 2, test 3, and test 4 ; and two new test sets new test 1, new test 2. Solve all of them in mode 1 (one solution) and give one solution. If you want the time points, report the times for test 1 and test 2. Also solve test 1, test 3, and test 4 in mode 2 (all solutions).


Marking scheme:
PointsArea
10Self Marking Sheet
10Solve First Training Maze
10Describe Algorithm(s) Used
10Quality of Code
10Solve All Three Training Mazes (in both modes).
20Solve All Tests
10Fast Solution Test 1
10Fast Solution Test 2
10Fastest Algorithm Test 1 and 2

The student should provide a self marking sheet with their opinion of their own score. You can not get this wrong if you submit it. Additionally, the student should describe the algorithm or algorithms used. This need not be a long description; typically a paragraph will do, but for simple algorithms less is fine.

The quality of the code will be marked. This includes comments, variable, function and class names, and class structure.

Times: the final 30 points are for finding fast solutions. The student needs to use the system clock to time the algorithm. Use System.nanoTime(); Report times for all solutions and the first solution. The fastest combined time on the first two tests (on the first solution) will get 10 points. Others may also get points on this criterion.

Submission notes: you can email the system to the tutor on the 14th. The code should not change after 5 on the 14th. The only thing that should change is the reported results of the test mazes. It should run from Eclipse. Instructions for running are welcome.

Please submit the code, the mark sheet, and analysis to unihelp in the Sheppard Library; get a receipt. You are also welcome to email a copy to the tutor. You must email a copy of the system to the tutor before the test data is released.