DM552: Programming Languages

Study Board of Science

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

STADS ID (UVA): N330038101
ECTS value: 10

Date of Approval: 05-10-2022


Duration: 1 semester

Version: Approved - active

Comment

DISCONTINUED - offered last time Spring 2023

1. Exam attempts are held June 2023 
2. Exam attempts are held August 2023 
3. Exam attempts will be held in January 2024

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

Exam element a)

Timing

Spring and June

Tests

Portfolio

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

Written exam - 4 hours

Examination aids

Project - aid allowed

Written examination: 
The exam is without aids. However, it is allowed to use "ordbogsprogrammet" (the dictionary programme) from http://www.ordbogen.com/ in electronic form. The browser version is not allowed.

Internet is not allowed during the exam. However, you may visit system DE-Digital Exam and PeerGrade in connection with downloading the examination paper and template at the exam start and to submit your answer at the end of the exam.

ECTS value

10

Additional information

Portfolio examination consists of:

  • Project
  • Written exam, held during the exam period in June

The re-examination will be changed to an oral examination if there are nine or fewer registered.

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 Institut for Matematik og Datalogi (00)

Additional teachers

Name E-mail Department City
Peter Schneider-Kamp petersk@imada.sdu.dk Data Science

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
BSc major in Computer Science special course - Registration 1 September 2019, 2020, 2021 og 2022 Bachelor of Science in computer science | Odense 2 E22
BSc major in Computer Science special course - Registration 1 September 2020, 2021 og 2022 Bachelor of Science in computer science | Odense 2 E23
BSc major in Computer Science - Registration 1 September 2019 Bachelor of Science in computer science | Odense 4 E22
BSc major in Computer Science - Registration 1 September 2020 and 2021 Bachelor of Science in computer science | Odense 4 E22
BSc major in Computer Science - Registration 1 September 2020 and 2021 Bachelor of Science in computer science | Odense 4 E23
BSc major in Computer Science and minor in Mathematics - Registration 1 September 2020 and 2021 Bachelor of Science in computer science | Odense 4 E22
BSc major in Computer Science and minor in Mathematics - Registration 1 September 2020 and 2021 Bachelor of Science in computer science | Odense 4 E23
BSc major in Computer Science and minor subject - Registration 1 September 2020 and 2021 Bachelor of Science in computer science | Odense 4 E23
BSc major in Computer Science and minor subject - Registration 1 September 2020 and 2021 Bachelor of Science in computer science | Odense 4 E22
BSc major in Computer Science and minor subject - Registration 1 September 2019 Bachelor of Science in computer science | Odense 4 E22
No longer applicable (31 August 2020): BSc major in Computer Science - Registration 1 September 2019 Bachelor of Science in computer science | Odense 4 E22
No longer applicable (31 August 2020): BSc major in Computer Science and minor subject - Registration 1 September 2019 Bachelor of Science in computer science | Odense 4 E22
No longer applicable (31 August 2020): BSc major in Computer Science and minor subject area - Registration 1 September 2019 Bachelor of Science in computer science | Odense 4 E22

Transition rules

Transitional arrangements describe how a course replaces another course when changes are made to the course of study. 
If a transitional arrangement has been made for a course, it will be stated in the list. 
See transitional arrangements for all courses at the Faculty of Science.