Algorithms, Data Structures and Problem Solving
The course aims at providing knowledge on algorithm complexity, algorithm design and classical data structures. The aim of the course is also to improve programming abilities in a modern programming language, currently Java.
The course builds on basic programming knowledge and practice and prepares the student to participate in larger programming projects. It introduces currently-accepted techniques to solve frequently occurring problems and prepares the student to make informed choices from several alternative solutions. The course also illustrates how some more advanced programming language constructs can be used.
On completion of the course the student shall be able to
- explain how to estimate the execution time of programs
- recognize techniques for algorithm design such as divide and conquer, recursion, dynamic programming
- recognize datastructures and algorithms for search and sorting, such as quick sort, binary search trees, hash tables
- identify the need and use data structures as modules to solve larger problems
- use techniques for algorithm design in solving larger problems
- judge how suitable a program is given its execution time
- choose adequate implementations of datastructures from program libraries
Basic course in programming techniques.
Available for exchange students. Limited numbers of seats.
Language of instruction:
Teaching is in English.