For the coursework you are asked to build an advanced server-side web application which uses XML for data storage and some AJAX and graphics functionality. You can use any programming language of your choice for the coursework but only Perl and PHP will be supported by the lecturer. That means that if you choose a language other than PHP or Perl, you cannot ask for help if you are having problems with your programming language.

Components of your coursework

Your application should consist of the components given below. You can choose the exact topic of your application yourself. A few examples of possible topics are given below.
  1. Interface and graphics: A form-based interface which allows users to enter data. After clicking the submit button, the data should be graphically represented either using SVG or a graph that was drawn using Graphviz (or a similar tool).
  2. XML: A file-display option which allows to display the data in an XML format. The XML format used by your application should be purpose-designed for this application. This means that you should not use SVG or another existing XML format, but instead create your own XML format. Your XML format should have exactly the elements that are needed by your application.
  3. Some AJAX functionality (similar to the examples provided in the Week 7 exercises).
  4. Your application should accept Unicode (utf-8) character input via the form-based interface.
  5. The following documentation:

    The writing style of your documentation should be brief, factual and focusing on the technical details. The text of your documentation (without the security check table and the XML file and DTD) should not be more than 3 pages if printed in 12pt font on A4 paper. Please, print on both sides of the paper if possible. Staple the documentation in the upper left corner. Please, do NOT use plastic folders.

Possible topics of your application

You can choose the topic of your application yourself. To give you some idea of what kinds of topics are feasible, three topics are listed here:


Monday in Week 11, 15:00:
  • Hand the printed documentation in to the School Office. Please remember to show your matriculation card when you are handing in your documentation at the School Office.
  • A zipped file of the source code of your application should be emailed to with the Subject line "SET09103 Coursework". Please, include only the code that you wrote (not any APIs, libraries etc you might have used) in the file. Your source code will not be marked. But if there are any disputes about marks or if plagiarism is suspected your code will be looked at.

    Practicals in Week 11 and 12:

  • Your coursework will be evaluated during the practicals in Week 11 or 12. If you cannot attend these practicals for whatever reason, you need to email the lecturer in advance.

    Note: The Napier webserver is guaranteed to be extremely slow during a time of high demand around the deadline. Especially, if you are using the Napier webserver please, DO NOT leave the coursework to the last minute. The deadline will not be extended unless the Napier server is completely down for an extended period.

    Safeguarding your work

    It is your responsibility to ensure that your files are read-protected from others. You should not leave any printouts of your code on Campus, not even in the rubbish bins. You should change the permissions of all your HTML files and PHP to "unreadable by others" while you are not working on the code.

    You should make regular backup copies of your code, for example, by copying the files to your net storage space or to an external USB device via your I-drive.

    Marking Scheme

    If you submit your coursework late (between 1 and 7 days after the deadline), the mark will be capped at 40%. After that your coursework will be marked as "fail".

    You can reach a total of 50 points for the coursework. This is 50% of your final mark. The marks for XML, AJAX, Unicode and Security will be based both on your implementation and the documentation. Marks will be given both for functionality (whether it works) and complexity. The points will be distributed as follows:

    Graphics10 points
    XML 10 points
    AJAX8 points
    Unicode2 points
    Security10 points
    Documentation (parts 1, 2, 6, 7) 5 points
    Design and Usability5 points