Software Engineering modules

Year one | Year 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 as students progress 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: Software Engineering 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

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 

Block 1: Software Development: Methods and Standards

This module immerses the students in the methodological, regulation environment in which software systems are developed, Tis is achieved by exploring for types of application development: module, AI, robotic process automation and games systems. This application classes provide the basis for exploring methodological approaches, with a particular emphasis on current agile approaches, in particular Scrum and DevOps. The different needs and emphasis of different applicant classes are considered. Within these context the methodological evolution required in scaling, in embedding in security by design and in integration are considered. The module incorporates the context of standards with particular reference to standards in security (ISO27001) and risk management (ISO27005). Practical exercises include an engagement with current agile project management tools (e.g. Jira and Clickup).  

Students develop an understanding of a range of agile and traditional methodologies and consider the debates, ambiguity and uncertainty in their application.   

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

 

Block 2: Mobile App Development and Big Data

Module covers mobile computing, mobile communications, and mobile application development. The developments in mobile computing will be described and the significance of mobile computing discussed. Mobile application development platforms and frameworks will be described, and a suitable platform selected and used to learn mobile application development. Students will learn to develop 

various types of mobile applications and how to publish the resulting applications in relevant app stores. There is also a focus on big data, and different types of data storage solutions in the context of mobile applications. Additionally, the module considers ethics in relation to AI, big data, and surveillance. 

  • Workshop 20 hours 
  • Practical 35    hours 
  • Lectures: 4  hours 
  • Seminar: 6 hours 
  • Self-directed study: 66 hours 
  • Consolidation: 68 hours 
  • Reading: 40 hours 
  • Assessment: 60 hours 

Block 3 and 4 (choose two of the three options, one for each block):

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. 

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

OR

Advanced Web Development

The module considers how a web application may be designed and implemented in such a way as to reduce the likelihood of unauthorised access to information. This also requires an understanding of the more common forms of browser-based attacks and the coding techniques that can be used to defend against these. 

The module aims to further develop key concepts and techniques for designing, evaluating and implementing interactive web applications.   

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

OR

Embedded Systems and IoT

Embedded systems are becoming more integrated with everyday things like medical device, toys, consumer electronics, among others. The module covers embedded systems and embedded systems programming in an appropriate language such as C, C++, or Java. 

There is also a focus on standards governing IoT and architectures for IoT systems implementation, which will also be explored. 

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