The basis for a wide range of computer-based careers, computer science studies opens up opportunities across all sectors – from software development to systems engineering and everywhere in between. Our course helps you develop the skills, knowledge and experience that will attract employers and help you achieve your computer-based career goals.
You’ll gain an understanding of the key principles of computer science while you develop your programming, system engineering, and project experience skills. You’ll also get the support, encouragement and confidence to put your skills into practice through individual and group projects. Your first year will be entirely project led, ensuring you practice your skills from the very start.
In the past our students have worked on a project with the prestigious Pink Shoe Club , creating prototypes for a unique digital self-assessment tool.
You’ll have the opportunity to take a year-long, paid work experience placement as part of a four-year study path, where you'll be able to put your knowledge into action. We’ll also give you access to industry professionals and work experience opportunities to help you further develop your professional skills.
We ensure you get the skills, knowledge and experience that will help you launch a successful computer-based career.
We’re in the process of gaining BCS (British Computer Society) accreditation for our computer science degrees, which means you’ll be able to gain BCS membership once it’s awarded.
During your course, you’ll get personalised support from your Personal Tutor, Student Learning Assistant, and Graduate Academic Assistant. Their first-hand experience in your subject area means they understand how to best support you.
Sign up to receive the latest information about studying at Middlesex University London.
Our communications are designed to support you in deciding your future and keep you up to date about student finance, employment opportunities and student activities available at Middlesex University.
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.
All modules, and in particular labs, are available through online teaching. Year 1 robot labs are supplied with online simulation allowing students to test their programmes.
This module aims to provide you with an understanding of the foundations of programming. On completion of this module, you will be able to explain the key foundational concepts used to construct, analyse and debug small to medium sized programs for a variety of computing applications.
To provide you with an understanding of the organisation of computer-based systems from the small-scale (for example gates, processors and memory), through the medium-scale (for example personal computer organisation), to the large-scale (for example the Internet). On completion of this module, you will be able to describe a range of typical computer based systems in terms of their internal organisation of components and their system interfaces.
To provide you with an understanding of the foundations of Computer Science. On completion of this module, you will be able to explain the key concepts underpinning the discipline of Computer Science.
To provide you with experience of a range of Computer Science projects that reinforce First Year teaching and learning and provide opportunities to apply this learning in a supported and structured environment.
This module aims to provide you with an understanding of the concepts involved with object-oriented programming. To this end, you will cover the fundamentals of objects, classes, inheritance, composition, encapsulation and polymorphism. In addition, the module will expose you to GUI frameworks, introduce some basic software engineering design principles and patterns, and provide a more abstracted view of system design in terms of layered software architectures. It is expected that on completion of this module, you will be able to design, implement and test non-trivial object-oriented programs.
Part I of this module will provide you with an opportunity to gain practical level experience of Operating System management techniques in a realistic and flexible environment. Access is provided to a 64-bit Linux Enterprise system to promote active learning and reinforce lecture material.
Part II of this module provides you with the basic skills needed to learn both the practical and conceptual skills that build the foundation for understanding basic networking.
You will gain an understanding of the “layered” approach to networks by examining the OSI and TCP/IP models in detail as well as an introduction to switching and routing.
This module builds on the programming fundamentals developed in the first year through the study of software development processes, software engineering tools and techniques, and the analysis of algorithms and data structures.
This will enable the design, implementation, testing, profiling, and optimisation of software to be accurate, elegant and efficient implementations.
Several software engineering tools and techniques will be introduced and utilised throughout this module, where you will get to implement design, management, testing, and profiling of software.
This module will give you practical experience with the development of dynamic websites using HTML, CSS, PHP and JavaScript. You will learn how to store client-side data and get first-hand experience with the server-side storage of data using databases.
You will also obtain a deeper understanding of the operation of large-scale websites, such as Facebook and Google, and the security, privacy and legal issues that affect web applications.
The module aims to develop your employability skills by achieving the set of agreed learning outcomes using a Three Way Negotiated Learning Agreement. The module develops a range of skills specific to the individual workplace.
This practical experience module provides the means for you to link academic work with the 'real world', facilitating the embedding of transferable and graduate skills necessary for future career paths and employment.
You will reflect upon areas of knowledge relevant to the placement learning experience and develop personal knowledge through a review of your learning, with the opportunity to enhance your self-expression, communication, self-reliance and co-operation.
This module provides you with the opportunity of choosing and working on a project that reflects your interests and aims and outcomes of your programme. It should constitute a practical problem-solving project relevant to your programme of study.
The primary aim of the module is to consolidate and deepen your understanding of material taught on your programme, to exercise professional judgement, to undertake individual research and to conduct an investigation and/or develop a product, process or application relevant to the focus of your programme.
It provides you with the opportunity of engaging in significant system development, the typical output of which represents the solution of a problem akin to those that you as a fledgling professional practitioner are likely to encounter in future employment.
The module intends that your choice of individual project will provide you with a significant opportunity to reflect on your learning progress and to develop your learning for life-long and career development.
Computer systems are almost never perfect, exhibiting errors, crashes and hangs whose implications range from benign to fatal. 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.
This module aims to develop your understanding of the techniques and approaches used to capture, store and analyse data generated by organisations for purposes of business intelligence. In a digital age it is important for businesses to make use of data captured about its entities. You will learn about information retrieval, data presentation, pattern recognition techniques and data models that can be used in business intelligence applications. Descriptive data models can be used to gain a better understanding of overall organisation and predictive data models inform the decision making in all aspects of the business.
This module aims to develop a deep understanding of the latest web-based app programming techniques, frameworks, and methodologies used by the industry to develop the next generation software that can be deployed on any mobile devices (both Android and iOS).
The module will investigate, develop, and deploy latest programming language standards that are fundamental to app development and currently being widely employed in industry.
Modern programming frameworks will be introduced to provide the essential software architecture for large-scale software development and the ability to target either the Android or iOS platform.
The module will cover the three most important components of a complete mobile app: front end, back end, and system administration.
This module is designed to equip you with the knowledge and skills related to designing, securing, operating, and troubleshooting enterprise networks.
This module also covers wide area network (WAN) technologies, introduces software-defined networking, virtualisation, and automation concepts that support the digitalisation of networks.
Extensive labs emphasise hands-on learning and practice to reinforce the skills to configure and troubleshoot enterprise networks.
The module reflects the job skills and responsibilities that are associated with professional-level job roles such as network engineer, systems engineer, network support engineer, network administrator, and network consultant.
This module aims to equip you with the underlying concepts and theory in interactive media manipulation. In doing this, you will develop skills in synthesis and modification of media, hardware controllers, data visualisation and sonification.
By understanding the relationship between cognitive psychology and our mathematical treatment of media data, you will develop a strong theoretical foundation with which to explore this area.
You will be programming using a wide range of languages and explore a wide range of paradigms for completing various media-based tasks including the design and development of interactive artefacts.
As we are dealing with media and its presentation, there are strong links to the digital arts and you are expected to explore their creative side in addition to the computing skills required.
Background reading will provide you with a historical and philosophical context for reflecting on their own practice and that of their peers.
During this module, you will gain 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.
The module also includes analysis of user experience, the characteristics of users and their tasks, and the technical, organisational and physical environment in which products or systems may operate.
The aim of the module is to introduce you to a range of AI theories and techniques, including the most commonly used. You will also have the opportunity to implement these newly learnt techniques, and to extend your own development skills.
Designing secure computer systems is a cross cutting discipline: from organisational policies, via programming languages and network protocols all the way down to physical layers, security controls need to be installed at all levels of a computer system.
This course aims at giving you an overall appreciation of the meaning of security and privacy, teaching you standard techniques of designing, developing and assessing secure computer systems.
At the end of the module, you will have acquired skills and knowledge in basic cryptology, security protocol design, threat analysis, security models and security engineering techniques.
The aim of this module is to examine in depth the concepts and techniques needed in the construction of interactive graphics systems covering advanced graphics programming techniques. The module will cover theory and mathematics as required.
You will gain practical experience via significant individual project work, developing computer graphics programs using an industry standard environment.
Interactive technologies are developing continually, and new devices that offer novel ways of interacting with computer-based systems are constantly finding their way into our homes, workplaces and lives. In 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 therefore 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.
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 you 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, you will have gained advanced skills with Java, JavaScript, web development and big data, which are highly sought after skills.
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 then start to apply your knowledge of computing to teaching practice.
During this module, you will develop an understanding of the Teachers’ standards, therefore 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.
This module aims to develop understanding of the integration of modular robotic and sensor systems. It will enable students to acquire practical skills of robotic software/hardware integration and validation. In addition it aims to develop understanding of human robot interaction.
More information about this course
See the course specification for more information about typical course content.
Our BSc Computer Science degree prepares you for a wide range of IT-based careers. Career prospects and the range of potential employers will be vast across the private, public and not-for-profit sectors.
Computing is a growing careers sector with extensive roles available from a Software Engineer to a Systems Analyst.
We are seeking BCS (British Computer Society) accreditation for this course and you will be eligible for BCS membership retrospectively when it is awarded.
We’ll carefully manage any future changes to courses, or the support and other services available to you, if these are necessary because of things like changes to government health and safety advice, or any changes to the law.
Any decisions will be taken in line with both external advice and the University’s Regulations which include information on this.
Our priority will always be to maintain academic standards and quality so that your learning outcomes are not affected by any adjustments that we may have to make.
At all times we’ll aim to keep you well informed of how we may need to respond to changing circumstances, and about support that we’ll provide to you.
Start: September 2023, September 2024
Duration: BSc: 3 years full-time, 4 years with placement
Code: BSc: G522
Start: October 2023
Duration: 3 years full-time, 4 years with placement, Usually 5 years part-time
Code: I124
Start: September 2023, January 2024
Duration: 1 year full-time, 2 years part-time
Code: PGG404