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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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 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.
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.
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.
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.
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.
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).
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.
BSc Business Information Systems graduate (2007)
I have a passion for IT and Business and I was convinced that this was the exact path for me. In my third year, I opted for a placement at Investec Investment Bank in the Asset Management Application Development and Support team. This experience really helped me to kick-start my career in the right direction. I currently work at Dresdner Kleinwort investment bank and hope to purse a masters degree in Computing Science in the near future. In five years time, I see myself owning my own IT consulting company.
BSc Business Information Systems graduate (2006)
The skills I developed during my degree were excellent preparation for my current job as a human computer interaction researcher at Middlesex University. This includes interpersonal and communication skills needed for organising interviews and usability trials, Java programming for prototype development, report writing and web design skills to present and share our findings. Middlesex University has helped me broaden my horizons considerably in the last few years, and I am now able to consider a wider range of projects in the IT industry, or even a PhD.
Start: January 2018 for Year 3 entry only, October 2018 for full degree, EU/International induction: September 2018
Duration: 3 years full-time, 4 years with placement, Usually 5 years part-time
Start: Autumn 2018
Duration: BSc: 3 years full-time, 4 years with placement, 6 years part-time, MSci: 4 years part-time, 5 years with placement, 8 years part-time
Code: BSc: G111, MSci: G11A
Start: October 2018, EU/International induction: September 2018
Duration: 3 years full-time, 4 years with placement, Usually 5 years part-time