CC292: Web Application Programming

Introduction

This course covers the fundamental programming techniques behind the construction of dynamic web applications.  The emphasis is on the programming rather than the visual design of the web applications.  The main technologies and languages covered are HTML, CSS, JavaScript, Java Server Pages (JSP), server-side Java programming, and databases. 

The contact hours of the course consist of 18 1-hour lectures and 11 2-hour laboratories.  Some of the labs have associated lab scripts to work through, while others are for assistance with the assignments, or in-lab assignment marking.  The course (known as CC213 up until 2007) was updated for 2008.  Coverage of the ACID transaction criteria and threads was reduced, with more emphasis on practical web application programming, and increased coverage of JavaScript.

As part of the course you will learn to design and implement web applications using Java, JSP, JavaScript, CSS, and a back-end database.  A sample solution (by Sam Adams) from a previous assignment and year is shown below.  You can click on the image to try it - it's a partially functional on-line shop.

People

Guest Lecture: from Active Web Solutions, Tuesday Feb 24, room 5A.118, 12 – 1

Lectures

The lecture timetable is listed below, though may be subject to revision.  Handouts will be provided for the lecture slides.  Follow the links for the slides.  Prompt attendance is expected and appreciated.  Also to be arranged in place of one of these slots is an invited talk from a local web applications company.

The following schedule of lectures is approximate, and the actual lecture content may vary without notice.  Some lectures may be based on the lecture slides, while others may involve class-based exercises on related material.

Week Monday Thursday
16 Introduction (X)HTML and CSS
17 JavaScript JavaScript (see previous link)
18 JSP Intro JSP Intro (see previous)
19 JSP with MVC JSP Continued
20 Object DBs Object DBs
21 UML Modelling Modelling contd.
22 Relational DBs RelationalDBs Contd
23 DBs continued XML
24 XML Contd. AJAX and GWT
25 HTTP and Web Server No Lecture
  Easter Vacation Easter Vacation
31 Revision Past papers (2004, 2005, 2006)

Laboratories

The lab scripts are available on-line and may be subject to update prior to the start of each lab session.  Lab scripts are subject to revision before then.

Week Laboratory
16 (X)HTML, CSS, and JavaScript
17 JavaScript Continued
18 JSP Introduction
19 JSP Continued
20 Assignment 1 Work
21 Assignment 1 Demo + Marking in Lab
22 Object Databases
23 Relational Databases
24 XML
25 Assignment 2 Work
26 - 29 Easter
30 Assignment 2 Demos + Marking in Lab

Demos

These are snippets of code, worked exercises and other demonstrations from the lectures.  Some have additional exercises for you to work through.

Link Description
MoveableDemo Illustrates the use of JavaScript to control position of a <div> element.
WordCount Counts word frequency in a string and sorts output into order.
Both Java and JavaScript provided.
Ajax + JSP A simple Ajax application that uses JSP to dynamically generate XML.
The XML is asynchronously requested by a simple JavaScript function.
E4X is used to render the XML as HTML.
Toy Web Server A simple toy web server (just handles GET requests for static resources).

(The link on the left goes straight to a directory that contains the source)

GWT Kitchen Sink Example - Example of GWT controls on GWT web site.
TCPMon Follow the tutorial, download and run the code, and use this as an observable proxy
to monitor the HTTP traffic between a client and server (e.g. browse the http://www.amazon.co.uk web site (your web browser will see have localhost in the
address bar while you do this)

Assignments

The marks for each assignment will be returned within two term weeks of the hand-in date.  Students must demonstrate their solutions to each assignment in the lab.  Assignments must also be submitted to the online submission server.  Include a zip file with everything required to run your applications.  Note: you do not need to include .jar files such as the db4o jar. 

In the case of multiple submissions from a single student, only the most recent zip file will be marked.  Please be sure to include everything necessary within the zip file.  Files not included cannot be marked.  Usual departmental rules apply: late submissions get zero.

Assignment Set (wk) Due (wk) Returned (wk)
Ass1 18 21 23
Ass2 21 30 32

Reading List

Also see links in lectures and in lab scripts for additional reading.

The original course catalogue reading list can be found here: CC292 course catalogue entry.

Given the lecture notes, the lab scripts, and the wealth of information available on the web, there is no mandatory text book for this course.  If you were to buy a single book, one of the the best ones in my opinion is JavaScript: The Definitive Guide, David Flanagan (2006), O'Reilly, though this only covers JavaScript and CSS (no JSP or Java).  This is an excellent book to buy if you want to go well beyond the material taught in this course.

Links

 

end of page