Note: This unit version is currently under review and is subject to change!

COMP3221: Distributed Systems (2019 - Semester 1)

Download UoS Outline

Unit: COMP3221: Distributed Systems (6 CP)
Mode: Normal-Day
On Offer: Yes
Level: Senior
Faculty/School: School of Computer Science
Unit Coordinator/s: Thilakarathna, Kanchana
Session options: Semester 1
Versions for this Unit:
Campus: Camperdown/Darlington
Pre-Requisites: (INFO1105 OR INFO1905) OR ((INFO1103 OR INFO1113) AND (COMP2123 OR COMP2823)).
Prohibitions: COMP2121.
Brief Handbook Description: This unit will provide broad introduction to the principles of distributed computing and distributed systems and their design; provide students the fundamental knowledge required to analyse, design distributed algorithms and implement various types of applications, like blockchains; explain the common algorithmic design principles and approaches used in the design of message passing at different scales (e.g., logical time, peer-to-peer overlay, gossip-based communication).
Assumed Knowledge: None.
Lecturer/s: Thilakarathna, Kanchana
Timetable: COMP3221 Timetable
Time Commitment:
# Activity Name Hours per Week Sessions per Week Weeks per Semester
1 Lecture 2.00 1 13
2 Laboratory 1.00 1 12
3 Project Work - own time 3.00 13
4 Independent Study 4.00 13

Attributes listed here represent the key course goals (see Course Map tab) designated for this unit. The list below describes how these attributes are developed through practice in the unit. See Learning Outcomes and Assessment tabs for details of how these attributes are assessed.

Attribute Development Method Attribute Developed
Lectures, labwork and assessments all enhance specialist knowledge and skills (2) Engineering/ IT Specialisation (Level 3)
Assignment and lab work designing distributed system components (4) Design (Level 3)
Report writing is required (6) Communication and Inquiry/ Research (Level 2)
Consideration of ethics and privacy issues (8) Professional Effectiveness and Ethical Conduct (Level 3)

For explanation of attributes and levels see Engineering & IT Graduate Outcomes Table 2018.

Learning outcomes are the key abilities and knowledge that will be assessed in this unit. They are listed according to the course goal supported by each. See Assessment Tab for details how each outcome is assessed.

(6) Communication and Inquiry/ Research (Level 2)
1. On successful completion of this unit, a student should be able to produce professional quality written assignments and reports as well as well-documented software for reuse.
(8) Professional Effectiveness and Ethical Conduct (Level 3)
2. On successful completion of this unit, a student should be able to evaluate the implications of sharing of information and the importance of privacy and security. They will also appreciate the importance of ethical behaviour among users of distributed systems.
(4) Design (Level 3)
3. On successful completion of this unit, a student should be able to design efficient distributed algorithms and be able to produce distributed software based on these designs.
(2) Engineering/ IT Specialisation (Level 3)
4. On successful completion of this unit, a student should be able to understand the general properties of distributed systems. They should be familiar with various types of distributed applications and how information is shared between distributed components.
5. On successful completion of this unit, a student should be able to understand programming paradigms for distributed systems (e.g. sockets) and be able to apply them to protocols.
(3) Problem Solving and Inventiveness (Level 3)
6. On successful completion of this unit, a student should be able to implement distributed algorithms. They will be able to able to apply some common distributed algorithms (e.g. searches, shortest path, trees) towards solving problems.
Assessment Methods:
# Name Group Weight Due Week Outcomes
1 Programming assignment 1 No 10.00 Week 4 1, 4, 5,
2 Quiz No 10.00 Week 7 2, 4, 5, 6,
3 Programming assignment 2 No 10.00 Week 8 1, 2, 3, 4, 5, 6,
4 Programming assignment 3 No 20.00 Week 12 1, 2, 3, 4, 5, 6,
5 Exam No 50.00 Exam Period 2, 3, 4, 5, 6,
Assessment Description: The unit will use programming assignments, quiz (mid-term) and a final exam.

The mid-semester quiz and final exam will test the students’ understanding of the theoretical material and concepts and ability to put it in the appropriate context of solving problems. The programming assignments will enable students to develop and test their practical skills and benchmark them against set criteria.

Final Exam: Obtaining at least 40% of the available marks from the written exam is a requirement to pass the course.

Tasks that are done in scheduled times cannot be submitted late, except if following the procedures for Special Consideration. For other tasks, a late penalty will be imposed as follows;

Consistent penalty of 5% per day late, e.g.:

- A good assignment that would normally get 9/10 and is 2 days late loses 10% of the full 10 marks, i.e. new mark = 8/10

- An average assignment that would normally get 5/10 and is 5 days late loses 25% of the full 10 marks, i.e. new mark = 2.5/10

Assignments more than 10 days late get 0.
Assessment Feedback: Marks will be awarded for the assignments and mid-term exam and will reflect the students’ understanding of the assessed material and their ability to apply it in a programming task.

The tutor(s) will encourage interactive learning and provide an opportunity for students to test their understanding in a classroom setting.

The solutions of the assignments will be discussed in the tutorial/lab classes and provide an opportunity for the students to learn by comparing their solutions to the recommended ones.
Policies & Procedures: IMPORTANT: School policy relating to Academic Dishonesty and Plagiarism.

In assessing a piece of submitted work, the School of Computer Science may reproduce it entirely, may provide a copy to another member of faculty, and/or to an external plagiarism checking service or in-house computer program and may also maintain a copy of the assignment for future checking purposes and/or allow an external service to do so.

Other policies

See the policies page of the faculty website at http://sydney.edu.au/engineering/student-policies/ for information regarding university policies and local provisions and procedures within the Faculty of Engineering and Information Technologies.
Prescribed Text/s: Note: Students are expected to have a personal copy of all books listed.
Recommended Reference/s: Note: References are provided for guidance purposes only. Students are advised to consult these books in the university library. Purchase is not required.

Note that the "Weeks" referred to in this Schedule are those of the official university semester calendar https://web.timetable.usyd.edu.au/calendar.jsp

Week Description
Week 1 Introduction
Week 2 Architecture
Lab: Multithreading
Week 3 Assessment Due: Assignment 0
Communication
Lab: Routing
Week 4 Communication 2
Lab: Server
Assessment Due: Programming assignment 1
Week 5 Naming
Lab: RMI
Week 6 Lab: Time
Synchronisation
Week 7 Consistency
Assessment Due: Quiz
Week 8 Crash Failures
Lab: Consistency
Assessment Due: Programming assignment 2
Week 9 Byzantine Failures
Lab: P2P
Week 10 Lab: Byzantine Consensus
Blockchain 1
Week 11 Security
Lab: Security
Week 12 Blockchain 2
Lab: Demo of Assignment 3
Assessment Due: Programming assignment 3
Week 13 Review
Exam Period Assessment Due: Exam

Course Relations

The following is a list of courses which have added this Unit to their structure.

Course Year(s) Offered
Bachelor of Advanced Computing (Computer Science Major) 2018, 2019
Bachelor of Advanced Computing/Bachelor of Commerce 2018, 2019
Bachelor of Advanced Computing/Bachelor of Science 2018, 2019
Bachelor of Advanced Computing/Bachelor of Science (Health) 2018, 2019
Bachelor of Advanced Computing/Bachelor of Science (Medical Science) 2018, 2019
Bachelor of Advanced Computing (Computational Data Science) 2018, 2019
Bachelor of Advanced Computing (Information Systems Major) 2018, 2019
Bachelor of Advanced Computing (Software Development) 2018, 2019
Bachelor of Computer Science and Technology 2016, 2017
Bachelor of Computer Science and Technology (Advanced) 2016, 2017
Bachelor of Computer Science & Tech. Mid-Year 2016, 2017
Biomedical Mid-Year 2016, 2017, 2018, 2019
Biomedical 2016, 2017, 2018, 2019
Bachelor of Information Technology 2015, 2016, 2017
Bachelor of Information Technology/Bachelor of Arts 2015, 2016, 2017
Bachelor of Information Technology/Bachelor of Commerce 2015, 2016, 2017
Bachelor of Information Technology/Bachelor of Medical Science 2016, 2017
Bachelor of Information Technology/Bachelor of Science 2015, 2016, 2017
Bachelor of Information Technology/Bachelor of Laws 2015, 2016, 2017

Course Goals

This unit contributes to the achievement of the following course goals:

Attribute Practiced Assessed
(6) Communication and Inquiry/ Research (Level 2) Yes 5%
(8) Professional Effectiveness and Ethical Conduct (Level 3) Yes 18%
(5) Interdisciplinary, Inclusiveness, Influence (Level 3) No 0%
(4) Design (Level 3) Yes 11%
(2) Engineering/ IT Specialisation (Level 3) Yes 43%
(3) Problem Solving and Inventiveness (Level 3) No 23%
(1) Maths/ Science Methods and Tools (Level 3) No 0%

These goals are selected from Engineering & IT Graduate Outcomes Table 2018 which defines overall goals for courses where this unit is primarily offered. See Engineering & IT Graduate Outcomes Table 2018 for details of the attributes and levels to be developed in the course as a whole. Percentage figures alongside each course goal provide a rough indication of their relative weighting in assessment for this unit. Note that not all goals are necessarily part of assessment. Some may be more about practice activity. See Learning outcomes for details of what is assessed in relation to each goal and Assessment for details of how the outcome is assessed. See Attributes for details of practice provided for each goal.