ICOM6034 - Website engineering
Instructor Dr. Roy Ho ( scho@cs.hku.hk )
Teaching assistant Mr. Steven Chu
Syllabus This module will introduce the standards, the software technologies, and some good practices for implementing websites and web applications.

The topics covered will be organized into four parts: (1) Website development basics (system architecture, server- and client-side technologies); (2) Design and implementation of web applications (rich Internet applications, client-side frameworks, MVC design patterns and libraries, content management systems); (3) Interoperability of web applications and services (data formats, web APIs, mashups, cloud services); and (4) Optimizations (data replication and caching, server clustering, traffic analysis, search engine optimizations).
Objectives

This module will suit students who wish to have a technical understanding on the subject or a career in website engineering. It aims at covering a broader, “end-to-end” picture of content delivery and presentation on the web --- from the “server-sides” where data is stored, adapted or integrated, to the “client-sides” with various demands and capabilities.

Its objectives include:

  1. To introduce the engineering techniques for rapid development of maintainable, extensible, interactive and mission-critical websites and web applications.
  2. To provide hands-on experiences with some representative technologies.
  3. To highlight the importance of open standards/source and standard adoption.
Learning outcomes

Upon the successful completion of this module, you should:

  • Know the standards and the standardization processes that have shaped the current web.
  • Be able to identify appropriate approaches and tools for building websites and web applications based on project needs.
  • Understand some latest trends such as HTML5/CSS3, responsive web design for multi-device supports and NoSQL.
  • Have hands-on experiences with some popular and effective development frameworks and libraries.
  • Know how to simplify website implementations by using existing web APIs and cloud services.
  • Be able to reduce client-perceived latencies by optimizing the processes of web-page rendering.
  • Know some sustainable approaches to search engine optimizations (SEO).

The optional lecture (not covered in the examination) will also enable students to design scalable web infrastructures for accommodating variable traffic intensities.

Prior knowledge expected This module requires hands-on experiences of software design and implementation, and is targeted at students with strong technical background. Students are expected to have some basic knowledge on HTML/CSS, JavaScript, Java and PHP (or JSP/ASP).
Topics covered*

Part 1: Web development basics (3 sessions)

Session 1: Enabling standards and technologies (part 1)

  • Standards and protocols for publishing web sites, web applications and web services
  • Quick review of X/HTML, CSS, JavaScript and the DOM
  • Case study: the front page of Facebook.com

Session 2: Enabling standards and technologies (part 2)

  • Introduction to HTML5 and CSS3
  • Dynamic contents and server-side scripting
  • [Lab 1]: our development platform

Session 3: Techniques for versatility

  • Web security basics and internationalization of web contents
  • Multi-device supports and “responsive web design” (RWD)
  • Design approaches for accessibility: “graceful degradation” vs. “progressive enhancement”

Part 2: Design and implementation of web applications (3 sessions)

Session 4: Web 2.0: engineering practices and the client-side

  • Web 2.0 and frameworks for rapid development
  • AJAX and Rich Internet Applications (RIA)
  • Client-side JavaScript/CSS frameworks (e.g., jQuery)
  • [Lab 2]: Using jQuery and building a simple RIA

Session 5: The server side (part 1)

  • “Separation of concerns” in web application development
  • Model-view-controller (MVC) design pattern
  • Server-side MVC frameworks (e.g., Zend Framework)
  • [Lab 3]: Using the Zend Framework

Session 6: The server side (part 2)

  • Concepts of “convention over configuration” and “object-relation mapping” (ORM)
  • Content management systems (e.g., Drupal)
  • Demo: Using Ruby on Rails

Part 3: Interoperability of web applications and services (3 sessions)

Session 7: Web API protocols (part 1)

  • Resource-oriented and service-oriented web APIs
  • RESTful and SOAP protocols
  • Exchanging enterprise data through web APIs
  • RPC-based and feed-based protocols

Session 8: Web service mashup

  • Mashups of web data and services
  • Case study: Google Maps and Flickr
  • [Lab 4]: Using some popular web APIs

Session 9: Simplifying website development with cloud services

  • Using cloud services at the server side (e.g., AWS, GAE, MS Azure)
  • Practice of "infrastructure as code"
  • Case study: a web-based photo editor
  • Demo: Google App Engine

Part 4: Optimizations (2 sessions; one optional)

Optional Session (not covered in the examination): Scalability and availability

  • Web server clustering
  • Web caching and content delivery network
  • Handling unexpected traffic spikes
  • Scaling RDBMS and the new notion of “NoSQL”

Session 10: Performance and popularity

  • Web page designs for fast rendering
  • Traffic analysis
  • Search engine optimization (SEO)
  • Demo: Google Analytics

* Order of topics subject to slight modifications.

Teaching format 10 sessions of lectures and labs
Assessment
  • 1 individual programming assignment (which is an extended version of the in-lab exercises): 30%
  • 1 group project for implementing a small-scale website or web application: 40%
  • Closed-book exam, where one A4-page cheat sheet is allowed (filled with notes on ONE side): 30%
    Date: 15 April 2015 (Wed)
    Time: 7:30pm - 9:30pm
    Venue: Room 237, Main Building

Note: Students are required to fulfill a minimum attendance requirement of 70% for the purpose of applying for the Continuing Education Fund.

Information on CEF Information for part B of the CEF application form
  • Name of Institution/Course Provider: HKU
  • CEF Institution code: 001
  • CEF Course Title: Website engineering (Module from MSc in Electronic Commerce & Internet Computing programme)
  • CEF Course Code: 22Z01896-8
Course materials

Notes, with pre- and post-course reading lists of online reference materials.

Enrolment No add or drop after 19 January 2015 (23:59)
Class quota Class size will be maintained at 40.
Special note Students should bring their notebook computer to the lab sessions.
 
- Back -