About the course
Technology drives society, and computer science is developing faster than ever before. Social media, cloud computing, face recognition software, network security and robotics all have a basis in computing. In both business and research, computer science continues to change our lives, our work, and the way we communicate and socialise with one another.
Our BSc Computer Science course is the most flexible of our courses in computing, allowing you to choose from a wide choice of optional modules and to specialise in areas as diverse as assistive technologies, computer games, artificial intelligence, evolutionary computation, Big Data and robotics.
You also acquire key skills for computer science in the areas of:
- Algorithm analysis and basic computability
- Software engineering
- Java language principles and application programming interfaces
Our School is a community of scholars leading the way in technological research and development. Today’s computer scientists are creative people who are focused and committed, yet restless and experimental. We are home to many of the world’s top scientists, and our work is driven by creativity and imagination as well as technical excellence.
We were ranked 8th in the UK in the 2015 Academic Ranking of World Universities, with more than two-thirds of our research rated “world-leading” or “internationally excellent” (REF 2014).
You graduate with the ability to explore further how technology influences people’s lives.
“My Essex experience was truly rich and rewarding. I gained good technical knowledge and teamwork experience which will help me in my future career, both at the University and through a three-month summer internship at BT."
Razvan Stefan Muscalu, BSc Computer Science, 2012
This degree is accredited by both the Institution of Engineering and Technology (IET) and the British Computer Society (BCS). These accreditations are increasingly sought by employers, and provide the first stage towards eventual professional registration as a Chartered Engineer (CEng).
Your education extends beyond the university campus. We support you extending your education through providing the option of an additional year at no extra cost. The four-year version of our degree allows you to spend the third year studying abroad or employed on a placement, while otherwise remaining identical to the three-year course.
Studying abroad allows you to experience other cultures and languages, to broaden your degree socially and academically, and to demonstrate to employers that you are mature, adaptable, and organised. Popular destinations can include:
- The United States
- New Zealand
- Latin America
- The Middle East
- Hong Kong
Alternatively, you can spend your third year on a placement with an external organisation, as part of one of our placement year degrees. The learning outcomes associated with this programme focus on using the specialist technical skills acquired in the first two years of the course and developing communications skills with customers.
Students are provided with support to secure a placement. Recent placements undertaken by our students have been with ARM, Microsoft, Intel, Nestlé, British Aerospace, and the Rutherford Appleton Laboratory, as well a range of SME software and hardware companies.
Our expert staff
Our original Department of Computer Science was founded by Professor Tony Brooker, who came to Essex from Manchester where he had worked with Alan Turing. Professor Brooker invented the compiler-compiler, one of the earliest applications of a formal understanding of the nature of programming languages.
In recent years we have attracted many highly active research staff and we are conducting world-leading research in areas such as evolutionary computation, brain-computer interfacing, intelligent inhabited environments and financial forecasting.
- We have six laboratories that are exclusively for computer science and electronic engineering students. Three are open 24/7, and you have free access to the labs except when there is a scheduled practical class in progress
- All computers run either Windows 7 or are dual boot with Linux
- Software includes Java, Prolog, C++, Perl, Mysql, Matlab, DB2, Microsoft Office, Visual Studio, and Project
- Students have access to CAD tools and simulators for chip design (Xilinx) and computer networks (OPNET)
- We also have specialist facilities for research into areas including non-invasive brain-computer interfaces, intelligent environments, robotics, optoelectronics, video, RF and MW, printed circuit milling, and semiconductors.
The Government and industry are increasingly concerned that there will be a shortfall in skilled personnel to meet the needs of the IT industries. And an incredible 92.5% of our computer science graduates secure a graduate job or go on to further study within six months of finishing their degree - well above the national average.
Past Essex graduates in computer science have found employment as systems analysts, software engineers, programmers and systems engineers, while a number go on to postgraduate study or research.
Our department has a large pool of external contacts, ranging from companies providing robots for the media industry, through vehicle diagnostics, to the transforming of unstructured data to cloud-based multidimensional data cubes, who work with us and our students to provide advice, placements and eventually graduate opportunities.
Our recent graduates have gone on to work for a wide range of high-profile companies including:
- Formula One
- Light Speed IT Solutions
- Royal Bank of Scotland
We also work with the university’s Employability and Careers Centre to help you find out about further work experience, internships, placements, and voluntary opportunities.
Studying at Essex is about discovering yourself, so your course combines compulsory and optional modules to make sure you gain key knowledge in the discipline, while having as much freedom as possible to explore your own interests. Our research-led teaching is continually evolving to address the latest challenges and breakthroughs in the field, therefore to ensure your course is as relevant and up-to-date as possible your core module structure may be subject to change.
For many of our courses you’ll have a wide range of optional modules to choose from – those listed in this example structure are just a selection of those available. The opportunity to take optional modules will depend on the number of core modules within any year of the course. In many instances, the flexibility to take optional modules increases as you progress through the course.
Our Programme Specification gives more detail about the structure available to our current first-year students, including details of all optional modules.
This module introduces students to three key aspects of professional development. These are product development, team work, and project management. In teams of six you work throughout the year to develop a performance for a Nao robot, with a Python module at the core of the product. Apart from the core skills you also learn about contextual issues such as intellectual Property (IP), sustainability, ethical issues, and health & safety. The module is a great opportunity to build a product in a team of fellow students and have that wonderful feeling of having created something original.
View 'Professional Development' on our Module Directory
The aim of this module is to cover fundamental mathematics for Computer Scientists. It does not assume A-level mathematics, and the emphasis and delivery will be on understanding the key concepts as they apply to Computer Science.
View 'Mathematics for Computing' on our Module Directory
The aim of this module is to provide an introduction to the fundamental concepts of computer programming. After completing this module, students will be expected to be able to demonstrate an understanding of the basic principles and concepts that underlie the procedural programming model, explain and make use of high-level programming language features that support control, data and procedural abstraction. Also, they will be able to analyse and explain the behaviour of simple programs that incorporate standard control structures, parameterised functions, arrays, structures and I/O.
View 'Introduction to Programming' on our Module Directory
Want to become a Java programmer? Topics covered in this module include control structures, classes, objects, inheritance, polymorphism, interfaces, file I/O, event handling, graphical components, and more. You will develop your programming skills in supervised lab sessions where help will be at hand should you require it.
View 'Object-Oriented Programming' on our Module Directory
Databases are everywhere. They are employed in banking, production control and the stock market, as well as in scientific and engineering applications. For example, the Human Genome Project had the goal of mapping the sequence of chemical base pairs which make up human DNA. The result is a genome database. This module introduces the underlying principles of databases, database design and database systems. It covers the fundamental concepts of databases, and prepares the student for their use in commerce, science and engineering.
View 'Introduction to Databases' on our Module Directory
The aim of this module is to provide students with an introduction to the principles and technology that underlie internet applications and the techniques used in the design and construction of web sites. Students showcase their skills by designing and building both client and server components of a data driven web site.
View 'Web Development' on our Module Directory
This module introduces the fundamentals of networking including wiring and configuration of switches and routers and associated subnetting. Laboratory sessions give practical hands on experience in our purpose built networking lab. The module uses the Cisco CCNA exploration Network Fundamentals course which is the first of four Cisco courses that can be used to obtain a Cisco CCNA qualification and participants will gain the CCNA1 qualification whilst on this course.
View 'Network Fundamentals' on our Module Directory
Computers, embedded systems, and digital systems in general have become an essential part of most people's lives, whether directly or indirectly. The aim of this module is to introduce the software and hardware underpinnings of such systems at an introductory yet challenging level suitable for future computer scientists and engineers. Topics covered in the module include both top-view as well as bottom-view approaches to understanding digital computers. They range from the more theoretical (e.g., state machines, logic circuits, and von Neumann's architecture) to the more practical (e.g., how transistors produce binary signals, operating system functions, memory management, and common hardware devices). The module also includes problem solving classes in which a guided discussion of weekly exercises is aimed at giving the student an opportunity to consolidate his/her understanding of the topics involved. Upon completion of this module, students should have a good conceptual and practical understanding of the nature and architecture of digital computer systems and their components.
View 'Fundamentals of Digital Systems' on our Module Directory
This course covers the principles of project management, team working, communication, legal issues, finance, and company organisation. Working in small teams, students will go through the full project life-cycle of design, development and implementation, for a bespoke software requirement. In this course, students gain vital experience to enable them to enter the computer science/Electrical engineering workforce, with a degree backed by the British Computer Society, and by the Institute of Engineering and Technology.
View 'Group Project & Industrial Practice' on our Module Directory
This module aims to equip students with the main principles guiding the activities involved in software development throughout its lifecycle, including software requirements, object-oriented analysis and design, software validation and testing, and software maintenance and software evolution.
View 'Software Engineering' on our Module Directory
This module extends the students' knowledge and skills in object-oriented application programming by a treatment of further Java language principles and of important Application Programming Interfaces (APIs). The Java Collections API is explored in some more detail with emphasis on how to utilise these classes to best effect. A particular focus will be on the interaction with databases (e.g. via JDBC) and on writing secure applications.
View 'Application Programming' on our Module Directory
Data structures and algorithms lie at the heart of Computer Science as they are the basis for the efficient solution of programming tasks. In this module, students will study core algorithms and data structures, as well as being given an introduction to algorithm analysis and basic computability.
View 'Data Structures and Algorithms' on our Module Directory
Human-Computer Interaction is about making software usable - not requiring users to think very hard in order to carry out whatever operation they need to do. In this module we start by covering the cognitive foundations of usability - what we know about the perceptual and motor limitations of our users - before introducing Norman's theory of human / computer interaction and its applications, using web design as the main application scenario - considering both web access from a desktop and web access from a smartphone, with all its implications. Finally, we look at how to use visualization to facilitate access to information.
View 'Human Computer Interfaces and Visualisation (optional)' on our Module Directory
Artificial intelligence will be a great driver of change in the coming decades. This module provides an introduction to three fundamental areas of artificial intelligence: search, knowledge representation, and machine learning. These underpin all more advanced areas of artificial intelligence and are of central importance to related fields such as computer games and robotics. Within each area, a range of methodologies and techniques are presented, with emphasis being placed on understanding their strengths and weaknesses and hence on assessing which is most suited to a particular task.
View 'Artificial Intelligence (optional)' on our Module Directory
The robots are coming into part of our lives, autonomous cars will drive themselves, drones will delivery packages, and underwater vehicles will explore the oceans. This module covers fundamental knowledge on sensing, navigation, localisation, motion control, and decision making involved in most robotic platforms. You will be able to construct and program LEGO robots using Java language to perform a range of tasks.
View 'Robotics (optional)' on our Module Directory
Most players think that designing computer games must be easy. How hard can it be? Well, writing books and painting pictures is also “easy”, but would you want to read those books, hang those pictures on the wall – or play those games? This module can’t teach you how to design games, any more than a creative writing module can teach you to write novels or an oil painting module can teach you to paint portraits. What it can do is help people who want – who need – to design games to hit the ground running. Where you run after that is up to you!
View 'Computer Game Design (optional)' on our Module Directory
This module adds game-specific techniques and material to the general-purpose programming abilities acquired previously. Topics include fundamental game classes and loops; working with 2D graphics, images and sound; collision detection, Game AI, particle effects, procedural content generation, physics engines and more. Students showcase their programming skills and creative flair by designing and implementing a 2D video game.
View 'Computer Game Programming (optional)' on our Module Directory
The aim of this module is to provide an introduction to the C++ programming language. The contents covered by this module include basic concepts and features of C++ programming (e.g., operator overloading), C++ Standard Template Library, and inheritance, function overriding and exceptions.
View 'C++ Programming (optional)' on our Module Directory
Want to configure Internet routing protocols for interconnecting networks? Or configure Ethernet switches and associated protocols? Build on your understanding of Internet routing protocols, Ethernet and other IP networking. Gain practical experience of configuration. Design addressing structures and interconnecting strategies for campus scale networks.
View 'Computer and Data Networks (optional)' on our Module Directory
The highlight of our undergraduate degree courses is the individual capstone project. This project module provides students with the opportunity to bring together all the skills they have gained during their degree and demonstrate that they can develop a product from the starting point of a single 1/2 page description, provided either by an academic member of staff or an external company. In all the student spends 450 hours throughout the academic year, reporting to their academic tutor, and in the case of company projects, to a company mentor. All projects are demonstrated to external companies on our Project Open Day.
View 'Individual Project' on our Module Directory
Want to learn about more advanced programming constructs and techniques? Topics covered in this module include concurrency, distributed programming, design patterns, and others. We will also take a closer look at some of the programming concepts taught previously. The module features a substantial, non-trivial assignment that should help you to hone - and demonstrate - your programming skills.
View 'Advanced Programming (optional)' on our Module Directory
Evolutionary computation is an exciting area of artificial intelligence that focuses on systematic methods (known as evolutionary algorithms) inspired by Darwinian evolution for getting computers to automatically solve problems starting from a high-level statement of what needs to be done. Evolutionary algorithms are today routinely used to solve difficult problems in industry, medicine, biology, finance, and much more. Evolutionary algorithms can even consistently solve difficult problems which require solutions in the form of computer programs. This is a form of automatic programming that is known as genetic programming. In this module you will learn how to use evolutionary algorithms and genetic programming to solve real-world problems from an international authority in these areas.
View 'Evolutionary Computation and Genetic Programming (optional)' on our Module Directory
More and more, we need the systems that we construct to do what we want without having to be told every step: robots and non-player characters in games ought to be able to work out what to do for themselves; computers ought not to ask users for information if they can ask each other. Our best current hope for doing this is to construct systems as “agents” - systems that have goals, sense the world around them, and decide how to respond. This module introduces the basic computational techniques for doing that.
View 'Intelligent Agents (optional)' on our Module Directory
As humans we are adept in understanding the meaning of texts and conversations. We can also perform tasks such as summarize a set of documents to focus on key information, answer questions based on a text, and when bilingual, translate a text from one language into fluent text in another language. Natural Language Engineering (NLE) aims to create computer programs that perform language tasks with similar proficiency. This course provides a strong foundation to understand the fundamental problems in NLE and also equips students with the practical skills to build small-scale NLE systems. Students are introduced to three core ideas of NLE: a) gaining an understanding the core elements of language--- the structure and grammar of words, sentences and full documents, and how NLE problems are related to defining and learning such structures, b) identify the computational complexity that naturally exists in language tasks and the unique problems that humans easily solve but are incredibly hard for computers to do, and c) gain expertise in developing intelligent computing techniques which can overcome these challenges.
View 'Natural Language Engineering (optional)' on our Module Directory
Interested in designing, programming and evaluating AI robots? To understand the potential applications for AI in the real world? Study different approaches to the use of AI robotics, along with associated design methodologies. Gain practical experience of building your own autonomous mobile robots and intelligent machines, from sensing to action.
View 'Mobile Robotics (optional)' on our Module Directory
Massively Multiplayer Online Role-Playing Games are the largest and most sophisticated computer games in existence. This extraordinary module – which is quite unlike any other in the School – covers their design, history, influence and artistry, and is delivered by one of the two individuals who co-invented the genre here at Essex University in the late 1970s. If you’re interested in game design in general and MMO design in particular, you’re not going to find a module quite like this anywhere else.
View 'Virtual Worlds (optional)' on our Module Directory
The world demands software systems with ever increasing richness of behaviours and degrees of complexity. However, traditional software engineering techniques, which were inherited with relatively minor adaptations from other, older branches of engineering, have been struggling to scale up to the challenges posed by modern software systems. As a result, a large proportion (as much as a quarter!) of software projects based on traditional methods end up being cancelled at some point in their lifecycle, with many more being late, over budget and with less features than initially stipulated. In this module you will learn why traditional software engineering techniques fail, and you will become very familiar (through lectures, labs, videos and a large group project) with a novel set of techniques, known as Extreme Programming and Agile Software Development, which fundamentally solve these problems. In the last decade, these techniques have been so successful that today as many as 80% of all projects adopt agilite methods.
View 'Large Scale Software Systems and Extreme Programming (optional)' on our Module Directory
How do you configure Internet routing protocols for interconnecting WAN and LAN technologies? How suitable are WAN protocols within a modern communications infrastructure? Study the theories behind simulating and analysing network performance. Understand the fundamental principles behind contemporary network architecture and protocols, and evaluate why new protocols are created.
View 'Network Engineering (optional)' on our Module Directory
On a placement year you gain relevant work experience within an external business or organisation, giving you a competitive edge in the graduate job market and providing you with key contacts within the industry. The rest of your course remains identical to the three-year degree.
On your year abroad, you have the opportunity to experience other cultures and languages, to broaden your degree socially and academically, and to demonstrate to employers that you are mature, adaptable, and organised. The rest of your course remains identical to the three-year degree.
- Courses are taught by a combination of lectures, laboratory work, assignments, and individual and group project activities
- Group work
- A significant amount of practical lab work will need to be undertaken for written assignments and as part of your learning
- You are assessed through a combination of written examinations and coursework
- All our modules include a significant coursework element
- You receive regular feedback on your progress through in-term tests
If you already have your results and want to apply for 2016 entry through Clearing, complete our Clearing application form
and we’ll get back in touch with you or give us a ring
to discuss your grades.
IELTS entry requirements
English language requirements for applicants whose first language is not English: IELTS 6.0 overall. (Different requirements apply for second year entry.)
If you do not meet our IELTS requirements then you may be able to complete a pre-sessional English pathway that enables you to start your course without retaking IELTS.
If you are an international student requiring a Tier 4 visa to study in the UK please see our immigration webpages for the latest Home Office guidance on English language qualifications.
Other English language qualifications may be acceptable so please contact us for further details. If we accept the English component of an international qualification then it will be included in the information given about the academic levels required. Please note that date restrictions may apply to some English language qualifications.