Skip to main content

Study information

Computer Languages and Representations - 2023 entry

MODULE TITLEComputer Languages and Representations CREDIT VALUE15
MODULE CODEECM2418 MODULE CONVENER Diego Marmsoler (Coordinator)
DURATION: TERM 1 2 3
DURATION: WEEKS 11
Number of Students Taking Module (anticipated) 78
DESCRIPTION - summary of the module content

In this module you will be introduced to some approaches to computation that are in various ways radically different from the imperative and object-oriented approaches you will be familiar with from working with languages such as Python and Java. We will introduce you to two distinct programming language paradigms: Functional Programming (represented by the language Haskell) and Logic Programming (represented by Prolog). You will learn the principles of programming in these styles, and by the end of the module should be able to write simple programs in those languages. In addition, you will also be introduced to the theoretical study of computation, via the theory of formal languages and automata.

A prerequisite for this module is ECM1415 Discrete Mathematics for Computer Science (specifically the part on set theory and logic) and ECM1400 Programming.

AIMS - intentions of the module

The aim of this module is to broaden your appreciation of the computational landscape by introducing you to some practical and theoretical approaches to computation that differ markedly from what you have studied up to now. By following this module you will gain both new practical programming skills and also an understanding of some important theoretical ideas underlying the general nature of computation.

INTENDED LEARNING OUTCOMES (ILOs) (see assessment section below for how ILOs will be assessed)

On successful completion of this module you should be able to:

Module Specific Skills and Knowledge

1. Demonstrate an understanding of the principles of functional programming and read and write simple programs in a functional programming language;
2. Demonstrate an understanding of the principles of logic programming and read and write simple programs in a logic programming language;
3. Explain the hierarchy of formal languages and automata
4. Construct a finite-state automaton to recognise a given finite-state language and determine the language recognised by a given finite automaton.

Discipline Specific Skills and Knowledge

5. Use mathematical and logical-based formalisms in theoretical computer science.

Personal and Key Transferable / Employment Skills and Knowledge

6. critically analyse a problem;
7. systematically break down a problem into its components.
 

 

SYLLABUS PLAN - summary of the structure and academic content of the module

1. Functional programming (e.g., Haskell)


2. Logic Programming (e.g., Prolog)

3. Formal languages and finite-state machines

LEARNING AND TEACHING
LEARNING ACTIVITIES AND TEACHING METHODS (given in hours of study time)
Scheduled Learning & Teaching Activities 42 Guided Independent Study 108 Placement / Study Abroad 0
DETAILS OF LEARNING ACTIVITIES AND TEACHING METHODS
Category Hours of study time Description
Scheduled learning and teaching 22 Lectures
Scheduled learning and teaching 4 Tutorials
Scheduled learning and teaching 16 Practicals (Programming)
Guided independent study 40 Individual assessed work
Guided independent study 68 Private Study

 

ASSESSMENT
FORMATIVE ASSESSMENT - for feedback and development purposes; does not count towards module grade
Form of Assessment Size of Assessment (e.g. duration/length) ILOs Assessed Feedback Method
None      

 

SUMMATIVE ASSESSMENT (% of credit)
Coursework 40 Written Exams 60 Practical Exams 0
DETAILS OF SUMMATIVE ASSESSMENT
Form of Assessment % of Credit Size of Assessment (e.g. duration/length) ILOs Assessed Feedback Method
Functional  and Logic programming assignment 40 40 hours 1, 2, 6, 7 Individual marksheet
Examination 60 2 hours - January Exam  3, 4, 5, 6,7 On request

 

DETAILS OF RE-ASSESSMENT (where required by referral or deferral)
Original Form of Assessment Form of Re-assessment ILOs Re-assessed Time Scale for Re-reassessment
Written Exam Examination (2 hours) 1,2,3,4,5,6,7,8 August Ref/Def Period
Functional and Logic programming assignment Functional and Logic programming assignment 1, 2, 6, 7 August Ref/Def Period

 

RE-ASSESSMENT NOTES

Reassessment will be by coursework and/or written exam in the failed or deferred element only. For referred candidates, the module mark will be capped at 40%. For deferred candidates, the module mark will be uncapped.

RESOURCES
INDICATIVE LEARNING RESOURCES - The following list is offered as an indication of the type & level of
information that you are expected to consult. Further guidance will be provided by the Module Convener

Basic reading:

 

ELE: http://vle.exeter.ac.uk/

 

Web based and Electronic Resources:

 

Other Resources:

  • Module notes given by lecturer(s).

 

Reading list for this module:

Type Author Title Edition Publisher Year ISBN
Set Bramer M Logic Programming with Prolog Springer 2005
Set Hopcroft, J. E.; Motwani, R. and Ullman, J. D. Introduction to Automata Theory, Languages, and Computation 3 Addison-Wesley 2007 978-0321476173
Set Hutton G Programming in Haskell Cambridge University Press 2007
CREDIT VALUE 15 ECTS VALUE 7.5
PRE-REQUISITE MODULES ECM1415, ECM1400
CO-REQUISITE MODULES
NQF LEVEL (FHEQ) 5 AVAILABLE AS DISTANCE LEARNING No
ORIGIN DATE Tuesday 10th July 2018 LAST REVISION DATE Wednesday 8th February 2023
KEY WORDS SEARCH Formal language, formal specification, RISC, assembly language, logic programming, functional programming

Please note that all modules are subject to change, please get in touch if you have any questions about this module.