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	Conf. dr. Diana Cristea	
2.3 Titularul activităţilor de seminar	Conf. dr. Diana Cristea	
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ă	4	Din care: 3.2 curs	2	3.3 seminar/laborator	2	
3.4 Total ore din planul de învăţământ	56	Din care: 3.5 curs	28	3.6 seminar/laborator	28	
Distribuţia fondului de timp:	ore	
Studiul după manual, suport de curs, bibliografie şi notiţe	12	
Documentare suplimentară în bibliotecă, pe platformele electronice de specialitate şi pe teren	8	
Pregătire seminarii/laboratoare, teme, referate, portofolii şi eseuri	10	
Tutoriat	6	
Examinări 	8	
Alte activităţi: ..................		
3.7 Total ore studiu individual	44	
3.8 Total ore pe semestru	100	
3.9 Numărul de credite	4	

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	•	 Laborator, videoproiector, laptop	

6. Competenţele specifice acumulate
Competenţe profesionale	C 4.1 Definirea conceptelor şi principiilor de bază ale informaticii, precum şi a teoriilor şi modelelor matematice
C 4.2 Interpretarea de modele matematice şi informatice (formale)
C 4.3 Identificarea modelelor si metodelor adecvate pentru rezolvarea unor probleme reale
	
Competenţe transversale	CT1 Aplicarea regulilor de muncă organizată şi eficientă, a unor atitudini responsabile faţă de 
        domeniul didactic-ştiinţific, pentru valorificarea creativă a propriului potenţial, cu 
        respectarea principiilor şi a normelor de etică profesională
CT3 Utilizarea unor metode şi tehnici eficiente de învăţare, informare, cercetare şi dezvoltare a 
        capacităţilor de valorificare a cunoştinţelor, de adaptare la cerinţele unei societăţi dinamice 
    și de comunicare în limba română și într-o limbă de circulație internațională	

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 complexitațile unor algoritmi.
•	Formarea priceperilor şi capacităţilor de a alege structura de date adecvată pentru implementarea unui tip abstract de date.	

8. Conţinuturi
8.1 Curs	Metode de predare	Observaţii	
1. Introducere. Structuri de date. Structuri abstracte de date. 
•	Abstractizarea si încapsularea datelor 
•	Complexitati
•	Notatii pseudocod	•	Expunerea interactivă
•	Explicaţia
•	Conversaţia		
2. Array-uri. Iteratori. Analiza amortizata.
   	•	Expunerea interactivă
•	Explicaţia
•	Conversaţia
•	Exemple
•	Descrierea		
3. Tipuri abstracte de date: descriere, domeniu, interfata, reprezentare:
•	TAD Matrice
•	TAD Multime si Multime sortata
•	TAD Colectie si Colectie sortata
	•	Expunerea interactivă
•	Explicaţia
•	Conversaţia
•	Exemple
•	Descrierea		
4. Tipuri abstracte de date:
•	TAD Coada
•	TAD Coada cu prioritati: descriere, domeniu, operatii, reprezentari
•	TAD Stiva: descriere, domeniu, operatii, reprezentari pe tablouri si liste inlantuite
•	TAD Dictionar si Dictionar sortat
•	TAD Multidictionar: descriere, domeniu, interfata, reprezentari
	•	Expunerea interactivă
•	Explicaţia
•	Conversaţia
•	Exemple
•	Descrierea		
5. Tipuri abstracte de date
•	TAD Lista: descriere, domeniu, interfata, reprezentari
•	Liste inlantuite
o	liste simplu inlantuite: reprezentare si operatii
o	liste dublu inlantuite: reprezentare si operatii
	•	Expunerea interactivă
•	Explicaţia
•	Conversaţia
•	Exemple
•	Descrierea		
6. Tipuri abstracte de date
•	liste circulare: reprezentare si operatii
•	liste inlantuite sortate: reprezentare si operatii
•	liste inlantuite pe tablouri: reprezentare si operatii
	•	Expunerea interactivă
•	Explicaţia
•	Conversaţia
•	Exemple
•	Descrierea		
7.  Alte posibile reprezentari, probleme cu ADT Stiva, Coada
•	TAD Dequeue: descriere, reprezentari   
•	Skip list

	•	Expunerea interactivă
•	Explicaţia
•	Conversaţia
•	Exemple
•	Descrierea		
8.  Heap binar 
•	Definitie, reprezentare, operatii specifice 
•	heapsort 
•	coada cu prioritati: reprezentare pe heap
   
  TAD Heap binomial
•	descriere, reprezentare, operatii	•	Expunerea interactivă
•	Explicaţia
•	Conversaţia
•	Exemple
•	Descrierea		
9. Tabele de dispersie (hashtable)
•	Descriere si proprietati
•	Rezolvare coliziuni prin liste independente	•	Expunerea interactivă
•	Explicaţia
•	Conversaţia
•	Exemple
•	Descrierea		
10. Tabele de dispersie (hashtable) 
•	Rezolvare coliziuni prin liste întrepatrunse si adresare deschisa
•	Hashing perfect
•	Cuckoo Hashing
•	Hopscotch Hashing
•	Tabele de dispersie inlantuite

	•	Expunerea interactivă
•	Explicaţia
•	Conversaţia
•	Exemple
•	Descrierea		
11. Arbori
•	Descriere, proprietati
•	Utilizare
Arbore binar
•	Descriere, proprietati
•	Domeniu, operatii
•	Traversari: algoritmi recursivi si nerecursivi	•	Expunerea interactivă
•	Explicaţia
•	Conversaţia
•	Exemple
•	Descrierea		
12. Arbori binari de cautare
•	Descriere, proprietati
•	Reprezentare
•	Operatii: algoritmi recursivi si nerecursivi
•	Containere reprezentate cu arbori binari de cautare
	•	Expunerea interactivă
•	Explicaţia
•	Conversaţia
•	Exemple
•	Descrierea		
13. Arbori binari de cautare echilibrati 
•	Arbori AVL
•	Rotatii pentru reechilibrare	•	Expunerea interactivă
•	Explicaţia
•	Conversaţia
•	Exemple
•	Descrierea		
14. Probleme cu tipuri abstracte de date (notatia infix si postfix, jocul de carti rosu-negru, etc.)
	•	Expunerea interactivă
•	Explicaţia
•	Conversaţia
•	Exemple
•	Descrierea		
Bibliografie

In limba germana:
1.	Dietzfelbinger, M., Mehlhorn, K., Sanders, P., Algorithmen und Datenstrukturen. Die Grundwerkzeuge, Springer, 2014
2.	Weicker, K., Weicker, N., Algorithmen und Datenstrukturen, Springer, 2013
3.	Sedgewick, R., Algorithmen, Addison Weslez, New York, 1991.
4.	Wirth, N., Datenstrukturen und Algorithmen, Teubner, Stuttgart, 1999.
5.	Solymosi, A., Grude, U., Grundkurs Algorthmen und Datenstrukturen in Java, Eine Einführung in die praktische Informatik, Vieweg Teubner, Wiesbaden, 2008.
6.	Ottmann, Th., Widmayer, P., Algorithmen und Datenstrukturen, Springer, 1997.
7.	Sattler, K-U., Algorithmen und Datenstrukturen, Springer, 2008.

In alte limbi:
8.	Niculescu V., Czibula G., Structuri fundamentale de date. O perspective orientate obiect. Editura Casa Cartii de Stiinta, Cluj-Napoca,2011
9.	T. Cormen, C. Leiserson, R. Rivest, C. Stein: Introduction to algorithms, Third Edition, The MIT 
10.	Horowitz, E.: Fundamentals of Data Structures in C++. Computer Science Press, 1995. 
11.	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	
S1. TAD Colectie – reprezentare si implementari pe tablouri. Iterator pentru TAD Colectie. 
	•	Explicaţia
•	Conversaţia
•	Modelarea
•	Exerciţiul	Seminarul este structurat sub forma a 2 ore din 2 în 2 săptămâni/	
S2. Complexitati	•	Explicaţia
•	Conversaţia
•	Modelarea
•	Exerciţiul		
S3. TAD MultiDicţionar ordonat. Implementare folosind liste simplu înlănţuite. 	•	Explicaţia
•	Conversaţia
•	Modelarea
•	Exerciţiul		
S4. Bucket sort, lexicografic sort, radix sort. Merge de liste sortate 	•	Explicaţia
•	Conversaţia
•	Modelarea
•	Exerciţiul		
S5. Lucrare de control şi exercitii.
	•	Lucrarea scrisă	•	1 oră	
	•	Explicaţia
•	Conversaţia
•	Modelarea
•	Exerciţiul	•	1 oră	
S6. Tabele de dispersie. Rezolvare coliziuni prin liste întrepătrunse	•	Explicaţia
•	Conversaţia
•	Modelarea
•	Exerciţiul		
S7. Arbori	•	Explicaţia
•	Conversaţia
•	Modelarea
•	Exerciţiul		
8.3 Laborator	Metode de predare	Observaţii	
		•	Laboratorul este structurat sub forma a 2 ore din 2 în 2 săptămâni.
•	Temele de laborator se predau în laboratorul următor primirii temei.
•	Fiecare laborator va fi centrat catre o structură de date. Studenții vor primi câte un container de date pe care să îl implementeze cu acea structura de date  	
Lab 1-2: Vector dinamic	•	Lucrare de laborator 
•	Explicaţia
•	Conversaţia
•	Modelarea	•	Implementare 
•	Documentatie
•	Complexitati
	
Lab 3: Lista înlănțuită cu alocare dinamică
	•	Lucrare de laborator 
•	Explicaţia
•	Conversaţia
•	Modelarea	•	Implementare 
•	Documentatie
•	Complexitati
	
Lab 4: Lista înlănțuită cu reprezentarea înlănțuirilor pe tablou
	•	Lucrare de laborator 
•	Explicaţia
•	Conversaţia
•	Modelarea	•	Implementare 
•	Documentatie
•	Complexitati
	
Lab 5: Tabela de dispersie 
	•	Lucrare de laborator 
•	Explicaţia
•	Conversaţia
•	Modelarea	•	Implementare 
•	Documentatie
•	Complexitati
	
Lab 6- Lab7: Arbori binari de căutare
	•	Lucrare de laborator 
•	Explicaţia
•	Conversaţia
•	Modelarea	•	Implementare 
•	Documentatie
•	Complexitati
	
Bibliografie

In limba germana:

1.	Dietzfelbinger, M., Mehlhorn, K., Sanders, P., Algorithmen und Datenstrukturen. Die Grundwerkzeuge, Springer, 2014
2.	Weicker, K., Weicker, N., Algorithmen und Datenstrukturen, Springer, 2013
3.	Sedgewick, R., Algorithmen, Addison Weslez, New York, 1991.
4.	Wirth, N., Datenstrukturen und Algorithmen, Teubner, Stuttgart, 1999.
5.	Solymosi, A., Grude, U., Grundkurs Algorthmen und Datenstrukturen in Java, Eine Einführung in die praktische Informatik, Vieweg Teubner, Wiesbaden, 2008.
6.	Ottmann, Th., Widmayer, P., Algorithmen und Datenstrukturen, Springer, 1997.
7.	Sattler, K-U., Algorithmen und Datenstrukturen, Springer, 2008.

In alte limbi:
8.	Niculescu V., Czibula G., Structuri fundamentale de date. O perspective orientate obiect. Editura Casa Cartii de Stiinta, Cluj-Napoca,2011
9.	T. Cormen, C. Leiserson, R. Rivest, C. Stein: Introduction to algorithms, Third Edition, The MIT 
10.	Horowitz, E.: Fundamentals of Data Structures in C++. Computer Science Press, 1995. 
11.	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%
	
10.5 Seminar	•	Lucrare de control dată la seminarul 5.
•	Stadiul dezvoltării proiectului
	Lucrarea de control 
Activitatea la seminar
	10%	
10.6 Laborator	•	Implementarea în C++ a conceptelor și algoritmilor prezentați la curs
•	Redactarea documentaţiei de laborator
Respectarea termenelor de predare.	Corectitudinea documentației (specificări, algoritmi, complexităţi) și programe	30%	
10.6 Standard minim de performanţă	
•	Pentru promovare, este OBLIGATORIE prezența la minim 5 seminarii și 6 laboratoare
•	Pentru a putea intra in examen studentul trebuie sa obtina minim nota 5 la laborator
•	Pentru promovare sunt necesare urmatoarele criterii minimale: nota minim 5 la laborator, nota minim 5 la examenul scris şi nota finală minim 5.

Data completării		Semnătura titularului de curs		Semnătura titularului de seminar
29.04.2024		            Conf. dr. Diana Cristea		Conf. dr. Diana Cristea
Data avizării în departament			           Semnătura directorului de departament	
							Conf. dr. Adrian Sterca