DM507: Algorithms and Data Structures (10 ECTS)
STADS: 15000701
Level
Bachelor course
Teaching period
The course is offered in the spring semester.
Third and fourth quarter.
Teacher responsible
Email: lenem@imada.sdu.dk
Timetable
Group |
Type |
Day |
Time |
Classroom |
Weeks |
Comment |
Common |
I |
Monday |
10-12 |
U20 |
05-08,10-11, 14-16, 18-20 |
|
Common |
I |
Monday |
14-16 |
U20 |
09 |
|
Common |
I |
Thursday |
14-16 |
U37 |
05, 07, 09 |
|
S1 |
TE |
Wednesday |
10-12 |
U37 |
06-11, 14-15, 17,19-20 |
|
S1 |
TE |
Wednesday |
10-12 |
U49 |
21 |
|
S1 |
TE |
Thursday |
14-16 |
U48 |
06,18 |
|
S1 |
TE |
Friday |
15-17 |
U27a |
05,09 |
|
S2 |
TE |
Tuesday |
14-16 |
U49e |
06-11 |
|
S2 |
TE |
Tuesday |
14-16 |
U49c |
18 |
|
S2 |
TE |
Wednesday |
14-16 |
U130 |
17,19-20 |
|
S2 |
TE |
Wednesday |
08-10 |
U49 |
21 |
|
S2 |
TE |
Friday |
08-10 |
U27a |
05-06,09,14-15 |
|
Show entire timetable
Show personal time table for this course.
Comment:
Ubegrænset deltagerantal. 3. + 4. kvartal.
Prerequisites:
None
Academic preconditions:
The contents of Programming A and B (DM502 and DM503) must be known. Knowledge of the contents of Mathematical Tools for Computer Science (DM527) is recommended.
Course introductionTo acquaint the students with fundamental classes of algorithms and to show how these can be realized efficiently through the use of data structures. Furthermore, we introduce the basic tools for analyzing the efficiency of algorithms.
Expected learning outcomeAfter the course, the student is expected to be able to:
1. use the algorithms taught in the course on concrete problem
instances.
2. give precise arguments for the correctness or incorrectness of an
algorithm.
3. determine the asymptotic running time of an algorithm.
4. adapt known algorithms and data structures to special cases of known
problems or new problems.
5. design new algorithms for problems similar to those taught in the
course. This includes giving a precise description of the
algorithm, e.g. using pseudocode.
6. make good choices of data structures.
7. design new data structures based on known data structures.
8. design and implement a larger program, using algorithms and
data structures taught in the course.
9. Give precise arguments for the choices made in connection with
items 4-8.
Subject overviewMathematical basis:
• Recursion equations.
Algorithms:
• correctness and complexity analysis,
• greedy algorithms,
• divide and conquer,
• dynamic programming,
• sorting,
• graph algorithms,
• Huffmann-coding
Data structures:
• abstract data types,
• trees,
• dictionaries,
• priority queues,
• disjoint sets
LiteratureMeddeles ved kursets start.
Syllabus
See syllabus.
Website
This course uses
e-learn (blackboard).
Prerequisites for participating in the exam
None
Assessment and marking:
a) A 4 hour written exam where books, notes and calculators may be used. External examiner. Grades according to the 7-point marking scale.
b) A mandatory project that count 3 ECTS of the 10 ECTS course total. Internal examiner. Passed/not passed. The project must be passed to in order to be admitted to the exam.
Reexam after 4th quarter in August. The reexam is an oral exam with external examiner and grades according to the 7-point marking scale.
Expected working hours
The teaching method is based on three phase model.
Forelæsninger (32 timer) og eksaminatorier (32 timer).
Educational activities
Language
This course is taught in Danish or English, depending on the lecturer. However, if international students participate, the teaching language will always be English.
Course enrollment
See deadline of enrolment.
Tuition fees for single courses
See fees for single courses.