Module Specification

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.
1. Module Title Programming Language Paradigms
2. Module Code COMP105
3. Year Session 2023-24
4. Originating Department Computer Science
5. Faculty Fac of Science & Engineering
6. Semester First Semester
7. CATS Level Level 4 FHEQ
8. CATS Value 15
9. Member of staff with responsibility for the module
Dr JS Fearnley Computer Science John.Fearnley@liverpool.ac.uk
10. Module Moderator
11. Other Contributing Departments  
12. Other Staff Teaching on this Module
Mrs J Birtall School of Electrical Engineering, Electronics and Computer Science Judith.Birtall@liverpool.ac.uk
13. Board of Studies
14. Mode of Delivery
15. Location Main Liverpool City Campus
    Lectures Seminars Tutorials Lab Practicals Fieldwork Placement Other TOTAL
16. Study Hours 30

    10

    40
17.

Private Study

110
18.

TOTAL HOURS

150
 
    Lectures Seminars Tutorials Lab Practicals Fieldwork Placement Other
19. Timetable (if known)            
 
20. Pre-requisites before taking this module (other modules and/or general educational/academic requirements):

 
21. Modules for which this module is a pre-requisite:

 
22. Co-requisite modules:

 
23. Linked Modules:

 
24. Programme(s) (including Year of Study) to which this module is available on a mandatory basis:

25. Programme(s) (including Year of Study) to which this module is available on a required basis:

26. Programme(s) (including Year of Study) to which this module is available on an optional basis:

27. Aims
 

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

 
28. Learning Outcomes
 

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

 

(LO2) Apply recursion to solve algorithmic tasks.

 

(LO3) Apply common functional programming idioms such as map, filter and fold.

 

(LO4) Write programs using a functional programming language.

 

(S1) Time and project management - Personal organisation

 

(S2) Communication (oral, written and visual) - Report writing

 

(S3) Critical thinking and problem-solving - Critical analysis

 

(S4) Numeracy/computational skills - Reason with numbers/mathematical concepts

 
29. Teaching and Learning Strategies
 

Teaching Method 1 - Lecture
Description: Three lectures per week during the semester.
Attendance Recorded: Yes

Teaching Method 2 - Laboratory Work
Description: One laboratory session per week
Attendance Recorded: Yes

Standard on-campus delivery
Teaching Method 1 - Lecture
Description: Mix of on-campus/on-line synchronous/asynchronous sessions
Teaching Method 2 - Laboratory Work
Description: On-campus synchronous sessions

 
30. Syllabus
   

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

 
31. Recommended Texts
  Reading lists are managed at readinglists.liverpool.ac.uk. Click here to access the reading lists for this module.
 

Assessment

32. EXAM Duration Timing
(Semester)
% of
final
mark
Resit/resubmission
opportunity
Penalty for late
submission
Notes
   
33. CONTINUOUS Duration Timing
(Semester)
% of
final
mark
Resit/resubmission
opportunity
Penalty for late
submission
Notes
  (105) Programming Assignment 3 There is a resit opportunity. Standard UoL penalty applies for late submission. This is an anonymous assessment. Assessment Schedule (When) :First semester 0 25
  (105.2) Programming Assignment 1 There is a resit opportunity. Standard UoL penalty applies for late submission. This is an anonymous assessment. Assessment Schedule (When) :First semester 0 25
  (105.3) Programming Assignment 2 There is a resit opportunity. Standard UoL penalty applies for late submission. This is an anonymous assessment. Assessment Schedule (When) :First semester 0 25
  (105.1) Class Test There is a resit opportunity. Non-standard penalty applies for late submission - Late submission is not possible for a class test. This is an anonymous assessment. Assessment 0 25