Official course description, subject to change:
Basic info last published 1/10-19

Algorithms and Data Structures

Course info
Language:
English
ECTS points:
7.5
Course code:
1408001U
Participants min:
1
Participants max:
143
Offered to guest students:
yes
Offered as a single subject:
yes
Price (single subject):
10625 DKK (incl. vat)
Programme
Level:
Bachelor
Programme:
Bachelor of Science in Software Development
Staff
Course manager
Associate Professor
Teacher
Associate Professor
Course semester
Semester
Forår 2020
Start
27 January 2020
End
31 August 2020
Abbreviation
20201
Exam
Abstract

This course provides the basic algorithmic tools indispensable for every software developer.

Description

Computers help us compute things: To sort alphabetically the entries in a telephone directory; to compute the next frame of a video game; to find the seats available on an airplane. However, there are faster and slower ways to compute things. To be an effective programmer, you must know not only how to make a computer compute things, but how to efficiently compute things. This course provides the basic algorithmic tools indispensible for every software developer.
Topics covered are among others complexity analysis, big-O, algorithmic problem solving techniques including divide-and-conquer, concrete algorithms and data structures for search trees, sorting, hashing, graphs, shortest paths.

Intended learning outcomes

After the course, the student should be able to:

  • Discuss and clearly explain the mechanics of computations and data structures involving manipulation of references, nested loops and recursion, specified in natural language, in abstract pseudocode or in concrete programming language (Java/Python)
  • Implement abstractly specified computations and data structures in an imperative programming language (Java/Python).
  • Analyze time and space usage of algorithms/programs.
  • Assess scalability of a given single-threaded software application, using asymptotic analysis.
  • Choose among and make use of the most important algorithms and data structures in libraries, based on knowledge of their complexity.
  • Design algorithms for ad hoc problems by using and combining known algorithms and data structures
  • Describe the most important hardware and programming language factors influencing the speed at which a program runs and take them into account in assessment of speed of algorithms.
Ordinary exam
Exam type:
A: Written exam on premises, external (7-trinsskala)
Exam variation:
A33: Written exam on premises on paper with restrictions
Exam description:

Written exam, 4 hours, with access to all paper-based aids.

  • For instance, you may bring the course book and your own notes.
  • The test is filled in in handwriting, for instance using pen.
  • You do not have access to any electronic devices, in particularly you may not use a mobile phone, a computer, a pocket calculator, or an e-book reader.