Data structures for example stacks, queues, arrays, ordered arrays, trees, tries, red-black trees, binary searchtrees, hashtables, linked lists, priority queues, heaps.
Algorithms for example binary search, insert in datastructures (above), deletion in datastructures (above), selection sort, insertion sort, heapsort, bubblesort, quicksort, mergesort, radix sort, counting sort, depth-first-search, breadth-first-search, Warshalls algorithm, some AI algorithms.
Basic understanding for the complexity of an algorithm. Something about complexity classes.
Grade E:
The student should be able to use the data structures available in the class libraries in an objectoriented programming language and decide which is the approprirate datastructure in a given application.
The student should be able to implementa a simple algorithm in a programming language based on a detailed description or pseudo code.
The student should be able to describe following data structures considering the most important operations, when to use them and how they work.
Linked list, doublelinked list, hashtable, stack, queue, priority queue, heap, binary search tree.
The student should be able to implement any sorting algorithm for an array.
The student should have such a good understanding of complexity that she/he is able to discuss the complexity for a given algorithm.
The student should have a common knowledge about the data structures and algorithms mentioned during the course and be able to give a short explanation and know where to get more information if needed.
The student should be able to construct an own solution (algorithm) to a simple problem and write pseudo code for the solution.
Grades D-A:
The student should be able to analyze an algorithm and tell what complexity it has.
The student should be able to implement a non-trivial algorithm in any programming language.
The student should be able to solve a problem by figuring out an algorithm and implement it.