Computer Science
with a Year in Industry
You’ll gain the skills to innovate, create and find solutions.
You’ll gain the skills to innovate, create and find solutions.
Computer Science is an exciting and evolving subject that affects every area of our lives. A deep understanding of computing puts you in a great position to influence the future as well as paving the way to excellent employment opportunities and well-paid careers. You'll be offered plenty of support, including peer mentoring, web forums and study skills services to give you the best start to your career.
Take a year in industry and gain paid practical experience and a real advantage in the graduate job market. Our dedicated placement team supports you through the process.
This degree has been accredited by BCS, The Chartered Institute for IT on behalf of the Engineering Council. Accreditation is a mark of assurance that the degree meets the standards set by the Engineering Council in the UK Standard for Professional Engineering Competence (UK- PEC). The Year in Industry course also has BCS RITTech accreditation.
"The School of Computing manages everything to do with the year in industry, and how much support they give you."
in the UK for our research into programming languages since 2014, according to the independent website csrankings.com
Choose to add an industry placement, giving you work experience, a salary and the chance to secure a job with the same company after graduation.
We'll teach you the fundamentals of computer science and you'll have the opportunity to tailor the course to suit your interests and goals.
Our typical offer levels are listed below and include indicative contextual offers. If you hold alternative qualifications just get in touch and we'll be glad to discuss these with you.
BBB
Distinction, Distinction, Merit
120 tariff points from your IB Diploma, including Maths at 4 at HL or SL, typically H5, H6, H6 or equivalent
Mathematics grade 4/C
Pass the University of Kent International Foundation Programme.
The University will consider applicants holding T level qualifications in subjects closely aligned to the course.
Obtain the Access to HE Diploma with a minimum of 45 credits at Level 3, with 24 credits at Distinction and 21 credits at Merit.
The following modules are what students typically study, but this may change year to year in response to new developments and innovations.
What are the foundational principles and practices that all programmers need to know? Designed for beginners and assuming no experience, this module equips you with essential programming concepts and skills.
The module is a blend of theoretical instruction and hands-on exercises with the Python programming language. The skills you acquire will help you learn other programming languages such as Java and C++, to name a few.
Practical assignments and projects enable you to apply and hone your skills. Additionally, you'll learn basic debugging techniques and best practices in coding style and documentation. By the end of the module, you’ll emerge with a solid understanding of programming fundamentals, laying the groundwork for further exploration and mastery in the field of computer science.
Our lives are completely dependent on the correct operation of software: healthcare systems, banking and university student data systems, to name just a few, are all dependent on it. Writing code is relatively easy, but writing code accurately and well requires the ability to solve problems and understand how the code we write is often just a small part of a bigger system.
In this module, you’ll learn how an object-oriented approach to software development allows us to think in a particular way about solving problems. This approach increases the likelihood that our code will be well-written and reliable.
You'll also learn about abstraction and inheritance and develop a deeper practical understanding of how to program beyond simple problems.
We use large-scale web applications every day in our lives. How much do we understand about how they are structured and deployed, and how they operate? Web development technologies and frameworks change every year, while new ones are constantly proposed. As web developers, how do we cut through the marketing hype to evaluate what these really provide?
In this module you’ll examine the fundamental technologies that make modern web applications work. You’ll learn to use operating and cloud systems to deploy, configure, and monitor software. You’ll dive into networking, from the basic principles of network latency and bandwidth to addressing and transmitting at different layers, from the datalink to the HTTP application layer. You’ll also develop a foundational frontend web development skill set, learning how to structure web pages using HTML, style them using CSS, and develop interactive web pages using JavaScript.
Finally, you’ll develop an appreciation of web application architecture, from the web server to the most popular web stack frameworks. You’ll learn their principles of operation and practise their deployment on the cloud at different levels of abstraction.
We use a variety of physical, digital, and virtual interfaces every day. How many of these do we find easy, effortless, and pleasurable to use? How many of these do we find frustrating to use?
Some interfaces are well designed and provide a good user experience, but many are poorly designed. Throughout this module, you will learn about design quality and the need for a professional, integrated, and user-centred approach to interface design and development.
You’ll explore various analysis and design methods, understand what good interaction design is, and learn how to design easy to use, effective, and efficient interfaces. You’ll learn about different design principles and how to apply these principles to optimise the interaction between humans and computers. You’ll master the fundamental skills of user experience (UX) design and develop the ability to analyse designs and spot usability problems.
Mathematical reasoning underpins most aspects of computer science. Knowing and understanding the mathematical methods, techniques and abstract reasoning skills required to solve problems and analyse data is vital for moving on to other modules in our computing degree courses.
This module demonstrates the role of mathematics in Computer Science with relevant examples. Starting with algebra, reasoning and proof, set theory, functions, statistics and computer arithmetic, you’ll progress to the more abstract topics of matrices, vectors, differential calculus and probability.
When we write software, it will eventually run on a computer system. How does this influence what software is and how software works?
You’ll learn about the fundamental hardware and software components of a computer system, and how these components cooperate to execute software programs. You’ll deepen your knowledge of computer systems from the lowest level of abstractions in hardware to the highest level of abstractions of modern programming languages. For example, you’ll explore how logic circuits, machine language, programming language implementations, and high-level languages build on one another to enable useful software applications.
This will give you a deeper understanding of computers and enable you to develop high-quality software that considers the system perspective in terms of cost of abstraction and performance implications.
It was a change to work in the real world, and I think it helps you to see what you want in life.Eleana Sklaveniti, Computer Science with a Year in Industry - BSc (Hons)
Algorithms are the most essential concept in computer science. They are what allow Google to search the entirety of human knowledge in nanoseconds, answering a query for millions of users worldwide simultaneously. Algorithms are behind GPS routing software and every successful rocket launch. Algorithms are what allow our DNA to be replicated and passed on through generations.
Understanding algorithms and how to analyse them–both for correctness and efficiency–and learning how to develop new algorithms is the most crucial step in becoming a successful computer scientist.
Throughout the module you will develop the skills to read and interpret problem descriptions, and the knowledge you need to solve these problems. Your deepened understanding of algorithms from runtime, to executable programmes will set you up for an exciting and successful career in rapidly expanding digital industries.
Database systems are a cornerstone of most software. The contact list of your phone is managed by a database, as are the custom-made applications used by small and midsized enterprises, as well as the large-scale databases of internet platforms with their billions of users.
This module introduces you to the theory and practice of database systems. You’ll model, design, implement, and use database systems, gaining valuable skills you will need in your career as a software developer.
By the end of the module, you’ll be able to use query languages, emerging techniques, and future technologies in the field of database systems.
Embark on a transformative journey into the dynamic world of web development with this intermediate module covering internet technologies.
Designed to empower aspiring developers with the skills needed to thrive in today's digital landscape, this module offers a deep dive into the foundations of both front-end and back-end web development. From crafting captivating user experiences with the latest browser technologies to mastering server-side programming, databases and sound design principles, the curriculum equips you with the proficiency to build robust and scalable web applications. Join us and unlock the keys to shaping the future of the internet.
By the end of the module, you’ll become a proficient full-stack developer poised for success in the ever-evolving tech industry.
Software is everywhere you look, and modern software systems need to adapt to changes quickly. Software teams release new versions of their software frequently to keep up with changing requirements.
You will learn about the best practices for developing such software within a team using the agile methodology. You’ll discover the importance of customer involvement for identifying requirements, writing automated tests for verifying functionality, and code reviews for improving the quality of the codebase. You’ll also work with your peers to develop a software product incrementally.
As you embark on your project, you’ll apply the principles of agile methodology, manage your team effectively, organise your code using version control, and resolve problems via issue tracking. Further skills you’ll develop include learning to identify risks for software projects and following the principles of ethical software development to develop products to the highest professional standards.
The omnipresence of Artificial Intelligence (AI) is undeniable; it is not merely a futuristic concept but a current reality that permeates almost every facet of our lives. As we witness AI's pervasive influence, it becomes evident that it is destined to be an integral part of our everyday existence.
In this dynamic module, you will be introduced to the essential concepts of AI, setting the stage for a profound exploration into more advanced realms such as machine learning and bio-inspired computations. Through engaging weekly classes, your understanding will evolve, seamlessly transitioning from foundational principles to the intricacies of advanced concepts.
To reinforce your knowledge, the classes incorporate exercise questions tailored to guide you through a comprehensive learning journey. The inclusion of hands-on coding exercises, utilising a programming AI tool, further solidifies your understanding. This practical approach not only enriches your theoretical foundation but also equips you with the skills necessary for navigating the complexities of AI development.
Emphasis on real-world considerations ensures that you emerge from this course well-prepared to tackle more advanced modules later as you will not only possess a foundational understanding of AI but also wield practical expertise essential for active participation in AI development.
In today's interconnected world, cyber security is not just important – it is essential. From businesses to schools, homes, personal devices, and even vehicles, everything is connected! This module dives deep into the fascinating realm where cyber security – including general topics and specialist areas such as cryptography – take centre stage.
Get ready to explore how these fields shape the modern technology landscape, from fundamental security principles to the intricate dance between risk management, cybercrime, usable security and professional aspects. You'll unravel the mysteries of ciphers, delve into the world of symmetric and asymmetric cryptography, and even take a critical look at cyber-attacks. You'll also examine their social and technical dimensions and explore effective risk treatment measures. This includes robust security controls and the use of upcoming mechanisms such as cyber insurance.
The knowledge you will gain on this module provides a strong foundation to guide and inform security efforts within an organisation. Prepare to embark on a journey where every click, every byte, and every line of code matters – and where you knowledge can make a real difference.
Programming languages affect the way we solve complex problems, express the solutions to a computer, and communicate the ideas to others. But how? By introducing you to a radically new perspective on programming, we’ll reconsider the foundations of what it means to communicate our ideas computationally.
Our main vehicle will be the fundamental paradigm of ‘functional programming’: a form of programming in which functions are the central principle and in which the shape and form of data is explicit. This paradigm is pervasive in modern software engineering; every major mainstream programming language now heavily incorporates functional programming ideas (e.g., Python, C++, JavaScript, Java, C#) and those skilled in its use are heavily sought after.
You’ll learn the core tenets of functional programming in a general setting and deepen your understanding of what it means to solve problems with a computer. This will enable you to be a better programmer in any language. You’ll also gain insight into foundational topics in computer science and draw deep connections between other modules in the degree. For many, functional programming is a crucial ‘aha!’ moment in their journey towards being skilled in the art, science, and engineering of computer systems.
You spend a year working in an industrial or commercial environment between Stages 2 and 3.
Our students go to a wide range of companies including:
They have also been to overseas employers in locations including Amsterdam, Hong Kong and the US.
Although it is your responsibility to find a suitable placement, the School of Computing’s dedicated Placement Team will help to identify suitable opportunities, assist with your application and prepare you for interviews.
What could you do in a year?My year in industry couldn’t have gone better. I secured a role at IBM, working in their sports and entertainment department – it was perfect for meTom Tillin Find out more
You will take either the Group Project or Research Project module and then choose 4 optional modules from the list.
Engaging in group projects is a crucial aspect of your computer science studies as it provides you with valuable opportunities to work collaboratively with your peers. In the field of software development, teamwork is indispensable for achieving success as most projects require the combined effort of multiple individuals with diverse skills and expertise.
By participating in group projects, you not only enhance your technical knowledge but also develop essential teamwork skills such as communication, problem-solving, and collaboration. These skills are highly sought after in the industry and will undoubtedly set you apart as a successful and well-rounded computer professional. Embrace the opportunity to work in teams and take full advantage of the learning and growth experiences that come with it.
Engaging in a research project is a fantastic opportunity for computer science students as it offers the chance to work closely with an expert supervisor in a specific discipline. This experience not only allows you to delve deeper into a subject of interest but also helps you develop essential research skills that are transferable across various fields.
By embarking on a research project, you can enhance your critical thinking abilities, hone your problem-solving skills, and gain a deeper understanding of the world around you. These skills are highly valuable and will undoubtedly benefit you in your future academic and professional endeavours.
Natural organisms are well adapted to solve complex problems related to their survival in very dynamic and diverse environments. How do they solve such complex problems without using optimisation methods invited by humans?
In this module, you’ll learn in detail the main mechanisms used by natural organisms for adaptation and optimisation. You’ll also learn how computer scientists have developed abstractions of those mechanisms to create several adaptive, intelligent algorithms to solve difficult real-world optimisation problems.
In addition, you’ll learn how organisms and living systems can process information, typically in ways that are quite different to traditional computers. In this part of the module, you'll learn about stochastic simulation algorithms (based on statistical probabilities), which also have a wide range of applications in AI and computer science.
Finally, you’ll learn the pros and cons of different nature-inspired problem-solving and optimisation algorithms, so that you can identify the most appropriate algorithm for a given target real-world optimisation problem.
Embedded systems in conjunction with the Internet of Things (IoT) are used to create systems that can sense in real-time different aspects of their environment, collect and transmit information for a vast number of applications including smart cities, smart agriculture and smart factories (Industry 4.0). This information can then be used to transform the day-to-day operation of our cities and businesses making them more efficient and less wasteful of resources.
This module introduces the theory and practice of employing computers as the control and organisational centre of embedded systems and examines time-critical systems. You'll also cover design aspects of embedded systems and IoT through practical work, including real-time operating systems and microcomputer programming.
You will learn how to use the internal peripherals of a microcontroller by working directly at the hardware register level and as such gain a good understanding of the interactions between software and hardware. Many practical applications of embedded systems require real-time operation under strict deadlines (e.g., in factory automation). As such, the module also covers the concepts of real-time operating systems and features that are essential for time-critical operation. IoT can be used as the backbone communication infrastructure in embedded applications and the skills and knowledge you develop will be crucial in your future career.
What are the foundational principles, security considerations, diverse applications, and societal implications of blockchain and other distributed systems? Led by academic and industry experts, this module provides a comprehensive understanding of mechanics and potential impacts.
You will study architectures of blockchain and distributed systems, distributed consensus mechanisms, relevant cryptographic principles, and smart contracts. You’ll gain insights into their security aspects, strengths, limitations, and use cases. You’ll also engage in critical discussions about their broader implications on economics, governance, user privacy and society while examining opportunities and challenges.
By the end of the module, you’ll have a holistic understanding of their impact and be ready to responsibly leverage their potential. Whether you’re a professional deepening your expertise or a newcomer intrigued by their transformative power, this journey offers insight into a disruptive innovation.
We live our lives in a digital and highly networked world. Most (if not all) modern organisations rely on computers, the internet, cloud services or other digital devices and systems to manage their data, processes, workforce and other assets. How can organisations manage the security of their data, systems, processes and other assets?
You’ll gain a systematic understanding of information security management, such as what standard processes and practices to follow and how to assess and manage risks. You’ll also learn how to manage AAA (authentication, authorisation and accountability), how to understand the complicated cyber law landscape to ensure legal compliance, how to ensure security controls and processes are usable for all, and how to foster a people-centric culture for information security among staff.
By the end of the module you’ll have the necessary skills needed for becoming a confident and well-informed information security manager at any organisation you choose to work for.
Engineering skills are an important asset for a successful career as a software developer. You’ll explore critical tools and practices essential for contemporary software development and expand on previous knowledge by exploring version control, containerisation, continuous integration and deployment technologies. You’ll learn about the principles of infrastructure-as-code for scalable and maintainable software projects and gain hands-on experience with technologies used in the industry.
You’ll learn how to use profiling and debugging techniques to enable you to analyse, correct, and optimise code more effectively. You’ll be empowered to contribute to the complete lifecycle of complex software systems through hands-on experience with technical aspects such as build systems and a variety of approaches for effective communication, from issue tracking to versioning.
By the end of the module, you’ll be well-equipped with practical knowledge and skills, preparing you to contribute meaningfully to modern software engineering projects. You’ll also be able to navigate the intricacies of collaborative development based on experience with real-world scenarios.
Over the past few decades, video games have evolved into a mature digital medium, influenced by and driving advancements in GPU technology and AI. The commercial success of video games has spurred the accessibility of sensor technologies, leading to the rise of immersive technologies like virtual reality, paving the way for spatial computing.
Given the significance of video games in popular culture and the cutting-edge technological advancements, delve into this video game module, where you will learn various facets within video game design and development, encompassing game physics, AI, level design, player behaviour, game rules and mechanics, and user interfaces.
Through hands-on instruction, you are introduced to game development utilising state-of-the-art game engine. Additionally, you will extend the application of these skills in designing immersive and spatial computing applications, so you have all the tools you need to break into an exciting and expanding industry.
This module underscores the critical role of computing law and professional responsibility in raising ethical, legal, and responsible practices within the field of computing and technology.
You will delve into how computing law in the digital age, where data is ubiquitous, the importance of privacy and security cannot be overstated. You will learn how the General Data Protection Regulation (GDPR), plays a vital role in dictating the way personal data is collected, processed, and safeguarded, thereby preventing unauthorised exploitation, misuse, and security breaches.
You’ll gain knowledge on how ethical and legal standards engenders trust and confidence among users, stakeholders, and the broader public. Critically analysing ethical principles, legal mandates. You will delve into how prioritising the welfare of individuals and society at large, the computing sector can realise its potential as a catalyst for beneficial transformation and innovation.
Computational Intelligence (CI) techniques are essential to solve many of the real-world problems found in today’s data-driven decision making, where traditional analytical methods fall short due their complexity.
You will learn the fundamental concepts in CI, exploring how CI algorithms can efficiently navigate solution spaces to find (near) optimal solutions to complex problems. You will develop skills in applying Genetic Algorithms and Genetic Programming to solve complex problems in Business, Economics, and Finance through hands-on exercises and case studies.
You will learn to identify and analyse problem domains suitable for Genetic Algorithms and Genetic Programming, as well as how to implement and evaluate these algorithms effectively. This experience and the skills you develop help you stand out to employers and gain an extra edge in launching your career.
In today's interconnected world, the concepts of concurrency lie at the foundation of most advanced systems we encounter. From cloud computing to mobile applications, from online gaming to financial transactions, the ability to handle multiple tasks simultaneously and distribute them across networks is not just desirable – it's essential.
In both industry and academia, concurrency and distribution stand as hot topics, continuously shaping the landscape of technology and driving innovation forward. Companies are seeking skilled professionals who understand the intricacies of concurrent systems (e.g., Web APIs and services, latest CPU architectures and memory models) while researchers are pushing the boundaries of knowledge in pursuit of more efficient and reliable solutions.
Throughout this module, you'll delve into the theoretical underpinnings of concurrent behaviour, providing you with a solid understanding that transcends technicalities (e.g., programming syntax). Based on the principles you have learned; you will be able to critically assess the properties of a concurrent system and design a system with desirable properties and behaviour. But theory alone is not enough. Through hands-on exercises and real-world examples, we'll show you how these concepts translate into programming languages and practical solutions across a diverse array of domains.
Our contemporary world is inundated with an ever-expanding pool of digital data such as signals and images, and there seems to be no limit to our insatiable appetite for collecting even more information. Navigating through this vast sea of data, rife with noise and extraneous information, poses a formidable challenge in distilling meaningful insights.
You will master the foundational principles underlying signal, image and other types of data across diverse domains, including but not limited to acoustics, medicine, and finance. Skills required to adeptly organise, cleanse, visualise, and analyse intricate datasets will be taught, thereby allowing you to extract valuable and actionable information. Both classical and cutting-edge data analysis techniques will be explored, incorporating traditional methods alongside advanced approaches such as neural network-based deep learning.
Through immersive hands-on applications, you will actively tackle real-world data analysis challenges in weekly classes, fostering a practical and nuanced comprehension of the subject matter taught in lectures. The emphasis will be on ‘how’? i.e. to implement the methods by leveraging a data analytics tool, minimising the need for rote memorisation of theory. This practical approach ensures that you are well-equipped to navigate the ever-evolving terrain of data science, preparing you for the demands of the professional realm.
You’ll explore cognitive robotics, a branch of robotics in which knowledge plays a central role in supporting action selection, planning, and execution. Through this exploration, you’ll gain an understanding of what is involved in the design of a cognitive robot. You will master the knowledge and skills to produce working implementations for simple instances of tasks with a range of robots in the Cognitive Robotics lab.
Whether or not you have previous background in robotics, you will become familiar with core areas in robotics and principles of robotic programming, by engaging in interactive practical activities with real mobile robots and virtual simulators. You will be introduced to common software development environments to operate mobile robots in navigating a physical and virtual map or to manipulate simple objects.
You will be exposed to different applications of the state-of-the-art in Cognitive Robotics, such as industrial robots, collaborative robots, and human-robot interaction. You will learn about recent challenges in robotic vision and how robots can use and understand human language. You will explore the societal impact of Socially Assistive Robots and their interaction with humans, emphasising why the body of a social robot plays a significant role in enhancing such interactions, compared to traditional computer-based virtual agents.
You’ll explore the cutting-edge technologies used in the delivery of healthcare, from wearable devices and sensors for data collection, to digital platforms used in hospitals and care environments. You will understand the use of information technology for handling clinical data in health systems and learn different and exciting ways in which clinicians use historical and present test data to identify the best outcome for their patients.
You will explore some basic principles of machine learning algorithms for analysing medical data and learn how to create a start-up in health care domains, from proposing an innovative idea for an eHealth product and seeking funding opportunities for it, to planning the project of producing and marketing this new product.
Machine learning is not only central to modern artificial intelligence, but across sciences and everyday life. You will learn how computers can program themselves automatically, learning from data or from active exploration of the world.
You’ll develop the ability to make sound, rational and effective judgements and decisions about the use of the core machine learning algorithms for different types of practical problems. Selected algorithms will be investigated in great depth, to give you deep understanding of the inner workings of machine learning, so you can better understand and utilise machine learning throughout your career.
Explore the exciting world of computer networks and communications. You’ll begin with a deep dive into current computer networks and communication technologies, gaining and understanding of the filed and where it stands today.
You’ll conduct a full review of areas such as: network techniques; switching and multiple access; high speed local area networks; network protocols and network, transport and application layers. Through this, you will not only deepen your understanding, you will be able to explore issues that are yet to be solved in computer networks and communications and take the first step towards finding solutions, and breaking new ground in the field.
Do you want to bring your passion for computing to the classroom? If so, this module is for you. Through spending one half-day per week in a school with a nominated teacher, you’ll gain an authentic experience of working in a school classroom. Observing sessions taught by experienced teachers provides you with insights into the classroom experience and professional attributes required for such work.
Acting in the role of a teaching assistant, by helping individual pupils who are having difficulties or by working with small groups, you can begin to acquire some of the interpersonal and presentation skills required in a teaching role. Devising a special project in consultation with the teacher and the module team deepens your understanding by providing an opportunity to put these skills into practice.
The vast majority of software developers do not program in machine code, but they use higher-level languages that are translated to machine code (or interpreted) by tools called compilers (resp. Interpreters). Compilers are, therefore, a crucial technology in computer science. Understanding how compilers work, and the code that they produce is crucial to learn to write good, optimised code.
In this module, you will learn the underpinning theory, you will build compiler analyses and/or transformations, and you will critically analyse different language design decisions, their impact in compiler implementations, and the resulting machine code.
The module will outline a whole compiler from source to machine code but will focus in depth on key algorithms and techniques. You will experiment with writing interpreters, implementing different strategies for register allocation, you will use dataflow analyses for different program transformations and optimisations, and you will build your own extension of a compiler with a programming language feature of your choice.
What does it mean for a computer to be creative? How can artificial intelligence be used to generate creative behaviour? How do we work around the social, ethical and philosophical issues that arise?
You’ll learn about key theoretical, practical and philosophical research and issues around computational creativity and creative AI. You'll explore what computational creativity is and consider examples in different creative domains. You’ll gain practical experience in writing creative AI software. You’ll also tackle how to evaluate the creativity of creative computer systems and consider contextual issues around how computational creativity and creative AI can be used.
Student-led seminars allow you to develop knowledge by reading about, discussing and reflecting on current issues under debate in the area. You'll identify a specific context to focus on in more depth and, in your chosen context, you will conceptualise, design, build and evaluate your own creative AI software.
Many security vulnerabilities are originated by flaws in the source code of a system. In many cases, these are subtle bugs that are hard to find and test. So, how can we prevent systems from having such flaws?
Formal methods are mathematically rigorous techniques that can be used to analyse and verify that systems are absent from certain classes of bugs. You’ll learn how to use formal methods to improve the security of computer systems. You’ll also explore the formal definition of type systems for security analysis. You’ll learn how to reason formally about the behaviour of computer systems and how use of information flow control can prevent a system from leaking private data.
Data mining and knowledge discovery techniques are widely used in real-world applications. Examples of high-stakes applications include analysing data to decide whether or not a patient should undergo a surgery or a customer should be granted a loan or hired for a job. You’ll learn in detail how data mining algorithms work to automatically extract knowledge from data, and why these algorithms – which are based mainly on machine learning (but also on statistics) – are so important for today’s data-driven society.
You’ll learn about the broader process of knowledge discovery, including the application of data mining algorithms to real-world datasets. You’ll also prepare data for the subsequent application of a data mining algorithm and learn how to evaluate the knowledge discovered by a data mining algorithm. This module emphasises the use of techniques that learn predictive models that can be in principle interpreted by users, as opposed to machine learning techniques that learn black-box predictive models (not directly interpretable by users).
The world wide web is hugely complex and interconnected, with social networks now the primary means of human interaction on the internet. You will develop an understanding of the web of data via weekly lectures and small group practical sessions. This will give you the ability to model, share and reason about network information by immersion in state-of-the-art technology to query the semantic web including the resource description framework and property graphs.
You’ll learn practical methods for the visualisation of graph-based data including the widely used search-based and force-directed graph drawing algorithms. Advance your skills in implementing algorithms to analyse graph data, including important metrics for clustering and community detection, as well as learning about the various graph mining methods to uncover useful insights about social networks.
In an era defined by interconnectedness and digital transformation, IoT stands as a linchpin technology, facilitating seamless communication and data exchange between physical devices and digital networks. Its importance cannot be overstated, as IoT applications permeate nearly every aspect of modern life, from optimising industrial processes and enhancing healthcare delivery to revolutionising urban infrastructure and fostering sustainable agriculture practices.
Delve into the interconnected world of devices, sensors and systems that form the backbone of the IoT ecosystem. Through a hands-on approach you will gain in-depth knowledge of IoT concepts, architectures, protocols, and applications. You will gain knowledge and skills in a range of cross-arching topics including low-level programming, computer architecture, wireless communication protocols, integration of hardware components, integration with IoT cloud platforms.
This practical module will enable you to apply your knowledge by developing prototypes of IoT devices and give you a deeper understanding of the challenges involved in developing innovative IoT solutions.
What does it mean for a program to be ‘correct’? What, exactly, is the relationship between the code you write and what a computer will do when you run it? What are the implications of choosing one particular programming language over others when building software?
You’ll learn how to answer all these questions by gaining a deeper understanding of the fundamentals of programming languages. Programming languages are the useful, friendly abstractions that stand between you, the programmer, and the intricate architectures of computer systems. By learning about the semantics of programming languages, you’ll be able to more definitively know what the code you write actually means, and what the implications are for running your code on actual computers.
Through hands-on exercises and examples, you’ll study a variety of different programming language paradigms, learn how programming languages are formally specified, and develop the skills to evaluate different programming languages and select the appropriate language for any given task. Along the way, you’ll also see how new programming languages are designed and learn how to design one yourself.
Starting with a simple imperative programming language, you’ll explore how to extend it with progressively more complex features, such as types, higher-order functions, concurrency and objects.
Deep learning is an approach to machine learning developed over several decades. It draws heavily on our knowledge of the human brain, statistics and applied mathematics. In recent years, deep learning has grown tremendously in popularity and usefulness, largely due to more powerful computers, larger datasets and techniques to train deeper networks.
You'll look into modern deep neural networks starting from the fundamentals of Artificial Neural Networks (ANNs). You'll start by learning what is an artificial neuron and architectures like multilayer perceptron, expanding on algorithms for training ANNs such as gradient descent and backpropagation.
Examine applications of deep learning with particular attention to coding aspects during lectures and practical activities. You'll learn how to use the most popular techniques to evaluate the performance of a model on real data. You'll be introduced to different types of deep neural networks, from convolutional networks to recursive neural networks, and autoencoders to address different problems with a particular focus on computer vision topics.
Quantum technologies are currently being developed that will have a significant impact on the world we live in.
You’ll study two particularly promising quantum technologies: quantum computation, and quantum cryptography. You’ll gain an overview of the mathematical and theoretical knowledge required to tackle these more specialised and advanced topics, before learning the basic principles of quantum algorithms and quantum cryptography.
You’ll gain an understanding of what these technologies can and cannot do, where these technologies are heading, and what the extent of their impact on our society may be.
Are you interested in starting your own business? What are the tools and skills you need to do so? Why are startups becoming more popular? We’ll delve into the social and economic changes that have raised the status of enterprises, small businesses, and entrepreneurial ventures in the global economy.
We’ll consider entrepreneurs, their characteristics and motivations, and the barriers and issues that they face when planning and establishing a new startup venture. You'll learn what makes new ventures grow and succeed, and evaluate the practical decisions that entrepreneurs need to make to maximise the chances of their business succeeding.
Image analysis techniques give computers the power to enhance, interpret and understand visual inputs. They are integral to many applications such as autonomous vehicles, medical diagnosis, document processing, biometric security, surveillance, etc.
You’ll learn the principles of image analysis techniques alongside their practical applications. Starting from basic image formation and acquisition, you’ll learn core image processing techniques such as how to filter noise, how to extract object outlines, how to identify regions of interest in an image (segmentation), and about image feature descriptors.
At the same time, you’ll be exploring various supervised and unsupervised classification techniques (including neural networks) for object recognition. You’ll study several real-world applications of image analysis and also learn through lab-based exercises and a mini-project.
Within the School of Computing are authors of widely used textbooks, a National Teaching Fellow and Association of Computer Machinery (ACM) Award-winning scientists. Programmes are taught by leading researchers who are experts in their fields.
Teaching is based on lectures, with practical classes and seminars, but we are also introducing more innovative ways of teaching, such as virtual learning environments and work-based tuition. Work includes group projects, case studies and computer simulations, with a large-scale project of your own choice in the final year.
We provide excellent support for you throughout your time at Kent. This includes access to web-based information systems, podcasts and web forums for students who can benefit from extra help. We use innovative teaching methodologies, including BlueJ and LEGO© Mindstorms for teaching Java programming.
Assessment is by a combination of coursework and end-of-year examination and details are shown in the module outlines on the web.
For a student studying full time, each academic year of the programme will comprise 1200 learning hours which include both direct contact hours and private study hours. The precise breakdown of hours will be subject dependent and will vary according to modules.
Methods of assessment will vary according to subject specialism and individual modules.
Please refer to the individual module details under Course Structure.
For course aims and learning outcomes please see the course specification.
An accredited degree gives you the knowledge, understanding and skills for eventual registration as an Incorporated (IEng) or Chartered Engineer (CEng). Some employers prefer graduates from accredited degrees, and your degree is also more likely to be recognised in other countries if you're looking to work abroad.
Our graduates have gone on to work in:
Recent graduates have gone on to develop successful careers at leading companies such as:
*The Government announced on 4 November 2024 that tuition fees in England for Home students will increase to £9,535 from £9,250 for the academic year 2025/26. This increase requires Parliamentary approval, which is expected to be given in early/mid 2025.
Tuition fees may be increased in the second and subsequent years of your course. Detailed information on possible future increases in tuition fees is contained in the Tuition Fees Increase Policy.
The University will assess your fee status as part of the application process. If you are uncertain about your fee status you may wish to seek advice from UKCISA before applying.
For details of when and how to pay fees and charges, please see our Student Finance Guide.
Fees for undergraduate students are £1,900.
Fees for undergraduate students are £1,430.
Students studying abroad for less than one academic year will pay full fees according to their fee status.
You will require regular access to a desktop computer/laptop with an internet connection to use the University of Kent’s online resources and systems. Please see information about the minimum computer requirements for study.
Find out more about accommodation and living costs, plus general additional costs that you may pay when studying at Kent.
Kent offers generous financial support schemes to assist eligible undergraduate students during their studies. See our funding page for more details.
We have a range of subject-specific awards and scholarships for academic, sporting and musical achievement.
We welcome applications from students all around the world with a wide range of international qualifications.
Student Life
Powered by progress
Kent has climbed 12 places to reach the top 40 in The Times Good University Guide 2025.
Kent Sport
Kent has risen 11 places in THE’s REF 2021 ranking, confirming us as a leading research university.
An unmissable part of your student experience.