Course units
Year 0 (common with BSc Data Science and AI)
Methods 00: Programming and Computational Thinking (20 credits)
This unit establishes the core theory and practice of programming. You will study the syntax and meaning of industry-standard languages and learn to configure and use professional tooling and development environments. The unit integrates the basic mathematics necessary for logical problem-solving and examines the importance of visual aesthetics in creative software output. Furthermore, you will learn how to effectively utilise technical documentation and access support networks and developer communities to solve technical problems.
Critical 00: Optimistic Futures for Computing (20 credits)
Through readings, example projects and guest speakers you will be introduced to key questions about the historical structures and future trajectories of computing: Who holds power? What systems of control exist (or don't exist)? How do technological decisions affect the environment and/or ecology? What communities benefit or are marginalised? How do social structures differ from our reality? You will work on expressing some possible answers and explanations to these questions in the format of an individual website and accompanying report.
Critical Project 00: The Human Computer Relationship (20 credits)
What exactly is our relationship with computing and computers in an age where almost everything has a computer inside it? We will explore this topic in both a critical and practical way through readings and discussions around the topic and short exercises. You will learn basic concepts of interaction design and Human-Computer Interaction (HCI) and apply them independently in a series of small tasks such as creating interactive graphics, sound, visualisations, and working with basic behaviour in physical systems by programming microcontrollers.
Methods 01: Form and Structure (20 credits)
This unit builds on Methods 00 and introduces more advanced syntax, structures such as objects and different types of functions and lists. You will be introduced to new languages, development environments and mathematics to support your work in 3D graphics and games. You will further develop your own visual style and aesthetics as you work on creative software outputs throughout the unit. To support your working process, you will also be introduced to code management.
Critical 01: Real World Patterns in Computing (20 credits)
This unit explores the basic material of computing, patterns and repetition. Patterns are everywhere in computing, from simple heuristics and algorithms that model basic animal behaviour and physical structure to the more conceptual patterns of software development. It explores how recognising patterns in the world and codifying them in measurements (data), algorithms and computational processes are at the heart of computer and data science practice. Through activities, trips, and specialist guests you will be introduced to patterns in nature (such as fractals, physical phenomena, genetics, simple life forms, cells and living creatures) and their equivalents in computing (computational biology, L-Systems, digital art, simulation) as well as basic concepts of software architecture. As you complete a portfolio of pattern-related projects you will gain a better understanding of the possibilities of computing, the structure of software, and an appreciation of how the natural world inspires the digital.
Critical Project 01: Building Human Computer Relations (20 credits)
In this hands-on, project-focused unit you will build on your basic 2D programming experience and familiarity with interaction design to explore more advanced possibilities for people to work and live with computers. You will design interactive human/computer experiences using generated graphics, images, and sound. You will also be introduced to creative ideation, planning, and basic project management skills so you can deliver a report on your work achieved during this unit that reflects on your development process and conceptually frames your ideas and inspirations.
Year 1
Methods 1: Introducing Computer and Data Science: (20 credits)
This unit will introduce you to the discipline of computer science and the sub-discipline of data science and their effects on the wider world that we all live in. Each is a mixture of art, science, and engineering that continues to shape us, from individuals to large organisations like governments. To better understand their influence, you will become literate in computer programming languages such as JavaScript and Python and learn to apply the basic mathematics that is useful for applications from basic data processing to real-time multimedia programming.
Critical 1: Introducing Human Computer Interaction: (20 credits)
This unit will introduce you to the concept of human computer interaction (HCI) including key theories and approaches for understanding how we work with computers and how computers work with us. You will learn accessible and inclusive approaches to designing and prototyping interactive systems through HCI case studies, best practices, and a small group project.
Critical Project 1: Web Programming and Internet Futures: (20 credits)
Using approaches borrowed from speculative design and design fiction, you will develop your understanding of the basic architecture of the Internet and the web and how to begin to develop websites. In a hands-on project you will work as a group to create speculative (fictional) websites, apply fundamental approaches to web application development, investigate what different types of people expect from websites, design interfaces and interactions in HTML/CSS/JavaScript. You will work on your presentation and critical thinking skills by presenting your work in class for critique and taking part in critiques of others’ work in turn.
Methods 2: Digital Systems (20 credits)
This unit will further expand your knowledge, skills, and competencies in programming and computer architecture by looking at how our world is made computable by processes of digitisation and the application of digital logic. First, you will learn how computing hardware uses binary representations of numbers and binary operations to make decisions on a small scale. Then, you will explore how computing processes scale up by applying matrix mathematics to make sense of and manipulate images and other large data sets. A combination of programming languages will be used to take advantage of their abilities to work with data at different scales.
Critical 2: Security, Trust, Ethics, Risk and Networks (20 credits)
This unit will introduce essential concepts of data collection, networked systems, large-scale abstraction, and cybersecurity essentials such as risk and trust through the lens of ethical and legal requirements. Using case studies, legislation, and reports you will identify, analyse, and assess the risks to individuals, marginalised groups, society, democratic governance, and the environment posed by processes of abstraction, centralisation, a general lack of accountability of algorithms and computerised bureaucracy.
Critical Project 2: Data-driven Full Stack Development (20 credits)
This project will build on your knowledge and skills in web programming to explore, in concrete ways, how reality is digitised, abstracted, and automated using computational processes (software, services, infrastructure) and what effect that has on our world. You will learn how to work with industry-standard ‘full stack’ approaches that utilise both SQL and NoSQL databases, application development frameworks like React, networks, and servers to collect and visualise data, and to work in groups to create data-driven applications like social web forums and chat clients.
Year 2
Methods 3: Algorithms and Complexity (20 credits)
You will be introduced to a range of mathematical techniques and standard algorithms used in computing for topics such as searching, sorting, data structures, and analysis. You will implement them and analyse their efficiency, performance, and complexity using formal and informal types of notation that will be introduced in the unit. You will also think critically about how the abstract, automated decision-making of algorithms might have unintended or negative effects on real-world data, especially how they might have harmful effects on smaller populations due to a primary focus on efficiency.
Critical 3: Organisations and Computing Entrepreneurship (20 credits)
This unit allows you space to develop your understanding of what type of organisations exist that you may want to work for, with, or to start on your own. You will explore a range of different organisations in different industries, such as companies, start-ups, non-profits, government divisions, NGOs and small collectives through case studies and guest lectures. These will help you understand why different organisations have different structures and business models and may lead you to third-year placements, since this unit appears early in year 2 of your studies.
Critical Project 3: Interactive Graphics and Sound (20 credits)
This unit delves into the basics of computer graphics and audio through the lens of human perception: what can we perceive, and how is it represented mathematically, and in computing hardware and software as light, sound, and other sensory forms? Further, how can we efficiently work with complex media like graphics and sound in a real-time environment? Using key multimedia libraries like WebGL and game engines you will explore these questions in a hands-on project.
Methods 4: Critical Interfaces for HCI (20 credits)
This unit will deepen your understanding of the variety of forms that interfaces and interactions between people and technology may take. You will explore the impact that interface and interaction design can have on people’s lives and activities and learn practical and ethical methods for designing and evaluating technology interfaces and interactions.
Critical 4: Global Perspectives in Computer Science (20 credits)
This unit will immerse you in current topics of interest in computer science from across the world, challenging your understanding of the discipline and serving as a source of inspiration for your future endeavours, including your final year degree project.
Critical Project 4: Software Engineering (20 credits)
In a group, you will collaboratively design and develop a prototype software project feature, which may be a whole or part of an entire software application, scaffolded by and reinforcing learning from your studies in HCI, project management, and programming. Projects will address specific problems and challenges across a range of use cases presented as part of a shared topic; for example, the concept of artificial intelligence “collaboration” or applications of decentralised social networking.
Year 3
Critical 5: AI and Intelligent Systems (20 credits)
Machine learning and Artificial Intelligence is rapidly being adopted by individuals, industries and organisations. This unit will first introduce you to interactive concepts in machine learning and AI. You will then examine more complex intelligent systems design, including neural networks, reinforcement learning and other critical techniques, and apply them to different contexts such as audio and video generation and data analysis.
Critical Project 5: Cybersecurity Lab (20 credits)
This unit builds on your understanding of networks and website architecture and the unit Critical 2: Security, Trust, Ethics, Risk and Networks from Year 2. Through a series of hands-on exercises that cover key conceptual topics in cybersecurity such as intrusion detection, cryptography, trust, and privacy legislation you will advance your understanding of basic computing infrastructure and interaction with terminal consoles, client-server systems, and networks.
Methods 5: Evaluating User Experience in Digital Technologies (20 credits)
This unit will further develop professional approaches to human-computer interface development, both physical and virtual.
Methods 6: Professionalism, Aesthetics and Ethics (20 credits)
In this unit, you will be asked to consider and reflect on critical approaches to technology development, including legal, regulatory and research-led ethics. You will be encouraged to apply these techniques to your own final year projects, exploring how you have applied your knowledge of computing ethics in your own work.
Critical Project 6: Final Project (40 credits)
Your final project incorporates a range of methods and approaches drawn from skills acquired throughout the course. This includes mathematical and algorithmic thinking, HCI methods, software engineering, signal processing, interaction, machine learning and AI, security and trust, and other essential topics in the discipline.
Diploma in Professional Studies (optional year)
The Diploma in Professional Studies is an optional placement year in industry between the second and third year of the course. It is a managed year of professional experience, undertaken in the design profession in a variety of national and international locations. Successful candidates are selected on a competitive basis from academic performance and studentship, successful completion of the Diploma of Higher Education (year 2) and by portfolio and proposal.