Curious about studying Computing - BSc (Hons)at Abertay University? We've gathered all the key details—entry requirements, modules, fees, and more. Hear from real students by checking out reviews, or take the next step by booking an open day to explore it for yourself.
Bachelor of Science (with Honours) - BSc (Hons)
Abertay University
Full Time
Sep 2026
4 Year
In an increasingly connected world, computing touches every aspect of life. You'll work with cutting-edge technology and hit the ground running, solving real-world problems from day one.
This degree is perfect if you want to dive into the practical side of computing.From web development to cloud computing and Internet of Things (IoT), you’ll be
immersed in hands-on learning, developing the skills to create and implement real-world tech solutions.
Multiple Accreditations and CertificationsAbertay University is
an Academic Centre of Excellence in Cyber Security Education, recognised by the National Cyber Security Centre (NCSC) – part of GCHQ. This course has been accredited by BCS, The Chartered Institute for IT.
Graduate with confidence and strong work skillsThis is a forward-looking course,
and we work with industry partners to make sure the content is relevant to employers. You'll graduate ready to work in fast-paced industries like IT consultancy, digital media, and tech start-ups.
Speakers from the computing industry regularly give guest lectures.You’ll have the opportunity to apply for
paid internships with our industry partners(subject to selection) and work on project briefs provided by industry. This means you'll get plenty of chances to
develop professional skills and learn how to apply theory to practical situations.During fourth year you can learn about
Cloud Computing with content from Amazon Web Services, and we'll support you in getting your AWS certification if that's your plan. This kind of
hands-on experience enriches your CVand showcases your ability to tackle actual, real-world problems.
Starting university is a big step, and every student arrives with different strengths and challenges. This module helps you reflect on your skills, identify areas for development and plan how to succeed academically and personally. Using the Abertay Discovery Tool, you'll review key areas such as study skills, careers and employability, digital confidence and wellbeing. You'll then create a personal action plan and choose further MySuccess modules to support your growth throughout your time at Abertay. Indicative Content - What Does a Successful Student Look Like? Reflect on your motivations, values and passions. Explore what makes a successful student, learn from different examples of success, and consider how stepping outside your comfort zone can help you grow. - Abertay Discovery Tool: Complete the Abertay Discovery Tool to identify your strengths and areas for development across five themes: studying at university, academic skills, digital skills, careers and employability, and wellbeing. - Fundamentals of University: Learn how university study works - from understanding modules and assessments to interpreting assignment briefs and using feedback to improve. - Expectations of University and You: Explore what's expected of you as a student, including the code of conduct, academic integrity, and independent learning. Understand blended learning and how the Abertay Attributes link to your development. - Successful Student Behaviours: Develop habits that support success: managing time, avoiding procrastination, preparing effectively for classes, taking good notes and building a growth mindset. Discover opportunities to get involved at Abertay and beyond.
Please note: ABE111: Numbers for Everyday Life will only be assigned as a core module if you do not have a minimum of a National 5 Maths qualification at grade C or an acceptable equivalent. This module helps you strengthen core numeracy skills, including percentages, decimals, fractions, appreciation, depreciation and rounding. Through problem-solving and reasoning, you’ll learn to analyse everyday situations and make logical, well-informed decisions. You’ll also gain a foundation in statistics—covering mean, median, mode and standard deviation—and develop financial skills such as budgeting, managing income and expenses, understanding interest rates, and making choices about saving and borrowing. By applying these skills to real-life contexts, you’ll build confidence in using numbers to solve problems, manage your finances, and support decision-making in both study and work. Indicative Content - Numerical Skills: Develop your confidence with key number skills, including percentages, decimals, fractions, appreciation, depreciation and rounding. - Problem Solving and Reasoning: Practice using maths to tackle everyday situations. Learn how to spot problems, rearrange equations, make logical connections and reach effective decisions. - Fundamentals of Statistics: Get to grips with the basics of statistics. Learn how to calculate and use mean, median, mode and standard deviation to interpret and compare data. - Financial Skills: Build practical financial know-how. Explore budgeting, managing income and expenses, understanding interest rates, and making smart decisions about saving and borrowing. Apply these skills directly to real-life situations.
This module introduces the essential principles of computer architecture, giving you a clear understanding of how modern computer systems function. You’ll explore how hardware and software interact, how data is represented and processed, and how operating systems manage resources. By building a strong mental model of system behaviour, you’ll develop the foundation needed to reason about computing at a low level and prepare for more advanced study in later modules. Indicative content - Computer Architecture: You’ll study the principal low-level components of a computer system, including logic gates, logic blocks, bus interconnections, memory, and storage devices. This will help you understand how the building blocks of hardware combine to support system performance. - Data Representation: You’ll learn how information is represented and manipulated within a computer, covering bits, bitwise operations, integers, floating and fixed-point numbers, as well as the encoding of text, colours, bitmaps, and audio. - Machine Instructions: You’ll be introduced to the von Neumann architecture and the structure of a modern CPU. Topics include arithmetic operations, control flow, the use of stacks, and the basics of compilation—helping you see how instructions are executed at machine level. - Operating Systems: You’ll explore the role of operating systems in managing hardware and software, including the distinction between userspace and kernelspace. You’ll cover drivers, scheduling, memory management, and filesystems, while also using systems such as Linux to understand system management and OS-level security concepts.
This module introduces you to the core programming constructs of the C++ language, using a problem-based approach to develop your coding skills. You’ll learn how to design and implement solutions that build a strong foundation for object-oriented programming. The focus is on practical application, helping you gain transferable skills that are essential not only for C++ but for understanding and working with all modern object-oriented languages. Indicative content - Object-Oriented Program Development: You’ll learn how to use an object-oriented development environment to create source code, compile, link, execute, and debug programs. This will give you practical experience of the full development cycle. - Introduction to Object Orientation: You’ll read, understand, and modify small object-oriented programs, building confidence in recognising and applying the principles of object-oriented programming. - Programming Constructs: You’ll make use of core programming constructs—such as declarations, data types, assignment, operators, selection, iteration, and functions—to solve a range of programming problems. - Aggregate Types: You’ll explore arrays and algorithms to extend your programming power, while also learning about storage, memory access, and pointers. You’ll be introduced to classes and structs as ways of organising and structuring data. - Program Development and Testing: You’ll develop problem-solving skills through pseudocode and stepwise refinement, and learn how to use functions as program units to improve organisation and efficiency. You’ll also gain experience in testing and refining your code to ensure reliability.
This module complements the Level 7 programming modules by introducing the fundamental principles of software engineering in a practical, hands-on way. You’ll learn how to design, structure, and communicate solutions for both small and large-scale software systems, building the skills needed to approach development with a professional engineering mindset. By focusing on real-world practices rather than abstract theory, the module prepares you to apply software engineering methods effectively in future projects and advanced study. Indicative content - Problem-Solving: You’ll learn how to capture requirements and apply general problem-solving techniques to software development. This includes approaches to testing and the use of non-programming languages to describe problems and solutions. - Classes and Objects: You’ll develop software using class definitions, methods, data, constructors, and instantiation. You’ll also create simple inheritance structures, applying object-oriented principles to build solutions with multiple classes. - Security: You’ll explore how to encapsulate objects using public and private access modifiers, and understand the role of constructors in creating secure and reliable code. - Object-Oriented Analysis, Design and Implementation: You’ll identify objects within a system and structure data and information into class definitions. You’ll also learn how to map object-oriented design principles into practical programming constructs. - Abstraction: You’ll understand how abstraction helps manage complexity in software, using code blocks, control flows, and modular design to simplify problem-solving. - Class Modelling: You’ll be introduced to UML class diagrams as a way of modelling and communicating object-oriented designs. - Data Design – An Object-Oriented Approach: You’ll model data using object-oriented techniques, drawing both informal and formal diagrams (including UML) to describe information and behaviour. You’ll also be introduced to design patterns as reusable solutions to common problems. - Data Design – A Relational Approach: You’ll explore relational modelling techniques, considering both theoretical and practical design concerns. You’ll also gain hands-on experience constructing and querying databases using basic SQL.
This module introduces the core principles of computer networking, from the fundamentals of network architecture and protocols to the practical skills needed to design, analyse, and troubleshoot networks. You’ll explore how data is transmitted, how different layers of a network interact, and how applications communicate across local and global systems. By combining theory with hands'on practice, you’ll develop the knowledge and skills to understand, build, and manage modern computer networks. Indicative content - Networking Fundamentals: You’ll study the architecture of circuit'switched and packet'switched networks, and the use of copper, fibre, and wireless media. You’ll also examine how media affects bandwidth and throughput, and review the roles, advantages, and disadvantages of hubs, switches, and routers in network configurations such as Ethernet. - Network Layers: You’ll learn how data is segmented and encapsulated, and how MAC and IP addresses are used by switches and routers. You’ll explore TCP and UDP protocols, class'based networks, IP address allocation, and the need for subnets and subnet masks. - Network Models, Protocols, and Applications: You’ll compare the OSI and TCP/IP models, and study the protocols and applications associated with each layer—from the physical layer through to the application layer—understanding their roles and functionalities. - Networking Analysis: You’ll gain experience analysing network traffic using specialist tools, learning how to interpret communication on local networks, understand traffic patterns, and apply methods for analysing network conversations. - Application of Network Knowledge: You’ll apply your knowledge to design computer networks, considering hardware, logical structures, and routing. You’ll also learn troubleshooting techniques and gain practical experience building network applications, including creating software that uses sockets for communication.
This module introduces the core principles of computer security, systems deployment, and software debugging. You’ll explore the legal and ethical frameworks that shape professional practice, while also developing practical skills in areas such as authentication, cryptography, and system management. By combining theory with hands'on experience, the module equips you to understand security risks, apply protective measures, and troubleshoot software and systems in real'world contexts. Indicative Content - Relevant Laws: You’ll explore key legislation including the Computer Misuse Act, Copyright Act, and Data Protection Act, and discuss the issues and constraints they create for computing professionals. - Ethical Issues: You’ll consider ethical challenges around copyright, intellectual property rights, and data protection, as well as the processes involved in gaining ethical approval for projects. - Security Fundamentals: You’ll be introduced to the Cyber Security Body of Knowledge (CYBoK) and examine how online data sharing contributes to Open Source Intelligence (OSINT) gathering. - Authentication: You’ll study authentication methods such as passwords and biometrics, and evaluate their strengths and weaknesses. - Command Line: You’ll gain practical experience using Linux and the command line as tools for system management and security. - Development Cycle: You’ll explore application development methodologies and how they support secure and reliable software deployment. - Defence, Evasion, and Malware: You’ll review common malware defence and evasion techniques, and learn how attackers and defenders adapt to one another. - Cryptography: You’ll be introduced to common cryptographic techniques and their role in securing data and communications. - Debugging: You’ll develop skills in application debugging, learning common practices and techniques to identify and resolve software issues. - IoT and WiFi: You’ll examine the security implications of Internet of Things (IoT) devices and the risks associated with using unsecured WiFi networks.
Build on your knowledge of programming taught in earlier modules (e.g. arrays, structures, simple collections). Gain an introduction to the standard data structures and algorithms that form the core of algorithmic thought in computer science and to the idea of reasoning about the behaviour and performance of a computer program. Indicative content - Reasoning about performance: The idea of an algorithm, time and space complexity, abstract data types. - Basic data structures: Linked lists, stacks, queues, hash tables. - Sorting and searching: Exhaustive and binary search, common sorting algorithms. - Trees: Simple trees, tree search algorithms, tree representations (XML, JSON). - Graphs: Simple and directed graphs, graph algorithms.
Dynamic web applications, through client-side and server side internet development on a full-stack platform. Indicative content - Web Standards: Apply HTML5 and CSS to develop responsive and accessible web designs. - Client'Side Technologies: Implement JavaScript, libraries and frameworks to create effective user interfaces within appropriate development practices and methodologies. - Design Techniques: Use suitable techniques for building dynamic and interactive web applications. - Data Persistence: Explore methods of storing and managing data, considering appropriate and secure use. - Server'Side Scripting Technologies: Apply server'side technologies to provide functionality, evaluating the processes involved and the benefits and drawbacks of server'side processing. - Security and Legal Issues: Examine legal and security considerations including privacy, transparency, data protection, GDPR, authorisation and validation. - Practical Aspects of Security: Apply secure programming practices, network protocols and testing strategies to ensure robust and reliable web applications.
This module develops your understanding and practical experience in the design and implementation of object'oriented software and relational databases. You will review existing designs, create your own to meet stated requirements, and critically evaluate their effectiveness before producing example implementations. Alongside technical skills, you will be encouraged to adopt a software development method, plan tasks effectively, and practise report writing, including critical evaluation of your work and impartial analysis of your methodology. The module emphasises how these skills support further study and contribute to a successful career in software development. Indicative Content - Entity Relationship (ER) Modelling: Identify entities, 1'1, 1'many and many'many relationships, apply design notation, and understand the role of ER in object'oriented software and database design. - Relational Database Design: Use primary and foreign keys to realise relationships, apply link tables for many'many relationships, design to meet application data requirements, and apply normalisation techniques. - SQL: Explore SQL as a programming language, covering basic relational algebra, unions and joins, and practise selecting, extracting, editing and inserting data to meet functional requirements. - OO Software and SQL: Integrate SQL into object'oriented software, align OO and database designs, and realise designs in code. - Development Methodologies: Examine the role of methodologies, review approaches such as waterfall, RAD, agile and TDD, and appraise the role of design within different development methods.
Please note: If you are a Direct Entrant (new student) to this year of study and have not previously taken module ABE101, then you MUST take ABE201 as your Term 2 microcredential module. If you have previously taken ABE101, then you are NOT permitted to take ABE201 in Term 2. Starting university brings new opportunities and challenges, and every student’s journey is different. This microcredential helps you settle into life at Abertay and build the habits that lead to success. You’ll hear from current students sharing their own tips, and reflect on the areas you most want to develop. You’ll get to know Abertay’s systems, explore what makes a successful student and practise core skills such as time management, referencing, academic writing style and using support services. By the end, you’ll have the tools and strategies you need to thrive at university. Indicative content - Navigating Abertay Systems: Get to know the key systems you’ll use at Abertay—such as MyLearningSpace, MS Teams, OASIS and MyAbertay—and learn how to use them effectively. - Expectations of University and You: Explore what’s expected of you as a student and what you can expect from the university. Topics include the code of conduct, independent and blended learning, how courses are structured, health and safety, and the Abertay attributes. - Abertay Discovery Tool: Complete the Discovery Tool to identify your strengths and areas for development across five themes: studying at university, academic skills, digital skills, careers and employability, and wellbeing. - Fundamentals of University: Learn how modules work, how assessments are set, and how to use assignment briefs and feedback to improve your work. - Understanding, Searching and Evaluating Information: Develop strategies for finding and assessing reliable information, building your confidence in research and study skills. - Successful Student Behaviours: Practise the habits that help you succeed: managing time, avoiding procrastination, effective note-taking, preparing for classes, developing a growth mindset, and making use of student support services. - Referencing: Understand academic integrity and why referencing matters. Learn how to avoid plagiarism, create in-text citations and reference lists, and use digital tools to manage your sources. - Sounding Academic: Discover what lecturers mean by “academic style” and how to use the right language in your writing. Learn the rules of academic writing, how to paraphrase effectively, and how expectations differ between school/college and university. You’ll also explore how assessments, marking and feedback work.
Build on the earlier module, Data Structures and Algorithms 1. Gain an introduction to parallel programming on shared-memory and GPU architecture, and the design techniques underpinning parallel applications. Use a range of case studies drawn from typical real-world applications. Indicative content - Parallel Programming: Explore the motivations for parallelisation, the concepts of parallelism and concurrency, Amdahl’s Law, high'level approaches to parallelisation and principles of parallel design. - Low'Level Programming with Threads: Learn how to start and join threads, share data safely, apply mutual exclusion, use synchronisation objects, and understand lock'free techniques. - High'Level Parallel Programming: Study task'based and message'passing parallelism, address data'parallel problems, and exploit locality in programming. - Instruction'Level Parallelism: Examine SIMD instructions and automatic vectorisation for performance optimisation. - GPU Programming: Understand GPU architectures, identify algorithms suited to GPUs, and apply GPU profiling techniques. - Parallel Patterns: Apply design patterns for parallel and concurrent programming, with awareness of sorting, numerical, image processing, searching and optimisation algorithms that benefit from parallelisation
This module introduces the core concepts of optimising interactions between users and computing systems or services, with a focus on how these interactions can be evaluated. You will explore principles of interface design, learn to apply both quantitative and qualitative methods of data analysis, and consider the ethical issues involved in gathering user data. Key aspects of usability and accessibility will also be examined, equipping you with the skills to design and assess user'centred systems that are effective, inclusive and responsible Indicative Content - Designing Studies: Build small studies that investigate and evaluate aspects of interface and interaction design. - Usability and Accessibility: Develop interfaces that are both usable and accessible, taking into account the requirements of different platforms. - Professional and Ethical Issues: Consider the professional standards and ethical procedures involved in conducting user research, including responsibility to participants. - Data Analysis and Evaluation: Apply quantitative and qualitative methods to analyse user data and evaluate design effectiveness
In this module, you will develop an understanding of web application development by learning how to create a database back'end and related server'side scripts. You will explore key concepts such as security and professional standards in web application design and development. Throughout the module, you will be encouraged to adopt a professional approach, ensuring that the applications you design and build are robust, secure and fit for purpose Indicative Content - Dynamic Site Basics: Learn how to build dynamic websites using HTML5 and CSS, supported by frameworks such as Bootstrap. Design and implement relational databases, use PHP to extract and deliver data to web pages, and integrate JavaScript for interactivity. - Database Management Systems: Apply the relational database model to store and manage data for dynamic websites. Explore storing objects in databases and examine alternative models, including NoSQL. - Web Application Architectures: Develop structured approaches to dynamic web scripting, understand the MVC architecture and separation of concerns, and use APIs within web applications. - JSON / XML: Use JSON and XML as non'vendor specific formats for data exchange between applications and servers. Work with XML formats such as RSS, apply XSLT transformations, and integrate JSON/XML in web services. - APIs and REST Web Services: Understand the limitations of monolithic development and move towards service'led architectures. Learn how to provide and consume data via APIs, use REST web services, and manage API keys securely. - Mobile Web Sites: Consider the differences between mobile and desktop demands, apply responsive design principles, and explore the creation of mobile'specific websites. - Security: Apply secure coding practices throughout development. Implement secure registration and sign'in, identify threats to dynamic web applications, and use countermeasures such as prepared statements to protect data. - State Management within HTTP: Explore the use of cookies, sessions and session management in PHP. Compare client and application management models across different technologies. - Client'Side Scripting: Review JavaScript as a client'side language, use frameworks such as jQuery or AngularJS, and apply AJAX to enhance web page functionality. - Internet of Things: Understand the architecture of IoT systems, including node/sensor domains, server/database platforms and application domains. Learn how to upload data from devices, store system states, and interrogate servers for mobile device access.
In this module, you will develop your understanding and experience of design and programming within a software engineering context. You will learn how to critically evaluate and apply software engineering practices to create object'oriented software solutions. You will explore both plan'driven and agile methodologies, apply code construction concepts such as coupling, cohesion and test'driven development, and make use of source control. You will also gain experience in applying design principles and design patterns, while ensuring your code is secure, reliable and professional. Indicative Content - Software Engineering (SE): Understand what software engineering is and how it applies to both the development process and programming practices. - SE Development Methodologies: Compare and contrast different approaches such as Extreme Programming and the Waterfall Model, and evaluate their strengths and limitations. - Source Control: Learn strategies and tools for version control, with a focus on using Git to manage collaborative development. - Code Development Practices: Apply key design concepts including coupling and cohesion, and explore practices such as continuous integration/continuous delivery (CI/CD) and test'driven development (TDD). - Unified Modelling Language (UML): Document programs using UML standards, including use case, sequence, class, state'machine and activity diagrams. - Patterns: Review and apply architectural and design patterns to address common programming problems effectively. - Secure Object'Oriented Coding Practices: Identify coding vulnerabilities and types of exploits, and apply secure programming practices to protect against them. - Protecting Against the User: Implement full input verification and validation, and apply secure methods for handling passwords and encryption.
In this module, you will work collaboratively within a team to explore project management concepts and apply them to real'world briefs drawn from industry and research. You will learn how to create a professional project proposal and present your work in a client pitch to stakeholders. As part of your team role, you will be expected to communicate effectively with stakeholders, contribute to project planning, conceptualise artefacts or prototypes, write supporting documentation, and deliver a persuasive client pitch. Indicative Content - Research Project Characteristics: Explore the defining features of research and industry'based projects, including scope, objectives and constraints. - Project Management Concepts: Learn about project management approaches, with a focus on Agile and Scrum methodologies, and how they support effective teamwork. - Activities, Deliverables and Products: Understand how to plan and track project activities, define deliverables, and produce outputs that meet client or stakeholder needs. - Managing Time and Resources: Develop strategies for scheduling, prioritising tasks and allocating resources effectively to ensure project success. - Identifying and Managing Risks: Learn how to identify potential risks, assess their impact, and apply strategies to mitigate them. - Quality Considerations: Apply professional standards and quality assurance processes to ensure outputs are reliable, consistent and fit for purpose. - Developing Artefacts and Prototypes: Gain experience in conceptualising, designing and producing artefacts or prototypes that demonstrate project outcomes. - Interacting with Clients and Team Members: Build skills in professional communication, stakeholder engagement and effective collaboration within a project team.
In this module, you will develop a critical understanding of mobile software development practices and the limitations of mobile devices. You will learn how to design, implement and evaluate techniques for creating mobile applications, gaining the ability to produce software that is both functional and efficient on mobile platforms. Throughout the module, you will be encouraged to critically assess your work and apply professional standards to mobile application development. Indicative Content - Background to Mobile Development: Examine the challenges and limitations of developing for mobile devices. Explore development strategies, the use of emulators and development environments, and how application abstraction can simplify development. - User Interfaces: Learn how to design and implement user interfaces for mobile applications, including UI controls (buttons, forms), hardware controls (key presses, touch screens, sensors), and both high'level and low'level features. Consider usability and accessibility to ensure applications are inclusive and user'friendly. - Storage: Understand storage requirements for mobile devices. Learn how to save and retrieve data locally and remotely, design databases, and integrate remote databases into internet'enabled applications. - Sensors and Services: Utilise mobile device capabilities such as location and environmental sensors, and integrate cloud services to create feature'rich applications. - Connectivity: Explore the telephony stack of mobile devices and the APIs required for access and control. Learn how to use first'party cloud services for communication, data processing and user authentication. - Security: Analyse the security and privacy implications of mobile applications. Apply secure coding practices, app permissions, authentication services and biometrics to protect user data. - Performance: Evaluate the limitations of mobile devices, balancing processing power and battery life. Learn techniques for testing and optimising the performance of mobile applications.
In this module, you will develop an understanding of how Machine Learning (ML) fits within the wider context of Artificial Intelligence (AI). You will explore how ML solutions act as vital components in the development of intelligent systems and how they can be applied to a wide range of problems across different disciplines. The module introduces you to foundational ML and data concepts and techniques, giving you both the theoretical grounding and practical insight needed to begin applying ML in real'world contexts. Indicative Content - Learning Pipeline: Gain a conceptual understanding of the fundamentals and terminology of machine learning. Explore the structure and components of the traditional ML pipeline, including data, models and evaluation. - Applications and Challenges of Applied ML: Examine real'world, data'driven problems and case studies across different contexts. Consider practical issues such as data availability and representation, model characteristics, and the causes and remedies of overfitting and underfitting. - Machine Learning Techniques: Study the main learning paradigms—supervised, unsupervised and reinforcement learning—and their applicability to clustering, regression and classification. Explore classic ML techniques including K'Nearest Neighbours (KNN), Logistic Regression (LR), Support Vector Machines (SVM), Decision Trees (DT) and Artificial Neural Networks (ANN). - Data for ML: Understand the importance of data cleaning and preprocessing. Explore data representation, the curse of dimensionality, feature selection, and the impact of weak descriptors. Learn about dimensionality reduction techniques such as Principal Component Analysis (PCA), with examples of datasets from different domains. - Evaluation Metrics: Learn how to assess model performance using a range of metrics. Explore fitness and cost functions, false positive rates, ROC curves, confusion matrices, and the precision'recall trade'off, and evaluate their suitability in practice. - Model Enhancement: Address poor performance and limited data availability by applying methods to improve models. Explore techniques such as regularisation, gradient descent and cross'validation to assist convergence, optimise parameters and enhance performance.
In this module, you will work as part of a team to deliver a development project or technical investigation that builds on the planning and prototyping completed in CMP308. The project will be relevant to your programme of study and will give you the opportunity to present and develop a product or technical solution by applying design, development and evaluation principles in a collaborative environment. You will also gain experience in operating professionally as a subject specialist within your team and in engaging effectively with project stakeholders. Indicative Content - Orientation: Consolidate project teams and define the target problem to ensure clarity of purpose and shared understanding. - Project Principles: Apply appropriate development methodologies during product production to guide the project effectively. - Documentation: Understand the importance of requirements specifications and related documentation, and learn how to produce them to professional standards. - Design: Explore the role of design and redesign throughout project development, adapting solutions as the project evolves. - Implementation: Address common implementation issues and approaches, applying practical strategies to deliver functional outcomes. - Quality and Standards: Apply testing and evaluation methods to ensure the product or investigation meets professional standards of quality. - Communication: Develop oral and written communication skills to present findings and demonstrate the software product or technical investigation effectively. - Project Planning and Team Working: Learn how to plan projects, organise teams, support colleagues, devise weekly plans, and maintain accurate progress records. - Self'Evaluation: Reflect on your personal contribution to team progress and identify areas for improvement in professional practice.
Develop an understanding of enterprise systems engineering by learning to design and implement solutions. The module will also enable you to critically appraise enterprise internet solutions involving scalability, customisation and security. Indicative Content - Architecting Scalable Enterprise Applications: Examine concepts that are required to architect and maintain scalable enterprise applications. - API Security: How to implement and secure Application Programming Interfaces (API) - Ensuring High Availability for your Enterprise Applications: Examine the core concepts of High Availability and how it can be deployed to ensure that enterprise applications are protect from failures - Load Balancing Enterprise Applications: Describe the concepts that are required to deploy load balancing for enterprise Applications. - Working with Big Data: Describe the core concepts of Big Data and how it is being used and deployed in enterprise environments. - Securing Enterprise Applications: Examine the concepts required to secure enterprise applications and how to protect the data that is being used by the applications. - Distributed Databases in an Enterprise Environment: Examine the use of distributed databases in an enterprise environment and how they can be deployed. - Provisioning Enterprise Servers: Describe the concepts required to provision enterprise servers.
Gain an in-depth understanding of system programming and the security challenges that exist in both kernel and user space. You’ll explore how operating systems and devices work at a low level, gaining insight into areas such as kernel operation, device drivers and hardware communication. You’ll also learn how to design and build secure systems for embedded and IoT environments, and how these interact with cloud and web technologies. Through practical and theoretical work, you’ll develop the skills to analyse, implement and secure complex systems in real-world deployment scenarios. Indicative Content - System Programming: C programming, compiler, linker and loader. Static and runtime analysis of binary files. System development kits, kernel headers and cross complier environments. - Hardware: ASIC,MCU,CPU, SOC, assembly, component security, pcb security, sniffing wire traffic, radio traffic, Types of communication (I2C, SPI, UART, RS232) and security challenges - Operating systems: I/O Manager, Memory Manager, Scheduler, .s file, init file, boot loader, boot process, ROM, RAM, execution rings - Kernels: Types of kernel, real time, unix, Windows, mac, linux, user space vs kernel space, shell, native applications, dll, registry/proc. Security landscape in user and kernel space. - Auditing and Debugging: User and kernel space debugging, Remote kernel debug setup, Analysis of precompiled binaries - Loadable modules: Linker, stack and memory layout, Interrupts, IRQ table and priorities. Introduction to device drivers, Types of driver, lifecycle, portability. Security risks associated with loadable modules. - Cloud Platforms: Setup and use of cloud platforms such as AWS. Cloud platform utilisation fundamentals and business considerations. - Web Technologies: TCP/IP protocol with understanding of application protocols such as HTTP, FTP, SSH etc. Understand web server and common gateway interface (CGI).
This module gives you the chance to design, develop and deliver a substantial individual project related to your programme. You’ll normally propose your own idea, carrying out initial research and proof-of-concept work in Term 1 to produce a detailed project proposal. In Term 2, you’ll focus on the main development phase, applying your knowledge and skills to complete the project to a professional standard. Indicative Content - Investigation, Research and Selection: Initial investigation of project topic, Background research of project topic and Selection of project topic - Evaluating: Methods of evaluating a project. - Legal, Social, Professional and Ethical Issues: Consideration of Legal, social, ethical and professional issues. - Proposal: Production of a project proposal. - Project Feasibility and Proof of Concept: Demonstrate Feasibility of Project - Self-directed problem solving, Originality and Creativity - Self Motivation, Initiative and Insight - Software Design Skills - Recording, Reporting and Communication Skills - Employability and professional development
This module gives you the opportunity to present a major individual project as a formal dissertation. You’ll normally propose your own topic, drawn from a current industry or research problem within your field. You’ll be expected to present your work in a clear, structured and academically rigorous way, demonstrating critical insight and evaluation of both your project and the artefact produced. The final dissertation will be written in an academic style appropriate to your discipline. Indicative Content - Introduction: Introduce the topic of the project and the problem area with and appropriate research question. - Investigate: Investigate previous work in the chosen project area, and show how the work of the project relates to it. - Justify: Demonstrate a sound justification for the approach and methodology adopted. - Document: Document the output of the project with some originality. - Evaluate: Critically evaluate the output, using third party evaluation where appropriate, and recognise the strengths and limitations of the work. - Communicate: Demonstrate an ability for independent learning and linkage to future work and career aspirations.
This module provides you with an opportunity to explore advanced topics in the computing domain that are used to enhance modern business practices. For example, computer vision, natural language processing, data visualisation and infrastructure. Indicative Content - Visual Content Recognition: Introduction to computer vision applications and challenges. Improving businesses with Vision-aware Solutions. Convolution Neural Networks and Recognition. Popular Tools. Selected research paper(s) to read and discuss. - Visual Content Creation: Features for Image Data. Examples of Image Datasets. Generative models and content creation. Model Deception and DeepFake. Ethics and Dataset Bias. Selected research paper(s) to read and discuss. - Machine Learning for Text Analytics: Introduction to NLP applications and challenges. Improving businesses with Language-aware Data Products. Computational Linguistics. Popular Tools. Supervised and Unsupervised Models for Text Analytics. Selected research paper(s) to read and discuss. - Deep Learning for NLP: Features for Textual Data. Text Corpora and Lexical Resources. Convolution Neural Networks for Ngram Detection. Recurrent Neural Networks for Modelling Sequence. Selected research paper(s) to read and discuss. - Data Collection and Storage: Methods to collect data in various format. Pre-processing of data to ensure integrity and formatting consistency. Storage mechanisms and infrastructures suited to the data format and velocity. - Data Processing Pipelines: Creation of software-based processes to handle the entire lifecycle of data in an automated fashion. Will cover on-premises and modern cloud techniques. - Approaches to Data Visualisation: Exploration of ways in which data can be presented in a visual manner. Software frameworks and libraries for data visualisation. - Business Intelligence: Tools and process which will allow data to be formed into information and visual presentations which provide value and inform strategic decisions in a business. Communicating complex data to non-technical stakeholders. Providing interactive dashboards to communicate important information.
CCC Grades/points required
Not currently available, please Contact University for up to date information.