|
Detailed information |
Original study plan |
Bachelor's programme Electronics and Information Technology 2020W |
Objectives |
Algorithms are the basis of software development. They bridge computer science theory and programming.
In this lecture students learn about the important core characteristics and classes of algorithms with a focus on their practical use to implement software systems and solve concrete problems.
|
Subject |
- Algorithms: definition, algorithms vs. programs, representing algorithms, abstraction layers and characteristics of algorithms
- Specifications: objectives, Interface descriptions, requirements, representing specifications
- Step-wise refinement: "divide & conquer", systematic problem solving, examples
- Algorithms with a memory: term and definition, ways to implement algorithms with a memory
- Complexity: terms and definitions, runtime analysis, runtime measurements, asymptotic complexity, minimal complexity of problems
- Dynamic data structures: classes and references, linear lists, unsorted lists, sorted lists, ring lists, double-connected lists, stacks, queues, sets
- Recursion: term and definition, classification, termination, applications, transforming recursive into iterative algorithms
- Sorting: selection sort, insertion sort, shell sort, quick sort, merge sort, sorting lists, heap sort, topological sort, complexity of sorting algorithms
- Trees: term and definition, binary search trees, balanced trees, topdown-234-trees, black-red-trees, B-trees
- Graphs: term and definition, depth-first-search, breadth-first-search, smallest spanning tree, shortest path, transitive hull, serialization of graphs
- Exhaustion: n-queens problem, schema to search a solution, using exhaustion to find a solution, optimization, representing solution vectors, approximation, non-deterministic algorithms
- Classification of algorithms
|
Criteria for evaluation |
Written exam at the end of the semester
|
Methods |
The lecture mostly is based on algorithms in pseudo code. This allows learning algorithms independent of a concrete programming language.
Some parts of the lecture are supported by demo videos. Some algorithms are constructed on the blackboard or whiteboard step by step.
|
Language |
German |
Study material |
- Aho A.V., Hopcroft J.E., Ullman J.D.: Data Structures and Algorithms. Addison-Wesley 1983.
- Goodrich, M. T., Tamassia, R., and Goldwasser, M. H.: Data structures and algorithms in Java. John Wiley & Sons. 2014.
- Knuth D.E.: The Art of Computer Programming. Addison-Wesley 1973.
Band 1: Fundamental Algorithms.
Band 2: Seminumerical Algorithms.
Band 3: Sorting and Searching.
- Wirth, N.: Algorithms + Data Structures = Programs. Prentice-Hall. 1976.
|
Changing subject? |
No |
Further information |
The lecture is mainly based on slides. Slides and additional material will be made available for download in PDF format.
|
Corresponding lecture |
(*)MEBPFVOPIN1: VL Praktische Informatik 1 (3 ECTS)
|
|