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
- Lecturer: Simon M. Lucas
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
- db4o Object Database
- HSQLDB Pure Java Relational Database
end of page
