NDAB16008U Programming Language Design (PLD)
BSc Programme in Computer Science
The course explores the design space of programming languages and how the design choices affect the implementation and other properties of the language.
A brief history of programming languages is presented and a selected set of features are explored with respect to design choices, how they interact and how they can be implemented.
The aim is to give the student an understanding of the programming-language landscape that will both be helpful when the student designs and implements programming languages but also to better understand existing programming languages.
The course aims to give the student:
Knowledge of
- Implementation strategies
- Syntax
- Memory management
- Scope rules
- Control structures
- Types
- Language paradigms
- Modules
- Semantics
- Domain-specific languages
- Computational power of languages
Skills to
- Design and implement simple programming languages or language extensions using several of the above-listed features.
- Describe this language using a mixture of formal and informal specification.
Competences to
- Evaluate how design choices affect and are affected by implementation methods and other properties of programming languages.
- Design or extend a programming language tailored to a specific problem area or observing specific properties.
- Category
- Hours
- Lectures
- 32
- Preparation
- 52
- Theory exercises
- 40
- Exercises
- 32
- Project work
- 50
- Total
- 206
- Credit
- 7,5 ECTS
- Type of assessment
- Continuous assessmentThe grade is given as a weighted average of four individual take-home assignments, where the final assignment is weighted as 40% of the total and the three first combined as 60%. To pass the course, every assignment must receive at least one third of the maximal points for that assignment, and the total must be at least half the maximal combined points.
It is possible to resubmit the three first assignments one week after they are evaluated. Due to time constraints it is not possible to resubmit the last assignment. - Aid
- All aids allowed
- Marking scale
- 7-point grading scale
- Censorship form
- No external censorship
Several internal examiners
- Re-exam
The re-exam consists of two parts:
1. Submission of a new assignment (different from the original) to replace the last of the four assignments. The assignment must be submitted no later than three weeks before the re-exam week.
2. An oral examination in the learning goals not covered by this assignment. The oral examination, which takes place in the re-exam week, is 30 minutes without preparation, but including approximately 5 minutes for grading.
Criteria for exam assesment
See Learning Outcome.
Course information
- Language
- English
- Course code
- NDAB16008U
- Credit
- 7,5 ECTS
- Level
- Bachelor
- Duration
- 1 block
- Placement
- Block 3
- Schedule
- B
- Course capacity
- No limit
- Course is also available as continuing and professional education
- Study board
- Study Board of Mathematics and Computer Science
Contracting department
- Department of Computer Science
Contracting faculty
- Faculty of Science
Course Coordinators
- Torben Ægidius Mogensen (torbenm@di.ku.dk)