Babes-Bolyai University of Cluj-Napoca
Faculty of Mathematics and Computer Science
Study Cycle: Master
SUBJECT

Code	Subject	
MID1020	Distributed Algorithms and Advanced Techniques in Distributed Systems	

Section	Sem.	Hours: C+S+L	Category	Type	
Database	4	2+1+0	speciality	optional	
Distributive Systems in Internet	4	2+1+0	speciality	optional	

Teaching Staff in Charge	Lect. BOIAN Rares Florin, Ph.D., rares@cs.ubbcluj.ro	
Aims	Familiarizarea masteranzilor cu cele mai recente cercetari teoretice din domeniul sistemelor distribuite. Pe langa cercetarile de natura teoretica, studentii vor elabora implementari comparative in C++, C#, Java, CORBA etc. Aceste implementari vor avea doua scopuri: compararea implementarilor de pe diverse platforme si ilustrarea detaliata a algoritmilor distribuiti care fac parte din teoria clasica.	
Content	Săptămâna 1: Modele formale in sisteme distribuite: sincron, asincron, partial sincron)  [8] [2]
Săptămâna 2: Algoritmi distribuiti: modele, caracteristici, problematica, aplicatii [6] [8] [3]
Săptămâna 3: Problema alegerii leaderului: modele si implementari [6 cap 3-4] 
Săptămâna 4:  Problema consensului în sisteme distribuite [6 cap 4, 12] 
Săptămâna 5:  Algoritmi asincroni pentru memorii partajate distribuite [6 cap 10, 17]
Săptămâna 6:  Excludere mutuală şi alocarea resurselor în context asincron [6 cap 10-11]
Săptămâna 7:  Gestiunea timpului în sisteme distribuite: ceasuri fizice şî ceasuri logice (Lamport) [6 cap 18]
Săptămâna 8: Sisteme tolerante la erori [6 cap 21], sisteme send - receive [6 cap 17], recuperarea după avarii [6 cap 22]
Săptămâna 9:  Problematica sistemelor parţial sincrone: simulare, excludele mutuală, consens [6 cap 23-25]
Săptămâna 10: Tranzacţii distribuite [9] 
Săptămâna 11:  Implementări ale sistemelor distribuite în C++ [4]
Săptămâna 12: Implementări ale sistemelor distribuite în C# [1]
Săptămâna 13: Implementări ale sistemelor distribuite în Java [2]
Săptămâna 14: Implementări ale sistemelor distribuite în CORBA [5]
	
Bibliography	1.	BARNABY T. Distributed .NET Programming in C#. Apress, 2002
2.	BOIAN F.M. Programarea distribuita in internet; metode si aplicatii. Ed. Albastra, Cluj, 1997
3.	HILDRETH P.M. Going Virtual: Distributed Communities of Practice. Idea Group Pub. 2004
4.	HUGHES C. HUGHES T. Parallel and Distributed Programming Using C++. Addison Wesley, 2003
5.	LANG U. SCHREINER R. Developing Secure Distributed Systems with CORBA. Artech House, 2002
6.	LYNCH N.A. Distributed Algorithms. Morgan Kaufmann Pub. 1996
7.	TANENBAUM A.S. Distributed Operating Systems. Prentice Hall, 2000
8.	TEL G. Introduction to Distributed Algorithms. Cambridge Press, 1994
9.	WEIKUM G. VOSSEN G. Transactional Information Systems: theory, algorithms, and the practice of concurrency control and recovery. Morgan Kaufmann Pub. 2002
	
Assessment	Cursul se încheie cu un examen final. Pe durata semestrului, studenţii vor prezenta un referat theoretic şi un proiect realizat folosind C++, C#, Java şi CORBA. 
Nota finală constă din:
&#8226;	Examenul final:                                    40%
&#8226;	Evaluarea proiectului                           40%
&#8226;	Evaluarea referatului:                           20%