International Study Centre 

International Year One in Computer Science

A pathway leading to an undergraduate degree in information technology

The International Year One in Computer Science at the International Study Centre will prepare you to study BSc Computer Science (International) at Royal Holloway, University of London.

Key facts

Course length: Two semesters

Entry points: September and January

Age: 17+

See entry requirements

Check fees

What you will study

The International Year One in Computer Science provides a platform to develop your programming skills and gain hands-on experience with practical programming tasks. Designed to offer an innovative learning environment that supports enhanced learning, the programme will effectively build a beginner’s knowledge of programming or computer systems.

This programme will additionally support you with the required academic English language tuition, enabling you to improve your level of writing and speaking skills in order to successfully study a degree in English.

Academic English Skills

Academic English Skills aims to provide thorough training in the language and related academic skills which will enable international students to best achieve their academic potential at the Royal Holloway University London, and ensures you are able to meet the requirements of the UKVI through demonstrating an English language level of CEFR B2 in the skills of reading, writing, listening and speaking.

You will develop awareness and competency in a range of language-related skills required for successful study at Higher Education level. These skills include the processes of academic writing, effective and extensive reading strategies, effective participation in seminars and delivery of presentations, and listening to and recording information effectively from lectures. You will also develop the accuracy and range of written and spoken language required to use language effectively and appropriately, with clarity and confidence in an academic context.

Internet Services

The course introduces the basics of how the Internet works and its key protocols. With that foundation, it then addresses the technologies used for web development, including scripting languages and their potential. Web Services and related technologies are also introduced as well as the basics of network security. The module provides valuable knowledge to students interested in web development and network security and internet services. The module takes a systematic view of the computer networks instead of a hardware/electronics approach.

On successful completion of the module, you will be able to: explain the principles and methods of network security, Cryptography, Encapsulation, Digital Signatures, and Public Key Encryption; identify key protocols and describe why protocols are important in communication of computers; identify the three layers of the web, and describe how the internet and its key protocols work; recognise how the three key technologies of HTML, CSS and JavaScript cooperate to provide the client side of web services; identify professional, moral and ethical aspects of the use of computer-based systems, and ability to recognise any risks or safety aspects in a given context; use operators, variables, arrays, control structures, functions and objects in JavaScript and employ fundamental computer theory and a range of web programming techniques in form of a team project.

Machine Fundamentals

The intention of the course is to provide a solid grounding in the fundamentals underpinning computer systems, including both practical aspects of computer systems as well as theoretical elements of Computer Science. The course aims to provide a fundamental knowledge of computer science to students pursuing science or engineering degrees. The module will introduce data representation, digital logic circuits, automata, and low-level languages and provide insights, as well as skills for dealing with large and infinite objects in a way that allows them to be implemented in a programming environment.

On successful completion of the module, you will be able to: describe abstract models of computations; recognise low level languages and explain how the instructions are executed by computers; write regular expressions to describe sets and build deterministic automata to recognise these sets; use formal logic to design, reason about and minimise digital logic circuits and write basic programs in assembly language, being able to make use of various addressing modes, memory, and stacks.

Mathematics for Computer Science

This course will introduce students to techniques and concepts to solve numerous computing problems. The aims of this course are to provide a basic introduction to fundamental mathematical concepts, which include number systems, set theory, functions, proof, graphs. The techniques and concepts will be illustrated with numerous computing related examples.

On successful completion of the module, you will be able to: define the core concepts of discrete mathematics used to model and solve problems in computer science; identify basic probability and statistics used in artificial intelligence and information security; solve mathematical problems with recursive definitions and prove the results by induction; solve basic probability and statistic problems that are related in artificial intelligence and information security and apply graph theory to model problems, reason about them, and find solutions.

Object Orientated Programming 1

This module uses intuitive examples to introduce core programming concepts and the Java API. Object Oriented Programming (OOP) language and Java in particular have become the backbone of millions of applications across multiple platforms including Windows, Macintosh and UNIX-based desktops, Android-based mobiles, embedded systems and enterprise solutions. Computer Science graduates are expected to have developed excellent OOP skills and the current module will provide a foundation on developing object-oriented programming skills required to create elaborate software. Students will learn about Java development environment, program basics, control-flow, data structures, objects, exceptions and file I/O streams.

On successful completion of the module, you will be able to: identify fundamental elements of the Java Programming Language; recognise the key principles of Object-Oriented Programming and the ability to apply this within the context of computing applications; implement syntactically accurate and logical thinking to meet programming specifications and develop and evaluate alternative solutions for given program examples or program specifications.

Object Orientated Programming 2

 This course teaches programming and object-orientation concepts, reinforcing what is taught in Object Orientated Programming 1. Java is the most popular programming language in today’s world; billion of devices run Java platform. Java’s unique features make it one of the most powerful programming languages in the current market of software development and student’s ability to work Java will expose them to daily applications of programming in daily life and in turn, this will motivate students to come up with creative solutions and build logical thinking and problem-solving skills. Advanced object-oriented techniques and topics such as hierarchies, abstraction, inheritance, I/O, Graphical User Interfaces, event handling, documentation, and source code management.

On successful completion of the module, you will be able to: identify the key facts, concepts, principles and theories relating to professional software engineering; recognise the tools used for unit testing, documentation and version control of object-oriented programmes; select and apply essential concepts, principles and practices of programming skills in the context of well defined, limited scenarios, using structured project outlines, unified modelling language (UML) and pseudo-code to justify the selection and use of tools and techniques; apply fundamental Java programming language object-oriented concepts of abstraction and encapsulation to translate requirement specifications into objects, classes and methods and develop object-oriented programming skills and techniques that are of foundational importance to computing.

Programming Laboratory

This module builds upon knowledge and skills obtained from object-oriented programming to enhance your programming skills for real-world problems. You will learn how to view and critically review their solutions to problems from various aspects, design and build solutions as event driven or embedded domains into functional software built with using Object Oriented Programming. The module will encourage you to become an independent learner and work as an individual effectively as well as a team member to communicate design details and their solutions to a range of audience.

On successful completion of the module, you will be able to: develop logical thinking to translate problem specifications into logical, designed solutions using a variety of algorithms and data structures suited to each given problem; develop effective use of programming support tools such as integrated development environment (IDE), debugging, unit testing, and documentation tools and develop practical skills needed in the use of external libraries and code bases through use of documentation.

Software Design

This course will provide you with an understanding of contemporary computing technologies and develops a wide range of practical skills for implementing flexible software applications and systems. The course focuses on software requirements analysis and various software development methodologies. The module will introduce a sequence of steps that enable a software designer to describe all aspects of the developing software and ensure thorough understanding of design principles and patterns, as well as project management issues. You will develop your abilities in using software design tools and documentation and be able to analyse and critique the design of existing software.

On successful completion of the module, you will be able to: recognise various software development methodologies which include waterfall and agile; describe the software development life cycle including analysis, design, development and testing; explain key concepts in software development such as risk and quality; analyse the common software requirements of existing software and critique their effectiveness and specify the software requirements and specification and able to justify the appropriateness of designs.

Combined visa

Save time and money, and experience a seamless transition to undergraduate success, by studying our International Year One course and the remainder of your degree with one visa.

Doing this means you will benefit from:

  • Just one visa required for the whole length of your study
  • Alternatives to IELTS for UKVI can be used to join the International Year One programme*
  • No need for an additional IELTS test before joining your undergraduate degree
  • No visa requirement to return home between the courses
  • Work up to 20 hours per week
  • Ideal for students who have exceeded their two years of pre-degree study in the UK

*IELTS or equivalent required, alternatives accepted include TOEFL iBT, Pearson, IGCSE, IB, HKDSE, India HSC (recognised board), Malaysia SPM, WAEC.

Progression degrees

Upon successful completion of the International Year One in Computer Science, you can continue your studies at Royal Holloway by joining the second year of the BSc Computer Science (International) degree. This will involve you obtaining the required grades, and progression requirements are subject to change. You can talk to your teachers about this towards the end of your programme.

Take a look at the undergraduate degree you will progress to:

Degree Programmes Award Overall Grade English Grade Additional Grade
BSc Computer Science (International) BSc (Hons) 50% 60% with no lower than 40% in other skills

Term dates

September 2021

Semester 1: 20/09/2021 - 11/02/2022
Semester 2: 21/02/2022 - 17/06/2022

January 2022

Semester 1 10/01/2022 - 29/04/2022
Semester 2: 09/05/2022 - 19/08/2022

Find out more about starting your studies or check the latest COVID-19 information.