This is the nuts-and-bolts, informative section, providing information such as what materials are needed, and how the assignments and marking are arranged. Please read it carefully.
Course organization
The course is divided into ten units, all developed by HKMU.
Unit 1 aims to introduce computer networks as these are the essential building blocks of any distributed system. The unit will emphasize the challenges that a computer network needs to face in a scalable and practical environment. It will also cover two important architecture designs of computer networks, namely layered architecture and data packets, which make computer network implementation possible.
At the end of the unit, we will cover the basic TCP and UDP socket implementations as an example of layered software architecture of computer networks, and appreciate the benefits of system complexity management and interoperability brought about by the layered architecture.
Unit 2 assists you to understand the definition of a distributed system, the motivations behind the use of distributed systems, the characteristics that a distributed system generally has as well as various types of distributed system architecture. This unit also uses the computer network as a working example of a distributed system, and we will describe several IP routing algorithms as examples of distributed algorithms required in a distributed system.
Unit 3 introduces the use of multi-tasking in distributed systems and the implementation and utilization of multi-tasking itself. The unit will explain the difference between process and thread, and the use and implementation of several multi-tasking coordination mechanisms: namely lock for mutex access control, and condition for multi-task dependency enforcement. At the end of the unit, we will use the multi- threading library in both Java and Python languages as working examples to illustrate the implementation of multi-tasking and multi- task coordination, as well as extending the client-server programming examples in Unit 2 into multi-threaded server implementation.
Unit 4 introduces the Java Enterprise Edition (Java EE) software architecture, and focuses on data persistence in distributed systems. It describes relational databases, transactions, and programming database access using the Java Persistence API (JPA). The emerging technology of NoSQL databases is also discussed.
Unit 5 covers the client and presentation tier of distributed systems. It begins by discussing the different types of clients, and then emphasizes web development. Web technologies are described and Web application implementation using Spring MVC framework is studied.
Unit 6 begins with an overview of the business logic in two-tier systems, three-tier systems, and the Java EE platform. It demonstrates how to implement business logic using Enterprise JavaBeans (EJBs). The views, types and advanced use of EJBs in developing distributed applications are explained.
Unit 7 deals with security. The unit begins with the security goals of information systems and the concepts of cryptography and secured network protocols. It then describes common threats to Web applications and general protections against them. Security implementations in Java EE and Web applications are discussed and demonstrated.
Unit 8 examines the use of Web services for system integration. It discusses Web service architectures of Simple Object Access Protocol (SOAP) and Representational state transfer (REST). Programming of these two types of Web services is explained and demonstrated using Java EE technologies.
Unit 9 covers messaging systems and asynchronous programming. It describes the point-to-point and publish/subscribe models of messaging. The messaging technologies of Java Message Service (JMS) and Message-Driven Beans (MDBs), and asynchronous session beans are discussed and demonstrated in building Java EE applications.
Unit 10 discusses the emerging topic of cloud computing. It explains the concept of cloud computing and describes its different types. Cloud application development on the Google App Engine (GAE) is studied. The unit also introduces the concept of big data and the MapReduce operation.
Course overview
The following chart gives an overview of the course structure.
Unit | Title | Study weeks |
1 | Introduction to computer networks | 3 |
2 | Introduction to distributed systems | 2.5 |
3 | Multi-tasking programming | 2.5 |
4 | Persistence and transactions | 4 |
5 | Client and web development | 4 |
6 | Developing business logic | 4 |
7 | Security | 4 |
8 | Web services | 4 |
9 | Messaging | 3 |
10 | Cloud computing | 3 |
| Revision | 2 |
| TOTAL | 36 |
Course materials
Printed materials
The main printed materials for this course are in the form of study units. There are a total of 10 study units.
Set textbook
There is no compulsory textbook for the course.
Non-print media
Computer software required for this course will be freeware, which is free of charge.
The course website, accessible from your Online Learning Environment (OLE) account, will contain up-to-date news and information. We recommend that you check the course website at least once a week during your studies.
You will need to access the following items as these are not provided as printed items:
Equipment requirements
You are expected to have access to a PC with an Internet connection. The following PC specifications are stated here only as minimum requirements, recognizing that you may be able to access much more powerful equipment.
Hardware
A PC-compatible computer is needed with at least a dual-core 2GHz processor, 2GB RAM, and 3GB free disk space. The standard features such as a keyboard, a mouse and a display unit are also expected.
Software
Windows XP (or a newer OS) and MS Word are needed.
The programming environment that you will be expected to work with for this course is the NetBeans Integrated Development Environment (IDE) and Python 3. Instructions for downloading and installation will be provided in the course material.
Course assessment
The course uses assignments and a final examination as the two major means of formal assessment of your performance. Assignments serve as the continuous assessment during the study period and account for 30% of the total course assessment. A final examination conducted at the end of the course accounts for the other 70% of the total course assessment.
To pass the course, you are required to obtain at least 40% or above on the average of assignment scores and 40% or above in the final examination.
Assignments
There are four assignments for this course. Each assignment you complete must be submitted to your tutor by a means specified in the Assignment File. It will then be marked by the tutor and returned to you. You will also receive comments and feedback from your tutor.
You must download the assignment questions from the Online Learning Environment (OLE). Each of them should be available, at the latest, one month before the cut-off date. You would then have at least four weeks to work on the assignment. Please check the OLE regularly for the availability of the assignment questions.
You must submit the assignments on or before the cut-off dates. It has been found that submitting the assignments on time benefits course performance. Late submission is likely to ruin your study schedule and disrupt your progress. Your tutor is authorized to grant an extension of up to one week only. Your Course Coordinator can approve late assignments up to three weeks. The Dean may approve assignments up to four weeks late given valid reasons.
Among the four assignments, only the marks of the best three assignments are counted into the score of continuous assessment. The score of continuous assessment contributes 30% of the total course mark. The schedule is as follows:
Assignment | Assignment areas | Date of submission | Percentage towards overall course score |
1 | Units 1 - 3 | At the end of Unit 3 | 10% |
2 | Units 4 - 5 | At the end of Unit 5 | 10% |
3 | Units 6 - 7 | At the end of Unit 7 | 10% |
4 | Units 8 - 10 | At the end of Unit 10 | 10% |
Examination
At the end of the course, you are required to attend a final examination. The examination aims to test your thorough understanding in the areas covered in the course. The examination will be a three-hour, closed book written examination.
The total score of the examination paper contributes 70% of the overall course score.
Assessment summary
The assessment items are summarized in the following table.
Assessment type | Percentage towards overall course score |
Four assignments The scores for the best three assignments will count towards the final assessment. | 30% (10% each * 3) |
Examination The three-hour examination will comprise compulsory short questions and the best three out of four long questions. | 70% |
Total | 100% * |
* An average score of at least 40% for the assignments and a score of 40% or above in the final examination are required to pass the course.