Handouts are available from the school library. They are normally available directly from the librarian's counter for about one day after they have been made available. Then they are put in the box in the shelves. The librarian always has a master copy so if they run out from the shelf box, ask the librarian to run off extra copies. Please do not waste paper, your print quota and tie up the printers in the labs by printing off the handouts from the web.
Handout 1: pdf
This describes the initial warmup exercise.
Handout 2: pdf
This describes the general methodology that we follow in the module and presents the project proposal (outcome of the Inception Phase) that will form the basis for the project we will be analysing and parts of which we will implement during the semester.
Handout 3: pdf
This describes the first set of Student Choice Exercises. The following files are referred to in the Character Count exercise: code.txt and text.txt
Handout 4: pdf
The first Assessed Exercise.
Handout 5: pdf
Extra help for The first Assessed Exercise.
Handout 6: pdf
Submission and viva details for the first assessed exercise and JDBC tutorial for next exercise
The electronic submission website is http://acws-0109.cs.bham.ac.uk/student. If you are submitting from home via an SSH tunnel, you may need to use this full version of the web address instead of the short version that appears in the handout.
Handout 7: pdf
The second Assessed Exercise.
The SQL script to add some database tables to the jw2 database is in databaseTables.sql. This creates tables customers, dept, employee, item, payments, supplier and supply. If you wish to load these tables into your home postgresql database, start up the psql program, and give the command: "\i databaseTables.sql" (without the quotes) to load the file. It will probably give a number of errors (stating that certain tables don't exist) as I have put commands at the start to drop any existing tables with the same names as those which the script will create - however, that will not stop the script from working.
Handout 8: pdf with diagrams (pdf)
Instructions for 2nd assessed exercise viva and introduction to 3rd assessed exercise.
Handout 9: pdf with diagrams (pdf) and DTD documentation (html)
Full details for 3rd assessed exercise. There are a number of extra files for downloading:
- RelOpModel.dtd: The Data Type Declaration file that describes the format of the XML file for this exercise
- Sample.xml: a sample XML file describing a model containing two relational operator trees.
- CATALOG.xml: This is an OASIS catalog file for describing the location of a DTD file to applications that need to be able to find them. This may be useful if your configuration of NetBeans is not correctly handling editing of XML files and you want to be able to write your own Model xml files for test purposes. Put this file where you class files, your xml files and your DTD file is. In Netbeans, in the Explorer, choose the "Runtime" tab. Right click on "XML Entity Catalogs" and mount and OASIS catalog resolver (choose "prefer public ID"). Note that you may not need to do this at all for some setups of Netbeans. If it works properly, you will be able to edit the Sample.xml file (or copies of it), and have features such as completion, checking for well-formedness and validity available for you.
The marking scheme for the 3rd assessed exercise.
The submission instructions for the 3rd assessed exercise.
NEW: Handout 10: pdf
Revision sheet for the examination. This simply lists the topics that were covered in the exercises and the handouts and which you are expected to be able to answer questions on in the examination..
Assessed Exercise 1: Ex1Solution.zip
This zip file contains two solutions. Ex1Basic contains all that was needed to get full marks for this exercise. Ex1, on the other hand, contains two extra features: First, drawing only the area of the screen that was damaged (and calculating the area damaged to be as small as possible). Second updating the size of the drawing panel when an object is dropped outside the current size or when the current size is too large.
Assessed Exercise 2: Ex2Solution.zip
This zip file contains a solution to Ex2 that I would have given full marks to in the viva (which, of course, does not mean that it couldn't be improved. I used a GridBagLayout (which netbeans supports reasonably well) and I have deliberately kept the program simple. However, note the separation between the JTable and the TableModel. TableModel is actually quite simple and separating the view (JTable) and the Model (TableModel) in this way means that one can concentrate on dealing with the data separately from dealing with the presentation of the data: this is a very powerful pattern that simplifies programming complicated user interface a great deal.
Assessed Exercise 3: Ex3Solution.zip
This zip file contains a solution to Ex3 that I would have given full marks to in the viva (which, of course, does not mean that it couldn't be improved. It contains only a couple of extra features: e.g. a simple generic file filter for the JFileChooser dialog. In particular, I have NOT put in the code wither to limit the drawing to the clip region or to recalculate the preferred size of the DrawPanel so that you can scroll to any part of the screen that you actually draw on. Both of these features are relatively straightforward to add. You should particularly pay attention to how inheritance is used to reuse code in different classes (resulting in extremely short and simple concrete classes such as Join, Table etc.) and how care is taken to minimise unnecessary "coupling" between classes to improve maintainability: i.e. Model classes know very little about RelOp classes.