Course Description
-
Course Name
Data Structures and Algorithms
-
Host University
Vrije Universiteit Amsterdam
-
Location
Amsterdam, The Netherlands
-
Area of Study
Computer Science
-
Language Level
Taught In English
-
Course Level Recommendations
Upper
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.
-
ECTS Credits
6 -
Recommended U.S. Semester Credits3
-
Recommended U.S. Quarter Units4
Hours & Credits
-
Overview
COURSE OBJECTIVE
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.COURSE CONTENT
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.TEACHING METHODS
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).
Course Disclaimer
Courses and course hours of instruction are subject to change.
Some courses may require additional fees.