Modules

This module introduces students to developing applications for mobile devices on a major platform such as Android or iOS. This includes mobile device specific aspects such as working with location services, SDKs and libraries, making network requests, concurrency and dealing with resource limitations.

From a programming theory and application perspective, the module will consider, working with and further developing existing code, including the refactoring process, design patterns, the SOLID principles andwill  introduce students to the fundamentals of functional programming. Students will also consider the differing features of programming languages (such as type systems)

The module offers a comprehensive exploration of design thinking and its integration with human-centred design principles and practices to realise highly usable interactive systems. By the end of the module, students will be equipped to design innovative and user-friendly digital products and services, balancing business objectives with user satisfaction. This is supported by a focus on collaboration and teamwork, ensuring that the practices and processes of the industry are reflected. Over its duration, the module will engage with topics including, but not limited to, the following:

  • Human-centred design and ISO 9241-210
  • Balancing business goals with user needs
  • UX research
  • Experience mapping
  • Design thinking
  • Information architecture
  • Progressive enhancement
  • User interface design techniques
  • Defining inclusive design and accessibility
  • Style-guides and specifications for developers
  • Design sprints for software innovation
  • User testing and evaluation

This module offers an in-depth exploration of artificial intelligence (AI) and its transformative role in the development of advanced software systems. It introduces key theoretical approaches and practical techniques for designing and deploying intelligent technologies, empowering you with the skills to build AI-driven solutions.

Key topics covered include:

  • Introduction to Artificial Intelligence: Understanding the foundations of AI and its significance in modern software development.
  • Theoretical Approaches to AI: Exploring algorithms and models that underpin intelligent systems, such as decision trees, neural networks, and reinforcement learning.
  • Practical AI Implementation: Gaining hands-on experience with AI techniques, including machine learning, natural language processing, and computer vision, through coding exercises and projects.
  • Designing and Deploying Intelligent Systems: Examining methods for building robust, scalable, and ethically sound AI technologies.
  • AI in Various Domains: Critically evaluating how AI is applied across industries such as business, healthcare, education, law, government, and scientific research, along with the ethical and societal implications of these applications.

This module blends theory with practical application, equipping you to develop intelligent systems and critically assess their impact in a wide range of real-world contexts.

The Robotics module provides an introduction to the foundational principles of robotics, exploring the theoretical aspects that underpin the design, application, and ethical considerations of robotic systems.

You will begin by examining the fundamental question: What is a robot? This includes understanding the diverse applications of robots across industries and their role in society. The module also delves into the ethical implications of robotics, such as their impact on employment, privacy, and safety.

Key technical topics include an overview of mechatronics, which integrates mechanical, electronic, and computer engineering; sensors, which enable robots to perceive their environment; and control systems, which ensure robots can perform tasks accurately and autonomously.

The module is assessed in a practical project where you will design a simulated robot, applying the concepts learned to demonstrate your understanding of robotic systems.

Students will undertake a large self-directed software project in a specialist topic of their choice with guidance and support from a dedicated academic supervisor.

The project will begin with an appraisal of said topic, usually through a literature review and/or a commercial assessment of viability. This will be followed by planning and creation of a practical software artefact covering an implementation lifecycle, making use of project management techniques.

Ethical issues will be explored, leading to required approval for quantitative and/or qualitative testing, with results then analysed and used to inform futher development and to draw conclusions against a hypothesis.