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

2. Date despre disciplină
2.1 Denumirea disciplinei	Structuri de date şi algoritmi	
2.2 Titularul activităţilor de curs	Prof. dr. CZIBULA Gabriela	
2.3 Titularul activităţilor de seminar	drd. Marian Zsuzsanna, drd. Bocicor Maria-Iuliana	
2.4 Anul de studiu	1	2.5 Semestrul	2	2.6. Tipul de evaluare	E	2.7 Regimul disciplinei	Obligatorie	

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 sem	
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	12	
Pregătire seminarii/laboratoare, teme, referate, portofolii şi eseuri	25	
Tutoriat	8	
Examinări 	18	
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	Fundamentele programării	
4.2 de competenţe	Abilităţi medii de programare 	

5. Condiţii (acolo unde este cazul)
5.1 De desfăşurare a cursului	•	Sală de curs cu videoproiector	
5.2  De desfăşurare a seminarului/laboratorului		

6. Competenţele specifice acumulate
Competenţe profesionale	•	Cunoaşterea şi înţelegerea structurilor de date de bază şi implementarea algoritmilor specifici.
•	Deprinderea de a  proiecta şi realiza aplicaţii pornind de la utilizarea tipurilor abstracte de date.
•	Înţelegerea separării între specificarea unui tip abstract de date şi implementările posibile folosind structuri de date.
•	Formarea priceperilor şi capacităţilor de a alege structura de date adecvată pentru implementarea unui tip abstract de date.
	
Competenţe transversale	•	Abilitatea de a aplica structurile de date în rezolvarea problemelor din lumea reală.
•	Executarea responsabilă a lucrărilor.
•	Aplicarea regulilor de muncă riguroasă  și eficientă.
•	Manifestarea unor atitudini responsabile faţă de domeniul  știinţific  și didactic.
•	Respectarea principiilor  și a normelor de etică profesională.	

7. Obiectivele disciplinei (reieşind din grila competenţelor acumulate)
7.1 Obiectivul general al disciplinei	•	Studierea structurilor de date cu care se pot implementa tipurile abstracte de date (tabloul, lista înlănţuită, arborele binar, tabela de dispersie, ansamblul).	
7.2 Obiectivele specifice

	•	Studierea conceptului de tip abstract de date şi a celor mai frecvent utilizate tipuri abstracte de date folosite în dezvoltarea aplicaţiilor.
•	Studierea structurilor de date cu care se pot implementa aceste tipuri abstracte de date 
•	Formarea deprinderilor de a proiecta şi realiza aplicaţii pornind de la utilizarea tipurilor abstracte de date.
•	Formarea deprinderilor de a prelucra date stocate în diverse structuri de date: tablouri, articole, string-uri, liste înlănţuite, stive, cozi, tabele de dispersie, arbori si grafuri.
•	Formarea deprinderilor de a compara costul alocării statice şi celei dinamice în cazul diverselor structuri de date.
•	Formarea priceperilor şi capacităţilor de a alege structura de date adecvată pentru implementarea unui tip abstract de date.
•	Formarea abilităţilor în proiectarea şi implementarea algoritmilor care prelucrează aceste structuri de date.	

8. Conţinuturi
8.1 Curs	Metode de predare	Observaţii	
1. Introducere. Structuri de date. Structuri statice, semistatice si dinamice. 
- Abstractizarea si încapsularea datelor 
- Multimi dinamice 
- Complexitati	•	Expunerea interactivă
•	Explicaţia
•	Conversaţia
•	Demonstraţia didactică		
2. Tipuri de date: domeniu, operatii si reprezentarea datelor 
- Tipuri abstracte de date: domeniu  si operatii 
- Cerinte, interfata, implementare (implementari) 
- Proiectarea tipurilor abstracte de date   	•	Expunerea interactivă
•	Explicaţia
•	Conversaţia
•	Demonstraţia didactică		
3. Tabloul 
- Descriere, proprietati 
- Siruri dinamice: operatii specifice	•	Expunerea interactivă
•	Explicaţia
•	Conversaţia
•	Demonstraţia didactică		
4. TAD Colectie
- Concepte legate de colectie
- Aplicatii ale colectiilor 
- Tipul abstract de date colectie: specificare si proiectare 
-  Reprezentari ale colectiilor folosind tablouri, liste înlantuite, tabele de dispersie, arbori binari 
TAD  Multime  
- Concepte legate de multimi 
- Aplicatii ale multimilor 
- Tipul abstract de date multime: specificare si proiectare 
-  Reprezentari ale multimilor folosind tablouri sau vectori booleeni (de biti), liste înlantuite, tabele de dispersie, arbori binari	•	Expunerea interactivă
•	Explicaţia
•	Conversaţia
•	Demonstraţia didactică		
5. TAD Dictionar
- Concepte legate de dictionare 
- Aplicatii ale dictionarelor 
- Tipul abstract de date dictionar: specificare si proiectare
- Reprezentari ale dictionarelor folosind tablouri booleene, liste înlantuite sau arbori binari, tabele de dispersie 
- Dictionare ordonate	•	Expunerea interactivă
•	Explicaţia
•	Conversaţia
•	Demonstraţia didactică		
6. TAD Lista 
- Concepte legate de liste 
- Aplicatii ale listelor 
- Tipul abstract de date lista: specificare si proiectare
- Reprezentari ale listelor folosind tablouri si liste înlantuite 
- Liste sortate 	•	Expunerea interactivă
•	Explicaţia
•	Conversaţia
•	Demonstraţia didactică		
7. Lista înlantuita
- Descriere, proprietati 
- Liste simplu, dublu înlantuite si liste circulare  alocate dinamic 
- Reprezentarea înlantuirilor pe tablouri
- Operatii specifice	•	Expunerea interactivă
•	Explicaţia
•	Conversaţia
•	Demonstraţia didactică		
8. TAD Stiva si Coada
- Concepte legate de stiva 
- Aplicatii ale stivelor 
- Tipul abstract de date stiva: specificare si proiectare
- Reprezentari ale stivelor folosind tablouri si liste înlantuite
   TAD Coada 
- Concepte legate de coada 
- Aplicatii ale cozilor 
- Tipul abstract de date coada: specificare si proiectare
- Reprezentari ale cozilor folosind tablouri si liste înlantuite	•	Expunerea interactivă
•	Explicaţia
•	Conversaţia
•	Demonstraţia didactică		
9. TAD Coada cu prioritati
- Concepte legate de coada cu prioritati 
- Aplicatii cu cozi cu prioritati 
- Tipul abstract de date coada cu prioritati: specificare si proiectare
- Reprezentari ale cozilor cu prioritati folosind liste înlantuite si tablouri	•	Expunerea interactivă
•	Explicaţia
•	Conversaţia
•	Demonstraţia didactică		
10. Tabela de dispersie (hash-table) 
- Tabele cu adresare directa
- Descriere, proprietati 
- Tabele de dispersie închise si deschise 	•	Expunerea interactivă
•	Explicaţia
•	Conversaţia
•	Demonstraţia didactică		
11. Tabela de dispersie
- Rezolvare coliziuni prin liste independente, liste întrepatrunse si adresare deschisa
- Operatii specifice	•	Expunerea interactivă
•	Explicaţia
•	Conversaţia
•	Demonstraţia didactică		
12. TAD Arbore
- Concepte legate de arbori 
- Aplicatii cu arbori 
- Tipul abstract de date arbore: specificare si proiectare
- Reprezentari înlantuite ale arborilor 
- Tipul abstract de date arbore 

Arborele binar 
- Descriere, proprietati 
- Arbori binari si arbori binari de cautare 
- Operatii: cautare, inserare/stergere element, traversare	•	Expunerea interactivă
•	Explicaţia
•	Conversaţia
•	Demonstraţia didactică		
13. Ansamblul (heap)
- Structura de date heap 
- Heap-ul binar 
- Reprezentari ale cozilor cu prioritati folosind heap-uri 
- HeapSort
	•	Expunerea interactivă
•	Explicaţia
•	Conversaţia
•	Demonstraţia didactică		
14. Arbori binari de cautare echilibrati 
- Arbori AVL 
- Rotatii pentru reechilibrare
	•	Expunerea interactivă
•	Explicaţia
•	Conversaţia
•	Demonstraţia didactică		
Bibliografie

1.	NICULESCU V., CZIBULA G., Structuri fundamentale de date. O perspective orientate obiect. Editura Casa Cartii de Stiinta, Cluj-Napoca,2011
2.	CORMEN, THOMAS H. - LEISERSON, CHARLES - RIVEST, RONALD R.: Introducere în algoritmi. Cluj-Napoca: Editura Computer Libris Agora, 2000. 
3.	HOROWITZ, E.: Fundamentals of Data Structures in C++. Computer Science Press, 1995. 
4.	MOUNT, DAVID M.: Data Structures. University of Maryland, 1993.
5.	SIMONAS SALTENIS, Algorithms and Data Structures, 2002.
6.	STANDISH, T.A.: Data Structures, Algorithms & Software Principles in C, Addison-Wesley, 1995 
7.	FRENTIU M., POP H.F., SERBAN G., Programming Fundamentals, Ed.Presa Universitara Clujeana, Cluj-Napoca, 2006, 234 pagini 	
8.2 Seminar	Metode de predare	Observaţii	
		Seminarul este structurat sub forma a 2 ore din 2 în 2 săptămâni.	
Sem1: TAD Colecţie cu element generic. Reprezentări şi implementări posibile.	•	Explicaţia
•	Conversaţia
•	Modelarea
•	Exerciţiul		
Sem 2: Complexităţi.
	•	Explicaţia
•	Conversaţia
•	Modelarea
•	Exerciţiul		
Sem 3: TAD MultiDicţionar ordonat. Implementare folosind liste simplu înlănţuite. 
	•	Explicaţia
•	Conversaţia
•	Modelarea
•	Exerciţiul		
Sem4: Lucrare de control şi alocarea temelor de proiect.
	•	Lucrarea scrisă	•	1 oră	
	•	Explicaţia
•	Conversaţia
•	Modelarea
•	Exerciţiul	•	1 oră	
Sem 5: Iterator pe dicţionar ordonat. Probleme diverse.
	•	Explicaţia
•	Conversaţia
•	Modelarea
•	Exerciţiul		
Sem 6: Tabele de dispersie. Rezolvare coliziuni prin liste întrepătrunse	•	Explicaţia
•	Conversaţia
•	Modelarea
•	Exerciţiul		
Sem 7: Arbori	•	Explicaţia
•	Conversaţia
•	Modelarea
•	Exerciţiul		
Bibliografie
	
1.	NICULESCU V., CZIBULA G., Structuri fundamentale de date. O perspectiva orientata obiect. Editura Casa Cartii de Stiinta, Cluj-Napoca,2011
2.	CORMEN, THOMAS H. - LEISERSON, CHARLES - RIVEST, RONALD R.: Introducere în algoritmi. Cluj-Napoca: Editura Computer Libris Agora, 2000. 
3.	HOROWITZ, E.: Fundamentals of Data Structures in C++. Computer Science Press, 1995. 
4.	MOUNT, DAVID M.: Data Structures. University of Maryland, 1993.
5.	SIMONAS SALTENIS, Algorithms and Data Structures, 2002.
6.	STANDISH, T.A.: Data Structures, Algorithms & Software Principles in C, Addison-Wesley, 1995 
7.	FRENTIU M., POP H.F., SERBAN G., Programming Fundamentals, Ed.Presa Universitara Clujeana, Cluj-Napoca, 2006, 234 pagini	

9. Coroborarea conţinuturilor disciplinei cu aşteptările reprezentanţilor comunităţii epistemice, asociaţiilor profesionale şi angajatori reprezentativi din domeniul aferent programului
•	Conţinutul disciplinei este în concordanţă cu ceea ce se face în alte centre universitare din tară și din străinătate.
•	Conţinutul disciplinei asigură cunoștințele fundamentale necesare pentru utilizarea tipurilor abstracte de date în proiectarea aplicaţiilor.  	

10. Evaluare
Tip activitate	10.1 Criterii de evaluare	10.2 metode de evaluare	10.3 Pondere din nota finală	
10.4 Curs	•	Corectitudinea și completitudinea cunoștinţelor asimilate.
•	Gradul de asimilare a limbajului de specialitate.	Evaluare scrisă (în sesiune): examen scris	60%
	
	•	Realizarea unui proiect – dezvoltarea şi documentarea unei aplicații care va fi rezolvată folosind un anumit TAD și o anumită  structură  de  date  pentru  implementarea  acestuia.  Stabilirea  temelor  se va  face  la seminarul 4.	Corectitudinea documentației (specificări, algoritmi, complexităţi)	20%	
10.5 Seminar	•	Lucrare de control dată la seminarul 4.
•	Activitatea din timpul seminariilor
•	Prezenţa la seminarii	Evaluare scrisă (60% din nota de seminar)	20%	
		Evaluare orală (25% din nota de seminar)		
		O absență nemotivată este permisă, restul se depunctează (15% din nota de seminar)		
10.6 Standard minim de performanţă	
•	Cunoașterea elementelor fundamentale de teorie. Fiecare student trebuie să demonstreze că a atins un nivel acceptabil de cunoaştere şi înţelegere a domeniului, că este capabil să exprime cunoştinţele într-o formă coerentă, că are capacitatea de a stabili anumite conexiuni şi de a utiliza cunoştinţele în rezolvarea unor probleme.
•	Pentru promovare sunt necesare urmatoarele criterii minimale: nota minim 5 la proiect şi nota finală minim 5.	

Data completării		Semnătura titularului de curs		Semnătura titularului de seminar
20.09.2012		            Prof. dr. Gabriela Czibula		Drd. Bocicor Maria-Iuliana
									Drd. Marian Zsuzsanna

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