Distributed Systems
Keywords |
Classification |
Keyword |
OFICIAL |
Operating Systems and Networks |
Instance: 2009/2010 - 1S
Cycles of Study/Courses
Teaching language
Suitable for English-speaking students
Objectives
1- Background
Computer applications are increasingly distributed. Most recently, we have witnessed the trend to migrate most applications from the computer to the "cloud", and the performance and reliability of modern computer networks make it likely that distributed computing will become ubiquitous in the not so distant future. However, distribution raises a number of problems that do not exist in centralized applications and systems.
2- Specific Aims
Because this is the only required course of the area of distributed computing in the curriculum, it is of paramount importance that the students become familiar with the principles underlying distributed computing, and with the paradigms that are used in their design. Furthermore, they should develop the necessary skills to apply that knowledge in the analysis, design and implementation relatively simple distributed applications.
3- Previous Knowledge
It is expected that students have basic knowledge of operating systems and computer networks. Furthermore, they should be proficient in programming in imperative and object-oriented languages, such as C, C++ and Java.
4- Percent Distribution
Scientific component: 65%
Technological component: 35%
5- Learning Outcomes
Upon completing this course, the students should be able:
1) to understand the foundations of distributed applications and systems;
2) to design and implement relatively simple distributed applications, possibly with security requirements;
3) to analyze distributed solutions to somewhat large problems and assess whether they are suitable to the problem at hand;
Program
Introductory concepts on distributed systems and network computing. Communication models: message passing, remote invocation. Distributed objects. Naming: identification and addressing. Security concepts. Synchronization. Replication and consistency. Fault tolerance. Architectures of distributed applications.
Mandatory literature
Andrew S. Tanenbaum and Maarten van Steen; Distributed Systems: Principles and Paradigms, 2/E, Prentice-Hall, 2007. ISBN: 9780132392273
Complementary Bibliography
Coulouris, George;
Distributed systems. ISBN: 0-201-61918-0
Tanenbaum, Andrew S. 1944-;
Distributed systems. ISBN: 0-13-088893-1
Teaching methods and learning activities
The main issues of each topic are presented in class, usually with the help of transparencies. Whenever appropriate examples are used. The contents follows closely Tanenbaum and van Steen’s book. However, for topics that are not covered by that book at the desired level, we will provide notes and/or articles.
The programming assignments proposed are discussed in lab classes.
Software
Unix
JDK 1.4 ou JDK 1.5
Evaluation Type
Distributed evaluation with final exam
Assessment Components
Description |
Type |
Time (hours) |
Weight (%) |
End date |
Attendance (estimated) |
Participação presencial |
50,00 |
|
|
Programming Tests |
Exame |
9,00 |
|
2009-12-18 |
Exam |
Exame |
2,00 |
|
2010-01-27 |
|
Total: |
- |
0,00 |
|
Amount of time allocated to each course unit
Description |
Type |
Time (hours) |
End date |
Study |
Estudo autónomo |
39 |
2010-01-09 |
Programming assignments, in addition to work in-class |
Estudo autónomo |
36 |
2009-12-18 |
Final exam preparation |
Estudo autónomo |
24 |
2010-01-27 |
|
Total: |
99,00 |
|
Eligibility for exams
Attendance of the minimum required classes and at least 45% in the weighted average of the programming tests.
Calculation formula of final grade
0.3 PP + 0.1PA + 0.6 ET
where:
PP is a weighted mean of the grades in the 3 programming tests (the weight of the worst grade is half of the weight of each of the other two grades)
PA - Class participation
ET - Final exam
Examinations or Special Assignments
Three programming tests, each with a duration of 3 hours, consisting in the development of programs similar to those of the programming assignments discussed in class.
Final Exam
- duration of 2h
- closed books
Special assessment (TE, DA, ...)
Similar to the one of the regular students, except for the class participation term. Thus the final grade is computed as follows:
0.4 PP + 0.6 ET
where PP and ET have the same meaning as above.
On special evaluation periods, there is no programming exam but only a final exam: the grade PP above is therefore the one obtained during the semester.
Classification improvement
Done by the submission to an exam similar to the final exam of the regular evaluation period (and with the same weight). However, improvement of grades larger or equal to 18 points will be done with an oral exam, which will cover both theoretical and practical aspects.
Improvement of the grade of the programming tests can be done only during the semester, i.e. when the class is taught next time.
Observations
Students are expected to have a honest academic behavior. The cases of violation of academic integrity shall be reported to the Course Director.