Search course

Use the search function to find more information about the study programmes and courses available at Chalmers. When there is a course homepage, a house symbol is shown that leads to this page.

Graduate courses

Departments' graduate courses for PhD-students.

​​​​
​​

Syllabus for

Academic year
The course has been discontinued 
DAT122 - Programming paradigms  
 
Syllabus adopted 2015-02-12 by Head of Programme (or corresponding)
Owner: TKDAT
7,5 Credits
Grading: TH - Five, Four, Three, Not passed
Education cycle: First-cycle
Major subject: Computer Science and Engineering, Information Technology
Department: 37 - COMPUTER SCIENCE AND ENGINEERING


Teaching language: English
Open for exchange students

Course module   Credit distribution   Examination dates
Sp1 Sp2 Sp3 Sp4 Summer course No Sp
0115 Laboratory 3,0c Grading: UG   3,0c    
0215 Examination 4,5c Grading: TH   4,5c    

In programs

TKDAT COMPUTER SCIENCE AND ENGINEERING, Year 2 (elective)
TKDAT COMPUTER SCIENCE AND ENGINEERING, Year 3 (elective)
TKITE SOFTWARE ENGINEERING, Year 3 (elective)
MPALG COMPUTER SCIENCE - ALGORITHMS, LANGUAGES AND LOGIC, MSC PROGR, Year 1 (elective)
MPALG COMPUTER SCIENCE - ALGORITHMS, LANGUAGES AND LOGIC, MSC PROGR, Year 2 (elective)

Examiner:

Forskarassistent  Jean-Philippe Bernardy


Replaces

DAT120   Programming paradigms DAT121   Programming paradigms


Eligibility:

In order to be eligible for a first cycle course the applicant needs to fulfil the general and specific entry requirements of the programme(s) that has the course included in the study programme.

Course specific prerequisites

Basic programming knowledge in functional language (such as TDA555)
Basic programming knowledge in imperative or object language (such as EDA481 or DAT043)
Knowledge of basic data structures (such as DAT037)

Aim

This course aims to
  • introduce the students to programming language design, semantics and implementation
  • teach the meaning of the most important programming language constructions, by interpretation or translation into other, more basic constructions
  • provide the students with tools to work with the paradigm of their choice, regardless of the programming language that they use

Learning outcomes (after completion of the course the student should be able to)

Knowledge and understanding
  • Explain the meaning of programming language features in terms of their operational or denotational interpretation
  • Explain and contrast the principles of different paradigms both conceptually and in terms of particular language features.
  • Know the relationship between mainstream programming languages, the features they implement, and the paradigms they support.

Skills and abilities

  • Write small idiomatic programs in languages that represent different paradigms.
  • Read programs written idiomatically in a given paradigm, and translate
    (encode) them into a language that does not support the paradigm
    directly.
  • Read non-idiomatic programs (that use an encoding), and re-write them in their idiomatic paradigm.
Judgement and approach
  • Recognize the paradigms at the core of programs, regardless of shallow/accidental implementation choices.

Content

This course discusses the fundamental concepts underlying the design,
definition, and implementation of modern computer languages typical of
common programming paradigms, including imperative, object-oriented,
logic, concurrent, and functional.

The course contains:
  • a formal introduction to each paradigm;
  • theoretical and practical studies of transformations between paradigms.
Examples of such transformations include:
  - introduction/removal of jumps/loops,
  - introduction/removal of recursion/stack,
  - introduction/removal of higher order functions/closures
  - introduction/removal of processes/continuations,
  - introduction/removal of explicit search.

In most cases, the Haskell programming language is used as a vehicle for expressing those transformations.

Organisation

The course consists of a series of lectures and theoretical and practical exercises.

Literature

See separate literature list.

Examination

The course examination has two elements:
  • an individual written examination, carried out in examination hall
  • a series of exercises carried out on computer


Page manager Published: Thu 04 Feb 2021.