Universitatea Babeş-Bolyai Cluj-Napoca
Facultatea de Matematică şi Informatică
Ciclul de studii: Licenţă
Domeniul: Calculatoare şi tehnologia informaţiei
Programul de studii: Ingineria informatiei - in limba engleza
Limba de predare: Engleză

SYLLABUS

I. General data
Code	Subject	
MID0033	Non-sequential Programming Paradigms	

Semester	Hours: C+S+L+P	Category	Status	
8	2+1+2+1	speciality	compulsory	

II. Full status faculty members
Name and	Scientific	Didactic	Department	Type of activity	
surname	title	title		C	S	L	
BOIAN Rares Florin	Ph.D.	Lect.	Computer Science	*			

Associated faculty members
Name and	Scientific	Institution	Type of	Type of activity	
surname	title		position	C	S	L	

III. Course objectives
Learn the fundamental theoretical and rpactical aspects of concurrent computing, parallel computing and distributed computing.	

IV. Course contents
1. Introduction to concurrent, parallel and distributed computing paradigms
2. Concurrent computing: threads
3. Concurrent computing: mutual exclusion, mutex, read-write lock
4. Concurrent computing: conditional variables
5. Concurrent computing: semaphores; synchronization mechanisms in Java, C#, C++
6. Parallel computing: introduction, Flynn taxonomy, hardware arhitectures
7. Parallel computing: NVIDIA CUDA
8. Parallel computing: ATI Stream
9. Distributed computing: introduction, message passing, client-server, RPC
10. Distributed computing: distributed algorithms
11. Distributed computing: point-to-point, publish/subscribe,
12. Distributed computing: distributed objects - RMI, CORBA, JavaSpaces
13. Distributed computing: mobile agents, distributed services
14. Distributed computing: colaborative applications.	

V. Bibliography
1. BACON J., Concurrent Systems, Addison-Wesley, England, 1998 
2. BARRY A., Concurrent Programming, http://www.csm.uwe.ac.uk/personal/am-barry/Q2H611/concprog.html 
3. BOIAN F.M., FRENTIU M., KASA Z., Effieciency in Parallel Evaluation of Arithmetic Expressions, Universitatea Babes-Bolyai, Facultatea de Matematica, Seminar on Complexity, Preprint no. 10/1989 
4. BOIAN F.M., Programare distribuita în Internet; metode si aplicatii, Editura Albastra, Cluj, 1998 
5. BOIAN F.M., Sisteme de operare interactive, Editura Libris, Cluj, 1994 
6. BOIAN F.M., FERDEAN C. M., BOIAN R.F. DRAGOS R.C. Programare concurenta pe platforme Unix, Windows, Editura Albastra - grupul Microinformatica, Cluj, 2002 
7. BOIAN F.M., VANCEA A., IURIAN S., IURIAN M., Arhitectura 80x86, Limbaj de asamblare, Legatura între limbaje, vol. I si II, Lito. Universitatea "Babes-Bolyai", Cluj, 1994 
8. FLYNN M. J., Some Computer Organizations and their Effectiveness, IEEE Transactions on Computers, C-21, 1972 
9. IGNAT I., KACSO A., Gestionarea proceselor, Editura Albastra, grupul Microinformatica, Cluj, 1995 
10. STALLINGS W., Operating Systems: Internals and Design Principles, Prentice Hall, SUA, 1997 	

VI. Thematic of didactic activities per weeks
Week 1-4. Concurrent computing: threads project
Week 5-8. Parallel computing: NVIDIA CUDA/ATI Stream project
Week 9-14. Calcul distribuit: P2P project	

VII. Didactic methods used

VIII. Assessment
The final grade will be calculated as the weighted averga of the scores below:
Technical report 20%
Projects 40%
Written exam 40%

URL: http://www.cs.ubbcluj.ro/~rares/course/ie/nspp	

IX. Additional references

	Dean,							Department head,

	Date,							Course responsible,
								Lect. BOIAN Rares Florin, Ph.D.