Undergraduate Course: Topics in Programming Languages and Semantics (UG) (INFR11305)
Course Outline
| School | School of Informatics |
College | College of Science and Engineering |
| Credit level (Normal year taken) | SCQF Level 11 (Year 4 Undergraduate) |
Availability | Available to all students |
| SCQF Credits | 20 |
ECTS Credits | 10 |
| Summary | This course follows the delivery and assessment of Topics in Programming Languages and Semantics (INFR11302) exactly. Undergraduate students must register for this course, while MSc students must register for INFR11302 instead. |
| Course description |
This course follows the delivery and assessment of Topics in Programming Languages and Semantics (INFR11302) exactly. Undergraduate students must register for this course, while MSc students must register for INFR11302 instead.
|
Entry Requirements (not applicable to Visiting Students)
| Pre-requisites |
It is RECOMMENDED that students have passed
Elements of Programming Languages (INFR10061) OR
Introduction to Theoretical Computer Science (INFR10059)
|
Co-requisites | |
| Prohibited Combinations | |
Other requirements | This course is open to all Informatics students including those on joint degrees. For external students where this course is not listed in your DPT, please seek special permission from the course organiser.
This course requires practical mathematical application of discrete structures (trees, graphs, induction), logic and symbolic reasoning (inference rules, rewriting systems) and problem solving. For example, topics may require you to define or study the properties of a type system for tracking the ways different variables are used in a program. Some of the required details can be learned during the course, but some familiarity with these mathematical topics (or the ability to quickly acquire it through self study) is required
We assume that students have taken a basic introduction to programming languages, compilers, and/or theoretical computer science. |
Information for Visiting Students
| Pre-requisites | This course requires practical mathematical application of discrete structures (trees, graphs, induction), logic and symbolic reasoning (inference rules, rewriting systems) and problem solving. For example, topics may require you to define or study the properties of a type system for tracking the ways different variables are used in a program. Some of the required details can be learned during the course, but some familiarity with these mathematical topics (or the ability to quickly acquire it through self study) is required
We assume that students have taken a basic introduction to programming languages, compilers, and/or theoretical computer science. |
| High Demand Course? |
Yes |
Course Delivery Information
|
| Academic year 2026/27, Available to all students (SV1)
|
Quota: None |
| Course Start |
Semester 2 |
Timetable |
Timetable |
| Learning and Teaching activities (Further Info) |
Total Hours:
200
(
Lecture Hours 20,
Seminar/Tutorial Hours 16,
Summative Assessment Hours 2,
Programme Level Learning and Teaching Hours 4,
Directed Learning and Independent Learning Hours
158 )
|
| Assessment (Further Info) |
Written Exam
70 %,
Coursework
30 %,
Practical Exam
0 %
|
| Feedback |
Targeted individual feedback will be provided on some of the formative work provided throughout the materials. Students are expected to engage with the course content in weekly tutorial sessions with teaching assistants, and to discuss any unanswered questions on the class forum. |
| Exam Information |
| Exam Diet |
Paper Name |
Minutes |
|
| Main Exam Diet S2 (April/May) | Topics in Programming Languages and Semantics INFR11302 and INFR11305 | 120 | |
Learning Outcomes
On completion of this course, the student will be able to:
- identify how an aspect of an advanced programming languages topic applies to a given applied problem
- use programming languages techniques to model, reason about, or formally verify properties of a system
- critically compare and contrast alternative choices or variants of methods or approaches in the area
- identify the technical, ethical and societal implications, including both benefits and risks, of different approaches to programming language design and implementation
|
Reading List
Programming language foundations in Agda (Wadler, Kokke)
Practical foundations of programming languages (Harper)
Introduction to Process Algebra (Fokkink) |
Additional Information
| Graduate Attributes and Skills |
Apply critical analysis, evaluation and synthesis to issues, or issues that are informed by forefront developments in the subject / discipline / sector.
Identify, conceptualise, and define new and abstract problems and issues.
Develop original and creative responses to problems and issues.
Critically review, consolidate and extend knowledge, skills, practices and thinking in subject / discipline / sector.
Deal with complex issues and make informed judgements in situations in the absence of complete or consistent data / information. |
| Keywords | Programming languages,Concurrency,Verification,Type theory,Type inference,Semantics |
Contacts
| Course organiser | Dr Ohad Kammar
Tel:
Email: ohad.kammar@ed.ac.uk |
Course secretary | Mr Lachlan Boyd
Tel:
Email: lboyd@ed.ac.uk |
|
|