Curious about studying Computer Science (Data Science) - BScat University of Greenwich? We've gathered all the key details—entry requirements, modules, fees, and more. Hear from real students by checking out reviews, or take the next step by booking an open day to explore it for yourself.
Bachelor of Science - BSc
University of Greenwich (Greenwich Campus)
Part Time
Sep 2026
6 Year
Study a Computer Science degree for the skills to pursue careers as Computer Science professionals specialising in Data Science. Study in London. Read more. Throughout this Computer Science degree, you will develop a firm grasp of the science underpinning computer and software systems. The modules you can study as part of this degree include Statistical Techniques with R, Information Visualisation and Big Data and Machine Learning. You will gain practical experience of developing systems using the latest technologies and techniques, plus exposure to the latest trends that will shape the future of computer science. By the end of the course, you will be equipped to work independently and to develop and adapt your skills throughout your future career.
The main aim of this module and its Term 1 counterpart, Mathematics for Computer Science, is to prepare students with sufficient mathematics tools and techniques for the level 5 Computer Science mathematics modules associated with these programmes and possible level 6 mathematics modules.
To provide students with a solid foundation for understanding the fundamentals of data structure and algorithms and experience in using them for problem solving.
This module aims to introduce computer systems, their architectures, the associated enabling communication systems and the standards and protocols that facilitate their operation. On successful completion of this course a student will be able to: Describe the hardware and software components of computer and communication systems; Demonstrate an understanding of the basic functions to be addressed to enable reliable and efficient communication between digital systems; Identify the need for standards and protocols and be aware of the major standards and responsible bodies.
Understanding how a compiler consumes source code and generates machine instructions is crucial in writing logically correct and optimised computer programs. In addition, recognising how state machines and formal grammars underpin machine execution and memory utilisation is important in understanding how programs can be optimised. In this course we will explore state machines, together with elements of the Chomsky hierarchy and how these relate to compiler theory. The course also utilises a fundamental course in programming to write code in support of understanding compiler components. We aim to provide students with a fundamental understanding of compiler theory and related concepts, such as computer architecture, formal languages, state machines and program execution.
The main aim it to prepare students with sufficient mathematics tools and techniques for the level 5 Computer Science mathematics courses associated with these programmes and possible level 6 mathematics courses. The course aims to ensure students have fundamental mathematics knowledge, of a similar level to A? level mathematics and above. Knowledge acquired and revisited is to be learnt at a deeper level than, for example, a student simply revising for a final module exam. Hence the course is to be divided into two sections, assessed by online test. It is envisaged that labs would be timetabled for students to take the tests, when the student is ready. A student with excellent mathematical skills might decide to take the tests earlier than a student with less recent mathematics experience. A student will be allowed to retake the tests, until they pass, even in term 2 if necessary, as the mathematics offered is fundamental to the progression of the student to later courses.
To provide solid foundation in programming concepts and hands-on experience in using them. The module introduces computer programming using different programming paradigms, such as functional and object- oriented programming. You will gain an understanding of the key commonalities, differences and trade-offs between these paradigms and their applicability to different programming problems. Through practical coding exercises, you will develop key design, problem solving, and coding skills that emphasise quality of software design for scalability and reuse, and the need for a professional approach to software development. Through exposure to the different paradigms you will build confidence in your ability to learn and take-on new programming languages - the aim is to "learn how to learn" new languages. As a polyglot software developer, you will broaden your employability prospects in a constantly evolving information technology industry with rapidly changing requirements.
Distinguishing between software programming and an engineering approach to the development of software systems is crucial to producing quality software. Software Engineering is at the core of any software development project and to succeed in this domain requires an understanding of the fundamental software engineering models and methods used, and an appreciation of the challenges involved in applied practice. Specialist knowledge and practical skills in this area are therefore in high demand. This module aims to introduce disciplined approaches to software development and provide solid foundation in the concepts, practices and management of software engineering. You will gain an appreciation of the intrinsic challenges of greenfield and brownfield software development and will develop an understanding of the core concepts that underpin current software engineering practice. Strong emphasis is on the practical application of these principles to the development of a significant software system within a team. You will gain hands-on experience using tools and techniques commonly used in the industry, and dealing with the reality of team- based software development. The module prepares you for future work within multi-functional teams and will help broaden your employability prospects by building the core skill set needed by software engineers and members of development projects.
Among the desirable skills that employers ask for in a computing graduate is the ability to decompose a problem into manageable logical components and to use appropriate algorithms to solve the resulting sub-problems. Building on the Level 4 mathematics-based courses, this course takes the student through the fundamentals of data structures, algorithms and problem solving through modelling before examining algorithms for sorting and searching, semi-numerical and eventually numerical methods. A wide range of algorithms will be explored through their application to solving a variety of problems by formulating appropriate models in a series of practical exercises. The course aims to: Provide a foundation for understanding the fundamentals of algorithms, semi-numerical and numerical methods and their application to modelling and simulation as a means of solving problems.
Working effectively as a programmer or software engineer requires a sophisticated mixture of technical skills and knowledge. Although details of technologies may change frequently many concepts such as: componentisation, concurrent programming, use of design patterns, and programming in a distributed environment are likely to remain relevant for the foreseeable future. All programmers and software engineers should have an understanding of the role and use of supporting tools e.g. for testing, version control and documentation and project building. This course aims to broaden and deepen the skills and knowledge that the students will have gained from completing their level 4 programming courses. The skills and concepts mastered will be useful in themselves and will form a firm foundation on which higher-level skills can be built at level 6.
This course aims to provide computer science students with the knowledge and understanding of mathematical methods, numerical and statistical techniques required to solve problems and analyse data throughout their undergraduate studies as well as in their further studies of computer science or in the work place.
Information security focuses on information security threats, risks and corresponding countermeasures. This includes confidentiality, integrity and availability in different computer systems, taking into account also privacy, secure design and introducing cryptography and its applications.
To provide an introduction to fundamental methods used in Artificial Intelligence: knowledge representation, reasoning, search and learning. The module introduces the underpinning concepts and techniques, the problems for which they are applicable, and their limitations. You will gain the necessary skills to identify problem contexts that can be addressed using these AI techniques, and gain practical experience in developing systems that utilise them to address a given problem. You will explore the philosophical issues that underlie AI, the challenges and associated ethical questions. The module will prepare you for entry positions in AI application design and development, and enable you to pursue more advanced topics in this exciting field.
Aims: To introduce students to linear programming and develop their understanding of the importance of mathematics to modern business and finance
This course aims to prepare students to work in the area of Data Analytic by introducing them to the relevant technologies and equip them with skills to work with data; abstracting and modelling analytic questions; and using tools from statistics, and data mining to address analytic questions.
Work Placement Course - CMS
This module aims to provide students with a solid foundation in the principles and practices of information security and looks towards future directions of cyber security and cyber-physical security in a digital age. On successful completion of this course a student will be able to: Apply and evaluate the principles of security across a range of case studies; Demonstrate a critical appreciation of legal statutes, security risks and appropriate levels of security to permit legitimate access; Demonstrate a deep practical understanding of algorithms and procedures covering; encryption, keys, blockchains, digital signatures and certificates.
The Final Year Project requires students to work independently, abstract the essentials of a problem, obtain solutions by appropriate methods, and present their arguments through a user acceptance testing of the end-product/artefact as well as a well-reasoned formal dissertation report. Prospective employers often require that the student is able to tackle a non-standard problem, organise their work, show a high level of commitment with an awareness of their target audience and present their conclusions in a number of forms. Projects develop practical, analytical and communication skills, and are specifically designed to encourage students to initiate, plan and execute research programmes. Similarly, admissions tutors for Postgraduate courses and Research awards need to be reasonably certain that an applicant will be able to employ these same skills in order to carry out research and put those results in a thesis. This core course for all final year programmes is designed to provide students with the opportunity to carry out an individual piece of supervised work, a pre-determined, template project or an industry work practice project with an agreed topic relevant to their degree.
This course aims to prepare students to work in the area of Data Analytic by introducing them to the relevant technologies and equip them with skills to work with data; abstracting and modelling analytic questions; and using tools from statistics, and data mining to address analytic questions.
Machine Learning is an exciting, topical field of AI that is fundamentally about enabling systems to learn from experience in order to behave independently without being explicitly programmed. It is becoming increasingly prevalent across wide horizontal sectors and has been key to the success of commonly used technologies, including search engines, natural language processing, computer vision, image recognition, robotics, autonomous vehicles, data analytics and much more.
This course aims to provide computer science students with the knowledge and understanding of statistical techniques required to analyse time series data throughout their studies of computer science or in the work place.
120 Grades/points required
Not currently available, please Contact University for up to date information.
The University of Greenwich is a leading higher education institution whose driving force is an ethos of ‘no limits'. Th...