Advanced Topics in Programming Languages (ATPL)
Course content
This course provides an introduction to state-of-the-art research within an area of programming languages involving theory, design, reasoning, implementation and/or application of programming languages. It acquaints students with performing and communicating independent research in project form. The course consists of lectures and subsequent group (2-4 persons) seminar presentations and mini-projects. The mini-projects may consist of theoretical investigations, software construction or a combination of these. Master's thesis projects will be offered in continuation of the course. The particular research topic(s) may change from year to year; see below for this year's topics.
In 2024, the course is about *hybrid quantum-classical computing*. In the foreseeable future, addressing challenging real-world problems using future quantum computers will require a hybrid approach, combining massively parallel classical high-performance computing (HPC) on big data, with the delegation of intricate subproblems on relatively small data sets to quantum computers.
The course covers
- hardware-agnostic high-level programming that combines quantum algorithms and classical data-parallel algorithms;
- an intermediate language for optimization and approximation;
- and code generation that targets a mix of quantum computers and GPUs.
The course is planned to be conducted with access to
state-of-the-art quantum and HPC hardware in partnership
with IBM and Nvidia, and in collaboration with researchers in
quantum chemistry where quantum computing promises to achieve
quantum superiority on significant real-world problems first.
Introductions to relevant background topics
(multilinear algebra using braket notation, quantum
computation, tensor networks, reversible computing, functional
array programming) will be given in the beginning of the
course.
Knowledge of
- Aspects of the dual nature of programs as software (to be executed) and as data (to be reasoned about, analyzed and transformed)
- The role of a precise (mathematical) semantics for a programming language in connection with analyzing and manipulating programs
- Principles of programming language design and implementation and how they are applied in connection with the topics under study
Skills to
- Discuss properties such as correctness and performance and define what they mean in the specific topics under study
- Specify ideas and concepts as rigorous definitions and make falsifiable (or provable) statements about them
- Read, assess and communicate research papers
- Apply central results in the given area of studies
- Write a research paper
- Prepare and give a research paper presentation
Competences to
- Develop a given project proposal into a project plan, execute it, and present the results
The course progresses from teaching (lectures with exercises) to
student seminar presentations and finally a group mini-project,
which is the basis for the oral exam:
▪ Lecture phase: lectures and exercises, formation of project
groups (3 weeks)
▪ Seminar phase: seminar presentations by project groups (3 weeks)
▪ Project phase: project work by project groups (3
weeks)
Research articles and excerpts from books, distributed electronically.
See Absalon for a list of course literature.
The course is open to Master's degree students from computer
science, mathematics, quantum information science, physics or
similar programs. Introductions to/refreshers of relevant computer
science and mathematics background will be given at the beginning
of the course.
The following are examples of useful, but not required, background
or complementary courses.
Advanced Programming (AP)
Data Parallel Programming (DPP)
Introduction to Quantum Computing (IQT)
Introduction to Quantum Information Science (IQIS)
Program Analysis and Transformation (PAT)
Programming Massively Parallel Hardware (PMPH)
Quantum Compilers (QC)
Quantum Algorithms and Machine Learning (QAML)
Semantics and Types (SaT)
The course is identical to the discontinued course NDAA09026U Topics in Programming Languages (TiPL)
Students receive feedback from the instructors during the course
on
exercises, seminar presentations and project status reports (draft
papers). Students give each other feedback during each others'
seminar presentations and within the mini-project
groups.
As
an exchange, guest and credit student - click here!
Continuing Education - click here!
PhD’s can register for MSc-course by following the same procedure as credit-students, see link above.
- ECTS
- 7,5 ECTS
- Type of assessment
-
Oral exam on basis of previous submission, 30 minutes (no preparation time)
- Type of assessment details
- Individual oral examination without preparation.
During the course the students will carry out a group-based mini-project resulting in a co-authored report.
Format: An individual presentation of select parts of a group report (i.e. mini-project report) followed by individual examination in the course topics (see topics and learning objectives) with special emphasis on the subject of the report the student has co-authored. - Aid
- All aids allowed
- Marking scale
- 7-point grading scale
- Censorship form
- No external censorship
Several internal examiners
- Re-exam
-
Same as the ordinary exam.
Individual oral examination (30 minutes, without preparation) based on
submitted mini-project report and course topics (see topics and learning objectives).If a student has not previously handed in a mini-project report this can be handed in as an individual mini-project report no later than 1 week before the reexamination date.
Criteria for exam assessment
See Learning Outcome
Single subject courses (day)
- Category
- Hours
- Lectures
- 12
- Preparation
- 12
- Exercises
- 24
- Project work
- 96
- Seminar
- 48
- Exam Preparation
- 13
- Exam
- 1
- English
- 206
Kursusinformation
- Language
- English
- Course number
- NDAK24007U
- ECTS
- 7,5 ECTS
- Programme level
- Full Degree Master
- Duration
-
1 block
- Placement
- Block 2
- Schedulegroup
-
B
- Capacity
- No limitation – unless you register in the late-registration period (BSc and MSc) or as a credit or single subject student.
- Studyboard
- Study Board of Mathematics and Computer Science
Contracting department
- Department of Computer Science
Contracting faculty
- Faculty of Science
Course Coordinator
- Fritz Henglein (8-6b68716a6f686c7143676c316e7831676e)
Teacher
James Avery, Martin Elsman, Fritz Henglein, Thomas Jensen, Cosmin Oancea
Are you BA- or KA-student?
Courseinformation of students