Data Structures and Algorithms
2V + 1Ü (Grunske, Filieri, Pitakrat)
Winter semester 2013/14
Lecture
All materials for the lectures are available in ILIAS. The password to participate in the course will be given in the first lecture.
Exercise
The exercises take place every 2 weeks. The assignment sheets will be available in ILIAS at the latest during the week of the corresponding lecture. The assignments are due on Friday before 10 a.m. of the following week and will be discussed in the next exercise session. Please work and hand in the assignments in groups of 3 people.
To be admitted to the final exam, the student must achieve at least 65% of the total exercise points.
Timetable
Lecture (weekly): Monday, 15:45  17:15, Room V38.02
Exercise (biweekly): Tuesday, 14:00  15:30, Room V38.03
Details are subject to change.
Date 
 Topic  References (TBD) 

14.10.13  Lecture 01  Course administration, lists and search 

21.10.13  Lecture 02  Lists and search 

22.10.13  Exercise 00  Basic Java programming  
28.10.13  Lecture 03  Complexity, trees 

04.11.13  Lecture 04  Binary search trees 

05.11.13  Exercise 01  Lists and search  
11.11.13  Lecture 05  Balanced trees 

18.11.13  Lecture 06  Btrees  
19.11.13  Exercise 02  Binary search trees  
25.11.13  Lecture 07  Heap, heapsort, sets 

02.12.13  Lecture 08  Graphs 

03.12.13  Exercise 03  Balanced trees  
09.12.13  Lecture 09  Graph algorithms 1 

17.12.13  Exercise 04  Heaps, heapsort, graphs  
13.01.14  Lecture 10  Graph algorithms 2 

14.01.14  Exercise 05  Wrapup exercise  
20.01.14  Lecture 11  Graph algorithms 3 

27.01.14  Lecture 12  Hashing 

28.01.14  Exercise 06  Graph algorithms  
03.02.14  Lecture 13  Summary, questions/answers 

04.02.14  Exercise 07  Hashing 

Prerequisite
This course has programming, theoretical computer science, and mathematics as prerequisites. Every student must be comfortable with the following topics:
 Java 6 programming (and clean coding)
 Basic OO programming, inheritance, recursive functions, fundamental data structures, and generics.
 Theoretical computer science
 Decidability
 Basic mathematics for Computer Science
 Random variables, limits, series
In the literature section, some reference are provided. If you are unsure whether you have these prerequisites, please contact us and we will help you decide whether this course is appropriate for you.
Examination
TBD
Literature
Textbooks:
 Data structures and Algorithm Analysis, Clifford A. Shaffer. (Available online at: http://goo.gl/ePwnqR)
 Introduction to Algorithms, Thomas H. Cormen  goo.gl/HKCIY
On Java programming:
 http://docs.oracle.com/javase/tutorial
 http://www.mindviewinc.com/Books/TIJ4
 (From ocw.mit.edu) http://goo.gl/VHJgX
 Clean Code: A Handbook of Agile Software Craftsmanship, Robert C. Martin, goo.gl/lVkb7
On mathematics:
 Data structures and Algorithm Analysis, Clifford A. Shaffer, Chapter 2. (Available online at: http://goo.gl/ePwnqR)
 (From ocw.mit.edu) Mathematics for Computer Science: http://goo.gl/jBly8
Advanced topics:
 TBD
Links:
TBD