Course Outline
Session 1, 2008
Note this is LAST YEAR's outline. It is for your information only and may change for 2009.
Table of Contents
Course Staff
Course Information
Course Schedule
Assessment
Resources for Students
Academic Honesty and Plagiarism
Further Information
Course Staff
Course Information
Units of Credit
6 Units
of Credit
Course Aims
The aim of this course is to provide students with an understanding of the
principles, techniques, and practice in the design and implementation of
distributed systems, with a particular focus on infrastructure software.
Concretely this includes the following objectives:
- Present the principles underlying the functioning of
distributed systems;
- Create an awareness of the major technical challenges in
distributed systems design and implementation;
- Expose students to current technology and distributed
infrastructure software;
- Expose students to past and current research issues in the
field of distributed systems;
- Provide experience in the implementation of typical
algorithms used in distributed systems.
Learning Outcomes
After completing this course you will be able to:
- Explain what a distributed system is, why you would design a
system as a distributed system, and what the desired properties of
such systems are;
- List the principles underlying the functioning of distributed
systems, describe the problems and challenges associated with
these principles, and evaluate the effectiveness and
shortcomings of their solutions;
- Recognise how the principles are applied in
contemporary distributed systems and distributed infrastructure
software, explain how they affect the software design, and be able to
identify features and design decisions that may cause problems;
- Design a distributed system that fulfills requirements with
regards to desired properties, be able to recognise when this is
not possible, and explain why;
- Build distributed system software using low-level and high-level
techniques.
These learning outcomes cover many of the UNSW graduate attributes
including: an in-depth engagement with the relevant disciplinary
knowledge in its inter-disciplinary context, the capacity for analytical
and critical thinking and for creative problem solving, and the skills of
effective communication.
Related Courses and Programs
Students are expected to be highly competent in the use of a
systems programming language—preferably C. Students not
familiar with C will be expected to learn it on their own.
Furthermore, students are expected to be confident in the use of
standard POSIX system libraries (including file handling,
process management, signal handling, and socket programming).
Moreover, students are required to become competent in the
concurrent programming language Erlang on their own (a brief
introduction is given in the first lecture).
Course Prerequisites
- COMP3231 or COMP9201
Operating Systems
- COMP3331 or COMP9331
Computer Networks and Applications
Parallel Teaching
Only COMP9243 students attend these classes. The students include
postgraduates and senior undergraduates.
Course Philospohy and Teaching Strategies
The learning focus in this course is primarily on lectures and
assignments. Relevant research publications and other material that
goes deeper into the subjects handled during lectures are also provided,
however, these are usually optional. While the assignments provide a
portion of the final mark, one of their primary aims is to provide an
opportunity to put into practice some of the material presented in the
lectures and to get a feel for the complexity of programming
distributed systems.
Course Schedule
Lectures: Wednesday 6-9pm; Room: Webster
Building (F15), Theatre B
The following is a provisional list of topics covered in the lectures
(subject to change):
| Week | Date | Topic |
| 0 | 5 Mar | No Lecture |
| 1 | 12 Mar | Introduction to Distributed Systems, Introduction to Erlang |
| 2 | 19 Mar | System Architecture, Communication |
| | 26 Mar | Mid-session Recess |
| 3 | 2 Apr | Replication & Consistency, Distributed Shared Memory |
| 4 | 9 Apr | Synchronisation & Coordination |
| 5 | 16 Apr | Synchronisation & Coordination |
| 6 | 23 Apr | Middleware |
| 7 | 30 April | Fault Tolerance |
| 8 | 7 May | Security |
| 9 | 14 May | Naming, Distributed File Systems |
| 10 | 21 May | Parallel Programming, Clusters and Grid |
| 11 | 28 May | Research issues |
| 12 | 4 Jun | Review |
Assessment
Assignments
There will be two programming assignments, which
contribute in equal parts to the total assignment mark for this course.
Tentative details are as follows:
| # | Release - Beginning of |
Due - End of | Topic |
| 1 | Week 3 | Week 5 | Distributed Shared Memory
(group assignment) |
| 2 | Week 8 | Week 10 | Router Network
(individual assignment) |
The penalty for late submission of assignments will be 6% (of the worth of the assignment) subtracted
from the raw mark per day of being late. In other words, earned marks
will be lost.
For example, assume an assignment worth 25 marks is marked as 20, but
had been submitted two days late. The late penalty will be 3 marks
((0.06 * 25) * 2), resulting in a mark of 17 being awarded. No assignment will be accepted later than
one week after the deadline.
Assignment submissions need to be coded in C and Erlang (as determined by
the assignment specification). All submission will be tested on the
School's vina cluster running under Debian GNU/Linux.
Final Exam
A three hour open book written final examination will be
conducted.
Supplementary exam
Supplementary exams will only be awarded in serious cases
where the student has submitted a fully documented request for
Special Consideration within 3 working days of the exam. In
accordance with School policy, supplementary exams will
not be awarded as a second chance for poorly performing
students. In particular, it is unlikely that a supplementary
will be awarded to students who have actually sat the proper
exam. Make up your mind whether or not you are sick before
attempting the exam! Moreover, a supplementary exam will
only be awarded where a student's performance during the
semester has been of satisfactory standard. Please refer to
the sections under the heading Special Consideration - Illness
&
Misadventure and CSE Supplementary Assessment Policy
in the
Yellow
Form for further details.
Supplementary exams will be oral. Supplementary final exams
will be held either on the day before, or the day after, the written
supplementary exams held for other courses.
Final Mark
The final mark will be the weighted average of the exam
mark and the total assignment mark, where the exam mark
accounts for 65% and the assignment mark accounts for 35% of the final
mark
.
No-one will be allowed a passing
grade unless their exam mark was at least 50% of the maximum
possible exam mark.
Resources for Students
Textbooks
There is no single textbook for this course. Lecture material will
be taken from a variety of sources, including recent research
publications.
Reference Books
Books covering a significant part of the lecture material
are the following:
- Andrew S. Tanenbaum & Maarten van Steen: Distributed
Systems: Principles and Paradigms, 2nd ed, 2007,
Pearson Prentice Hall, approx $108.
Up to date. Good breadth of coverage, well organised.
1st edition is also good.
- George Coulouris, Jean Dollimore & Tim Kindberg: Distributed
Systems: Concepts and Design, 4th ed, 2005,
Addison-Wesley, approx $90.
Up to date, recent edition. Broad coverage, but too verbose
in many places. 3rd edition is also good
- Pradeep K. Sinha: Distributed Operating Systems, 1997, IEEE Press,
approx $140.
Good coverage (breadth and depth). Getting a bit dated.
- Doreen L. Galli: Distributed Operating Systems, 1999, Prentice
Hall, approx $100.
New book, and quite up-to-date on
technology & products. Extensive examples, but rather
shallow in its coverage, very little theory. Leaves out too
much detail.
- Mukesh Singhal & Niranjan G. Shivaratri: Advanced Concepts in
Operating Systems, 1994, McGraw-Hill, approx $???.
Somewhat
dated, but that's not a problem as the book concentrates on the
theoretical foundations. Case studies are out of date.
None of these books covers all the course material.
Other Material
Reference to research papers will be provided throughout, and it is
recommended that you read them.
Lecture notes and other information can be
found under the course's WWW home page at URL
http://www.cse.unsw.edu.au/~cs9243/.
It is recommended that you refer to this page
regularly.
Academic Honesty and Plagiarism
Assignments will be marked as individual or team assignments in
the specification. Team work is not permitted in individual
assignments; cooperation between teams is not permitted in team
assignments. Both are being regarded as cheating. Copying of
assignment code leads to immediate failure of the course with a
result of 0FL. Negative or reduced
marks will be imposed in less severe cases (e.g., team work in
individual assignments). Cases of repeated cheating (in this or
other courses) will be treated as academic misconduct and will
result in an application being made to have the offender(s)
suspended from the University. Please carefully read the
discussion under the heading Originality of Assignment
Submissions on the Yellow
Form to which you agree to be legally bound when enrolling
for this course and/or signing up for the use of the computing
facilities of the School.
This is no idle threat. We check for cheating, and we go after
cheaters, to protect those who get their marks through honest work. In
a previous instance of this course (Session 1, 2001), two out of 36 students failed due to cheating.
What is Plagiarism?
Plagiarism is the presentation of the thoughts or work of another as
one's own.* Examples include:
- direct duplication of the thoughts or work of another,
including by copying work, or knowingly permitting it to be
copied. This includes copying material, ideas or concepts from a book,
article, report or other written document (whether published or
unpublished), composition, artwork, design, drawing, circuitry,
computer program or software, web site, Internet, other electronic
resource, or another person's assignment without appropriate
acknowledgement;
- paraphrasing another person's work with very minor changes keeping the meaning, form and/or progression of ideas of the original;
- piecing together sections of the work of others into a new whole;
- presenting an assessment item as independent work when it has been produced in whole or part in collusion with other people, for example, another student or a tutor; and,
- claiming credit for a proportion a work contributed to a group assessment item that is greater than that actually contributed.**
Submitting an assessment item that has already been submitted for academic credit elsewhere may also be considered plagiarism.
The inclusion of the thoughts or work of another with attribution appropriate to the academic discipline does not amount to plagiarism.
Students are reminded of their Rights and Responsibilities in respect of plagiarism, as set out in the University Undergraduate and Postgraduate Handbooks, and are encouraged to seek advice from academic staff whenever necessary to ensure they avoid plagiarism in all its forms.
The Learning Centre website is the central University online resource
for staff and student information on plagiarism and academic
honesty. It can be located at: www.lc.unsw.edu.au/plagiarism.
The Learning Centre also provides substantial educational written materials, workshops, and tutorials to aid students, for example, in:
- correct referencing practices;
- paraphrasing, summarising, essay writing, and time management;
- appropriate use of, and attribution for, a range of materials
including text, images, formulae and concepts.
Individual assistance is available on request from The Learning Centre.
Students are also reminded that careful time management is an
important part of study and one of the identified causes of plagiarism
is poor time management. Students should allow sufficient time for
research, drafting, and the proper referencing of sources in preparing
all assessment items.
* Based on that proposed to the University of Newcastle by the St
James Ethics Centre. Used with kind permission from the University of
Newcastle
** Adapted with kind permission from the University of Melbourne.
Course Evaluation and Development
Student feedback on this course, and on the lecturing in this course,
will be gathered via questionnaires (including the CATEI evaluation)
held at or after the end of the course. Student feedback is taken
seriously, and continual improvements are made to the course based in
part on this feedback. While no serious issues have been raised in the
previous evaluation, we have made changes to assignments and assignment
specifications based on student comments and updated lecture material
to ensure that it is up-to-date as well as to improve sections that have been
unclear to students in the past.
Further Information
COMP9243,
School of Computer Science and Engineering,
University of New South Wales
CRICOS Provider Number: 00098G
This page is maintained by
cs9243@cse.unsw.edu.au
Last modified: Thursday, 04-Dec-2008 18:21:26 EST
|