Hide menu

TDDI48 Advanced Programming and Interactivity on the WWW


There will be no written exam for this course. Instead, there is a set of lab assignments and exercises. You must complete them and hand them in before the deadline.

If your system is poorly structured, styled and/or commented, or contains plain mistakes or errors, we may return it to you for modification -- in some cases required modifications (in order to be approved/godkänd), in some cases suggested modifications (in order to improve your chances for a higher grade). In this case, a new deadline will be given for the modified version. The extended deadline will be very tight (a couple of days), and we will place harder requirements on the modified version than if you had handed in a better lab the first time. If you think this is too strict, remember that on a written exam you don't get a second chance with suggestions from the examiner...

The Message Forum Project

In the message forum project, you will implement a complete web-based message forum system. The project will proceed in several stages.

Part 1: Design and Layout

In part 1 of the project, you will begin by sketching the design of your message forum. Using plain HTML as well as CSS, you will generate a set of static pages such as a welcome page, a forum list, a topic list, and a view of the messages in a single topic. This will allow you to get started quickly and to practice the use of HTML/CSS before continuing to more advanced aspects of web programming. Perhaps even more importantly, it will force you to think about the way the forum should look and feel in order to be as usable as possible, before "coding yourself into a corner" and making code design decisions that will be difficult to change.

Part 2: User Accounts

In part 2 of the project, you will develop a user account database which will later be the basis of your message forum. Using an SQL database together with a set of JSP pages and servlets, you will enable users to register themselves and to edit their user accounts.

Part 3: Forums, Topics, and Messages

In part 3, you will implement a simple message forum where the users must be registered in your user account system.

Part 4: Extending the Skeleton

When you reach part 4, users will be able to register themselves and write simple messages, but in a sense the forum will still only be a skeleton. This is where we start giving you some more freedom in exactly how you would like to continue. A number of different extensions are available for you to choose from, and you are welcome to suggest your own.

Depending on the number of people in your group and the grade you desire, a certain minimum number of extension points are required. This should not be taken as stating that extension points are the only criterion used to set your grades, or even the main criterion. Code quality and robustness are more important criteria and must be also considered throughout the development of your project.

Time Requirements

You should expect the project to take a lot of time! This is, after all, a five-point course (200 hours!), where most of your learning takes place while working on the project rather than during lectures or while reading theory in a book. This means that you will have to spend quite a lot of time in front of the computers, and you will have to begin as soon as possible.

Project Inspections

During week 7 and week 9, we would like to inspect your project (see the main schedule for exact times).

During a project inspection, we spend anything from a few minutes up to half an hour checking your progress so far, in order to make sure that you are on the right track. Project inspections are not in themselves a form of examination. We only care about the end result, so you don't have to worry about showing your current progress. But because you have this opportunity to get help early, there will be no excuse if you don't show up and your project turns out to have errors that we could have prevented during a project inspection. You may have to do a redesign that takes you a week, even if it would only have taken an extra hour or two if we had caught the problem earlier during the development process.

Project inspections are, as a rule, not done outside scheduled lab times.

Apart from the project inspections, please take the opportunity to ask the lab assistants regarding design decisions or anything else related to the course and the project! The earlier a problem is caught, the easier it is for you to correct.

Alternative Projects

In case you would like to do an alternative project, such as a business-related web application, this might also be possible; you can discuss this with the examiner (Jonas).

Lab Groups

Due to the lack of machine time, you will probably have to work in groups of two. Those that want to can try to work by themselves. If you want to work in a group of three, this could also be accepted, but you will have to implement additional extensions and we will judge your code quality against higher standards.

Corrected Lab Assignments

Corrected lab assignments will be available in the examiner's office for one year.


In order to pass the course, successful completion of the lab assignments is necessary. Judgment of adequacy will be based on the quality and creativeness of these labs in addition to meeting the deadlines. We hope you will all pass the course, but will not approve inadequate solutions.

For grade 3, we require good code quality and modeling (possibly with a few minor exceptions). Usability is also important, as will be discussed in the project instructions. You must have finished the main exercises (lab 1 and the project) plus a certain number of extensions as specified in the lab description.

For grade 4, we require good code quality and modeling. Usability is also important, as will be discussed in the project instructions. You must have finished the main exercises (lab 1 and the project) plus additional extensions.

For grade 5, we require very good code quality and modeling. Usability is also very important, as will be discussed in the project instructions. You must have finished the main exercises (lab 1 and the project) plus additional extensions.

You should do your best to write well structured, well documented code and web pages with proper error handling. Robustness is very important in any program but perhaps even more in web applications which will be open to attack from the Internet, and will therefore also be a criterion for deciding your grade. Finally, we want to repeat that usability is important: An application that is very difficult to use will most likely not get the highest grade even if it satisfies all technical requirements for this grade.

Page responsible: Jonas Kvarnström
Last updated: 2006-01-17