Timetable information in the Course Catalogue may be subject to change.

University Homepage
DRPS Homepage
DRPS Search
DRPS Contact
DRPS : Course Catalogue : School of Informatics : Informatics

Undergraduate Course: Introduction to Quantum Programming and Semantics (INFR11242)

Course Outline
SchoolSchool of Informatics CollegeCollege of Science and Engineering
Credit level (Normal year taken)SCQF Level 11 (Year 5 Undergraduate) AvailabilityAvailable to all students
SCQF Credits10 ECTS Credits5
SummaryThis course replaces Categories and Quantum Informatics (INFR11128) from 2023-2024.

There are several languages for programming quantum protocols. Each has its own strengths and weaknesses. This course surveys current platforms (OpenQAsm, Qiskit, Q#, Quipper, Quantomatic, and PyZX) and analyses their respective features semantically. The theoretical analysis uses category theory, a powerful mathematical tool in logic and informatics, that has influenced the design of many modern programming languages. It enables a powerful graphical calculus that lets you draw pictures instead of writing algebraic expressions. This technique is visually extremely insightful, yet completely rigorous. For example, correctness of protocols often comes down to whether a picture is connected or disconnected, whether there is information flow from one end to another. In a practical way, this course investigates the conceptual reasons why quantum protocols and quantum computing work, rather than their algorithmic and complexity-theoretic aspects.
Course description The course has two parallel tracks: a practical one, and a theoretical one. The practical track surveys different quantum programming platforms. These include OpenQAsm, Qiskit, Q#, Quipper, Quantomatic, and PyZX. We discuss their basic structure, strengths, and weaknesses. Via labs and live coding in lectures, students get hands-on experience of implementing small quantum programs. The emphasis is on the primitive programming constructs and structure of each language, not on large-scale quantum software development.

Simultaneously, the theoretical track analyses the features of each language in denotational semantics, focusing on monoidal categories. Via lectures and self-study reading, the course teaches students the basics of dual objects in monoidal categories. Specific attention is paid to the graphical calculus, which makes the topic visually apparent. Via exercise sheets, and their review incorporated into the contact hours, the student learns to graphically manipulate algebraic objects such as monoids and Frobenius structures. They will understand that this still allows perfectly rigorous proofs of correctness, and be able to see the information flow of a protocol that is often hidden behind superfluous details.

Throughout the course, the practical and theoretical material is linked. We will study notions typically thought to belong to quantum theory, such as entanglement, no-cloning, teleportation, and complementarity. It will turn out some of these notions also make perfect sense in other settings. For example, the very same categorical description of quantum teleportation also describes classical encryption with a one-time pad. We identify characteristics of classical and quantum information, aiming to equip students to choose the right tools and techniques for future problems they may encounter.
Entry Requirements (not applicable to Visiting Students)
Pre-requisites Co-requisites
Prohibited Combinations Students MUST NOT also be taking Introduction to Quantum Programming and Semantics (UG) (INFR11243) OR Categories and Quantum Informatics (UG) (INFR11232) OR Categories and Quantum Informatics (INFR11128)
Other requirements MSc students must register for this course, while Undergraduate students must register for INFR11243 instead.

This course assumes the following prerequisite knowledge:
* Basic knowledge of linear algebra, vector spaces, and complex numbers, as well as experience with mathematical abstraction
* Basic programming skills in both imperative and functional languages (such as Python and Haskell) equivalent to 2 semesters of introductory programming.
Information for Visiting Students
Pre-requisitesAs above.
High Demand Course? Yes
Course Delivery Information
Academic year 2023/24, Available to all students (SV1) Quota:  None
Course Start Semester 2
Timetable Timetable
Learning and Teaching activities (Further Info) Total Hours: 100 ( Lecture Hours 18, Seminar/Tutorial Hours 5, Supervised Practical/Workshop/Studio Hours 3, Summative Assessment Hours 2, Programme Level Learning and Teaching Hours 2, Directed Learning and Independent Learning Hours 70 )
Assessment (Further Info) Written Exam 70 %, Coursework 30 %, Practical Exam 0 %
Additional Information (Assessment) Exam 70%
Coursework 30%
Feedback Non-assessed exercise sheets will prepare the student for the exam, with the opportunity for feedback during tutorials. Programming exercises will be released all at once, with submission deadline all at the end of the course. Non-compulsory lab sessions will give the student opportunity to work on them in a structured environment. One programming exercise will not count towards the grade, but will instead be given formative feedback on halfway the course.
Exam Information
Exam Diet Paper Name Hours & Minutes
Main Exam Diet S2 (April/May)Introduction to Quantum Programming and Semantics2:00
Learning Outcomes
On completion of this course, the student will be able to:
  1. identify features of current quantum programming platforms
  2. model quantum protocols categorically and prove their correctness graphically
  3. apply and prove basic results about monoidal categories
  4. fluently manipulate the graphical calculus for compact categories
  5. differentiate between categories modelling classical and quantum informatics
Reading List
Categories for Quantum Theory: An Introduction by C. Heunen and J. Vicary, Oxford University Press, 2019.
Additional Information
Graduate Attributes and Skills Obtain, organise, and use factual, theoretical, and/or hypothetical information in problem solving
Make generalisations and predictions
Present and evaluate arguments, information and ideas routine to the subject
Undertake critical analysis, evaluation and synthesis of ideas and concepts within the common understandings of the subject
KeywordsCategory Theory,Quantum Computing,Semantics,QPS
Course organiserDr Christiaan Heunen
Tel: (0131 6)50 2865
Course secretaryMs Lindsay Seal
Tel: (0131 6)50 2701
Help & Information
Search DPTs and Courses
Degree Programmes
Browse DPTs
Humanities and Social Science
Science and Engineering
Medicine and Veterinary Medicine
Other Information
Combined Course Timetable
Important Information