COMP9321 Course Introduction

Web Application Engineering

Semester 1, 2014

Course Aims

The Web has now become an open and dynamic environment where users can not only perform transactions but also share and converse with others from around the world. The Web also provides foundational technologies for realising novel applications such as social networks, content sharing sites and gaming platforms. These interactions have been enabled by a new class of Web applications that provide an experience similar to, and in many cases superior to, that of desktop applications.

Web applications are based on the client-server paradigm with the browser as the client invoking the application functions implemented and hosted on servers using Web protocols. Recently, technologies such as AJAX (Asynchronous Javascript + XML) and HTML5 have enabled some Web application functionality to be implemented on the client-side to increase responsiveness to user input. However, the bulk of the processing is still being performed on the server-side. Therefore, a well-engineered server-side functionality is critical to a well-functioning web application.

This course aims to introduce the student to core concepts and practical skills for developing server-side infrastructure for Web applications. Specifically, the course aims to answer these questions:

  1. How to receive and process requests from users ?
  2. How to handle multiple users simultaneously and to maintain interaction with the users ?
  3. How to use databases for persisting user information ?
  4. How to apply object-oriented concepts to web application design
  5. How to identify security threats to a web application ?
  6. How to scale a web application ?
The course uses the Java Web application stack (JDBC, Servlets, JSP) as the practical basis for its modules. However, the concepts taught are universal and can be applied to any other web development framework.

This course is the first installment of the three-part series of the e-Commerce Systems stream. The concepts taught in this course will form the foundation for further learning in COMP9322 and COMP9323.

Pre-requisites and Assumed Knowledge of the Course

To take this course, a student must have programmed in an object-oriented language (preferably Java), have learnt how to design a relational data model and write queries in SQL, and have basic knowledge of the workings of the Internet (TCP/IP, sockets, etc.). Formally, the pre-requisites are:

Student Learning Outcomes

When you successfully complete this course, you should be able to:

What this course DOES NOT cover:

  1. Client-side technologies such as HTML, Javascript and HTML5
  2. PHP / Perl / Python / Ruby
  3. Introduction to object-oriented programming
  4. SQL / Relational Database Management
  5. Web Application Frameworks (Spring MVC, Velocity, etc.)
Prospective students should note that the this course does not aim to introduce you to the latest packages or products available in the market. Rather, it strives to teach students the basics of Web technologies so that they are able to follow and absorb technological developments in this space.

Staff Information

Name Office Phone Email Role
Srikumar Venugopal K17-412B x56255 srikumarv Lecturer in Charge

Course Schedule

There is a 3-hour lecture every week, held each Thursday from 3-6pm in Mathews Theatre B.

Assessment

The overall marks for this course is derived from two major components: the practical work performed during the semester and the written examination at the end of the semester. Each component is worth 50 marks and the total marks for this course are 100.

The practicals are divided into the following components:

  1. Assignment 1 (10 Marks) A simple web application using Servlets, JSP and XML. To be undertaken individually by each student.
  2. Assignment 2 (25 marks) A more complex web application using JSP, Servlets and databases. Group assignment in groups of 2 ONLY unless the LiC gives permission for individually completing it.
  3. Assignment 3 (15 marks) This assignment will involve working with other web applications and conducting performance measurements, and will most likely build on Assignment 2. Again, in groups of 2.
The penalties for late submissions for assignments are also generally heavier than usual CSE courses ( 30% marks or higher). As the assignments are assessed through demos, this is in place to ensure that all demos are completed as per schedule.

The following formula describes precisely how the mark will be computed.

assign_tot = (lab + assignment) = 50
final_exam =  (final_exam) = 50
overall_mark = assign_tot + final_exam, if final_exam is >= 22.5
             = min(46, (assign_total+final_exam)), otherwise

The written exam will be 2 hours long for 50 marks. You need to score at least 22.5 out of 50 (45 out of 100) to pass the written exam, otherwise you will be assigned 46 FAIL, even if you have performed well in the practical component.

The assessments are designed towards meeting the learning objectives in the following manner:

Learning Outcome Assessment
Describe the main components of a Web-based application Examination
Write, read and utilise XML documents in Web applicationsAssignment 1
Design and develop a non-trivial Web-based application from scratchAssignment 2
Use relational databases for managing persistent data for a Web applicationAssignment 2
Identify and apply design patterns in Web applicationsAssigment 2, Examination
Identify common security threats to a Web applicationExamination
Evaluate the performance of a Web application and identify bottlenecksAssignment 3
Understand technologies for scaling web applicationsExamination

Resources for Students

There is no required textbook for the course. Some reference materials (online-based) and recommended books and readings will be made available throughout the semester in the course homepage.

Course Evaluation and Development

This course is evaluated each session using the CATEI system.

Based on feedback obtained in earlier offerings of this course (both CATEI and personal), we have revised the following aspects:

Supplementary Assessment Policy For CSE

Supplementary examination will only be granted when a student was not able to attend the final exam for reasons beyond the student's control (eg., sickness), and submitted a special consideration at the Student Centre within three working days after the examination day. Students are required to read carefully the supplementary assessment policy for CSE. The document that explains this policy can be found here.

Note, however, if you attended the final exam, I will interpret that illness, misadventure or other circumstance beyond your control:

and you will not be considered for supplementary assessment. In other words, if your preparational ability to sit the exam has been affected, then do not attend the exam.

Plagiarism

UNSW (and CSE) considers plagiarism as a serious offence. A student who plagiarises will be dealt with by the school and possibly by the university. More information and the school policy on plagiarism can be found here. Note the section Originality of Assignment Submissions. UNSW's learning centre also provides an online-resource containing information about plagiarism which you should be familiar with.