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


    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

  • Recommended U.S. Semester Credits
  • Recommended U.S. Quarter Units
  • Overview

    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.

    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.