Skip to navigation | Skip to main content | Skip to footer

COMP30351: Engineering Web Applications (2009-2010)

This is an archived syllabus from 2009-2010

Engineering Web Applications
Level: 3
Credit rating: 10
Pre-requisites: No Pre-requisites
Co-requisites: none
Duration: 11 weeks
Lectures: 22
Labs: One hour a week for 11 weeks
Lecturers: Thierry Scheurer
Course lecturer: Thierry Scheurer

Additional staff: view all staff
Sem 1 w1-5,7-12 Lecture 1.3 Wed 10:00 - 11:00 -
Sem 1 w1-5,7-12 Lab UNIX Wed 12:00 - 13:00 -
Sem 1 w1-5,7-12 Lecture 1.3 Fri 15:00 - 16:00 -
Assessment Breakdown
Exam: 70%
Coursework: 0%
Lab: 30%
Degrees for which this unit is optional
  • Artificial Intelligence BSc (Hons)


Internet and Web applications are among the most pervasive and visible features of Computer Science/ICT today. It is also a field of continual expansion and its evolution is so fast that it is difficult to keep abreast of its developments. ICT professionals should continually seek to strike the right balance between awareness of relevant advances, adequate understanding of their underlying principles and an appropriate level of competence in their use.


The main aim of the course unit is to provide a carefully selected range of principles, methods and technologies sufficient to enable students to build powerful and well-engineered Web applications. The course is Java-oriented, although many topics are independent of this platform or easily transferable to other platforms e.g. Microsoft .Net with C#. Throughout, a balance is sought between consolidation of foundational material and state-of-the-art technologies. In particular, emphasis is placed on Java Servlet programming, as this may be used quite effectively on its own. Moreover, it is the foundation of other technologies such as JSP and JSF, and a good understanding of the former is essential to the mastery of the latter. Likewise, part of the course will be devoted to principles of good software development, including the practical use of formal specification methods and design principles relevant to Web applications.
The development platform to be used is NetBeans 6.7.1 (or later version), an Open Source Integrated Development Environment (IDE) supplied by an affiliate of Sun Corporation. This offers a wide and well-integrated range of state-of-the-art development tools.

Learning Outcomes

On successful completion of this course unit, students should be able to demonstrate the following Intellectual and Transferable skills.

Intellectual Skills

Read the relevant Java programs and demonstrate understanding by carrying out such tasks as identifying and correcting logical errors, filling gaps, making changes, etc.
Understand a semi-formal program specification for a system and correctly implement it; reason about a program in relation to its specification.
Implement substantial Web applications realizing the 3-tier model using Java Servlet programming and other related technologies listed in the syllabus, such as JSP and JSF.
Demonstrate a full grasp of the theoretical principles underpinning the various technologies listed in the syllabus.
Apply these principles to the development of Web applications and explain how these principles relate to such applications.
Use the program development tool of the course (NetBeans 6.7.1 or later version) effectively.
Establish and apply effective strategies for testing Web application software, including detecting, identifying and correcting errors of all kinds.

Transferable Skills

Apply a rigorous and systematic approach to the description of any type of system and to problem-solving.
Plan activities akin to software engineering and ensure their execution in accordance with the plan (control).
Understand a specification document correctly and construct an artefact consistent with it.

Assessment of Learning outcomes

Coursework: 30 per cent.
Examination: 70 per cent. Two-hour paper including a test of practical knowledge gained through coursework.
If the test mark is less than the coursework mark, the coursework mark will be set to the test mark.

Contribution to Programme Learning Outcomes

A1 (DA), A2 (DA), B2 (DA) and C3 (DA)


Brief review of Web applications and basic concepts: client-server architecture, three- and n-tier models, static versus dynamic pages, HTTP, markup languages (e.g. HTML, XML), related client-side languages (e.g. CSS, JavaScript).
Java Servlet programming, JavaServer Pages (JSP) and JSP tag libraries.
Review of key features of Java relevant to Web applications.
Using formal methods in the development of Web applications.
Allowing for Java Database Connectivity (JDBC) principles in Web applications.
The Model-View-Controller (MVC) paradigm and various realizations.
Overview of JavaServer Faces (JSF).
JSF managed beans and navigation.
JSF components and tag libraries.
JSF Event handling.
JSF and external sources.
A selection of important special topics will also be considered. Possible examples are session tracking, access control, AJAX, coping with hacking threats such as SQL injection, version control, Web Services using RESTful, etc.

Reading List

Core Text
Title: Java Servlet programming
Author: Hunter, Jason and William Crawford
ISBN: 156592391X
Publisher: O'Reilly
Edition: 2nd
Year: 2001

Core Text
Title: Core JavaServer faces (3rd edition)
Author: Geary, David and Cay S. Horstmann
ISBN: 9780137012893
Publisher: Prentice Hall
Edition: 3rd
Year: 2010
This is the main textbook. Acquisition is essential.