Computer Science modules

Year oneYear two | Year three

Year one

Block 1: Database Design and Implementation

Structured data, held in relational databases, accessed via SQL, supports the information storage requirements of many companies, organisations, and on-line businesses. In this module the student will learn the fundamentals of how to design the structure of data within a relational database, how to interact with data within the database, and how to protect the data within the database.   

The methods of delivery during this block will include workshops used to introduce and demonstrate key practical and theoretical concepts. Practical programming skill will be gained in regular laboratory sessions. Some sessions may be used for consolidation, revision, and to discuss solutions to practical problems.  

  • Workshop: 42 hours  
  • Practical: 20 hours  
  • Seminar: 4 hours  
  • Self-directed study: 76 hours  
  • Consolidation: 68 hours  
  • Reading: 30 hours  
  • Assessment: 60 hours 

Block 2: Fundamental Concepts of Computer Science

This module introduces students to fundamental concepts in computer science in relevant areas of mathematics (including propositional logic, set notation, etc); software modelling; the software lifecycle; requirements capture; user interface design; and the foundations of ethical thinking. These topics can then be applied and further developed throughout the course.   

The methods of delivery during this block include workshops used to introduce the main topics. To gain full advantage of this module students will hone their skills and understanding by working through progressive exercises ranging from drill to problem solving tasks. The exercises provide the basis of tutorial seminar and laboratory work. In seminars students receive feedback on their progress and engage in discussions on issues arising from the exercises.  

  • Workshop: 42 hours  
  • Seminar: 24 hours  
  • Self-directed study: 66 hours  
  • Consolidation: 58 hours  
  • Reading: 30 hours  
  • Revision: 20 hours  
  • Assessment: 60 hours  

Block 3: Computer Programming

Computer programming requires the analysis of a problem, the production of requirements, and their translation into a design that can be executed on a computer. This module introduces the skills required to develop a computer program to solve a given problem and does so from the perspective of designing trustworthy software with an emphasis on sound coding principles and unit testing.   

The methods of delivery during this block will include workshops used to introduce and demonstrate key practical and theoretical concepts. Practical programming skill will be gained in regular laboratory sessions. Some sessions may be used for consolidation, revision, and to discuss solutions to practical problems.  

  • Workshop: 24 hours  
  • Practical: 42 hours  
  • Self-directed study: 76 hours  
  • Consolidation: 68 hours  
  • Reading: 30 hours  
  • Assessment: 60 hours

Block 4: Operating Systems and Networks

This module is designed to provide a foundation in computer architecture, operating systems, and computer networks. Covering theoretical foundations, computer hardware, systems software, computer networks and security issues.  

The methods of delivery during this block will include lectures which will be used to introduce the main theoretical elements and laboratory sessions for practical application and experimentation.  

  • Workshop: 24 hours  
  • Practical: 42 hours  
  • Self-directed study: 66 hours  
  • Consolidation: 68 hours  
  • Reading: 40 hours  
  • Assessment 60 hours  

Year two

Block 1: Object Oriented Design and Development

This module focuses on Object-Oriented (OO) library and application development. Library development will enable students to design, implement, and test medium scale software systems using an object-oriented approach. Meanwhile, application development will use extensive library packages provided by the Java SDK so that students are comfortable in navigating and making use of a variety of domains such as Collections, Input/Output and Graphical User Interfaces.   

The methods of delivery during this block will include workshops to introduce and demonstrate key practical and theoretical concepts and practical programming skill will be gained in regular laboratory sessions.  

  • Workshop 30 hours  
  • Practical 42 hours  
  • Self-directed study 70 hours  
  • Consolidation 68 hours  
  • Reading 30 hours  
  • Assessment 60 hours 

Block 2: Data Structures and Algorithms

This module introduces a variety of data structures and algorithms for both sequential and parallel execution. Classical data structures will be introduced (including stacks, queues, lists, trees, and hash tables) and algorithms for searching and sorting. The performance characteristics of these data structures and algorithms will be explained. Specific coding issues will also be considered such as modularity, genericity, quality, assignment, mutable and immutable objects.   

The methods of delivery during this block will include workshops to introduce and demonstrate key practical and theoretical concepts and practical programming skill will be gained in regular laboratory sessions.  

  • Workshop: 24 hours  
  • Practical: 42 hours  
  • Self-directed study: 76 hours  
  • Consolidation: 68 hours  
  • Reading: 30 hours  
  • Assessment: 60 hours 

Block 3: Web Application Development

This module provides a thorough grounding in the rapidly evolving area of web technologies. With equal focus on user interface design on the ‘client-side’ or ‘front-end’ and on security and persistence in ‘server-side’ or ‘back-end’ scripting. The module covers crucial design principles, information architecture and usability factors as well as standards compliance, accessibility, authentication/authorisation and security.   

The methods of delivery during this block will include workshops to introduce and demonstrate key practical and theoretical concepts and practical programming skill will be gained in regular laboratory sessions.  

  • Workshop: 24 hours  
  • Practical: 42 hours  
  • Self-directed study: 76 hours  
  • Consolidation: 68 hours  
  • Reading: 30 hours  
  • Assessment: 60 hours  

Block 4: Agile Development Team Project

This module is an opportunity for students to engage in a constrained work-place simulation based on agile software development. Students working in teams of 3 to 5 will initially identify a system of sufficient size to be distributed equally among all members. Each team member might take individual ownership of the development of 2-3 classes from initial inception to completion providing CRUD functionality.  

The methods of delivery during this block will include workshops, seminars to introduce and discuss ethical issues, and practical programming skills will be gained in regular laboratory sessions. Some workshops and practical laboratory sessions may be used for consolidation and to discuss solutions to practical and ethical problems.  

  • Workshop: 42 hours  
  • Practical: 20 hours  
  • Seminar: 4 hours  
  • Self-directed study: 76 hours  
  • Consolidation: 78 hours  
  • Reading: 20 hours  
  • Assessment: 60 hours 

Year three

Block 1: Software Development: Methods and Standards

This module immerses the students in the methodological, regulation environment in which software systems are developed, by exploring types of application development: module, AI, robotic process automation and games systems. With emphasis on current agile approaches, in particular Scrum and DevOps, students develop understanding of a range of agile and traditional methodologies and engage with agile project management tools (e.g. Jira and Clickup). The module incorporates the context of standards with particular reference to standards in security (ISO27001) and risk management (ISO27005).   

The methods of delivery during this block include lectures will be used to introduce and demonstrate key practical and theoretical concepts and seminars will be used to discuss and further reinforce these.  

  • Lecture: 24 hours  
  • Seminar: 42 hours  
  • Self-directed study: 86 hours  
  • Consolidation: 68 hours  
  • Reading: 40 hours  
  • Assessment: 60 hours 

Block 2: Big Data and Machine Learning

The module will focus on machine learning (ML) and its application to Big Data in a “taster-like” fashion. That is, ML will be applied to solve analytics problems using appropriate tools e.g., Apache Spark that avail ML libraries. As this is done ML algorithms will be introduced and then applied. The focus is therefore not so much on the technical details of the algorithms but rather the ability to implement them and use them within analytics. The module covers supervised and unsupervised learning techniques with a specific application to data mining.  

Lectures will be used to discuss concepts, theories, and applications including machine learning algorithms and data analytics tools. Practical sessions will be used to undertake practical aspects of the module to solve selected data analytics problems from a wide range of areas.  

  • Lecture/Workshop: 24 hours  
  • Seminar: 7 hours  
  • Practical: 35 hours  
  • Self-directed study: 70 hours  
  • Consolidation: 64 hours  
  • Reading: 40 hours  
  • Assessment: 60 hours  

Block 3 / 4: Development Project

This project provides students with the opportunity to demonstrate practical and analytical skills present in their programme of study; to work innovatively and creatively; to synthesise information, ideas, and practices to provide a quality solution, together with an evaluation of that solution.  

The project is primarily self-directed with guidance and support from an assigned supervisor.  

  • Lecture: 4 hours  
  • Supervisor meetings: 5 hours   
  • Self-directed study: 231 hours   
  • Assessment: 60 hours 

Optional modules (choose one):

Block 3 / 4: Functional Programming

This module provides you with the fundamental concepts of FP and looks at how these have been provided within a modern programming language. You will gain practical experience, using a modern programming language to solve a practical problem using FP techniques. The core principles are transferrable between functional programming languages.   

The methods of delivery during this block will include workshops to introduce and demonstrate key practical and theoretical concepts and practical programming skill will be gained in regular laboratory sessions.  

  • Workshop: 30 hours  
  • Practical: 42 hours  
  • Self-directed study: 64 hours  
  • Consolidation: 64 hours  
  • Reading: 40 hours  
  • Assessment: 60 hours 

Block 3 / 4: Advanced Web Development

The module aims to further develop key concepts and techniques for designing, evaluating and implementing interactive web applications. Providing a thorough grounding in the rapidly evolving area of full-stack web development, incorporating front-end web technologies, back-end server-side scripting, and data persistence techniques. The module also considers how information can be accessed and presented from remote sources via web-service protocols.   

The module will comprise lectures and reading about different aspects of human computer interaction, and a combination of paper-based tutorial and computer-based lab activities practising the use of a range of different techniques for understanding requirements, developing designs and performing usability evaluations.   

The methods of delivery during this block will include workshops to introduce and demonstrate key practical and theoretical concepts and practical programming skill will be gained in regular laboratory sessions.  

  • Workshop: 24 hours  
  • Practical: 42 hours  
  • Self-directed study: 76 hours  
  • Consolidation: 68 hours  
  • Reading: 30 hours  
  • Assessment: 60 hours  

Block 3 / 4: Fuzzy Logic and Inference Systems

Fuzzy logic is a mathematical model for handling uncertainty, it is able to provide a means in order to successfully inference from abstract and subjective notions. Fuzzy logic adopts the perspective that the world and humanistic understanding are inherently vague and not precise. This module will present the core and fundamental concepts of fuzzy logic, from theory to application. The ability to create specialised fuzzy inference systems will be achieved and so too will the ability to articulate on thought processes needed to create such systems.  

The module will make heavy use of practical lab work, where the students will be able to refine their understanding of the topics covered. The labs will also allow for the students to start on the coursework, which will be evolve after each session, incorporating more fuzzy theory.  

  • Lectures: 13 hours  
  • Practical: 52 hours  
  • Self-directed study: 19 hours  
  • Assessment: 216 hours 

Block 3 / 4: Privacy and Data Protection

There continues to be a growth of databases holding personal and other sensitive information in multiple formats including text, pictures and sound. The scale of data collected, its type and the scale and speed of data exchange have all changed with the advent of ICT. Whilst the potential to breach privacy continues to increase organisations are subjected to a considerable amount of legislation governing privacy and data protection. This module examines the balance between maintaining business effectiveness, legal compliance and professional practice in the field of IT/IS.

A range of learning strategies will be used to facilitate student learning in this block module.  Sessions will be used to introduce major topics drawing together material from a variety of sources.

Students will be encouraged to read widely, using the reading list as a starting point and library resources and the internet for further information. The module website will provide essential module information such as a week-by-week teaching plan.  

  • Lecture: 40 hours   
  • Seminar: 90 hours   
  • Self-directed study: 90 hours   
  • Assessment: 80 hours  

Note: All modules are subject to change in order to keep content current.