DM552: Programming Languages

The Study Board for Science

Teaching language: Danish or English depending on the teacher, but English if international students are enrolled
EKA: N330038112, N330038102
Assessment: Second examiner: None, Second examiner: Internal
Grading: Pass/Fail, 7-point grading scale
Offered in: Odense
Offered in: Spring
Level: Bachelor

STADS ID (UVA): N330038101
ECTS value: 10

Date of Approval: 13-11-2020


Duration: 1 semester

Version: Archive

Comment

Courses redeem 15014801(formerly UVA).

Entry requirements

None

Academic preconditions

The contents of DM550 Introduction to Programming must be known.
The course DM507 Algorithms and Data Structures is recommended.

Course introduction

The course gives an introduction to the main concepts and the structure of programming languages, paying particular attention to the functional paradigm. It allows students to learn the general principles of programming language design, and the specific choices characterizing the language paradigms. It fosters a coherent understanding of advantages and disadvantages of different levels of abstraction and programming language constructs, giving to the participants the experience with programming in languages other than the mainstream object-oriented languages.

The course builds on the knowledge acquired in the courses DM550 Introduction to Programming and DM507 Algorithms and Data Structures. It provides a professional basis for choosing courses or bachelor projects in programming languages later on the program.

In relation to the learning outcomes of the degree the course has explicit focus on:
  • developing skills in programming in different types of programming languages
  • developing skills in analysing advantages and disadvantages of different language constructs
  • developing skills in deciding and justifying professional decisions
  • giving the competence to identify one's own needs for learning and structure one's own learning in different learning environments

Expected learning outcome

The learning objectives of the course are that the student demonstrates the ability to:
  • detect and describe the main characteristics and structures of a programming language
  • distinguish and develop simple programs in the main programming paradigms
  • solve non-trivial programming tasks in a functional programming language by writing clear and correct code

Content

The following main topics are contained in the course:
  • Scoping rules
  • Stack of activation records
  • Heap, Memory management
  • Sequence control, procedures, recursion
  • Types, Parameters, Exceptions
  • Functional languages: higher-order, polymorphism, lists, lazy evaluation

Literature

See itslearning for syllabus lists and additional literature references.

Examination regulations

Prerequisites for participating in the exam a)

Timing

Spring

Tests

A number of programming assignments

EKA

N330038112

Assessment

Second examiner: None

Grading

Pass/Fail

Identification

Full name and SDU username

Language

Normally, the same as teaching language

Examination aids

To be announced during the course.

ECTS value

0

Additional information

The prerequisite examination is a prerequisite for participation in exam element a)

Exam element a)

Timing

June

Prerequisites

Type Prerequisite name Prerequisite course
Examination part Prerequisites for participating in the exam a) N330038101, DM552: Programming Languages

Tests

Skriftlig eksamen

EKA

N330038102

Assessment

Second examiner: Internal

Grading

7-point grading scale

Identification

Full name and SDU username

Language

Normally, the same as teaching language

Duration

2 days -  4 timer (first day) + 2 timer (second day - peergrade)

Examination aids

A closer description of the exam rules will be posted in itslearning.

ECTS value

10

Additional information

The final grade is given on the basis of an overall assessment of written exams.
The examination form for re-examination may be different from the exam form at the regular exam.

Indicative number of lessons

82 hours per semester

Teaching Method

At the faculty of science, teaching is organized after the three-phase model ie. intro, training and study phase.
  • Intro phase (lectures, class lessons) - 40 hours
  • Training phase: 42 hours
The course will contain lectures, problem solving and programming. In the lectures, the theory will be covered, partly via a dialogue with the students. The aim of the problem solving is a better understanding of the theory, and through programming the students will obtain experience with the challenges and advantages of non imperative programming languages.

Activities during the study phase: Programming and small projects

Teacher responsible

Name E-mail Department
Jacopo Mauro mauro@imada.sdu.dk Concurrency

Timetable

Administrative Unit

Institut for Matematik og Datalogi (datalogi)

Team at Educational Law & Registration

NAT

Offered in

Odense

Recommended course of study

Profile Education Semester Offer period