|
|
Module code: DFBI-421 |
|
4V+2P (6 hours per week) |
7 |
Semester: 4 |
Mandatory course: yes |
Language of instruction:
German |
Assessment:
[updated 08.05.2008]
|
DFBI-421 (P610-0224) Computer Science and Web Engineering, Bachelor, ASPO 01.10.2018
, semester 4, mandatory course
PIB210 (P221-0032, P221-0034) Applied Informatics, Bachelor, ASPO 01.10.2011
, semester 2, mandatory course
|
90 class hours (= 67.5 clock hours) over a 15-week period. The total student study time is 210 hours (equivalent to 7 ECTS credits). There are therefore 142.5 hours available for class preparation and follow-up work and exam preparation.
|
Recommended prerequisites (modules):
DFBI-123 DFBI-321 Programming 1
[updated 15.09.2017]
|
Recommended as prerequisite for:
|
Module coordinator:
Prof. Dr. Markus Esch |
Lecturer: Prof. Dr. Markus Esch
[updated 06.03.2017]
|
Learning outcomes:
After successfully completing this module, students will: understand the relationship between algorithms and data structures; understand complexity and be able to apply the concept to simple algorithms; understand what an abstract data type is; understand the independence of concept and implementation; have a good command of basic data structures (lists, stacks, queues, binary trees) and the associated operations. (Students will be able to write their own programs and use corresponding class libraries and will be appreciate and deploy objected-oriented programming concepts, such as inheritance and polymorphism); be acquainted with different implementations and their respective pros and cons; be able to apply and operate on more complex variants of these data structures in their programs; be acquainted with different types of balanced trees and rebalancing techniques; be acquainted with different types of B-trees (e.g. 2-3-4 trees); be able to use hash tables and different collision handling methods (with particular emphasis on OOP concepts); know how to apply and program known graph algorithms.
[updated 08.05.2008]
|
Module content:
1. Introduction: Theoretical background 2. Algorithm complexity (average-case and worst-case complexity) 3. Relationship between algorithms and data structures 4. Simple data structures and examples of typical applications; suitability for specific algorithms; variant implementations - Lists - Stacks - Queues (ring buffers) - Simple binary trees (search trees) 5. Recursion 6. Complex data structures 7. Complex lists (backward chaining, multiple chaining) 8. Simple balanced trees (height-balanced trees, AVL trees) 9. Weight-balanced (or probability-balanced) trees 10. Rebalancing methods (rotation), complexity 11. Optimum search trees, optimization criteria (worst-case complexity, average-case complexity) 12. Hash tables, collision handling 13. Red-black trees 14. 2-3-4 trees (connection to B-trees, applications in external storage problems) 15. Hashing 16. Graph algorithms
[updated 08.05.2008]
|
Teaching methods/Media:
PowerPoint slides, applet for teaching data structures, blackboard
[updated 08.05.2008]
|
Recommended or required reading:
Th. CORMEN, Ch. LEISERSON, R. RIVEST: Introduction to Algorithms, MIT Press, McGraw-Hill, 1998 M. WAITE, R. LAFORE: Data Structures & Algorithms in JAVA, The Waite Group Press, 1998 Th. STANDISH: Data Structures in JAVA, Addison Wesley, 1997
[updated 08.05.2008]
|