Data Structures and Algorithms
Vrije Universiteit Amsterdam
Amsterdam, The Netherlands
Area of Study
Taught In English
Course Level Recommendations
ISA offers course level recommendations in an effort to facilitate the determination of course levels by credential evaluators.We advice each institution to have their own credentials evaluator make the final decision regrading course levels.
Recommended U.S. Semester Credits3
Recommended U.S. Quarter Units4
Hours & Credits
Upon successful completion of this course, the students are expected to
• be able to analyse algorithms' resource usage by using asymptotic analysis and asymptotic notations,
• identify the algorithm design technique used by a given algorithm such as divide-and-conquer, dynamic programming, greedy, etc.),
• use these algorithm design techniques to develop new algorithms for simple computational problems,
• be aware of some common computational problems and some known algorithms for these problems.
Algorithms lie at the heart of computing. An algorithm is a well-defined computational procedure that takes a value (or a set of values) as input and produces a value (or set of values) as output, as a solution to a computational problem. Algorithms usually rely on a set of data structures that allow them to manipulate the data efficiently. No matter which programming language you program in, learning about data structures and algorithms is essential to build scalable systems. This course is an introduction to data structures, algorithmic design and complexity. We will start by covering the basics of data structures, including linear data structures, tree-like data structures, graph-like data structures and hash tables. We will continue with an introduction to algorithms, covering sorting algorithms, the divide-and-conquer paradigm, greedy algorithms, and dynamic programming. We will analyze the efficiency of such algorithms, using big-Oh notation and worst-case time complexity.
Lectures, exercises, practical work. Attendance is mandatory.
TYPE OF ASSESSMENT
4 assignments (40%) and a written exam (60%).
RECOMMENDED BACKGROUND KNOWLEDGE
It is helpful to know recursive procedures and arrays such as for example taught in the course Computer Programming (XB_40011).
It is helpful to know graphs and elementary graph algorithms as for example taught in the course Networks and Graphs (X_401010).
Courses and course hours of instruction are subject to change.
Some courses may require additional fees.