Overview
From the start of your degree, you’ll be developing your own projects and digital ventures, which will increase in scale and ambition. During this time, you’ll study a range of relevant technical disciplines including database and server-side programming, computer security, machine learning, data mining, digital business modelling, and mobile development. This work is underpinned by relevant theoretical learning including professional software development practices, analytical skills and problem-solving strategies.
Whilst studying with us you will also benefit from Goldsmiths Computing Department’s unique approach to teaching computing, informed by our wealth of expertise in the arts, humanities, and social sciences. You will notice this through the engaging and accessible way that we teach programming on core modules, but also through optional topics such as physical computing and virtual reality.
Year 1
Year 1 compulsory modules |
Module title |
Credits |
|
Introduction to Programming
Introduction to Programming
15 credits
This module will introduce the fundamentals of programming and object orientation, including the following basic ideas of programming, including variables, memory and assignment statements, control through conditional statements, loops, functions and procedures, objects and classes, instance variables and methods, arrays, user interaction, interaction between objects, inheritance, polymorphism.
|
15 credits |
|
Front End Web
Front End Web
15 credits
This module is an introduction to the basic concepts essential in the design and implementation of client-side web-based applications; it will cover a basic introduction to the Web, followed by more detailed lectures and labs on current best good practice with technologies such as HTML5, CSS3 and Javascript.
|
15 credits |
|
How Computers Work
How Computers Work
15 credits
This module teaches a basic understanding of a range of different elements of computer systems. This is a fundamental understanding that underpins both professional use of computer systems and further study in computer science. The broad overview provided in this course will support learning in a large range of topics in the degree and later modules will expand upon the topics covered here.
This module aims to help you understand, and to interact with, computer systems. You will learn how to use knowledge about computational processes to analyse and explain the behaviour of computer systems. The module will use the concept of a Notional Machine, an abstract representation of the functioning of a computer system, to help you to reason about computer systems and to predict their behaviour. You will also learn about typical computer system architectures, basic networking and network services such as databases.
|
15 credits |
|
Problem Solving for Computer Science
Problem Solving for Computer Science
15 credits
This module introduces a number of classical problems in computer science. As a result of attending this module, students should have the ability and confidence to tackle new problems using a general and abstract approach to their algorithmic solution.
Problems discussed include converting numbers between bases, data conversion, string manipulation, text manipulation, generating random and prime numbers, encryption and decryption, parsing and unparsing, and game playing.
|
15 credits |
|
Numerical Mathematics
Numerical Mathematics
15 credits
This module introduces fundamental numerical tools to support computational and algorithmic inquiry, and to enable effective computational experimentation.
You will:
- explain the need for different number systems
- understand what a prime number is and perform arithmetic modulo prime bases
- appropriately use combinations of trigonometric or special functions
- represent abstract locations in vector coordinate systems, and derive and apply transformation matrices
|
15 credits |
|
Symbolic Mathematics
Symbolic Mathematics
15 credits
This module introduces fundamental logical tools to support computational and algorithmic inquiry and to assist effective computational reasoning.
|
15 credits |
|
Graphics 1
Graphics 1
15 credits
This module will cover the technical fundamentals of computing techniques used in digital media with a particular focus on graphics.
Topics will include manipulating images for creative contexts, image processing, application of 2D and 3D geometry for animation and interaction, creating simple physics simulations.
Students will practice this knowledge through a series of practical and creative exercises, undertaken throughout the module. These will be undertaken using an appropriate programming environment with graphics capabilities.
|
15 credits |
|
Computing Project 1
Computing Project 1
15 credits
This module is aimed at novice programmers who have learnt some basic programming techniques. The course builds on this knowledge by developing students’ ability to combine short segments of code to create larger projects.
Students will begin by developing their knowledge of object oriented programming through learning about principles such as encapsulation and abstraction. Students will be presented with existing programs which they will explore, debug and extend. They will choose one of these to develop into a final project for the module.
During this work students will apply taught techniques in organising, planning and evaluating their code.
|
15 credits |
|
Perspectives on Capital: Cultural, Social, Financial, Critical
Perspectives on Capital: Cultural, Social, Financial, Critical
15 credits
This course examines key concepts of capital, and multiple different perspectives for examining these capitals. It explores the grounding of capital types in economic systems, societal norms, and their creative and cultural roles. The module provides the theoretical foundations for students to understand the creation and interplay of intellectual, social, cultural, and economic resources.
This course addresses multiple capital types: physical capital (natural resources), social capital (bonding/bridging capital and strong/weak ties), human capital (education, skills, and investment therein), and financial capital (access to finance, operation of debt, equity and working capital). Over the spread of the module, students will develop their knowledge of these capitals alongside frameworks to understand their different forms, their flows and interdependencies.
The module examines how different forms of capital are acquired, maintained, enhanced and exchanged, and the role that networks, evaluation materials and legal systems play. By tracing the historical context of different societal mechanisms to create and distribute capital, students can appreciate how current theories of capital in our digital revolution age are constructed and contested.
|
15 credits |
Year 2
Year 2 compulsory modules |
Module title |
Credits |
|
Java for Industry
Java for Industry
15 credits
This module introduces students to Java for the first time whilst building on the programming techniques covered at level 4. Through learning about more advanced concepts within object-orientation students are able to design and implement large scale computer programs.
Topics covered include Types, Conditionals and Iteration, Methods, Exception handling, I/O, Classes, Inheritance and Abstract Classes. Throughout the module, there will be a focus on developing student skills in problem-solving through structured thought and familiarity with common resources such as IDEs, professional APIs and language specifications.
|
15 credits |
|
Algorithms 1
Algorithms 1
15 credits
This module aims to expose students to the analysis and design of algorithms. In particular, students will learn how to classify algorithms in terms of their computational resource consumption, how to solve efficiently classical problems from computer science and how to apply design techniques to build new algorithms.
|
15 credits |
|
Computing Project 2
Computing Project 2
30 credits
This module will give students the opportunity to experience group work, in the context of projects to specify, develop, deploy and evaluate a computer based system. This module will take students through the entire process, from requirements gathering, user-centred design, proposal development, implementation and evaluation. Students will also assess their outputs from the perspective of multiple roles within an organization, and consider the potential impact of their system on customers, users and society at large.
|
30 credits |
|
Dynamic Web Applications
Dynamic Web Applications
15 credits
This module focuses on the technology underpinning client-server applications. This includes relational database systems, mainly from a development perspective, offering an introduction to data modelling and database implementation in SQL and alternatives such as No SQL The focus is on applications of relational and non-relational databases and techniques relevant to the creation of dynamic web applications such as form handling and templating. It includes practical work related to programming client-server web applications with a focus on principles and up to date practices.
|
15 credits |
|
Algorithms 2
Algorithms 2
15 credits
This module aims to expose students to standard data structures and algorithms for manipulating them. In particular, it will give students the chance to learn to choose appropriate data structures for solving problems.
|
15 credits |
|
Extended Java
Extended Java
15 credits
This module builds on the knowledge developed in Java for Industry by introducing students to a broad array of methods and data structures available within the language. Topics covered include:
Polymorphism, Interfaces, Nested Classes, Data Structures, abstract data types, computational complexity, Generics, GUIs, Event-driven programming, concurrency, event-driven programming, software patterns
Students will develop their understanding of these through practical, lab assessed work and longer form home assignments.
|
15 credits |
|
Fundamentals of Computer Science
Fundamentals of Computer Science
15 credits
This module extends on the knowledge developed in the module How Computers Work to introduce theoretical underpinning for further study in computer science. By taking this module, you will gain a broad understanding of many of the key topic areas in computer science and the fundamental concepts that underpin them. In the area of fundamental concepts, you will study binary representations and logic, complexity theory and theories of computation, finite state machines and Turing machines. These will be presented in the light of practical examples to illustrate how they are implemented in modern computer systems.
|
15 credits |
Optional placement year
Our degrees include an optional industrial placement year after the second year of study. You will be responsible for securing a placement, but we can support you through this process.
Although we encourage you to take the opportunity of a placement year, you can also complete your degree in three years.
Year 3 (or year 4 with placement year)
Your final year consists of compulsory and option modules (term one) and a major Computing project (terms two and three) in which you apply your new technological skills to solve real-world problems in innovative and practical ways.
Year 3 compulsory modules |
Module title |
Credits |
|
Databases and the Web
Databases and the Web
15 credits
This module builds on data concepts and skills from Dynamic Web Applications by providing advanced level knowledge about working with data in web applications.
Topics include advanced issues related to data modelling and representation such as security, integrity and confidentiality and database implementation such as advanced querying in SQL and no-SQL databases. Students will undertake practical work related to programming client-server web applications with a focus on advanced topics such as REST APIs. Teaching and assessment will also engage with issues relating to the ethics of working with data.
|
15 credits |
Some of the optional modules previously available on this programme have been:
Year 3 option modules |
Module title |
Credits |
|
Neural Networks
Neural Networks
15 credits
Introduces the theory and practice of neural computation. Covers the principles of neurocomputing with artificial neural networks widely used for addressing real-world problems such as classification, regression, pattern recognition, data mining, time-series prediction. We look at supervised and unsupervised learning. We study supervised learning using linear perceptrons, and non-linear models such as probabilistic neural networks, multilayer perceptrons, and radial-basis function networks. Unsupervised learning is studied using Kohonen networks. We provide contemporary training techniques for all these neural networks, and knowledge and tools for the specification, design, and practical implementation of neural networks.
Tutor: Dr Nikolay Nikolaev
|
15 credits |
|
Computer Security
Computer Security
15 credits
Provides a broad overview of topics in securing computer-based resources, especially the information stored on hardware and controlled by software. We explore core concepts of computer security, including attacks and control, and various techniques for the protection of computer-related assets. Covers topics including computer security, attacks and control, elementary cryptography, cryptosystems, security control models, security problems and protection in operating systems, in databases and data mining, and in networks, security management and administration, legal and ethical issues: patents, copyrights and trademarks, and prosecution.
|
15 credits |
|
Data Mining
Data Mining
15 credits
Provides you with theoretical knowledge of basic and advanced machine learning algorithms and statistical techniques utilised in the process of discovery of hidden patterns in potentially large volumes of data. Practical data mining will be introduced through both algorithm implementation in Java and data mining software utilisation for knowledge discovery in data from various fields of activity.
|
15 credits |
|
Artificial Intelligence
Artificial Intelligence
15 credits
A machine is artificially intelligent when it manages to perform a task that we thought, until the machine proved capable, required human intelligence. Afterwards, we recalibrate our definition of intelligence.
Ai is a broad field and includes many disciplines and ideas. But a new technique is taking over. Machine learning, an AI technique, has been around for a while. A special machine learning practice known as Deep Learning is revolutionising AI. It is everywhere - or will be soon.
Simply, AI ≈ DL.
We will learn how to build DL programs - known as models - and train them on huge datasets. We will be using TensorFlow, Google's important DL resource. TensorFlow, in turn, is programmed using Keras, a high-level Python library. We will write Keras DL code in Jupiter notebooks and plot graphs with another Python library, matplotlib. Finally, our programs will rely on Python's special library for numerical calculation - Numpy
|
15 credits |
|
Physical Computing 1
Physical Computing 1
15 credits
Physical Computing is of increasing interest to artists, musicians, choreographers and other creative practitioners for the creation of novel artworks and also for forms of computational interaction between these objects and people. There are many other applications of Physical Computing, for example in museums, ubiquitous and embedded computing, robotics, engineering control systems and Human Computer Interaction.
A physical environment may be sonic, tangible, tactile, visually dynamic, olfactory or any combination of these. In this module, you will learn how the environment, which is essentially continuous, can be monitored by analogue electrical and mechanical sensors. Computers, however, are digital machines programmed by software. One element which you will focus on, therefore, is the interface between the digital and the analogue.
This study will encompass basic physics, electronics, programming and software engineering. The practical objective of this module is the development of the skills you will need for designing and building interactive physical devices.
|
15 credits |
Teaching style
This programme is taught through a mixture of lectures, tutorials, workshops and laboratory sessions. You’ll also be expected to undertake a significant amount of independent study. This includes carrying out required and additional reading, preparing topics for discussion, and producing essays or project work.
The following information gives an indication of the typical proportions of learning and teaching for each year of this programme*:
- Year 1 - 27% scheduled learning, 73% independent learning
- Year 2 - 24% scheduled learning, 76% independent learning
- Optional placement year - 100% placement
- Year 3/4 - 14% scheduled learning, 86% independent learning
How you’ll be assessed
You’ll be assessed by a variety of methods, depending on your module choices. These include coursework, examinations, group work and projects. If you opt for an industrial placement year, your placement tutor will assess your work. If you complete the placement year successfully, you earn the endorsement 'with work experience' on your degree certificate.
The following information gives an indication of how you can typically expect to be assessed on each year of this programme*:
- Year 1 - 45% coursework, 50% written exam, 5% practical
- Year 2 - 63% coursework, 38% written exam
- Year 3/4 - 88% coursework, 13% written exam
*Please note that these are averages are based on enrolments for the traditional pathway in 2019/20. Each student’s time in teaching, learning and assessment activities will differ based on individual module choices. Find out more about .
Credits and levels of learning
An undergraduate honours degree is made up of 360 credits – 120 at Level 4, 120 at Level 5 and 120 at Level 6. If you are a full-time student, you will usually take Level 4 modules in the first year, Level 5 in the second, and Level 6 modules in your final year. A standard module is worth 30 credits. Some programmes also contain 15-credit half modules or can be made up of higher-value parts, such as a dissertation or a Major Project.
Download the programme specification. If you would like an earlier version of the programme specification, please contact the Quality Office.
Please note that due to staff research commitments not all of these modules may be available every year.