| 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:
- To introduce the engineering techniques for rapid
development of maintainable, extensible, interactive and
mission-critical websites and web applications.
- To provide hands-on experiences with some representative
technologies.
- 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. |