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 romana
Limba de predare: Română

SYLLABUS

I. Date generale
Codul	Disciplina	
MID0033	Paradigme de programare nesecventiala	

Semestrul	Ore: C+S+L+P	Categoria	Statutul	
8	2+1+2+1	specialitate	obligatorie	

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
To learn the fundamentals (theoretical) aspects in concurrent programming, processes and threads create and them coordinations. Focus on the practical aspects in processes and threads are the Unix (Linux), Windows NT (2000) operating systems, and standard Java distribution.	

IV. Conţinutul disciplinei
1The levels of concurrent processing
      1.1Parallel processing and Flynn classification
      1.2The parallel / concurence granularity
      1.3The pipeline technique
      1.4Vectorial processors and cluster systems
      1.5The operating system level in parallel and concurrent processing
      1.6Complex expression evaluation with multiprocessor
      1.7Assignment statements reorder
      1.8For do loop parallelization
2Abstract concepts in concurrence
      2.1Nonsequential programming paradigms
      2.2The processes - threads relationship
      2.3Concurrent programs specification schemas
      2.4Exception in concurrence
      2.5Concurrency control mechanisms, communications and sinchronization
      2.6Asynchronous and partial asynchronous concurrency control mechanisms
      2.7Specific concurrency problems and applications
3Concurrent programming with processes
      3.1Processes in Unix, Windows, Java
      3.2Inter processes communication using pipe
      3.3Inter processes communication using shared memory
      3.4Processes synchronization using semaphores
      3.5Inter processes communication using message queues
4Concurrent programming with threads
      4.1General characteristics
      4.2Some exemples of problems with threads
      4.3Unix threads: Posix and Solaris
      4.4Windows NT(2000) threads
      4.5Java threads
5Complex concurrent applications
      5.1 Design schems for concurrent applications
      5.2NT threads in MFC
      5.3Threads, signals and Unix processes
      5.4Threads in Java applets and servlets
      5.5A visual multithreading NT application
      5.6A chat concurrent Java server
      5.7Noninteractiv FTP client
      5.8Performance evaluation in thread programming

V. Bibliografie
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. Tematica activităţilor didactice pe săptămâni
Week 1: IPC – Pipe/FIFO
Week 2: IPC – Shared Memory
Week 3: IPC- Semaphores
Week 4: IPC – Message Queues
Week 5: Threads Posix
Week 6: Threads Solaris
Week 7: Threads Windows
Week 8: Threads Java
Week 9-14: Complex thread project implemented in all four technologies: POSIX, Solaris, Windows, java	

VII. Metode didactice folosite

VIII. Evaluare
The final grade is the weighted average of the entries below:
- 	concurrency report 50%;
- 	the semester activity: quality of programs, documentations etc. 50%

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

IX. Bibliografie suplimentară

	Decan,							Sef de catedra,

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