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

COMP38111: Engineering Web Applications (2010-2011)

This is an archived syllabus from 2010-2011

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

Additional staff: view all staff
Sem 1 Lecture 1.5 Thu 10:00 - 11:00 -
Sem 1 Lab UNIX Tue 15:00 - 16:00 -
Assessment Breakdown
Exam: 70%
Coursework: 0%
Lab: 30%

Themes to which this unit belongs
  • Web and Distributed Systems


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.

Programme outcomeUnit learning outcomesAssessment
A1 A2 B2 C3Read the relevant Java programs and demonstrate understanding by carrying out such tasks as identifying and correcting logical errors, filling gaps, making changes, etc.
  • Examination
  • Individual coursework
A1 A2 B2 C3Understand a semi-formal program specification for a system and correctly implement it; reason about a program in relation to its specification.
  • Examination
  • Individual coursework
A1 A2 B2 C3Implement 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.
  • Examination
  • Individual coursework
A1 A2 B2 C3Demonstrate a full grasp of the theoretical principles underpinning the various technologies listed in the syllabus.
  • Examination
  • Individual coursework
A1 A2 B2 C3Apply these principles to the development of Web applications and explain how these principles relate to such applications.
  • Examination
  • Individual coursework
A1 A2 B2 C3 Use the program development tool of the course (NetBeans 6.7.1 or later version) effectively.
  • Examination
  • Individual coursework
A1 A2 B2 C3Establish and apply effective strategies for testing Web application software, including detecting, identifying and correcting errors of all kinds.
  • Examination
  • Individual coursework
A1 A2 B2 C3Apply a rigorous and systematic approach to the description of any type of system and to problem-solving.
  • Individual coursework
  • Examination
A1 A2 B2 C3Plan activities akin to software engineering and ensure their execution in accordance with the plan (control).
  • Examination
  • Individual coursework
A1 A2 B2 C3Understand a specification document correctly and construct an artefact consistent with it.
  • Examination
  • Individual coursework


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.

ASSESSMENT: Lab work (programming exercises) accounts for 30% of the total mark and is subject to confirmation: if the mark for Question 1 of the paper is lower, the lab mark will be reduced accordingly.

Reading List

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

Title: Core JavaServer faces (3rd Edition)
Author: Geary, David and Cay Horstmann
ISBN: 9780137012893
Publisher: Prentice Hall
Edition: 3rd
Year: 2010