DM509: Programming Languages (5 ECTS)
STADS: 15011001
Level
Bachelor course
Teaching period
The course is offered in the autumn semester.
Teacher responsible
Email: petersk@imada.sdu.dk
Additional teachers
hargreaves@imada.sdu.dk
Timetable
Group |
Type |
Day |
Time |
Classroom |
Weeks |
Comment |
Common |
I |
Monday |
14-16 |
U28a |
36-38 |
|
Common |
I |
Monday |
14-16 |
U133 |
39-40 |
|
Common |
I |
Monday |
14-16 |
U27a |
43-46 |
|
Common |
I |
Tuesday |
10-12 |
U51 |
43 |
|
Common |
I |
Thursday |
08-10 |
U46 |
41 |
|
Common |
I |
Friday |
16-18 |
U47 |
41 |
|
H1 |
TE |
Tuesday |
12-14 |
U93 |
36-38,44,46 |
|
H1 |
TE |
Tuesday |
12-14 |
U91 |
43 |
|
H1 |
TL |
Wednesday |
08-10 |
IMADA Terminalrum |
39 |
|
H1 |
TL |
Thursday |
14-16 |
IMADA Terminalrum |
40,43,45 |
|
Show entire timetable
Show personal time table for this course.
Comment:
Ubegrænset deltagerantal. Fælles undervisning med DM552 Programmeringssprog (10 ECTS)
Prerequisites:
None
Academic preconditions:
The contents of DM536 Introduction to Programming and DM537 Object-oriented Programming must be known. The course DM507 Algorithms and Data Structures is recommended. The course cannot be followed if you have passed DM552, or if you have DM552 mandatory in your curriculum.
Course introductionTo give the students the general principles of programming languages design, and the specific choices characterizing the language classes imperative, object-oriented, logic-based and functional . To give the participants experience with programming in language of other types than the usual imperative and object-oriented languages.
Expected learning outcomeAfter the course, the student is expected to be able to:
- solve non-trivial programming tasks in a functional programming language by writing clear and correct code and by applying the standard language libraries.
- solve non-trivial programming tasks in a logic-based language by writing clear and correct code and by applying the standard language libraries.
- estimate time and space consumption of functional programs.
- prove properties of simple functional programs.
- calculate the most general type of a functional expression.
- calculate the most general unifier of two terms.
- execute resolution for a logical goal.
- convert an expression in first order logic to clausal form.
Subject overview
- General languages mechanisms:
Control structure, type systems, abstraction, module.
- Functional languages:
Functions, higher-order types, polymorphism, lists, lazy evaluation, referential transparency, monads, efficiency considerations, proof of correctness
- Logic based languages:
Predicates and rules, unification, SLD resolution, function symbols, lists, implementation of negation, constraint programming.
LiteratureMeddeles ved kursets start.
Website
This course uses
e-learn (blackboard).
Prerequisites for participating in the exam
None
Assessment and marking:
Project divided into parts and integrated in the course. Pass/fail, internal evaluation by the teacher.
Re-examination in the same exam period or immediately thereafter
Expected working hours
The teaching method is based on three phase model.
Intro phase: 22 hours
Skills training phase: 20 hours
Educational activities
Study phase: 10 hours
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.