Course
Algorithms and Datastructures (DAT200)
The course provides an in-depth introduction to some commonly used data structures and algorithms.
Course description for study year 2019-2020. Please note that changes may occur.
Semesters
Facts
Course code
DAT200
Credits (ECTS)
10
Semester tution start
Autumn
Language of instruction
English
Number of semesters
1
Exam semester
Autumn
Content
Learning outcome
After ending this course the student should know how to:
Knowledge
- Know how basic algorithms for sorting, searching and wayfinding in graphs work.
- Know how basic data structures for lists, stacks, queues, priority queues, sets, associative arrays and graphs work
Skills
- Be able to calculate the efficiency of algorithms
- Be able to implement efficient recursive algorithms
- Be able to implement efficient algorithms for sorting and searching
General competency
- Know how data structures and algorithms for lists, queues, stacks, heaps, binary trees and graphs can be implemented.
- Be able to use standard algorithms and data structures to implement efficient programs
Required prerequisite knowledge
Recommended prerequisites
Exam
Form of assessment | Weight | Duration | Marks | Aid | Exam system | Withdrawal deadline | Exam date |
---|---|---|---|---|---|---|---|
Written exam | 1/1 | 4 Hours | Letter grades | None permitted | Inspera assessment | — | — |
Coursework requirements
Course teacher(s)
Head of Department:
Tom RyenCourse coordinator:
Mina FarmanbarMethod of work
Six hours of lecturing per week. All students can get help for the exercises at a room reserved for the purpose four hours a week. The exercises are approved by presenting them to the teacher or a student assistant during these four hours.
Completion of mandatory exercises are to be made at the times and in the groups that are assigned and published. Absence due to illness or for other reasons must be communicated as soon as possible to the laboratory personnel. One cannot expect that provisions for completion of the exercises at other times are made unless prior arrangements with the laboratory personnel have been agreed upon.
Failure to complete the assigned exercises on time or not having them approved will result in barring from taking the exam of the course.
Overlapping courses
Course | Reduction (SP) |
---|---|
Algorithms and Datastructures (DAT200_1) , Data structures and algoritms (TE0458_1) | 6 |
Algorithms and Datastructures (DAT200_1) , Data structures and algoritms (TE0458_A) | 6 |
Datastructures and algorithms (BIE270_1) , Algorithms and Datastructures (DAT200_1) | 10 |
Open for
Bachelor studies at the Faculty of Science and Technology.
Master studies at the Faculty of Science and Technology.
Course assessment
Literature
There are many textbooks on algorithms. These textbooks have different levels of complexity and use different programming languages to teach algorithms. This course does not follow any particular textbook but has a curriculum list, including a compendium. The curriculum list and compendium will be posted on Canvas. This course will use the Python programming language to demonstrate the algorithms.
One possible textbook that is on-line is this:
Problem Solving with Algorithms and Data Structures using Python by Brad Miller and David Ranum, Luther College
Alternative textbooks:
- Introduction to Algorithms, 3. edition, by Cormen, Leiserson, Rivest, Stein, MIT press. This textbook is thorough and is used for the master course DAT600 algorithm theory. It is also used in other universities for bachelor courses on algorithms. However, this book is very theoretical and mathematical. All algorithms are illustrated with pseudocode alone and not in a real programming language.
- Python Algorithms: Mastering Basic Algorithms in the Python Language 2nd ed. Edition by Magnus Lie Hetland. Apress. This book covers a slightly different curriculum than DAT200 does.