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	Matematică	

2. Date despre disciplină
2.1 Denumirea disciplinei	Structuri de date şi algoritmi	
2.2 Titularul activităţilor de curs	Lector univ. dr. Trîmbiţaş Maria-Gabriela	
2.3 Titularul activităţilor de seminar	Lector univ. dr. Trîmbiţaş Maria-Gabriela	
2.4 Anul de studiu	1	2.5 Semestrul	2	2.6. Tipul de evaluare	C	2.7 Regimul disciplinei	obligatoriu	

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	10	
Pregătire seminarii/laboratoare, teme, referate, portofolii şi eseuri	11	
Tutoriat	  7	
Examinări 	10	
Alte activităţi: ..................		
3.7 Total ore studiu individual	58	
3.8 Total ore pe semestru	100	
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	•	Un limbaj de programare	

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

6. Competenţele specifice acumulate
Competenţe profesionale	•	Înţelegerea şi însuşirea conceptelor de bază ale Algoritmicii si Structurilor de date 

•	Abilitatea de a elabora algoritmi si a-i utiliza la rezolvarea problemelor din lumea reală

•	Abilitatea de a evalua algoritmi, de a selecta dintr-un domeniu de optiuni posibile, de a argumenta selecţia făcută şi de a implementa algoritmul într-un context particular

•	Î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ă.
•	Respectarea principiilor  și a normelor de etică profesională.

7. Obiectivele disciplinei (reieşind din grila competenţelor acumulate)
7.1 Obiectivul general al disciplinei	•	Formarea priceperilor şi capacităţilor de a alege şi implementa structurile de date adecvate  unei aplicaţii.
•	Formarea abilităţilor în proiectarea şi implementarea algoritmilor care prelucrează aceste structuri de date.
	
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 (tablouri, liste înlănţuite, arbori binari, tabele de dispersie, etc.).
•	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.
•	Consolidarea deprinderilor de a evalua complexitatea algoritmilor	

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
	Prelegeri, expuneri, dialog, discuţia problemelor, exercitii, demonstraţii		
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  
Tabloul 
- Descriere, proprietati 
- Siruri, subsiruri, subsecvente, matrice 
- Siruri dinamice: operatii: inserare/stergere element, cautare secventiala si binara 
- Interclasare 
- Ordonare: mergesort, ordonare numerica, radixsort, bucketsort etc. 
	Prelegeri, expuneri, dialog, problematizare, exemple		
3.  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 

	Prelegeri, expuneri, dialog, demonstraţii, discuţia problemelor, exercitii		
4.  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
	Prelegeri, expuneri, dialog, discuţia problemelor, exercitii		
5,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
Lista înlantuita 
- Descriere, proprietati 
- Liste simplu, dublu înlantuite si liste circulare  alocate dinamic 
- Reprezentarea înlantuirilor pe tablouri
- Operatii: inserare/stergere element, cautare, traversare 
	Prelegeri, expuneri, dialog,problematizare, demonstraţii, exercitii		
7.  TAD Stiva - Concepte legate de stiva 
- Aplicatii ale stivelor 
- Tipul abstract de date stiva: specificare si proiectare
- Reprezentari ale stivelor folosind tablouri si liste înlantuite 
	Prelegeri, expuneri, dialog, discuţia problemelor, exercitii, exemple		
8.  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 
	Prelegeri, expuneri, dialog, discuţia problemelor, exercitii,exemple		
9.  TAD Coada cu priorităţi - 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

	Prelegeri, expuneri, dialog, discuţia problemelor, exercitii, demonstraţii		
10,11  Tabela de dispersie (hash-table)
- Tabele cu adresare directa
- Descriere, proprietati 
- Tabele de dispersie închise si deschise 
- Rezolvare coliziuni prin liste independente, liste întrepatrunse si adresare deschisa
- Operatii: cautare, inserare/stergere element 
	Prelegeri, expuneri, dialog, discuţia problemelor, demonstraţii ,exercitii		

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 
	Prelegeri, expuneri, dialog, discuţia problemelor, demonstraţii, exercitii		
13.  Heap-uri  
- Structura de date heap 
- Heap-ul binar 
- Reprezentari ale cozilor cu prioritati folosind heap-uri 
- HeapSort	Prelegeri, expuneri, dialog, discuţia problemelor, exercitii, demonstraţii		
14.  Arbori binari de cautare echilibrati 
- Arbori AVL 
- Arbori rosu si negru 	Prelegeri, expuneri, dialog, discuţia problemelor, exercitii		
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.	SIMONAS SALTENIS:Algorithms and Data Structures, 2002.
4.	STANDISH, T.A.: Data Structures, Algorithms & Software Principles in C, Addison-Wesley, 1995 
5.	FRENTIU M., POP H.F., SERBAN G.: Programming Fundamentals, Ed.Presa Universitara Clujeana, Cluj-Napoca, 2006, 234 pagini 
6.	SEDGEWICK, R.: Algorithmen, Addison-Wesley,1998 
7.	WIRTH, N.: Algorithmen und Datenstrukturen, Pascal Version, 5 Auflage, B.G. Teubner Stuttgart,1998 
	
8.2 Seminar / laborator	Metode de predare	Observaţii	
1. Clase de complexitate 
- Cautare secventiala si binara 
- Interclasare	Exemple, exerciţii, discutii, demonstraţii	Seminarul este planificat 2 ore din 2 in2  saptamini	
2. Colectie  , Multime, Dicţionar
- Implementare
- Complexitate 	Exemple, exerciţii, discutii, demonstraţii		
3. Tipri de liste
- Implementare
- Complexitate	Exemple, exerciţii, discutii, demonstraţii		
4. Stivă, Coadă
- Implementare
- Complexitate	Exemple, exerciţii, discutii, demonstraţii		
5. Lucrare de control
- Alocare teme proiect		70 minute
30 minute	
6. Tabela de dispersie (hash-table), arbori
- Implementare
- Complexitate	Exemple, exerciţii, discutii, demonstraţii		
7. Analiză proiecte			

Bibliografie	

1.	HOROWITZ, E.: Fundamentals of Data Structures in C++. Computer Science Press, 1995. 
2.	MOUNT, DAVID M.: Data Structures. University of Maryland, 1993.
3.	AMBSBURY, WAYNE: Data Structures. From Arrays to Priority Queues, 1993.
4.	BRUNO R. PREISS, Data Structures and Algorithms with Object-Oriented Design Patterns in C++, 1997.

9. Coroborarea conţinuturilor disciplinei cu aşteptările reprezentanţilor comunităţii epistemice, asociaţiilor profesionale şi angajatori reprezentativi din domeniul aferent programului
•	Cursul respectă Recomandările IEEE şi ACM referitoare la Curriculla pentru studiile  în domeniul Informaticii
•	 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 dezvoltării de aplicaţii în orice domeniu software

10. Evaluare
Tip activitate	10.1 Criterii de evaluare	10.2 metode de evaluare	10.3 Pondere din nota finală	
10.4 Curs	Nivelul de însuşire a noţiunilor predate
Gradul de asimilare a limbajului de specialitate. 	Lucrare de control	50%	
10.5 Seminar/laborator	Rezolvarea problemelor obligatorii 
	Verificare individuală	25%	
	Proiect
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	Verificare individuală
Corectitudinea documentației (specificări, algoritmi, complexităţi)	25%	
10.6 Standard minim de performanţă	
•	 Minim 5 la lucrarea de control, la proiect si la activitatea de la seminar

	

Data completării	Semnătura titularului de curs		      Semnătura titularului de seminar
23.09.2012      Lector univ. dr. Maria-Gabriela Trîmbiţaş Lector univ. dr. Maria-Gabriela Trîmbiţaş

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