DM509: Programming Languages (5 ECTS)
STADS: 15000901
Level
Bachelor course
Teaching period
The course is offered in the autumn semester.
Second quarter.
Teacher responsible
Email: kslarsen@imada.sdu.dk
Timetable
Group |
Type |
Day |
Time |
Classroom |
Weeks |
Comment |
Common |
I |
Monday |
12-14 |
U131 |
45 |
|
Common |
I |
Monday |
12-14 |
U48a |
46,50-51 |
|
Common |
I |
Monday |
12-14 |
U17 |
47-48 |
|
Common |
I |
Monday |
12-14 |
U133 |
49 |
|
Common |
I |
Thursday |
14-16 |
U27a |
45, 47, 49, 51 |
|
S1 |
TE |
Tuesday |
10-12 |
U17 |
45-51 |
|
S1 |
TE |
Friday |
12-14 |
U10 |
46, 48, 50 |
|
S2 |
TE |
Wednesday |
15-17 |
U49d |
46 |
|
S2 |
TE |
Wednesday |
14-16 |
U49d |
48,50 |
|
S2 |
TE |
Friday |
08-10 |
U49d |
45-51 |
|
Show entire timetable
Show personal time table for this course.
Revison of timetable:
: Større lokaler til F. Ekstra hold oprettet (S2).
Comment:
Ubegrænset deltagerantal
Prerequisites:
None
Academic preconditions:
The contents of Programming A (DM502) and B (DM503) must be known. The course Algorithms and Data Structures (DM507) is recommended.
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 Haskell by writing clear and correct code and by applying the standard language libraries.
- solve non-trivial programming tasks in Prolog by writing clear and correct code and by applying the standard language libraries.
- estimate time and space consumption of Haskell programs.
- prove properties of simple Haskell programs.
- calculate the most general type of a Haskell expression.
- determine if a Haskell function is strict.
- calculate the most general unifier of two Prolog terms.
- execute resolution for a Prolog goal.
- convert an expression in first order logic to clausal form.
Subject overview- General languages mechanisms:
Control structure, type systems, abstraction, modules.
- 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:
(a) A four hour written exam with books, notes, etc. External examiner, grades according to the 7-point marking scale.
(b) A number of mandatory assignments (pass/fail, internal evaluation by teacher), accounting for 1 ECTS of the 5 ECTS of the course. These assignments must be approved before the written exam can be taken.
c) Reexam after 4th quarter. 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 (22 timer), eksaminatorier (20 timer) og projektarbejde.
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.