General instructions for programming labs

Code structure

During each task, you will write a Java class called ExerciseX.java, where X is the task number. This class should implement the appropriate IExerciseX.java interface provided to you. Please do not modify it or your code will not pass the tick. This may be slightly different to how you have used interfaces before, and it is important to note that your code should not be structured around this interface, but should be structured in a way that makes it flexible. You can submit multiple .java files. You must submit them as individual files, not a .jar.

Please don't submit the files you downloaded from the Moodle, such as the IExerciseX.java files. Do not submit any text files - this will cause compilation failure. You are advised to wait until after the lecture to start the practical, because there is no guarantee that everything will be obvious from the material available online before the lecture: even if your code passes the automated assessment, you may fail to satisfy the demonstrator and hence not get the tick.

Make sure you saved your own copies of all the submission file. If your solution re-uses your code from previous practicals, you will have to re-submit the appropriate files.

Package

Please include your CRSid in the name of the package with your solution.

Testers

You can use the provided ExerciseXTester.java to test your code. This code is structured around the practical instructions and can help you figure out what the next step in the practical should be. You don't have to upload it, feel free to modify it. Before you use it, please make sure to replace the package in the import statement for ExerciseX with your own. The resources for Tasks 1 and 6 include files Data Preparation1.java and Data Preparation6.java respectively. The testers use these to load the data so make sure you download them if you want to use the tester code.

Ticking

Once your code has successfully passed the automatic tester, you may write your name on the whiteboard to let the demonstrator know you are ready to get your tick. You may start work on the next task before obtaining the tick if your assigned demonstrator is busy, or work on a starred tick. In most cases, the aim is to complete the assigned task in one session (one or two of the tasks may take longer), but it is unlikely to be possible for everyone to get their ticks in that session.