Lehrveranstaltungsbeschreibung
1. Angaben zum Programm
1.1 Hochschuleinrichtung	Babes-Bolyai Universität, Cluj-Napoca	
1.2 Fakultät 	Mathematik und Informatik	
1.3 Department	Informatik	
1.4 Fachgebiet	Informatik	
1.5 Studienform	Bachelor	
1.6 Studiengang / Qualifikation	Informatik	

2. Angaben zum Studienfach
2.1 LV-Bezeichnung	Datenstrukturen und Algorithmen	
2.2 Lehrverantwortlicher – Vorlesung	Conf. Dr. Diana Cristea	
2.3 Lehrverantwortlicher – Seminar	Conf. Dr. Diana Cristea	
2.4 Studienjahr	1	2.5 Semester	2	2.6. Prüfungsform	P	2.7 Art der LV	Verpflichtend	

3. Geschätzter Workload in Stunden
3.1 SWS	4	von denen: 3.2 Vorlesung	2	3.3 Seminar/Übung	2	
3.4 Gesamte Stundenanzahl im Lehrplan	56	von denen: 3.5 Vorlesung	28	3.6 Seminar/Übung	28	
Verteilung der Studienzeit:	Std.	
Studium nach Handbücher, Kursbuch, Bibliographie und Mitschriften	12	
Zusätzliche Vorbereitung in der Bibliothek, auf elektronischen Fachplattformen und durch Feldforschung	8	
Vorbereitung von Seminaren/Übungen, Präsentationen, Referate, Portfolios und Essays	10	
Tutorien	6	
Prüfungen	8	
Andere Tätigkeiten: ..................	-	
3.7 Gesamtstundenanzahl Selbststudium	44	
3.8 Gesamtstundenanzahl / Semester	100	
3.9 Leistungspunkte	4	

4. Voraussetzungen (falls zutreffend)
4.1 curricular	Grundlagen der Programmierung	
4.2 kompetenzbezogen	           Programmierungsfähigkeiten	

5. Bedingungen (falls zutreffend)
5.1 zur Durchführung der Vorlesung	•	Vorlesungsraum, Beamer, Laptop	
5.2  zur Durchführung des Seminars / der Übung	•	Labor, Beamer, Laptop	

6. Spezifische erworbene Kompetenzen
Berufliche Kompetenzen	K 4.1  Definieren der Grundkonzepte und Prinzipien der Informatik, sowie der mathematischen Theorien und Modelle
K 4.2 Interpretation der formalen Modelle der Mathematik und Informatik
K 4.3 Identifizierung der geeigneten Modelle und Methoden für die Lösung realer Probleme
	
Transversale Kompetenzen	TK1 Anwendung der Regeln für gut organisierte und effiziente Arbeit,  für verantwortungsvolle Einstellungen gegenüber der Didaktik und der Wissenschaft, für kreative Förderung des eigenen Potentials, mit Rücksicht auf  die Prinzipien und Normen der professionellen Ethik
TK3 Anwendung von effizienten Methoden und Techniken für Lernen, Informieren und Recherchieren,  für das Entwicklen der  Kapazitäten der  praktischen Umsetzung der Kenntnisse, der Anpassung an die Bedürfnisse einer dynamischen Gesellschaft, der Kommunikation in rumänischer Sprache und in einer internationalen Verkehrssprache 	

7. Ziele (entsprechend der erworbenen Kompetenzen)
7.1 Allgemeine Ziele der Lehrveranstaltung	•	Erlernen und Verstehen der grundlegenden Datenstrukturen, sowie die Implementierung verschiedener Algorithmen.
	
7.2 Spezifische Ziele der Lehrveranstaltung

	•	Studium des Konzeptes abstrakter Datentyp, sowie der am meisten verwendeten abstrakte Datentypen
•	Studium der passenden Datenstrukturen für die Implementierung abstrakter Datentypen (Arrays, verkettete Listen, Heaps, Hashtabellen, Binärbäume, usw.)
•	Die Fähigkeit einen bestimmten Datentyp für die Lösung eines Problems auszuwählen und Anwendungen zu entwerfen die verschiedene abstrakte Datentypen verwenden.
•	Die Fähigkeit Daten die in verschiedene Datenstrukturen gespeichert sind zu verwenden.
•	Die Fähigkeit Komplexitäten unterschiedlichen Algorithmen zu vergleichen 	

8. Inhalt
8.1 Vorlesung	Lehr- und Lernmethode	Anmerkungen	
1. Einführung. Datenstrukturen. Abstrakte Datentypen:
•	Abstrahierung
•	Komplexitäten
•	Pseudocode Notationen	•	Darstellung der Thematik
•	Diskussion
•	Vortrag		
2. Arrays. Iteratoren. Amortisierte Analyse
	•	Vortrag
•	Beschreibung
•	Erklärungen
•	Unterrichtsgespräch
•	Diskussion
•	Beispiele		
3. Abstrakte Datentypen:- Beschreibung, Domäne, Schnittstelle/Interface, Repräsentierung:
•	ADT Set/Menge & sortierte Menge
•	ADT Bag/Multi-Menge & sortierte Multi-Menge
•	ADT Matrix
	•	Vortrag
•	Beschreibung
•	Erklärungen
•	Unterrichtsgespräch
•	Diskussion
•	Beispiele		
4. Abstrakte Datentypen: Beschreibung, Domäne, Schnittstelle und mögliche Repräsentierungen
•	ADT Queue/Schlange
•	ADT Prioritätsschlange
•	ADT Stack/Stapel
•	ADT Map & sortierte Map
•	ADT MultiMap 
	•	Vortrag
•	Beschreibung
•	Erklärungen
•	Unterrichtsgespräch
•	Diskussion
•	Beispiele		
5. Abstrakte Datentypen: Beschreibung, Domäne, Schnittstelle und mögliche Repräsentierungen
•	ADT List
•	Verkettete Listen:
•	Einfach verkettete Listen: Repräsentierung und Operationen
•	Doppelt verkettete Listen: Repräsentierung und Operationen

	•	Vortrag
•	Beschreibung
•	Erklärungen
•	Unterrichtsgespräch
•	Diskussion
•	Beispiele 		
6. Abstrakte Datentypen:
•	Zyrkuläre Listen: Repräsentierung und Operationen
•	Sortierte verkettete Listen: Repräsentierung und Operationen
•	Verkettete Listen auf Arrays: Repräsentierung und Operationen

	•	Vortrag
•	Beschreibung
•	Erklärungen
•	Unterrichtsgespräch
•	Diskussion
•	Beispiele		
7. 
Andere mögliche Repräsentierungen und Aufgaben mit ADT Stack, Queue, PriorityQueue

ADT Dequeue: Beschreibung und mögliche Repräsentierungen

Skip Listen

	•	Vortrag
•	Beschreibung
•	Erklärungen
•	Unterrichtsgespräch
•	Diskussion
•	Beispiele		
8. 
Binären Heap:
•	Definition, Repräsentierung, spezifische Operationen
•	HeapSort
•	Prioritätsschlange: Repräsentierung auf Heaps

ADT Binomial-Heap:
•	Beschreibung, Repräsentierung und Operationen
	•	Vortrag
•	Beschreibung
•	Erklärungen
•	Unterrichtsgespräch
•	Diskussion
•	Beispiele		
9. Hashtabellen:
•	Beschreibung und Eigenschaften
•	Kollisionbehandlung mittels Verkettung
•	Kollisionbehandlung mittels offener Adressierung
	•	Vortrag
•	Beschreibung
•	Erklärungen
•	Unterrichtsgespräch
•	Diskussion
•	Beispiele		
10. Hashtabellen:
•	Kollisionbehandlung mittels coalesced Hashing
•	Perfektes Hashing
•	Cuckoo Hashing
•	Hopscotch Hashing
•	Verkettete Hashtabelle
	•	Vortrag
•	Beschreibung
•	Erklärungen
•	Unterrichtsgespräch
•	Diskussion
•	Beispiele		
11. 
Bäume:
•	Beschreibung, Eigenschaften
•	Anwendungen
Binärbäume:
•	Beschreibung, Eigenschaften
•	Domäne und Schnittstele für ADT Binärbaum
•	Operationen
•	Traversierungen: rekursive und nicht-rekursive Algorithmen

	•	Vortrag
•	Beschreibung
•	Erklärungen
•	Unterrichtsgespräch
•	Diskussion
•	Beispiele 		
12. 
Binärbäume:
•	Traversierungen: rekursive und nicht-rekursive Algorithmen

Binärsuchbäume:
•	Beschreibung, Eigenschaften
•	Repräsentierung
•	Operationen: rekursive und nicht-rekursive Algorithmen
•	Containers repräsentiert auf Binärsuchbäume
	•	Vortrag
•	Beschreibung
•	Erklärungen
•	Unterrichtsgespräch
•	Diskussion
•	Beispiele 		
13    
Balancierte Binärsuchbäume:
•	AVL Bäume	•	Vortrag
•	Beschreibung
•	Erklärungen
•	Unterrichtsgespräch
•	Diskussion
•	Beispiele		
14 
Balancierte Binärsuchbäume:
•	AVL Bäume

Aufgaben mit den abstrakten Datentypen (Infix- und Postfixnotation, Klammerproblem, Rot-Schwarz Kartenspiel, usw.)	•	Vortrag
•	Beschreibung
•	Erklärungen
•	Diskussion
•	Beispiele		
Literatur

In deutscher Sprache:

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 anderen Sprachen:
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 / Übung  	Lehr- und Lernmethode	Anmerkungen	
S1. ADT Bag/MultiMenge – Repräsentierung und Implementation auf Array. Iterator für ADT Bag	Beschreibung, Erklärungen, Diskussionen, Beispiele, Übungen	2 Stunden jede 2 Wochen	
S2. Komplexitäten	Beschreibung, Erklärungen, Diskussionen, Beispiele, Übungen		
S3. Sortierte MultiMap – Repräsentierung und Implementation auf verkettete Listen

	Beschreibung, Erklärungen, Diskussionen, Beispiele, Übungen		
S4. 
BucketSort, Lexikographischer Sort, Radix Sort. 

Merge von sortierten Listen

Indexierte Listen

	Beschreibung, Erklärungen, Diskussionen, Beispiele, Übungen		
S5. Schriftliche Zwischen-Prüfung und Übungen 
	Schriftliche Zwischen-Prüfung 	1 Stunde	
	Beschreibung, Erklärungen, Diskussionen, Beispiele, Übungen	1 Stunde	
S6. Hashtabellen. Kollisionbehandlung mittels coalesced Hashing
	Beschreibung, Erklärungen, Diskussionen, Beispiele, Übungen		
S7. Binärbäume	Beschreibung, Erklärungen, Diskussionen, Beispiele, Übungen		
8.3 Labor	Lehr- und Lernmethode	Bemerkungen	
		•	2 Stunden jede 2 Wochen
•	Jede Aufgabe muss in der nächsten Woche abgegeben werden.
•	Ein Labor basiert auf eine Datenstruktur. Die Aufgaben bestehen aus unterschiedlichen Containers die mit Hilfe der gegebenen Datenstruktur implementiert werden müssen.	
L1-L2. Dynamisches Array 	Unterrichtsgespräch, Erklärungen, Beispiele	Für Alle Aufgaben:
•	Implementierung
•	Dokumentation
•	Komplexitäten
	
L3. Einfach verkettete Liste mit dynamischer Allokation	Unterrichtsgespräch, Erklärungen, Beispiele	Für Alle Aufgaben:
•	Implementierung
•	Dokumentation
•	Komplexitäten
	
L4. Einfach verkettete Liste auf Arrays	Unterrichtsgespräch, Erklärungen, Beispiele	Für Alle Aufgaben:
•	Implementierung
•	Dokumentation
•	Komplexitäten
	
L5. Hashtabelle	Unterrichtsgespräch, Erklärungen, Beispiele	Für Alle Aufgaben:
•	Implementierung
•	Dokumentation
•	Komplexitäten
	
L6.-L7.  Binärsuchbäume 	Unterrichtsgespräch, Erklärungen, Beispiele	Für Alle Aufgaben:
•	Implementierung
•	Dokumentation
•	Komplexitäten
	
Literatur

In deutscher Sprache:

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 anderen Sprachen:
8.	Niculescu V., Czibula G., Structuri fundamentale de date. O perspectiva orientata 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. Verbindung der Inhalte mit den Erwartungen der Wissensgemeinschaft, der Berufsverbände und der für den Fachbereich repräsentativen Arbeitgeber
Diese Vorlesung wird an international bekannten Universitäten im Fachgebiet Informatik angeboten.
Der Inhalt der Vorlesung entspricht der IEEE und ACM Richtlinien.

10. Prüfungsform
Veranstaltungsart	10.1 Evaluationskriterien	10.2 Evaluationsmethoden	10.3 Anteil an der Gesamtnote	
10.4 Vorlesung 	•	Korrekter Umgang mit den Grundbegriffen der Vorlesung.
•	Kenntnisse für das Lösen von Aufgaben
	Schriftliche Prüfung (in der Prüfungszeit)	60%	
10.5 Seminar	•	Korrekter Umgang mit den Grundbegriffen der Vorlesung.
•	Kenntnisse für das Lösen von Aufgaben
	Schriftliche Prüfung (Mitte des Semesters)
	10%
	
10.5	Übung	•	Korrektheit und Effizienz in der gelösten Aufgaben
•	Dokumentation
•	Deadlines einhalten	Praktische Aufgaben	30%	
10.6 Minimale Leistungsstandards	
Um in die Prüfung eingelassen zu werden gelten folgende Kriterien:
•	Wenigstens 6 Anwesenheiten bei den Übungen/Labor
•	Wenigstens 5 Anwesenheiten bei dem Seminar
•	Bei den praktischen Aufgaben muss die Mindestnote 5 erzielt werden
 
Für das Bestehen der Prüfung gelten folgende Kriterien:
•	bei der schriftlichen Prüfung muss die Mindestnote 5 erzielt werden, ohne Aufrundung (nur die Endnote wird auf ganze Zahl gerundet)
•	bei den praktischen Aufgaben muss die Mindestnote 5 erzielt werden, ohne Aufrundung
•	die Endnote muss mindestens 5 sein

Ausgefüllt am:			Vorlesungsverantwortlicher		Seminarverantwortlicher 
29.04.2024				 Conf. Dr. Diana Cristea		Conf. Dr. Diana Cristea

Genehmigt im Department am:				Departmentdirektor	
							            Conf. dr. Adrian Sterca