Skip to main content

Unit information: Advanced Topics in Programming Languages (Teaching Unit) in 2025/26

Please note: Programme and unit information may change as the relevant academic field develops. We may also make changes to the structure of programmes and assessments to improve the student experience.

Unit name Advanced Topics in Programming Languages (Teaching Unit)
Unit code COMSM0067
Credit points 0
Level of study M/7
Teaching block(s) Teaching Block 1 (weeks 1 - 12)
Unit director Dr. Wang
Open unit status Not open
Units you must take before you take this one (pre-requisite units)

COMS10016 Imperative and Functional Programming.
COMS10018 Object Oriented Programming and Algorithms or equivalent.

COMS20007 Programming Languages and Computation or equivalent.

Units you must take alongside this one (co-requisite units)

Assessment Unit COMSM0158 Advanced Topics in Computer Science

Units you may not take alongside this one

None

School/department School of Computer Science
Faculty Faculty of Engineering

Unit Information

Why is this unit important?

This unit provides students with a comprehensive understanding of the fundamental theory of programming languages. We will define language concepts precisely based on their static and dynamic semantics, which can be used as tools for analysing and proving properties of languages, and for combining and comparing language features.

Students completing the unit will gain an understanding of the methods that are directly applicable to the implementation of programming languages, and the reasoning and verification of language properties.

How does this unit fit into your programme of study

This is an optional unit that can be taken during TB-1 of Year 4. This positioning allows students to make use of fundamental skills and knowledge developed during the first 3 years of their study. This unit is also delivered around the time that students are selecting their final year project topics, so can have an influence on the nature of projects undertaken.

Your learning on this unit

An overview of content

  • Induction over terms and derivations
  • Statics and type systems
  • Structural rules
  • Dynamics and reduction
  • Type safety
  • Calling mechanisms (call-by-name and call-by-value)
  • Effects (e.g. printing, memory)
  • Imperative programming


How will students, personally, be different as a result of the unit

Students will be equipped with the knowledge of how programming languages – the primary tool in Computer Science – can be dissected into basic concepts. This insight and understanding will undoubtedly make students more conscious of how real-world programming languages are structured, and thus better programmers. This unit will also prepare students for research in programming languages.

Learning Outcomes

At the end of the unit students will be able to:

  1. Prove theorems by induction.
  2. Specify static typing rules for a variety of programming constructs.
  3. Specify the dynamics of program evaluation for a variety of programming constructs.
  4. Prove theorems about the relation between the statics and dynamics, including type safety.

How you will learn

Teaching will take place over seven weeks including lectures, practical activities supported by drop-in sessions, problem sheets, self-directed exercises and possible group-work.

How you will be assessed

Tasks which help you learn and prepare you for summative tasks (formative):

There are weekly problem sheets for this unit. These contain questions that are very similar to the final exam. Feedback will be provided to students who hand in their solutions.


Tasks which count towards your unit mark (summative):
This unit will contribute 50% towards the 20cp Advanced Topics in Computer Science exam, (equivalent to 1 hour of exam time) that will be sat during the winter examination period. This closed-book exam will assess all learning outcomes.


When assessment does not go to plan
Students will retake the relevant assessment in a like-for-like fashion in accordance with the University rules and regulations.

Resources

If this unit has a Resource List, you will normally find a link to it in the Blackboard area for the unit. Sometimes there will be a separate link for each weekly topic.

If you are unable to access a list through Blackboard, you can also find it via the Resource Lists homepage. Search for the list by the unit name or code (e.g. COMSM0067).

How much time the unit requires
Each credit equates to 10 hours of total student input. For example a 20 credit unit will take you 200 hours of study to complete. Your total learning time is made up of contact time, directed learning tasks, independent learning and assessment activity.

See the University Workload statement relating to this unit for more information.

Assessment
The Board of Examiners will consider all cases where students have failed or not completed the assessments required for credit. The Board considers each student's outcomes across all the units which contribute to each year's programme of study. For appropriate assessments, if you have self-certificated your absence, you will normally be required to complete it the next time it runs (for assessments at the end of TB1 and TB2 this is usually in the next re-assessment period).
The Board of Examiners will take into account any exceptional circumstances and operates within the Regulations and Code of Practice for Taught Programmes.

Feedback