This is an archived page and for reference purposes only
Computer Science is an exciting and rapidly developing subject that offers excellent employment prospects and well-paid careers. On this degree, you focus on networks, including computer systems, communication, security and cryptography.
Our programmes are taught by leading researchers who are experts in their fields. The School of Computing at Kent is home to several authors of leading textbooks, a National Teaching Fellow, an IET (Institute of Engineering and Technology) Fellow and two Association of Computer Machinery (ACM) award-winning scientists. Kent was awarded gold, the highest rating, in the UK Government’s Teaching Excellence Framework*.
This programme has full Chartered IT Professional (CITP) accreditation from BCS, The Chartered Institute for IT.
Our degree programme
On this themed degree, the specific focus (here, Networks) is decided at the time of enrolment and named in your degree title. You can also study our general Computer Science degree where a subject focus is decided during the course of your study.
Our programme focuses on the technical aspects of computer science. The first language you learn is Java, the standard programming language for many mobile devices and widely used in the industry.
Other areas covered include software engineering, network technology and human-computer interaction. You learn how to develop software, program mobile devices and discover the underlying protocols on which the internet runs.
We also offer modules that allow you to gain practical experience. On our Kent IT Consultancy option, you learn how to become an IT consultant, providing computing support to local businesses while earning credits towards your degree.
You can also gain experience in teaching with our Computing in the Classroom module, which gives you the opportunity to apply your knowledge in a school setting.
Year in industry
Over half our students choose to take a year in industry after the second year of the programme. This gives you work experience, a salary and the possibility of a job with the same company after graduation. You don’t have to make a decision before you enrol at Kent but certain conditions apply: for details, see Computer Science (Networks) with a Year in Industry.
Facilities to support the study of Computer Science include The Shed, the School of Computing's Makerspace, which houses:
- 3D printers
- laser-cutting facilities
- development equipment, including Oculus Rift and Raspberry Pi.
Students also have exclusive access to a computer room and common room, and we run a peer-mentoring scheme.
Computer Science students often take part in TinkerSoc, a student-run 'tinkering' society which meets in 'The Shed', our collaborative workspace. TinkerSoc welcomes all students who like making things.
Whether a member of TinkerSoc or not, you can spend time in The Shed, making, exploring and sharing. In this informal environment you can build physical devices for your coursework, as well as develop your own interests and hobbies.
The School of Computing also hosts events that you are welcome to attend. These include our successful seminar programme where guest speakers from academia and industry discuss current developments in the field. We also host the BCS local branch events on campus.
Our programmes are informed by a stakeholder panel of industry experts who give feedback on the skills that employers require from a modern workforce.
Our successful year in industry programmes have allowed us to build up excellent relationships with leading companies such as BAE Systems, Citigroup and The Walt Disney Company.
We also have a dedicated Employability Coordinator who is the first point of contact for students and employers.
*The University of Kent's Statement of Findings can be found here.
Computer Science at Kent scored 92.1 out of 100 in The Complete University Guide 2019.
For graduate prospects, Computer Science at Kent scored 92% in The Guardian University Guide 2019, over 91% in The Times Good University Guide 2019 and 93 out of 100 in The Complete University Guide 2019.
Of Computer Science students who graduated from Kent in 2017 and completed a national survey, over 92% were in professional work or further study within six months (DLHE).
Teaching Excellence Framework
All University of Kent courses are regulated by the Office for Students.
Based on the evidence available, the TEF Panel judged that the University of Kent delivers consistently outstanding teaching, learning and outcomes for its students. It is of the highest quality found in the UK.
Please see the University of Kent's Statement of Findings for more information.
The course structure below gives a flavour of the modules and provides details of the content of this programme. This listing is based on the current curriculum and may change year to year in response to new curriculum developments and innovation.
|Compulsory modules currently include||Credits|
CO520 - Further Object-Oriented Programming
This module builds on the foundation of object-oriented design and implementation found in CO320 to provide both a broader and a deeper understanding of and facility with object-oriented program design and implementation. Reinforcement of foundational material is through its use in both understanding and working with a range of fundamental data structures and algorithms. More advanced features of object-orientation, such as interface inheritance, abstract classes, nested classes, functional abstractions and exceptions are covered. These allow an application-level view of design and implementation to be explored. Throughout the course, the quality of application design and the need for a professional approach to software development is emphasised.View full module details
CO320 - Introduction to Object-Oriented Programming
This module provides an introduction to object-oriented software development. Software pervades many aspects of most professional fields and sciences, and an understanding of the development of software applications is useful as a basis for many disciplines. This module covers the development of simple software systems. Students will gain an understanding of the software development process, and learn to design and implement applications in a popular object-oriented programming language. Fundamentals of classes and objects are introduced and key features of class descriptions: constructors, methods and fields. Method implementation through assignment, selection control structures, iterative control structures and other statements is introduced. Collection objects are also covered and the availability of library classes as building blocks. Throughout the course, the quality of class design and the need for a professional approach to software development is emphasised and forms part of the assessment criteria.View full module details
CO322 - Foundations of Computing I
Mathematical reasoning underpins many aspects of computer science and this module aims to provide the skills needed for other modules on the degree programme; we are not teaching mathematics for its own sake. Topics will include algebra, reasoning and proof, set theory, functions, statistics and computer arithmetic.View full module details
CO323 - Databases and the Web
CO325 - Foundations of Computing II
This module follows from CO322 and aims to provide students with more understanding of the theory behind the formal underpinnings of computing. It will build upon the abstract reasoning skills introduced in CO322. Matrices, vectors, differential calculus, probability and logic will be introduced.View full module details
CO328 - Human Computer Interaction
This module provides an introduction to human-computer interaction. Fundamental aspects of human physiology and psychology are introduced and key features of interaction and common interaction styles delineated. A variety of analysis and design methods are introduced (e.g. GOMS. heuristic evaluation, user-centred and contextual design techniques). Throughout the course, the quality of design and the need for a professional, integrated and user-centred approach to interface development is emphasised. Rapid and low-fidelity prototyping feature as one aspect of this.View full module details
CO337 - Computers and the Cloud
This module equips students with an understanding of how modern cloud-based applications work. Topics covered may include:
• A high-level view of cloud computing: the economies of scale, security issues, ethical concerns, the typical high-level architecture of a cloud-based application, types of available services (e.g., parallelization, data storage).
• Cloud infrastructure: command line interface; containers and virtual machines; parallelization (e.g., MapReduce, distributed graph processing); data storage (e.g., distributed file systems, distributed databases, distributed shared in-memory data structures).
• Cloud concepts: high-level races, transactions and sequential equivalence; classical distributed algorithms (e.g., election, global snapshot, consensus, distributed mutual exclusion); scheduling, fault-tolerance and reliability in the context of a particular parallelization technology (e.g., MapReduce).
• Operating system support: network services (e.g., TCP/IP, routing, reliable communication), virtualization services (e.g., virtual memory, containers)View full module details
CO383 - Problem Solving with Algorithms
This module aims to strengthen the foundational programming-in-the-small abilities of students via a strong, practical, problem solving focus. Specific topics will include introductory algorithms, algorithm correctness, algorithm runtime, as well as big-O notation. Essential data structures and algorithmic programming skills will be covered, such as arrays, lists and trees, searching and sorting, recursion, and divide and conquer.View full module details
|Compulsory modules currently include||Credits|
CO510 - Software Engineering
This module provides an introduction to basic design principles of systems, including modelling principles and the use of tools, and design patterns. It also looks into different software processes, and introduces software testing. Regarding software project management, topics All the issues cover in the module will form the basis of the group project, which entails the design, implementation and evaluation of a simple software system.
This module provides an introduction to basic design principles of systems, including modelling principles and the use of tools, and design patterns. It also looks into different software processes, and introduces software testing. Regarding software project management, topics like risk management, quality assurances are covered. Under professional practice the module covers codes of ethics and professional conduct. All the issues cover in the module will form the basis of the group project, which entails the design, implementation and evaluation of a simple software system.View full module details
CO518 - Algorithms, Correctness and Efficiency
The curriculum covers topics in algorithms and data structures, such as sorting, searching, and graph algorithms. It addresses how to program such algorithms, as well as how to test them, reason about their correctness and analyse their efficiency.View full module details
CO519 - Theory of Computing
Propositional & Predicate Logic, including proofs. Formal languages: finite automata, regular expressions, CFGs. Turing machines, decidability.View full module details
CO532 - Database Systems
This module provides an introduction to the theory and practice of database systems. It extends the study of information systems in Stage 1 by focusing on the design, implementation and use of database systems. Topics include database management systems architecture, data modelling and database design, query languages, recent developments and future prospects.View full module details
CO539 - Web Development
Building scaleable web sites using client-side and and server-side frameworks (e.g. JQuery, CodeIgniter). Data transfer technologies, e.g. XML and JSON. Building highly interactive web sites using e.g. AJAX. Web services. Deploying applications and services to the web: servers, infrastructure services, and traffic and performance analysis. Web and application development for mobile devices.View full module details
CO545 - Functional Programming
This module introduces students to the functional programming paradigm, using at least one modern functional programming language to put the core concepts into practice. The module will develop both the foundation and theory of this paradigm, as well as the practice and application of the paradigm to solve problems and build systems. The module will core topics, including:
• Functions as first-class language constructs and as a central organising principle;
• Higher-order functions and compositional programming;
• Basic semantics of functional languages;
• The role of types in programming;
• Algebraic data types and pattern matching;
• Recursion and recursive data types;
• Differences with imperative and object-oriented programming paradigms;
• Properties of programs, (e.g., purity, side-effect freedom, totality, and partiality).
• The lambda-calculus as a programming model and foundation.
• BNF grammars for representing context-free syntax, and its relation to ADTs and language manipulation.
• Testing and issues of building correct software.
The module will develop practical skills in programming and problem solving using functional programming. There will also be a chance to apply functional programming to help understand better concepts in logic and mathematics.
Later parts of the module will then consider concurrent programming in the context of functional programming, including concurrent programming models and primitives (e.g., message-passing concurrency), parallelism, synchronisation and communication, and properties of deadlock, communication-safety, and starvation.View full module details
CO527 - Operating Systems and Architecture
This module aims to provide students with a more in-depth understanding of the fundamental behaviour and components (hardware and software) of a typical computer system, and how they collaborate to manage resources and provide services. It will consider systems other than the standard PC running Windows, in order to broaden students' outlook. The module has two strands: "Operating Systems" and "Architecture", which each form around 50% of the material.View full module details
You take all compulsory modules and either CO600, CO620 or CO650, plus 60 credits from the list of optional modules.
|Optional modules may include||Credits|
CO600 - Group Project
Students, working in small groups, undertake a project related to computer science and/or software engineering. The project may be self-proposed or may be selected from a list of project proposals. A project will involve the specification, design, implementation, documentation and demonstration of a technical artefact, demonstrating the ability to synthesise information, ideas and practices to provide a quality solution together with an evaluation of that solution.View full module details
CO620 - Research Project
As a research project, this module is normally aimed at students who are achieving at upper second class level and above, and who may be intending to undertake research following graduation. Each student undertakes a project related to computer science and/or software engineering. The project may be self-proposed or may be selected from a list of project proposals. A project will involve background study and working on an open-ended research problem.
A small number of introductory lectures are given at the start of the project.View full module details
CO650 - IT Consultancy Project
Students taking this module will undertake two or (typically) more assignments for the Kent IT Clinic (KITC). Each assignment will be of one of three types: .
Work on one of KITC's contracts with an external client. To the extent that client-funded work allows, every student will be given at least one assignment of this type. Wherever practical, a student will be encouraged to participate in the negotiation and pricing of contracts, under the ultimate supervision of KITC management. For each assignment, the student may work on the assignment individually or as part of a group, as directed by KITC.
A contribution to the infrastructure of KITC itself. These assignments work in a similar way to external assignments, but with KITC as the client.
Formulating a costed proposal for the future development of KITC, and presenting reasoned argument in support of the proposal to KITC management, as a candidate for inclusion in KITC’s strategic plan for the following academic year. Every student will have at least one assignment of this type.View full module details
CO657 - Internet of Things
The module will cover a mixture of theoretical and practical topics in the area of the Internet of Things (IoT), that is, the use of Internet technologies to access and interact with objects in the physical world. This will include coverage of the range of sensor and actuator devices available, ways in which they communicate and compute, methods for getting information to and from IoT-enabled devices, and ways of visualising and processing data gained from the IoT. A practical component will consist of building the hardware and software for a sensor network and a system to collect, process and visualise data from that network.View full module details
CO658 - Programming Language Implementation
A study of techniques for interpreting and compiling programming languages, implementing them in a typed functional programming language (e.g., OCaml, Haskell). The module will outline a whole compiler from source to machine code, but will focus in depth on key algorithms and techniques. Possible in-depth topics include:
• writing interpreters,
• Hindley-Milner type inference,
• register allocation,
• garbage collection,
• abstract interpretation,
• static single assignment form.
The implemented language will be based on a simple imperative (e.g., Pascal-like) language with some extensions to address advanced topics in data layout (e.g., closures, objects, pattern matching). The course will be organized around a simple, but complete, example compiler that the student will have to understand and modify.View full module details
CO661 - Theory and Practice of Concurrency
This module is aimed at introducing the principles of concurrency theory (1, 2, 3) and demonstrating how these can be applied to design and implement distributed applications (4). Advanced concepts of Web services will be studied and placed in the perspective of these principles (5, 6).
The following is an indicative list of topics:
• Message passing primitives for concurrency: synchronous versus asynchronous message passing, the actor model.
• Reasoning on processes: temporal logic, safety and liveness properties, bisimulation.
• Channel passing and mobility.
• Design and implementation of application–level protocols.
• Web services: from stateless services to distributed business processes (also known as service orchestrations).
• Transaction protocols on the Web: two-phase commit, long running transactions.View full module details
CO663 - Programming Languages: Applications and Design
This module shows students what trade-offs are involved in designing a programming language, and how those trade-offs ultimately influence programmer productivity. The module starts with a quick, example-based introduction to the basics of programming languages. It then continues with a series of problems that are each solved in several programming languages. After each problem, we stop and reflect on which language features help and which hinder. Finally, towards the end of the module, several of the language features previously identified are discussed in a more general setting. Indicative examples are:
• Problem solving, in multiple languages. The problems will involve concepts such as parsing, evaluation, trees, graphs, memoization, randomization, big data algorithms, reactive user interfaces.
• Language features: pattern matching, first order functions, polymorphism, effects, exceptions, types, algebraic data types, modules, objects, classes.View full module details
CO832 - Data Mining and Knowledge Discovery
This module explores a range of different data mining and knowledge discovery techniques and algorithms. You learn about the strengths and weaknesses of different techniques and how to choose the most appropriate for any particular task. You use a data mining tool, and learn to evaluate the quality of discovered knowledge.View full module details
CB612 - New Enterprise Development
This module is designed to provide students across the university with access to knowledge, skill development and training in the field of entrepreneurship with a special emphasis on developing a business plan in order to exploit identified opportunities. Hence, the module will be of value for students who aspire to establishing their own business and/or introducing innovation through new product, service, process, project or business development in an established organisation. The module complements students' final year projects in Computing, Law, Biosciences, Electronics, Multimedia, and Drama etc.View full module details
CO636 - Cognitive Neural Networks
In this module you learn what is meant by neural networks and how to explain the mathematical equations that underlie them. You also build neural networks using state of the art simulation technology and apply these networks to the solution of problems. In addition, the module discusses examples of computation applied to neurobiology and cognitive psychology.View full module details
CO637 - Natural Computation
There is an increasing use of nature-inspired computational techniques in computer science. These include the use of biology as a source of inspiration for solving computational problems, such as developments in evolutionary algorithms and swarm intelligence. It is therefore proposed to allow students the opportunity to become exposed to these types of methods for use in their late careers.View full module details
CO643 - Computing Law and Professional Responsibility
The scope of the module is outlined below. Note that topics will not necessarily be delivered in this order:
Professional issues and professional organisations.
Data privacy legislation, and other UK laws relating to the professional use of computer systems.
Criminal law relating to networked computer use, including new Anti-Terrorism legislation; and their application
Intellectual Property Rights, including Copyright, Patent and Contract Law.
Health & Safety issues.
Computer-based Projects, including the vendor-client relationship and professional responsibilities.View full module details
CO646 - Computing in the Classroom
Students will spend one half-day per week for ten weeks in a school with a nominated teacher. They will observe sessions taught by their designated teacher and possibly other teachers. Later they will act somewhat in the role of a teaching assistant, by helping individual pupils who are having difficulties or by working with small groups. They may take 'hotspots': brief sessions with the whole class where they explain a technical topic or talk about aspects of university life. They must keep a weekly log of their activities. Each student must also devise a special project in consultation with the teacher and with the module convener. They must then implement and evaluate the project.View full module details
Teaching and assessment
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.
Each stage comprises eight modules. Most modules run for a single 12-week term. Each module has two lectures and one to two hours of classes, making 14 formal contact hours per week and eight hours of 'homework club' drop-in sessions each term.
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.
Our staff have written internationally acclaimed textbooks for learning programming, which have been translated into eight languages and are used worldwide. A member of staff has received the SIGCSE Award for Outstanding Contribution to Computer Science Education. The award is made by ACM, the world's largest educational and scientific computing society.
Assessment is by a combination of coursework and end-of-year examination and details are shown in the module outlines on the web. Project modules are assessed wholly by coursework.
The marks from stage one do not go towards your final degree grade, but you must pass to continue to stage two.
Most stage two modules are assessed by coursework and end-of-year examination. Marks from stage two count towards your degree result.
Most stage three modules are assessed by a combination of coursework and end-of-year examination. Projects are assessed by your contribution to the final project, the final report, and oral presentation and viva examination. Marks from stage three count towards your degree result.
Percentage of the course assessed by coursework
In stage three your project counts for 25% of the year's marks.
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. Please refer to the individual module details under Course Structure.
Methods of assessment will vary according to subject specialism and individual modules. Please refer to the individual module details under Course Structure.
The programme aims to:
- provide a programme that attracts and meets the needs of those contemplating a career in computing and those motivated primarily by an intellectual interest in computer science
- be compatible with widening participation in higher education by offering a wide variety of entry routes
- provide knowledge and understanding of the principles of computer science
- provide computing skills that will be of lasting value in a field that is constantly changing
- offer a range of options so students can match their interests and study selected areas of computing in more depth
- provide teaching informed by current research and scholarship, which requires students to engage with work at the frontiers of knowledge
- develop general critical, analytical and problem-solving skills that can be applied in a range of computing and non-computing settings.
Knowledge and understanding
You gain knowledge and understanding of:
- hardware – the major functional components of a computer system
- software – programming languages and practice; tools and packages; computer applications; structuring of data and information
- communication and interaction – basic computer communication network concepts; communication between computers and people; the control and operation of computers
- practice – problem identification and analysis; design development, testing and evaluation.
You develop intellectual skills in:
- modelling – knowledge and understanding of the modelling and design of computer-based systems including the trade-off involved in design choices
- reflection and communication – presenting rational and reasoned arguments succinctly to a range of audiences
- requirements – identifying and analysing criteria and specifications appropriate to specific problems and planning strategies for their solution
- criteria evaluation and testing – analysing the extent to which a computer-based system meets the criteria defined for its current use and future development
- methods and tools – deploying appropriate theory, practices and tools for the specification, design, implementation and evaluation of computer-based systems
- professional responsibility – recognising and being guided by the professional, economic, social, environmental, moral and ethical issues involved in the sustainable exploitation of computer technology
- computational thinking – demonstrating analytical ability and its relevance to everyday life.
You gain subject-specific skills in:
- design and implementation – specifying, designing, and implementing computer-based systems
- evaluation – evaluating systems in terms of general quality attributes and possible trade-offs
- information management – applying the principles of effective information management, information organisation and information retrieval skills to information of various kinds, including text, images, sound, and video
- tools – deploying the tools used for the construction and documentation of software, with particular emphasis on understanding the whole process involved in using computers to solve practical problems
- operation – operating computing equipment and software systems effectively.
You gain transferable skills in:
- teamwork – working effectively as a member of a development team
- communication – making succinct presentations to a range of audiences about technical problems and their solutions
- information technology – effective use of general IT facilities; information retrieval skills
- numeracy and literacy – understanding and explaining the quantitative and qualitative dimensions of a problem
- self management – managing your own learning and development, including time management and organisational skills
- professional development – appreciating the need for continuing professional development.
Our high graduate employment rate speaks for itself. Our graduates have gone on to work in:
- software engineering
- mobile applications development
- systems analysis
- web design and e-commerce
- finance and insurance
Recent graduates have gone on to develop successful careers at leading companies such as:
- BAE Systems
- The Walt Disney Company
Help finding a job
The University has a friendly Careers and Employability Service, which can give you advice on how to:
- apply for jobs
- write a good CV
- perform well in interviews.
The School has a dedicated Employability Coordinator who is a useful contact for all student employability queries.
You can gain commercial experience working as a student consultant within the Kent IT Consultancy. You can also gain teaching experience by taking the Computing in the Classroom module.
You graduate with a solid grounding in the fundamentals of computer science and a range of professional skills, including:
To help you appeal to employers, you also learn key transferable skills that are essential for all graduates. These include the ability to:
- think critically
- communicate your ideas and opinions
- analyse situations and troubleshoot problems
- work independently or as part of a team.
You can also gain extra skills by signing up for one of our Kent Extra activities, such as learning a language or volunteering.
Our Computer Science degree has full Chartered IT Professional (CITP) accreditation from the BCS, The Chartered Institute for IT.
The University will consider applications from students offering a wide range of qualifications. Typical requirements are listed below. Students offering alternative qualifications should contact us for further advice.
It is not possible to offer places to all students who meet this typical offer/minimum requirement.
New GCSE grades
If you’ve taken exams under the new GCSE grading system, please see our conversion table to convert your GCSE grades.
|Qualification||Typical offer/minimum requirement|
Mathematics grade C
|Access to HE Diploma||
The University will not necessarily make conditional offers to all Access candidates but will continue to assess them on an individual basis.
If we make you an offer, you will need to obtain/pass the overall Access to Higher Education Diploma and may also be required to obtain a proportion of the total level 3 credits and/or credits in particular subjects at merit grade or above.
|BTEC Level 3 Extended Diploma (formerly BTEC National Diploma)||
Distinction, Distinction, Distinction
34 points overall or 16 points at HL including Mathematics 5 at HL or SL or Mathematics Studies 6 at SL.
The University welcomes applications from international students. Our international recruitment team can guide you on entry requirements. See our International Student website for further information about entry requirements for your country.
However, please note that international fee-paying students cannot undertake a part-time programme due to visa restrictions.
If you need to increase your level of qualification ready for undergraduate study, we offer a number of International Foundation Programmes.
Meet our staff in your country
For more advice about applying to Kent, you can meet our staff at a range of international events.
English Language Requirements
Please see our English language entry requirements web page.
Please note that if you are required to meet an English language condition, we offer a number of 'pre-sessional' courses in English for Academic Purposes. You attend these courses before starting your degree programme.
General entry requirements
Please also see our general entry requirements.
The 2019/20 annual tuition fees for this programme are:
For details of when and how to pay fees and charges, please see our Student Finance Guide.
For students continuing on this programme, fees will increase year on year by no more than RPI + 3% in each academic year of study except where regulated.*
Your fee status
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.
General additional costs
Kent offers generous financial support schemes to assist eligible undergraduate students during their studies. See our funding page for more details.
You may be eligible for government finance to help pay for the costs of studying. See the Government's student finance website.
Scholarships are available for excellence in academic performance, sport and music and are awarded on merit. For further information on the range of awards available and to make an application see our scholarships website.
The Kent Scholarship for Academic Excellence
At Kent we recognise, encourage and reward excellence. We have created the Kent Scholarship for Academic Excellence.
The scholarship will be awarded to any applicant who achieves a minimum of AAA over three A levels, or the equivalent qualifications (including BTEC and IB) as specified on our scholarships pages.
The scholarship is also extended to those who achieve AAB at A level (or specified equivalents) where one of the subjects is either mathematics or a modern foreign language. Please review the eligibility criteria.