Computer Science BSc

2 opinions
  • I liked the courses (Language, Literature, Journalism). Teaching methods are similar to Austria (Teacher Training College) - the teacher-student relatinship is way more casual than it is in Austria.
  • Doing my master’s abroad meant I became a lot more independent and learned to stand on my own two feet. I also gained more self-confidence, which helped me to develop in both my work and private life. What I benefited most about Middlesex was meeting so many interesting, intelligent and exciting people. Whether it was student colleagues, lecturers or new friends, I am glad that I had the opportunity to connect with all those people.

Bachelor's degree

À London (England)

Prix sur demande


  • Typologie

    Bachelor's degree

  • Lieu

    London (England)

  • Durée


  • Dates de début



Would you like to develop skills in the software development field? Are you interested in working in this sector?

Computer Science influences every aspect of modern life and is one of the fastest moving academic disciplines. It contributes to everything from the efficiency of financial markets to film and TV graphics and has a huge impact on both economic competitiveness and human wellbeing.

Follow the link you have on and you will find all the information you need about this course without any obligation.

Les Avis


Évaluation de la formation


Évaluation du Centre


Les points forts: I liked the courses (Language, Literature, Journalism). Teaching methods are similar to Austria (Teacher Training College) - the teacher-student relatinship is way more casual than it is in Austria.
À améliorer: nothing to improve
Formation effectuée: Juin 2013
Recommanderiez-vous cet établissement?: oui

Michael Birsak

Les points forts: Doing my master’s abroad meant I became a lot more independent and learned to stand on my own two feet. I also gained more self-confidence, which helped me to develop in both my work and private life. What I benefited most about Middlesex was meeting so many interesting, intelligent and exciting people. Whether it was student colleagues, lecturers or new friends, I am glad that I had the opportunity to connect with all those people.
À améliorer: .
Formation effectuée: Juin 2016
Recommanderiez-vous cet établissement?: oui
* Avis recueillis par Emagister et iAgora

Les matières

  • Computing
  • IT
  • Network
  • Algorithms
  • Teaching
  • Ethics
  • Design
  • Graphics
  • Image
  • Web
  • Financial
  • Project
  • Planning
  • systems
  • Industry
  • Communication Training
  • Financial Training
  • Programming
  • Network Training
  • IT Development
  • Visualisation
  • Software development
  • Distributed systems
  • Computer Science
  • Interaction
  • Develop
  • Individual Project
  • Computing
  • robotics
  • robotics

Le programme

Course content

What will you study on the BSc Computer Science?

You will develop a thorough grounding in the foundations of computer science through the use of project-led laboratory-based activities. Each project is carefully designed to allow you to learn at your own pace and to build important skills in a carefully-designed and progressive way. Your foundation skills will be complemented with knowledge and practical skills in systems engineering techniques typically used in industry.

After your second year you will have the opportunity to take an optional placement year in a computer-based industry. To support you financially while you benefit from industry experience, we will cover your tuition fees for the year.

In the final year of your degree, you'll be able to choose from a wide range of specialist topics in computer science, in addition to completing an individual project with a project supervisor who is a leader in their field.


Year 1

Year 1 studies

In the first year of Computer Science, there are no modules or courses and all the activities run across various sessions during the week. The idea is that by employing a problem-driven approach you will gain the confidence needed to study independently.

You will work on three projects in your first year; the first one involves building a mixed software/hardware system using Arduino; the second project involves building a video game with a graphical interface; and the third project involves controlling a robot over the network to perform several tasks, such as line following and maze exploration. Optionally, you can choose to work on an independent project, such as building an autonomous robot for the Eurobot competition.

Each week consists of the following structured sessions: lecture, design workshop, programming workshop, physical computing workshop, synoptic workshop.

Year 2

Distributed Systems and Networking (30 credits) - Compulsory

The module provides a firm basis for planning, programming and running distributed systems: how to design communicating processes using simple specification and graphical animation, and how to program concurrent programs. You will gain knowledge of the main concepts of distributed systems like processes, communication, and synchronization and their central properties like fault tolerance and security. You will understand typical problems with distributed applications like deadlocks and mutual exclusion and will know the principles of networks and how distributed systems run on them.

Web Applications and Databases (30 credits) - Compulsory

There are now a wide range of programming technologies associated with the web, creating a more interactive experience with cross platform capabilities. These applications allow access to backend resources from databases to media content. As the internet has increased in speed and accessibility, the software technologies have been developed to enable dynamic applications to be deployed. This module provides experience in the development of such software artifacts and an understanding of the technologies and model behind the web.

Software Development Projects (60 credits) - Compulsory

This module provides the core notions required to develop, with confidence, software for real applications that you are likely to meet in your placement year. The module covers the whole software development process from requirements elicitation, to analysis and design, development as testing, documentation, maintenance, and quality assurance. In addition, through group work, this module offers the opportunity to develop a range of professional skills needed to work successfully as a member of a project team. You will learn to appreciate the importance of ethical, legal, organisational and environmental issues and business principles. Upon completion of this module, you will have practical knowledge of a number of tools to support all the steps involved in software development, project planning and project management. You will be able to assess the suitability of a range of solutions to contribute effectively to the planning, development, and evaluation of software systems.

Year 3

Computer Science Project (30 credits) - Compulsory

This module provides you with the opportunity to demonstrate the theoretical knowledge and practical skills you have developed whilst studying this degree by undertaking a substantial piece of individual project work. The project will involve the production of a system that is expected to be of considerably greater scope than any of the coursework encountered in the taught part of the programme and demonstrates a significant level of scholarship.

Artificial Intelligence (30 credits) - Optional

The aim of this module is to introduce a range of AI theories and techniques, including the most commonly used. This will extend to the ability to implement these techniques, and you will extend your own development skills.

Graphics and Visualization (30 credits) - Optional

The aim of this module is to examine the concepts and techniques needed in the construction of interactive graphics and visualisation systems covering advanced graphics programming techniques. It will cover theory and mathematics as required and it aims to provide you with practical experience via significant individual project work developing 2D and 3D programs using an industry standard environment.

Human Factors in Design (30 credits) - Optional

This module aims to give you an understanding of underpinning concepts and practical techniques relevant when considering humans, both in the organisation of design and design processes, and as a way of incorporating a user perspective in the design of products and services.

Novel Interaction Technologies (30 credits) - Optional

Interactive technologies are continually developing, and new devices that offer novel ways of interacting with computer-based systems are constantly finding their way into our homes, workplaces and lives. On this module, you will encounter and study a range of innovative and emerging interaction technologies. The module affords an opportunity to become familiar with the technologies and devices themselves as well as ways of analysing their applicability for particular uses and situations, and approaches evaluating their use.

By understanding how computing devices and products are used and studying the ways that usage changes over time, you will gain a critical awareness of the processes by which interactive products gain in popularity and become successful. After completing the module, you will be better equipped to anticipate and select the successful interaction technologies of the future, analyse situations of use and potential users, design using the latest interaction technology, and evaluate novel and innovative designs.

Quantum Information Processing, Verification, and Security (30 credits) - Optional

The aim of this module is to develop an appreciation and understanding of system modelling and analysis techniques in three different, yet related areas in computer science. This topic provides you with an opportunity to study some of these techniques, evaluate their effectiveness and make the comparison between classical and quantum information processing. You will have an opportunity to apply model checking techniques in a practical setting, evaluate their effectiveness and prepare them for industry or further study. You will also study the application of quantum information processing to security by introducing quantum key distribution as well as the application of model checking to quantum security protocols.

Social Network Analysis and Visual Analytics (30 credits) - Optional

The aim of this module is to learn the underlying theories for Social Network Analysis (SNA) and Visual Analytics (VA). You will then apply this theory to produce analysis on Social Media, such as Consumer Generated Websites, Information in Organisations, e.g. email, and information related to criminal and digital investigations.

Social, Professional and Ethical Issues in Information Systems (30 credits) - Optional

The aim of this module is to understand and appreciate the ethical implications and social impact of current technologies, to have a working knowledge of the legislation that applies in this area, and to apply expertise in a professional way. This module will encourage you to develop an awareness of your role in the implementation of new technologies, and the knowledge and skills necessary for a professional approach. The module will take an ethical perspective to computer technology, focusing on UK legislation and standards as they relate to IS practice and will include considerations for design and the responsibilities and requirements of the IT profession.

Open Source Software (30 credits) - Optional

This module aims to introduce the Open Source software ecosystem. A range of issues involving Open Source will be discussed, both technical (the Open Source development model) and non-technical (legal, ethical and political issues). In order to gain hands-on experience, you will also participate in an existing Open Source project.

Correctness in Computer Systems (30 credits) - Optional

This module will examine the different notions of correctness relevant to computer systems, and how these are applied to the different parts of a computer system. Automatic and user-guided methods that attempt to find possible problems within systems will be covered and demonstrated on practical examples. Also, methods for ensuring that no problems can possibly exist within a system design will be examined and applied.

History and Philosophy of Computing (30 credits) - Optional

This module aims to teach the fundamentals of computing combined with analytical (logical) skills applied to conceptual issues originating in theoretical and applied computer science. By locating computing devices in their structural and historical evolution and by learning the epistemic and ontological principles that define Computer Science, you will gain critical awareness of the processes by which computing has become an essential aspect of our lives and will understand how this subject is located with respect to other sciences.

Image Processing with MATLAB (30 credits) - Optional

This module aims to introduce software of MATLAB to perform basic tasks of image processing, including enhancement, segmentation, and measurement. In addition, this module will have a focus on image search, classification and retrieval as well as on applications to a number of medical imaging modalities, including x-ray, computerised tomography (CT), magnetic resonance (MR), echocardiography (ultrasound video images) and retinal imaging.

Industrial Networking (30 credits) - Optional

The central theme of this module is to equip students with the skills necessary to design and implement network infrastructures to support industrial communication, and to integrate Industry 4.0 enabled machines to facilitate a Cyber-Physical Factory. In doing so, students will embrace the practice of setting up TCP/IP communication between modules, IP-address design and allocation, secure wireless LAN communication, switching and routing services to support communication, deploy VPN for remote services, and to explore the integration of the CP Factory with the Internet of Things.

Introduction to Ubiquitous Computing (30 credits) - Optional

This module aims to provide an overview of the fundamental principles used in the emerging area of Ubiquitous Computing. These fundamental concepts will be illustrated with examples and small projects. You will be requested to write essays and develop small projects proposals to show your understanding of the module.

Systems Engineering for Robotics (30 credits) - Optional

This module aims to teach you software design of the sub-systems of robots and how to integrate them into a reliable and efficient robotic system, via a series of closely connected projects. You will develop the practical capability to design a robot system for real application. Within the lab sessions, you will gain experiential understanding of the effects the sub-system design could have on the whole system.

Computation, Algorithms, and Complexity (30 credits) - Optional

Computer Science has developed to be an academic discipline with an essential impact industrially, commercially and in everyday life. Students on this module will learn of the fundamentals and origination of computation combined with analytical (logical) skills applied to conceptual issues originating in theoretical and applied computer science. The second part of the module introduces students to algorithms through the lens of the resources they take up, such as time and space. Students will be able to compare two algorithms for the same problem and understand probable barriers to efficient algorithms through a gentle introduction to Turing Machines and completeness for non-deterministic polynomial time (NP).

Advanced Web Development with Big Data (30 credits) - Optional

Many modern websites store and process large amounts of data. Typical examples are property search websites, price comparison websites and financial websites. This module aims to give students the ability to download, store and process large quantities of data and build websites based on this data using advanced JavaScript frameworks. At the end of the module successful students will have gained advanced skills with Java, JavaScript, web development and big data, which are highly sought after in industry.

Teaching Computer Science in the Secondary School (30 credits) - Optional

The module will focus on the teaching of computer science within the secondary school (age 11-16) setting. You will observe, analyse and prepare materials for teaching practice. You will start to apply your knowledge of computing to teaching practice.  You will develop an understanding of the Teachers’ standards, thus supporting your preparation for application of initial teacher training courses.  You will complete reading on education pedagogy to critically analyse practice. The module will also support your development of public speaking.

You can find more information about this course in the programme specification. Optional modules are usually available at levels 5 and 6, although optional modules are not offered on every course. Where optional modules are available, you will be asked to make your choice during the previous academic year. If we have insufficient numbers of students interested in an optional module, or there are staffing changes which affect the teaching, it may not be offered. If an optional module will not run, we will advise you after the module selection period when numbers are confirmed, or at the earliest time that the programme team make the decision not to run the module, and help you choose an alternative module.

Computer Science BSc

Prix sur demande