The module introduces students to fundamental concepts underpinning programming languages and to reasoning about program behaviour.
Understanding the foundations for formal descriptions of programming languages. Relating abstract concepts in the design of programming languages with real languages in use and pragmatic considerations. Exposure to a variety of languages through presentations by peers and evidence from literature surveys.
This is an indicative module outline only to give an indication of the sort of topics that may be covered. Actual sessions held may differ.
Scope and binding, untyped programming, type systems, type inference, evaluation relations, higher-order types, references, control operators, subtyping, recursive types, polymorphism.
By the end of the module, students should be able to:
Please see Talis Aspire link for most up to date list.
View reading list on Talis Aspire
Literature review and critical analysis of a language of choice, and presenting both subjective and objective conclusions on the position of the language within the wider programming language landscape.
Putting formal logic systems into practice.
Understanding practical implementations of type systems.
Understanding issues in dynamic and static binding.
Survey of modern programming languages.
Formal Reasoning skills,
Library/ Literature Review skills
Technical Writing skills
Type | Required |
---|---|
Lectures | 20 sessions of 1 hour (13%) |
Supervised practical classes | 8 sessions of 1 hour (5%) |
Online learning (independent) | 10 sessions of 1 hour (7%) |
Private study | 112 hours (75%) |
Total | 150 hours |
Revision of the foundations and semantics off programming languages from recommended textbooks.
Library research: examining language landscape to choose language and papers to be used as subject of assignment.
Preparation of essays and presentation.
No further costs have been identified for this module.
You do not need to pass all assessment components to pass the module.
Students can register for this module without taking any assessment.
Weighting | Study time | Eligible for self-certification | |
---|---|---|---|
Written essay on programming language | 30% | No | |
Up to 8 pages, on a programming language chosen by the student, supported by referencing two publications focused on the chosen language. This assignment is worth more than 3 CATS and is not, therefore, eligible for self-certification. |
|||
In-person Examination | 70% | No | |
CS349 Exam
|
Weighting | Study time | Eligible for self-certification | |
---|---|---|---|
On-campus Examination - Resit | 100% | No | |
CS349 resit examination
|
Written feedback on assignments.
This module is Optional for:
This module is Option list A for:
This module is Option list B for: