fişa disciplinei
1. Date despre program
1.1 Instituţia de învăţământ superior	Universitatea Babeş-Bolyai Cluj-Napoca	
1.2 Facultatea	Matematică şi Informatică	
1.3 Departamentul	Informatică	
1.4 Domeniul de studii	Ştiinţa calculatoarelor	
1.5 Ciclul de studii	Licenţă	
1.6 Programul de studiu / Calificarea	Ingineria informaţiei	
2. Date despre disciplină

2.1 Denumirea disciplinei	Programare distribuită - platforme Java	
2.2 Titularul activităţilor de curs	Prof. dr. Florian Mircea Boian	
2.3 Titularul activităţilor de seminar	Prof. dr. Florian Mircea Boian	
2.4 Anul de studiu	3	2.5 Semestrul	5	2.6. Tipul de evaluare	C	2.7 Regimul disciplinei	Opţional	
3. Timpul total estimat (ore pe semestru al activităţilor didactice)

3.1 Număr de ore pe săptămână	3	Din care: 3.2 curs	2	3.3 seminar/laborator	1	
3.4 Total ore din planul de învăţământ	42	Din care: 3.5 curs	28	3.6 seminar/laborator	14	
Distribuţia fondului de timp:	ore	
Studiul după manual, suport de curs, bibliografie şi notiţe	20	
Documentare suplimentară în bibliotecă, pe platformele electronice de specialitate şi pe teren	20	
Pregătire seminarii/laboratoare, teme, referate, portofolii şi eseuri	20	
Tutoriat	15	
Examinări 	8	
Alte activităţi: ..................	-	
3.7 Total ore studiu individual	83	
3.8 Total ore pe semestru	125	
3.9 Numărul de credite	5	
4. Precondiţii (acolo unde este cazul)

4.1 de curriculum	•		
4.2 de competenţe	•		

5. Condiţii (acolo unde este cazul)
5.1 De desfăşurare a cursului	•	Cerintele specifice cursului, ca şi cele ale activităţii de laborator  sunt postate la:
o	http://www.cs.ubbcluj.ro/~florin/PDPJ	
5.2  De desfăşurare a seminarului/laboratorului	•	Laboratoare cu acces la sisteme de operare Unix şi Windows, cu acces individual pe bază de user şi parolă
•	Cerintele specifice cursului, ca şi cele ale activităţii de laborator  sunt postate la:
o	http://www.cs.ubbcluj.ro/~florin/PDPJ	

6. Competenţele specifice acumulate
Competenţe profesionale	•	Definirea noţiunilor, conceptelor, teoriilor şi modelelor de bază din domeniul programării distribuite în Java, a comunicaţiilor între sisteme.
•	Analiza critică şi utilizarea principiilor, metodelor şi tehnicilor de lucru pentru evaluarea cantitativă şi calitativă a proceselor de pe fiecare platformă pe care operează parteneri de comunicaţie
•	Aplicarea conceptelor şi teoriilor fundamentale din domeniul modelelor de comunicaţie din java, a metodelor de programare şi a sistemelor de operare pentru elaborarea de proiecte profesionale
•	Abilitatea de a rezolva probleme de tip low-level şi high level privind comunicarea între procese	
Competenţe transversale	•	Executarea sarcinilor solicitate conform cerintelor precizate si în termenele impuse, cu respectarea normelor de etica profesionala si de conduita morala
•	Informarea si documentarea permanenta în domeniul sau de activitate în limba românaşi în limba engleză
•	Preocuparea pentru perfecţionarea rezultatelor activităţii profesionale prin implicarea în activităţile desfăşurate	

7. Obiectivele disciplinei (reieşind din grila competenţelor acumulate)
7.1 Obiectivul general al disciplinei	•	Insusirea de catre studenti a tehnologiilor fundamentale de implementare a a aplicatiilor distribuite. 
•	Prezentarea instrumentelor oferite de limbajul Java si tehnologiile oferite de pachetele din distributiile j2sdk1.6.0-1.7.0 si j2sdkee1.5-1.6.
•	Prezentarea tehnologiilor de prim nivel şi utilizarea lor în mod direct la elaborarea de aplicatii distribuite de dimensiuni mici sau medii. 	
7.2 Obiectivele specifice

	•	Compendiu Java.
•	Procese si threaduri Java
•	Intrari / iesiri (locale); pachetul java.io, JDBC:ODBC, Mailer.
•	Utilitare specifice. Metode de transmitere a parametrilor initiali ai programelor.
•	Comunicatii Java folosind socket.
•	Tehnologia Java servlet.
•	Java Server Pages (JSP).
•	Apelul la distanta al obiectelor Java (RMI).	

8. Conţinuturi
8.1 Curs	Metode de predare	Observaţii	
Sapt. 1 Compendiu Java.
•	Principalele caracteristici şi primele exemple.
•	Prezentare Java prin comparatii cu C si C++.
•	Tratarea exceptiilor; Interfete Java.
•	Alte exemple de programe simple.	Expunere: descriere, explicaţii, exemple practice, demonstraţii, discuţii pe studii de caz.		
Sapt. 2 Procese şi threaduri Java
•	Procese externe lansate din Java.
•	Thread-uri Java.
•	Exemple de utilizare a threadurilor Java.	Expunere: descriere, explicaţii, exemple practice, demonstraţii, discuţii pe studii de caz.		
Sapt. 3 - 4 Intrari / iesiri (locale); pachetul java.io, JDBC:ODBC, Mailer.
•	Acces prin stream si acces random.
•	Gestiunea structurii de fisiere: clasa File.
•	Citiri si scrieri.
•	Exemple de programe care executa operatii I/O.
•	Acces prin puntea JDBC:ODBC la diverse baze de date.
•	Expedierea de posta electronica; clasa Mailer.	Expunere: descriere, explicaţii, exemple practice, demonstraţii, discuţii pe studii de caz.		
Sapt. 5 Utilitare specifice. Metode de transmitere a parametrilor initiali ai programelor.
•	Crearea aplicatiilor complexe; utilitarul ant.
•	Urmele executiei; utilitarul log4j.
•	Hardcodings vs. Configurare; transmiterea de proprietati.
•	Utilitarele NetBeans, Eclipse, IntelIJIDEA.	Expunere: descriere, explicaţii, exemple practice, demonstraţii, discuţii pe studii de caz.		
Săpt. 6 -7 Comunicatii Java folosind socket.
•	Prezentarea generala a pachetului java.net.
•	Gestiunea adreselor Internet: InetAddress.
•	Transmitera si receptionarea prin UDP.
•	Comunicare prin TCP; exemple de comunicatii TCP.
•	Accesul la resurse Internet prin URL.
•	CGI si comunicatii prin URLConnection.	Expunere: descriere, explicaţii, exemple practice, demonstraţii, discuţii pe studii de caz.		
Sapt. 8 - 10 Tehnologia Java servlet.
•	Conceptul de servlet; containere de servlet.
•	Compilarea unui servlet; primele exemple de servleturi.
•	Servlet vis-a-vis cu CGI.
•	Facilitati specifice servlet.
•	Cateva exemple mai complexe.	Expunere: descriere, explicaţii, exemple practice, demonstraţii, discuţii pe studii de caz.		
Sapt. 11 - 13 Java Server Pages (JSP).
•	Introducere.
•	Text static HTML si comentarii.
•	Tagurile JSP.
•	Utilizarea beanurilor in pagini JSP.			
Sapt. 14 Apelul la distanta al obiectelor Java (RMI).
•	Scenariul dezvoltarii unei aplicatii RMI.
•	Un exemplu de utilizare RMI.			
			
Bibliografie
1.	BOIAN F.M.. BOIAN R.F., Tehnologii fundamentale Java pentru aplicatii Web, Editura Albastra, Cluj, 2004
2.	BOIAN F.M., FERDEAN C. M., BOIAN R.F. DRAGOS R.C. Programare concurenta pe platforme Unix, Windows, Editura Albastra - grupul Microinformatica, Cluj, 2002
3.	BOIAN F.M., Programare distribuita în Internet; metode si aplicatii, Editura Albastra, Cluj, 1998 
4.	DARWIN I. Java CookBook, O'Reilly, 2001
5.	GEARY D.M. Advanced Java Server Pages, O'Reilly, 2001
6.	HUNTER J. Java Servlet Programming O'Reilly, 1998
7.	KURNIAWAN B. Java for the Web with Servlet, JSP, and EJB: A Developer's Guide to J2EE Solutions. Wrox press, 2003
8.	NEWARD T. Server Based Java Programming, O'Reilly, 2000
9.	TANASA S, ANDREI S, OLARU C. Java de la 0 la expert. Ed Polirom, IaSi, 2007
10.	*** http://java.sun.com/docs/guide/net/index.html
11.	*** http://java.sun.com/docs/guide/rmi/index.html	
8.2 Seminar / laborator	Metode de predare	Observaţii	
1. Procese externe	Explicaţii, exemplificări, dialog, studii de caz		
2.  Threaduri	Explicaţii, exemplificări, dialog, studii de caz		
3.  JDBC.	Explicaţii, exemplificări, dialog, studii de caz		
4.  Socket.	Explicaţii, exemplificări, dialog, studii de caz		
5.  Servlet.	Explicaţii, exemplificări, dialog, studii de caz		
6.  JSP.	Explicaţii, exemplificări, dialog, studii de caz		
7.  Opţional - miniproiect RMI.	Explicaţii, exemplificări, dialog, studii de caz		
			
Bibliografie
1.	BOIAN F.M.. BOIAN R.F., Tehnologii fundamentale Java pentru aplicatii Web, Editura Albastra, Cluj, 2004
2.	BOIAN F.M., FERDEAN C. M., BOIAN R.F. DRAGOS R.C. Programare concurenta pe platforme Unix, Windows, Editura Albastra - grupul Microinformatica, Cluj, 2002
3.	BOIAN F.M., Programare distribuita în Internet; metode si aplicatii, Editura Albastra, Cluj, 1998 
4.	DARWIN I. Java CookBook, O'Reilly, 2001
5.	GEARY D.M. Advanced Java Server Pages, O'Reilly, 2001
6.	*** http://java.sun.com/docs/guide/net/index.html
7.	*** http://java.sun.com/docs/guide/rmi/index.html	

9. Coroborarea conţinuturilor disciplinei cu aşteptările reprezentanţilor comunităţii epistemice, asociaţiilor profesionale şi angajatori reprezentativi din domeniul aferent programului
•	Prin insusirea conceptelor teoretico-metodologice si abordarea aspectelor practice incluse in disciplina Programare distribuită - platforme Java, studentii dobandesc un bagaj de cunostinte consistent, in concordanta cu competentele partiale cerute pentru ocupatiile posibile prevazute in Grila 1 – RNCIS
•	Cursul respectă IEEE and ACM Curriculla Recommendations for Computer Science studies. 
•	Cursul există în programa de studii a universităţilor şi facultăţilor de profil din România
•	Conţinutul cursului este foarte bine apreciat de către companiile de software care are ca şi angajaţi absolvenţi ai acestui curs	

10. Evaluare
Tip activitate	10.1 Criterii de evaluare	10.2 metode de evaluare	10.3 Pondere din nota finală	
10.4 Curs	Insuşirea şi înţelegerea corectă a problematicii tratate la curs	Lucrare scrisă în ultimele 4 săptămâni din semestru	35%	
	Rezolvarea corectă a problemelor			
10.5 Seminar/laborator	Activitatea desfăşurată în laborator	Notare în cursul semestrului şi colocviu în ultimele 2 săptămâni ale semestrului	65%	
10.6 Standard minim de performanţă	
•	Minimum nota 5 la fiecare dintre cele două probe	

Data completării		Semnătura titularului de curs		Semnătura titularului de seminar
21.09.2012			Prof. dr. Florian Mircea Boian	Prof. dr. Florian Mircea Boian

Data avizării în departament			Semnătura directorului de departament
...........................................			Prof. dr. Bazil Pârv