Healthcare Computing - COMP3360

Looking for a different module?

Module delivery information

This module is not currently running in 2024 to 2025.

Overview

This module shows students what trade-offs are involved in designing a programming language, and how those trade-offs ultimately influence programmer productivity. The module starts with a quick, example-based introduction to the basics of programming languages. It then continues with a series of problems involved in the design of several programming languages.
As an example, the students will be shown the design difference between imperative languages with state and functional programming languages with types and general recursion. These will form the basis to construct more involved programming languages and realistic, e.g. non-determinism, polymorphism, effects and exceptions.
Also, they will be taught how to translate the mathematical description of a programming language into its corresponding implementation.
Indicative examples are:
• Implementation of interpreters for C-like and Haskell-like languages.
• Problem solving. The problems will involve concepts such as parsing, evaluation, trees, graphs, memoization, randomization.
• Adding Language features: first order functions, polymorphism, effects, exceptions, types, algebraic data types.

Details

Contact hours

Total contact hours: 32
Private study hours: 118
Total study hours: 150

Method of assessment

Assessment methods
Programming Assignment (30%)
Participatory Exercises (15%)
Paper Presentation (25%)
Examination 2 hours (30%)

Indicative reading

Winskel, G. (1993) The Formal Semantics of Programming Languages: An Introduction. MIT Press
Bird, R., Gibbons J. (2020). Algorithm Design with Haskell. Cambridge University Press
Bird, R. (2014). Thinking Functionally with Haskell, Cambridge University Press.
Hutton, G. (2016) Programming in Haskell, 2nd edition. Cambridge University Press
Krishnamurthi, S. (2015) [available for free online]. Programming Languages: Application and Interpretation.
Streicher, T. (2006) Domain-Theoretic Foundations of Functional Programming. World Scientific Publishing Company

See the library reading list for this module (Medway)

Learning outcomes

The intended subject specific learning outcomes.
On successfully completing the module students will be able to:
1 Describe the behaviour of programs written in a small imperative and functional programming language using operational semantics
2 Translate these ideas from theory to practice by implementing an interpreter for the language
3 Adding basic features to a base language.
4 Writing algorithms using imperative (while loops) and functional (recursive operators) languages.

The intended generic learning outcomes.
On successfully completing the module students will be able to:
1 Demonstrate comprehension of the trade-offs involved in design-choices.
2 Make effective use of IT facilities for solving problems.
3 Manage their own learning and development, through self-directed study and working on continuous assessment.

Notes

  1. ECTS credits are recognised throughout the EU and allow you to transfer credit easily from one university to another.
  2. The named convenor is the convenor for the current academic session.
Back to top

University of Kent makes every effort to ensure that module information is accurate for the relevant academic session and to provide educational services as described. However, courses, services and other matters may be subject to change. Please read our full disclaimer.