SHE Level 3
SCQF Credit Points 20.00
ECTS Credit Points 10.00
Module Code M3I326704
Module Leader Martin Gallacher
School School of Computing, Engineering and Built Environment
Subject Computing
  • B (January start)

Summary of Content

This module develops an understanding of common ways of structuring data to suit the needs of an application. Standard algorithms are investigated and a range of functional programming ideas are utilised. An introduction to simple cipher algorithms is included. The module aims to develop students as programmers who can select appropriate data structures, algorithms and techniques to best meet the requirements of a specific programming problem. The percentage of Work Based Learning for this module, as represented by the proportion of the Activity Types which take place off campus, is 80%. The percentage of Work Based Assessment for this module is 10%.


Data Structures: lists; stacks; queues; sets; maps; trees; graphs; design patterns Algorithms: searching; sorting; hashing; traversal; shortest path; recursive; compression; Big O; ciphers: e.g. substitution and transposition types Design patterns: singleton; builder; factory; adapter; iterator; locator; comparator; decorator; template method Comparison of programming paradigms: Object-oriented; Functional; Procedural; Declarative; Logic; Classifying languages Functional programming: Lambda expressions; first-class functions; higher-order functions; closures; folding; pattern matching; Algebraic Data Types

Learning Outcomes

On successful completion of this module, students should be able to:1. Demonstrate an understanding of fundamental data structures2. Demonstrate an understanding of algorithms commonly used when developing software systems3. Develop and test an application which uses appropriate algorithms and data structures and applies suitable design patterns to implement specified requirements4. Develop and test an application which uses a range of functional programming techniques to implement specified requirements

Teaching / Learning Strategy

Work based Education aims to maximise the direct and digitally mediated contact time with students by practicing teaching and learning strategies that use authentic work based scenarios and encourage action learning, enquiry based learning, problem based learning and peer learning. All these approaches aim to directly involve the students in the process of learning and to encourage sharing of learning between students. The module team will determine the level and accuracy of knowledge acquisition at key points in the delivery, inputting when necessary either directly or with the support of external experts who will add to the authenticity, the credibility and application of the education and learning in the workplace.? The university 'Strategy for Learning' documentation has informed the learning and teaching strategy for this module. The module's material will be introduced through lectures, while practical exercises, based on the lecture material, will be given to students for their laboratory sessions. Full use will be made of GCU Learn to provide Lecture-based and related study materials, along with sample solutions of Laboratory exercises, thus encouraging the development of independent learning and allowing self-reflective feedback on student performance. Staff-based feedback on student performance for submitted work will be provided in line with the University feedback policy, with summative feedback and grades on the coursework assessment utilising GCU Learn. The additional interactive discussion features of GCU Learn will be utilised, as appropriate to the module, to stimulate independent and flexible student learning outwith scheduled class time.

Indicative Reading

Algorithms, Fourth Edition, Sedgewick R. and Wayne K., 2015, Addison Wesley Codeless Data Structures and Algorithms: Learn DSA Without Writing A Single Line Of Code, Subero A., 2020, Apress Algorithms and Data Structures, Wirth N., 1985, Prentice Hall The Art of Computer Programming, Vols. 1-4, Knuth D. E., 2011, Addison-Wesley Functional Programming In Java, Saumont P-Y., 2017, Manning Publications Functional Programming, Simplified, Alexander A., 2017, CreateSpace Independent Publishing Platform

Transferrable Skills

D1 Specialist knowledge and application D2 Critical thinking and problem solving D4 Communication skills, written, oral and listening D5 Numeracy D7 Computer literacy D8 Self confidence, self discipline & self reliance (independent working) D10 Creativity, innovation & independent thinking D15 Ability to prioritise tasks and time management

Module Structure

Activity Total Hours
Practicals (FT) 48.00
Lectures (FT) 24.00
Assessment (FT) 18.00
Independent Learning (FT) 110.00

Assessment Methods

Component Duration Weighting Threshold Description
Course Work 01 n/a 50.00 35% Practically based programming assignment
Course Work 02 n/a 50.00 35% Practically based programming assignment