Introduction to C# (20 Credits)
The aim(s) of the module is to introduce students to the C# programming language and the Visual Studio Integrated Development Environment (IDE). The module is an initial module in computer programming and will assume no prior knowledge of programming. You will use a log-book to demonstrate your learning throughout this module as you build up your skills and will be assessed on specific entries into this log book.
This module provides support for the Design and Implement elements of the CDIO module.
Deployment Technologies for Computing (20 Credits)
In this module you will be exposed to basic understanding of electronic principles, sensors, wiring up electronic components, programming hardware systems, controls, robotics and also introduce a rapid application development platform to build mobile applications for a deployment system using visual and model driven approach. This will allow you to create simple prototype systems to demonstrate your concepts and ideas and will be used in the Software Lifecycle Development project in Semester 2.
Fundamentals of Computer Systems (20 Credits)
This module will introduce you to the base concepts of the binary computer through interaction with small devices such as simulation systems or the Raspberry Pi. Students will examine its components, its operation and basic elements of data storage.
Application Development (20 Credits)
The aim(s) of the module is to continue to develop your capability to develop simple C# solutions to problem situations. This will cover more complex programming concepts than looked at in Introduction to C# as well as concepts of Graphical User Interface development and design and linking C# systems to file store and database systems.
Ethics, Professionalism and Employability in Computing (20 Credits)
This module aims to give a good understanding of ethical, professional and employability issues you will encounter when embarking on a career in Computing. The module will focus on the kind of roles available to computer professionals and discuss the choices required, both in general and with regard to the degree modules that might best guide you into a particular career. Students will have the opportunity to research and explore the knowledge required for their chosen career and be encouraged to discuss the ethical and professional issues relating to these areas.
Software Lifecycle Group Development Project (20 Credits)
To develop your understanding of the fundamental concepts of software engineering you will work through a project in teams to develop a piece of software. You will work through the software life-cycle tasks to developing a computer-based solution to meet specific user requirements through the development of a simple system. You will also develop your understanding of what is required for good team formation and operation.
Object-Oriented Programming (20 credits)
Object oriented programming continues the software programming stream from year 1 by looking at a way of thinking about problems and development of solutions – using the class and object model. Continuing the use of the main programming language from year 1 (typically C#) the module deepens your knowledge of how to use the power of this development language. The students will also consider the concepts of the ethics of untested software and Intellectual property rights in the software industry and how this may affect their own software development careers.
Software Engineering (20 Credits)
The aim of this module is to provide the students with an opportunity to understand the basic methodologies, tools and techniques involved in creating comparatively small software systems. The module aims to provide students with the ability to effectively use one of the industry used software development frameworks such as Visual Studio Team Services (VSTS) and its embedded tools to create a full application starting with a scenario of a small project idea and ending with full deployment of a solution application.
Database Enhancement Group Project (20 Credits)
The module aims to provide you with a practical appreciation of the fundamental issues involved in designing, implementing and testing a small relational database application in a multi-user environment using an industry-standard database management system. You will be taking an existing database and making improvements to this while understanding the modelling concepts and theory to understand database systems.
Web Development Project (20 credits)
This module aims to provide students with the theoretical knowledge and practical skills to understand and construct interactive websites. The focus will be on client-side and server-side design and implementation enabling students to appreciate the role of various network architectures and system configurations. This module provides support for all elements of the CDIO model.
Networking and Operating Systems (20 Credits)
The aim of this module is to first introduce you to basic principles of operating systems and undertake practical exercises on basic administrative tasks. You will also be introduced to the fundamental aspects of Computer Networks. Key aspects such as the design, construction and operation of Local and Wide Area Networks, and the layered protocol architecture are covered. The module aims to reinforce the taught material using physical equipment and software tools in a laboratory environment.
Algorithms and Data Structures (20 credits)
In software development we often use standard techniques to solve problems. These solutions come from the way we store the information (Data Structures) and the steps we work through to arrive at the information we need to extract (the algorithms). This module looks at both elements together – so you can understand how to create solutions more quickly, reliably and with ease of understanding and maintenance of other programmers. This essential skill for all developers will help you work effectively in industry.
Optional Year in Industry
The year in industry allows you to develop your knowledge and skills in a business or industrial setting. This allows you to build up the practical skills desired by employers and to demonstrate your capabilities on your CV.
Individual Study - Part A (20 Credits)
The Individual Study is your opportunity to demonstrate your capabilities and what you have learned over your time at University and is worth a third of your final year credits. You will perform a research task that will usually involve literature and practical work. You will write a dissertation to describe your work and create a poster to present the work to a broad range of people.
Programming Languages and Frameworks (20 credits)
The module introduces special purpose frameworks used for special types of applications, such as web applications with special languages such as CodeIgniter for PHP, or Selenium for Testing. You will look at a variety of different frameworks in different areas of software development with a view to evaluating commonality and differences between them.
Cybersecurity (20 Credits)
In this module you will learn to how to perform a risk assessment of a variety of assets linked to an organisation, such as information, computers, networks, delivery and supply chains, people and buildings. You will then develop skills to protect information systems (hardware, software and associated infrastructure), the data on them, and the services they provide, from unauthorised access, harm or misuse. We believe that an understanding of computer security is so important in modern IT that all computing students should be versed in it to some level to protect themselves and any organisation they work with.
Individual Study- Part B (20 Credits)
You will continue and conclude your work on your Individual Study that you started in the first Semester.
Likely optional modules
Human Computer Interaction (20 Credits)
The module shows you to concepts relating to how to ensure usability is part of the design of new systems and to introduce systematic approaches to the design and analysis of user interfaces. You will explore the new research, developments and future direction of the field to enhance the interaction between humans and computers and create more powerful, faster, simpler and intuitive experiences.
Current Issues in Computing (20 credits)
This module examines a range of current issues within the field of computing and places them with a broader academic context providing a multi-disciplinary perspective to an otherwise specialised field of study. No prior knowledge of disciplines outside the field of computing is required, but a good understanding of computer related subjects is assumed.
Advanced Databases and Big Data (20 credits)
This module uses the Conceive Design Implement Operate (CDIO) educational framework utilising software engineering fundamentals within the context of conceiving, designing, implementing and operating a complex value-added real-world database system. The module follows on directly from the Year 2 Database Enhancement Group Project module. It aims to consolidate/extend the practical and analytical skills required to carry out more advanced logical/conceptual database design and explores alternative ways of modelling data. It also aims to keep students abreast of recent developments in the field; particularly in the storage and effective use structured Big Data.
Advanced Operating Systems (20 Credits)
This module aims to provide students with a theoretical overview of the key concepts underpinning the design of modern operating systems. This theoretical knowledge will be used, critically analysed and applied to real-world uses of operating systems. Understanding of the underlying inter-process operation of operating systems will be looked at via shell scripting. The overall structure of an operating system will also be covered, i.e., the layered model; virtual machines, client-server, etc. The module will also consider the user’s view of an operating system in terms of process control, file manipulation, device and information maintenance and the user interface/API.