# Data Structures and Algorithms

Vrije Universiteit Amsterdam

## Course Description

• ### Course Name

Data Structures and Algorithms

• ### Host University

Vrije Universiteit Amsterdam

• ### Location

Amsterdam, The Netherlands

• ### Area of Study

Computer Programming

• ### 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.

### Hours & Credits

• ECTS Credits

6
• Recommended U.S. Semester Credits
3
• Recommended U.S. Quarter Units
4
• ### 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%).

### Course Disclaimer

Courses and course hours of instruction are subject to change.

Some courses may require additional fees.