AT700 – Algorithms and Data Structures

Master of Science in Computer Science and Business Technologies

Core Course

AT700 – Algorithms and Data Structures

Course Unit Code: AT700

Type Of Unit: Core

Level of Course Unit: Second cycle

Year of Study: First/second year

Semester: On demand

Number of ECTS Credits: 6

Class Contact Hours: 28

Mode of Delivery

Face to Face

Prerequisites

None

empty chairs tables room vintage retro tone (1)

The objective of this course is to teach students to effectively use basic data structures, such as stacks and queues, various types of lists, binary and multi-way trees, and graphs, in programs. A secondary goal is to introduce the student to the analysis of algorithms using notation such as Theta, Big- and Small-Oh, and Big- and Small-Omega.

Learning Outcomes

  • Describe types of notation for the determination of algorithm time efficiency.
  • Calculate the running time of algorithms.
  • Apply linear and non-linear data structures towards the solution of computational problems.
  • Discuss the differences between the class P and the class NP of problems.
  • Apply various types of algorithms for the solution of computational problems.

Course Features

Planned learning activities and teaching methods
Lectures; in-class discussion and debates; in-class exercises; problem sets; team work; video case studies, team presentations, interactive online learning via Moodle (quizzes, assignments, forums)

Assessment methods and criteria
30% Programming exercises
40% examination
30% in-class exercises

Language of Instruction
English

Work Placement(s)
Not applicable

Readings

Recommended or required reading

Textbooks:

Data Structures and Algorithms in Python, Goodrich, Tamasia and Goldwasser; Data Structures and Algorithms with Python, Lee and Hubbard Optional textbook:

Articles & Journals:

1. O. Amble, D. E. Knuth, Ordered hash tables, The Computer Journal, Volume 17, Issue 2, 1974, Pages 135–142

2. Aragon, Cecilia & Seidel, Raimund. (1989). Randomized Search Trees. Conference: 30th Annual Symposium on Foundations of Computer Science, Research Triangle Park, North Carolina, USA, 30 October – 1 November 1989 540-545.