The computer science programme at Kingston University is driven by the philosophy of ‘learning through making'; we focus strongly on facilitating hands-on experience, student led and owned product portfolios and producing industry-ready graduates. We utilise a range of innovating teaching and learning approaches in our invigorated and modernised computer science programme; combining studio practices, project-based learning through workshops and group work, scalable, context driven lecturing on theoretical concepts to facilitate an informed approach to problem solving.

This course assumes no prior knowledge of computer science and offers you the flexibility to pursue specialist areas; the use of guided option routes as pre-shaped trajectories across levels allow students to progressively focus on their chosen career path. The current guided option routes are designed around the most in demand sectors in the industry. They are Software Engineering, User Experience Design, Web and Mobile App Development, Networking and Network Security.

We are determined to produce highly trained graduates with specialist technical knowledge and scientific mind set, capable of solving real world problems and are driven by passion.

Our computing courses ranking rose by 34 places in the Guardian University League Tables 2018.

Foundation year

If you would like to study computing at Kingston University but are not yet ready to join the first year of a BSc (Hons) course, you can include an extra foundation year within your chosen degree. Please see the foundation year course page for details of modules.

What you will study

Our programme structure is centred on student learning and development to encourage them to become a more effective, independent and confident self-directed learner which appeals to employers. Supported by a set of guided learning journeys, you will learn theoretical and practical aspects of system design and development, and gradually develop a portfolio of ‘products' and ‘artefacts' of different levels of complexity as the outputs of assignments in dedicated modules.

They will be integrated into an online portfolio of applications and design solutions that reflect your professional readiness. The first year of the course consists entirely of core modules to provide the fundamental computer science knowledge; you will examine computer architectures, and the tools and techniques used to build systems.

You will learn principles, techniques and tools common to the analysis and design of software development, and study the impact of technologies on the workplace, economy and society. In second and third year you will focus more on the chosen specialist area, and using a combination of core and optional modules you will be exposed to the latest software innovations, design patterns, algorithms, programming languages, data structures and tools. For example you will learn latest agile project management approaches, data modelling using UML, relational and object-oriented database systems, data processing platforms used for big data applications, processing of data sets with adoptive algorithms driven by machine learning, visualisation of data for business insight.

The guided route you select will enable you to gain expertise of the chosen area and explore latest innovations associated with a specific domain in-depth, building on the foundation set by the core modules. If you do not wish to follow a guided route you can choose any of the available options where the pre-requisites are met and are always guaranteed a broad grounding in computer science. You can use the individual project module in the third year to showcase the knowledge and skills you have gained.

Module listing

Please note that this is an indicative list of modules and is not intended as a definitive list. Those listed here may also be a mixture of core and optional modules.

Year 1

Computing Fundamentals

Computing Fundamentals

This module introduces students to the principles behind hardware and software systems, and the important concepts related to modern computer systems.

First, following a review of the relevant mathematical principles, students will acquire an understanding of computer architecture, how data are represented, stored and processed, and how the operating system manages hardware and software resources. Second, they will understand the main concepts behind databases, network communication, and social media. Finally, they will learn about the essential technologies supporting web development and database management.

The assessment strategy involves an exam and the development of a portfolio reporting both theoretical and practical knowledge of the fundamental concepts addressed in the module. The module will also offer scope for students to be challenged and extended by developing deeper skills.

Programming I Thinking Like a Programmer

This module is taken by all first year undergraduate students undertaking a degree in the computing subject area. Previous experience of programming is not assumed. The module seeks to introduce a foundation for programming that can be built on in subsequent years and that accommodates specialist practice within computing eg games, software engineering, media, UX etc.

Teaching and learning is split between a variety of different units to ensure the module is flexible enough to accommodate each cohort and student's needs. As befits a practical discipline like programming, a hands-on approach is used that facilitates self-paced and self-directed learning. Students are encouraged to engage with, develop and experiment with programs in a constructivist fashion inspired by bricolage (Stiller, 2009; Stiller, 2017).

The intent is to build students' confidence as they learn to program, and provide a foundation that can be built on so that in later years they can go beyond simple solutions to problems and be ready to engage in full-fledged application development.

Requirements Analysis and Design

This module focuses on the principles, methods, techniques and tools commonly used in the early analysis and design stages of the software development life cycle. Students work in teams on a software design project, in which they build application prototypes.

Projects are framed in an economic, commercial and business context, allowing students to be exposed to professional industry practices in a dynamic and changing environment. Teams will be expected to elicit, analyse and document requirements, applying a variety of software modelling and business modelling principles.

Students will be expected to make use of UX and service design principles to understand interactions and the structure of the services, people and processes of an organisation.

Prototypes will be designed, created, and demonstrated, in accordance with UX design best practices and requirements will be captured as artefacts via UML models, use cases, user stories, wireframes and other practises.

Professional Environments 1

The goal of the Professional Environments module is to prepare students for professional practice firstly by ensuring they acquire suitable employability assets and secondly by equipping them with an understanding of the role of a professional in society and the role of professional bodies.

While the bulk of the taught programme focuses primarily on domain knowledge, the Professional Environments module focuses on developing key skills (as enumerated in the Programme Specification), personal qualities (eg commercial awareness, reliability and punctuality, understanding the centrality of customers and clients), and professional knowledge including the need to engage with continuing professional development. With such assets, students will generate a CV, an employment portfolio, and a professional online presence.

Being a professional also means understanding the key legal, ethical and societal issues pertinent to the domain, and understanding the need for continuing professional development (CPD) especially when technology develops at such a rapid pace. The module is designed to support different domain areas and to integrate experience from other professions. The subject areas being studied demand a global perspective which encourages the inclusion of our diverse of communities and national practices.

Reflecting the fact that team working is ubiquitous in the modern workplace, a significant proportion of the assessment work on the course is group-work based. There is considerable evidence that group work promotes a much deeper engagement with taught content. It also encourages the development of diverse learning communities. This module will therefore introduce students to best practice in group working covering how to approach group work, how to deal with different types of people, and methods of selecting and managing groups.

Year 2

Computing Systems

Computing Systems

The module aims to enhance students' understanding of how modern computer systems are implemented from the perspectives of architecture, networking, operating system, parallel programming and algorithm complexity.

Students will explore the essential features and operations of modern computer architectures and acquire both theoretical and practical knowledge of the principles and major functions of modern operating systems. They will also develop knowledge of parallel programming and algorithm complexity so that they will be able to make use of new parallel computer architectures. Physical networks and their associated address schemes will also be explored.

Professional Environments 2

Following a project-based pedagogic approach, students will undertake a major inter-disciplinary team-work project drawn from a list of authentic industrial problems. Achieving the goals of the project will require students, firstly, to apply the various development methodologies they have acquired on their course and, secondly, to develop professional skills in project management and team working.

While the bulk of the taught programme focuses primarily on the learning of domain knowledge, the goal of the Professional Environments 2 module is to prepare students for professional practice in their respective domains. They will develop the necessary project management and team-working skills, and, by working as a team on an authentic industrial project, they will gain a high degree of familiarity with the typical requirements capture, design, and development methodologies relevant to their discipline. With the focus on making real-world artefacts, the students will integrate their work into an employment focused portfolio.

Being a professional practitioner also mean critically assessing both goals and solutions from legal, ethical and societal perspectives as well as addressing security and safety concerns. Students are also encouraged to consider their continuing professional development needs and to engage with their professional bodies. To encourage career management skills and promote employability after graduation, students are expected to integrate the artefacts they produce and reflective practice narratives into their employability portfolios and personal development plans.

The module is designed to support different domain areas and to integrate experience from other professions. The subject areas being studied demand a global perspective which encourages the inclusion of our diverse of communities and national practices.

Optional Modules

Please choose two optional modules.

Programming II

Programming II

The module extends students' learning of the formal aspects of programming, including a comprehensive treatment of the object-oriented paradigm, selection and use of data structures, use of programming libraries and APIs, including graphical user interfaces. It also enables students to become acquainted with the important tools available for programmers, such as development environments, revision control systems and code profiling and optimization techniques.

Human Computer Interaction Design and Evaluation

This is an optional module intended for undergraduate students who are studying computing-related subjects.

Human Computer Interaction (HCI) is the core academic discipline that examines the relationship and interface between human and computer. It informs and provides the theoretical and methodological foundation for user experience, the professional discipline which is practically applied. Although this module forms part of the user experience guided pathway it can be taken as a standalone module.

Students will explore major themes in HCI from both a theoretical and a practical perspective. The module will establish an understanding of key concepts within HCI theory and methods, and examines techniques for HCI design and evaluation.

It offers students a practical domain in which to apply knowledge and skills, including those from other modules, to the design, implementation and analysis of interfaces between people and computer systems. Students will undertake practical exercises in which they evaluate real-world problems to identify user experience issues.

They will utilise the synthesis of data from methods which explore user needs and requirements and also users' cognitive models to build a suite of artefacts eg personas, user journeys, empathy maps etc which will inform a prototyping phase. This process involves interactively building on low, medium and high fidelity prototypes of increasing complexity and levels of interation. Thus students synthesise theory and empirical data to build their prototypes of a redesign solution to usability issues. These artefacts will iteratively and incrementally inform a user centered redesign.

Database Driven Web Application Development

This module seeks to establish the skills required to build full-stack database-driven web applications. Students will learn how to design, build and query databases according to user information needs using logical data models and structured query language (SQL).

They will also learn how to design and build scalable interactive applications that are delivered over the web and integrated with a backend database.

Networking Concepts

With a strong emphasis on understanding the Internet protocols, the Networking Concepts module will develop your understanding of the basic principles of networking.

You will become familiar with current LAN and WAN technologies and their role in building domestic and corporate networks. This knowledge will underpin the skills required to design and simulate small company networks including identifying the physical components required and to design an appropriate IP addressing schemes for such network.

It will also underpin your understanding of how network services such as mobile apps and network-based games are implemented.

Optional sandwich year

Year 3/4

Individual Project

Individual Project

The goal of the module is to further develop skills in organisation, timekeeping, research literature, developing and critically analysing results as well as reporting work verbally and in a written format. The end result will be an artefact or artefacts which demonstrate creativity and technical competence as well as a technical report.

Year 3/4 optional modules

Programming III- Patterns and Algorithms

Programming is a central activity of software development, which encompasses a wide range of languages, environments and specialisms.

This module will offer students the opportunity to acquire a useful competence across this range. The first teaching block will cover aspects of language, algorithms, tools, test-driven methodologies, and a range of user interface technologies.

The second teaching block will apply these themes across a range of technologies and application environments, focusing on web and mobile in particular. Assessment will include computer-based in-class tests and e-portfolios of student achievement that allow them to curate and share their passion for programming.

Software Development Practice

This module aims to provide a strong theoretical and practical background necessary for students to build high quality scalable software and to operate effectively as an industry professional.

It examines software quality concepts necessary to build high quality software architecture. The module introduces students to the concept of software architecture and architectural patterns as part of software design and reuse which can be viewed as components and interfaces.

At a lower level, programming models and paradigms are explored, as well as design patterns and anti-patterns. Testing strategies and other software quality principles will also be covered, and students will explore these principles in the context of practical projects which expose them to industry tools, practices and management methodologies.

User Experience Design Thinking

This is an optional module intended for undergraduate students who are studying Computing-related subjects. Although it forms part of the User Experience guided pathway it can be taken as a standalone module and previous experience of UX is not assumed. This module will focus upon the skills, methods and tools required in careers such as UX Architect, UX Designer, Service Designer, Information Architect or Digital Product Designer. The curriculum is finely balanced between theory and practice. Students are directly immersed in organisational practices and skills used in industry and will make use of academic theory in this practical context. Students will learn to develop investigative, analytical, technical, communication and advocacy skills to help them shape interactive technologies that augment people's abilities, enhance their creativity, connect them to others and protect their interests. They will also become aware of the impact of levels of digital literacy, availability of and access to technology, economic and business drivers, regulations, and regional/cultural norms. The module will also develop methods and skills required to understand current users, to investigate non-use, and to imagine future users.

Mobile Application Development

While this module provides a foundation for careers in mobile application development, mobile is becoming increasingly ubiquitous and the skills taught also have applications in UX, web development and software engineering in general. Although there are no prerequisites, it is assumed that students have acquired a general familiarity with programming and software development principles through their previous study.

The module is divided into two phases. In the first phase of the module students will be introduced to software development for the two major mobile platforms. This will cover development environments for these platforms, UI conventions, building and deploying simple applications. Students will then be introduced to cross platform development environments for mobile development.

Finally, standard frameworks for mobile web development will be introduced. The second phase of the module is organised around a practical project. Students will choose one of the platforms on which to build a mobile application of their choice. This project students gives students the opportunity to specialise and explore their chosen platform in greater depth, acquiring the knowledge and proficiency to be able to design and build complex mobile apps. Students will be encouraged to publish their apps in one or both (in the case of a cross-platform app) of the two major app stores, thus providing an introduction to mobile application delivery and distribution.

Advanced Data Modelling

This module will consolidate and build on previously acquired knowledge of databases by analysing and evaluating important issues in the database area. In addition, advanced aspects of data warehousing and data mining will be studied, encompassing the principles and commercial application of the technologies.

Internet Services and Protocols

Focusing on current and future networks, the Internet Services and Protocols module will develop your understanding of how the traditional Internet protocol suite achieves the interconnection of geographically separated things (being computer, tablets, smartphone or sensors) over networks of arbitrary topology and technology.

The principles of wireless systems design and EM waves propagation will underpin the study of the main attributes and characteristics of the modern wireless technologies, such as LTE, Wi-Max, Wi-Fi and Wi-Fi ad-hoc networks.

This knowledge will provide the skills required to design such complex networks, including identifying the physical components required and designing appropriate network addressing schemes. The concepts of Quality of Service (QoS) and Quality of Experience (QoE) will be introduced and applied to different services and network architectures. The principles of encoding and transmission of multimedia content over the Internet will be studied and applied to recent multimedia Internet services.

Cyber Security

This is a core module in the Cyber Security and Computer Forensics field which explores the major challenges to computer security.

It familiarises students with a range of cryptographic algorithms and protocols, firewall and access-control architectures and methods to assess and improve network and application security. This knowledge will allow students to implement and evaluate security controls and develop secure policies for corporate networks.

You will have the opportunity to study a foreign language, free of charge, during your time at the University on a not-for-credit basis as part of the Kingston Language Scheme. Options currently include: Arabic, French, German, Italian, Japanese, Mandarin, Portuguese, Russian and Spanish.

We aim to ensure that all courses and modules advertised are delivered. However in some cases courses and modules may not be offered. For more information about why, and when you can expect to be notified, read our Changes to Academic Provision.

Kingston graduate, Mateusz Stawecki, has tapped into the rapid growth in smartphones and tablets to help a leading creative design agency capitalise on the fast-changing market. He was recruited to create and implement the new technologies and business models and all the apps Mateusz designed were featured in the Sunday Times' top 500 apps in the world.