Module Details

The information contained in this module specification was correct at the time of publication but may be subject to change, either during the session because of unforeseen circumstances, or following review of the module at the end of the session. Queries about the module should be directed to the member of staff with responsibility for the module.
Title PROGRAMMING LANGUAGE PARADIGMS
Code COMP105
Coordinator Dr JS Fearnley
Computer Science
John.Fearnley@liverpool.ac.uk
Year CATS Level Semester CATS Value
Session 2017-18 Level 4 FHEQ First Semester 15

Aims

  • To introduce the functional programming paradigm, and to compare and contrast it with the imperative programming paradigm.
  • To explore the common techniques that are employed to solve problems in a functional way.

Learning Outcomes

Describe the imperative and functional programming paradigms including the differences between them.

Apply recursion to solve algorithmic tasks.

Apply common functional programming idioms such as map, filter, reduce and fold.

Write programs using a functional programming language.


Syllabus

  1. An overview of modern programming paradigms.  Imperative and functional programming (3 lectures)
  2. Functional programming: introduction, compiling programs, using the interpreter (2 lectures)
  3. Types in functional programming: tuples, lists, type inference, pattern matching (3 lectures)
  4. Recursion: Using recursion to solve problems in a functional way (8 lectures)
  5. Models of execution: eager and lazy evaluation (2 lect ures)
  6. Higher-order functions: currying, lambda functions, function composition (3 lectures)
  7. Common functional programming idioms: map, filter, reduce, fold, etc. (6 lectures)
  8. Non-pure aspects of functional programming: I/O, manipulating files (3 lectures)

Teaching and Learning Strategies

Lecture - Three lectures per week during the semester.

Laboratory Work - One laboratory session per week


Teaching Schedule

  Lectures Seminars Tutorials Lab Practicals Fieldwork Placement Other TOTAL
Study Hours 30
Three lectures per week during the semester.
    10
One laboratory session per week
    40
Timetable (if known)              
Private Study 110
TOTAL HOURS 150

Assessment

EXAM Duration Timing
(Semester)
% of
final
mark
Resit/resubmission
opportunity
Penalty for late
submission
Notes
Unseen Written Exam  1 hour  First semester, at some point   25  Yes  Non-standard penalty applies  Class Test Non-standard penalty applies for late submission, Late submission is not possible for a class test. Notes (applying to all assessments) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Lab based resit exam will replace CA components, the Learning Outcomes will be covered in the resit exam. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Practical assessment is employed for both formative assessment and summative assessment. Students will get short formative feedback on a weekly basis from the module demonstrators during tutorial / lab sessions. More detailed summative and formative feedback will be returned following assessment of the continuously assessed (CA) work. 
CONTINUOUS Duration Timing
(Semester)
% of
final
mark
Resit/resubmission
opportunity
Penalty for late
submission
Notes
Coursework  10 hours  First semester  25  Yes  Standard UoL penalty applies  Programming Assignment 1 
Coursework  10 hours  First semester  25  Yes  Standard UoL penalty applies  Programming Assignment 2 
Coursework  10 hours  First semester  25  Yes  Standard UoL penalty applies  Programming Assignment 3 

Recommended Texts

Reading lists are managed at readinglists.liverpool.ac.uk. Click here to access the reading lists for this module.
Explanation of Reading List: