Universitatea Babeş-Bolyai Cluj-Napoca
Facultatea de Matematică şi Informatică
Ciclul de studii: Masterat
Domeniul: Informatica
Programul de studii: Baze de date
Limba de predare: Română

SYLLABUS

I. Date generale
Codul	Disciplina	
MID1020	Algoritmi distribuiţi şi tehnici avansate în sisteme distribuite	

Semestrul	Ore: C+S+L	Categoria	Statutul	
4	2+0+2	specialitate	opţională	

II. Cadre didactice cu norma de bază în Universitate
Numele şi	Titlul	Gradul	Catedra	Tipul activităţii	
prenumele	ştiinţific	didactic		C	S	L	
BOIAN Rares Florin	Dr. 	Lect.	Sisteme Informatice	*			

Cadre didactice asociate
Numele şi	Titlul	Instituţia	Tipul	Tipul activităţii	
prenumele	ştiinţific		postului	C	S	L	

III. Obiectivele disciplinei
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.	

IV. Conţinutul disciplinei
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]

V. Bibliografie
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

VI. Tematica activităţilor didactice pe săptămâni

VII. Metode didactice folosite

VIII. Evaluare
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% 	

IX. Bibliografie suplimentară

	Decan,							Sef de catedra,

	Data,							Titular curs,
								Lect. Dr.  BOIAN Rares Florin