ICOM6034A - Website engineering

Summer Semester, 2022-23

Professor
S. C. Roy Ho
Teaching assistant
Wai Yin, Steven Chu
Syllabus This course will introduce the standards, the software technologies and some good practices for implementing websites and web applications.  It aims at covering an "end-to-end" picture of content delivery and presentation on the web, that is, from the "server-sides" where data is stored, adapted or integrated, to the "client-sides" with various demands and capabilities.  It will suit students who wish to have a technical understanding on the subject or a career in website engineering, as it will introduce the techniques for building maintainable, extensible, interactive and mission-critical websites and web applications, using state-of-the-art standards and open-source tools.

The topics covered will be organized into four parts: (1) Website development basics (enabling standards and technologies, responsive web design, basic web security); (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 (web API protocols, mashups, cloud services for web development); and (4) Optimizations (traffic analysis, search engine and performance optimization techniques).
Learning Outcomes
Course Learning Outcomes Relevant Programme Learning Outcome
CLO1. Know the standards and the standardization processes of the web. PLO. 5
CLO2. Be able to identify appropriate approaches and tools for building websites based on project needs. PLO. 9, 14, 16
CLO3. Know how to simplify website implementations by using library frameworks and cloud services, and how to optimize the performance and popularity of websites. PLO. 15
CLO4. Understand some recent trends such as HTML5/CSS3, web APIs, client-side rendering, and responsive web design for multi-device support. PLO. 8, 14
View Programme Learning Outcomes
Enrolment counselling
  1. This course is designed for those who have a strong technical background and hands-on experience in software design and implementation.
  2. Only students who know HTML, CSS, JavaScript and PHP (or JSP/ASP) should enroll; otherwise, they will not be able to follow the lectures or undertake the lab work and assignments.
  3. To evaluate if you have the required skills, please take a quick look at the W3Schools.com's tutorials on HTML, CSS, JavaScript and PHP (or any other similar scripting languages) and see if you are able to follow them.  If you feel that these tutorials are difficult for you, then this course might not be suitable for you.  If you are in doubt, please feel free to contact the course instructor, Dr. Roy Ho, at scho@cs.hku.hk for discussion.
  4. If you wish to self-learn the required skills or refresh your memory, the above online tutorials (in that order) are possible starting points.
  5. There will be a number of labs where we will install the development platforms and apply the taught technologies to create websites. Students are expected to bring notebooks to the lectures and complete some lab exercises at home.
  6. A sample assignment can be found here, which was an extension of an in-lab exercise. You will also be required to design and implement a fully-functional website from scratch in a group project.
  7. Students may find "ICOM6045 Fundamentals of e-commerce security" useful to study before or after this course.
Topics covered
Course Content No. of Hours Course Learning Outcomes
1. Enabling standards and technologies - part 1 (HTML, CSS, and JavaScript) 3.0 CLO1, CLO4
2. Enabling standards and technologies - part 2 (DOM, and basic web security) 3.0 CLO1, CLO4
3. Techniques for adaptability (server-side scripting, responsive web design, and internationalization (i18n)) 3.0 CLO1, CLO4
4. Web 2.0: engineering practices and the client-side (rapid development tools, AJAX, and jQuery) 3.0 CLO2, CLO3
5. The server-side - part 1 (MVC frameworks and Laravel) 3.0 CLO2, CLO3
6. The server-side - part 2 (Content management systems, e.g., Drupal, Wiki, etc.) 3.0 CLO2, CLO3
7. Web API protocols (service-oriented, RESTful, RPC-based, and feed-based web APIs) 3.0 CLO2, CLO3, CLO4
8. Web service mashups and examples 3.0 CLO2, CLO3, CLO4
9. Client-side rendering and cloud services (the React library, Amazon Web Services, and Google App Engine) 3.0 CLO2, CLO3, CLO4
10. Performance and popularity (web page designs for faster rendering, traffic analysis, and search engine optimizations (SEO)) 3.0 CLO3
 
Assessment
Description Type Weighting * Tentative Assessment Period /
Examination Period ^
Course Learning Outcomes
One programming assignment, which will be an extension of an in-lab exercise Continuous Assessment 30% - CLO1, CLO2, CLO3
One group project for implementing a small-scale website or web application Continuous Assessment 40% - CLO1, CLO2, CLO3
A written open-book examination covering all the taught contents in the course Written Examination 30% 7 - 19 Aug 2023 CLO1, CLO2, CLO3, CLO4
* The weighting of coursework and examination marks is subject to approval
^ The exact examination date uses to be released when all enrolments are confirmed after add/drop period by the Examinations Office.  Students are obliged to follow the examination schedule.  Students should NOT enrol in the course if they are not certain that they will be in Hong Kong during the examination period.  Absent from examination may result in failure in the course. There is no supplementary examination for all MSc curriculums in the Faculty of Engineering.
Course materials
  • No prescribed textbook
  • Reference materials will be given after each lecture for optional, advanced, self study.
Session dates
Date Time Venue Remark
Session 1 31 May 2023 (Wed) 7:00pm - 10:00pm GH-P603 Face-to-face
Session 2 3 Jun 2023 (Sat) 7:00pm - 10:00pm GH-P603 Face-to-face
Session 3 7 Jun 2023 (Wed) 7:00pm - 10:00pm GH-P603 Face-to-face
Session 4 11 Jun 2023 (Sun) 2:00pm - 5:00pm GH-P603 Face-to-face
Session 5 14 Jun 2023 (Wed) 7:00pm - 10:00pm GH-P603 Face-to-face
Session 6 17 Jun 2023 (Sat) 7:00pm - 10:00pm GH-P603 Face-to-face
Session 7 21 Jun 2023 (Wed) 7:00pm - 10:00pm GH-P603 Face-to-face
Session 8 24 Jun 2023 (Sat) 7:00pm - 10:00pm GH-P603 Face-to-face
Session 9 28 Jun 2023 (Wed) 7:00pm - 10:00pm GH-P603 Face-to-face
Session 10 5 Jul 2023 (Wed) 7:00pm - 10:00pm GH-P603 Face-to-face
GH - Graduate House
Add/drop 27 May, 2023 - 3 June, 2023
Maximum class size 50
Moodle course website
  • HKU Moodle: https://moodle.hku.hk/course/view.php?id=103804 (Login using your HKU Portal UID and PIN)

    - Please note that the professor maintains and controls when to release the Moodle teaching website to students.
    - Enrolled students should visit the Moodle teaching website regularly for latest announcements, course materials, assignment submission, discussion forum, etc.
Back