BEng|Undergraduate
Software Engineering with Digital Technology Partnership
Academic Year 2023/24
BBB/ABB
4 years (Full Time)
G606
Yes
This is a degree apprenticeship. Those applying to the programme will be employed as an apprentice of a
leading technology employer and will combine traditional university study with work-based learning.
On completion of our exciting four year programme you’ll be awarded a BEng degree in Software Engineering with Digital Technology. As part of the programme, you’ll have gained extensive on-the-job training with PwC. Through this training you’ll have the opportunity to gain an insight into a variety of teams across the technology spectrum whilst developing your technical specialism as you progress through the apprenticeship.
Without software engineering, you wouldn’t be reading this page. Software innovation has transformed the way we think about, and interact with, technology. In fact, all the forms of communication, interaction and access that we take for granted today are made possible by software in some shape or form. Which is why the demand for software engineers has never been greater.
From improving the efficiency of the apps we use in order to make them more sustainable, to developing scalable and secure app infrastructure, Software Engineers have skills that drive innovation. In essence, they are problem solvers with the ability to take an existing software system and creatively refine, enhance and transform it into something even better.
This degree programme is designed to equip you with the analytical, reasoning and practical skills required to design, develop and deploy large software systems. It blends the best knowledge and skills from both Software Engineering and Computer Science. Graduates could find themselves working on a wide variety of projects, from Artificial Intelligence to Augmented Reality and 3D Printing to Drones, we’re using these technologies to help our clients work better and prepare for the future.
Developed through very close partnerships with PwC the degree apprenticeship is designed to combine the analytical, reasoning and practical skills learnt in a typical university degree with key industry attributes like collaboration, teamwork and workload management which they will need to succeed as professional software engineers. As a degree apprentice, you will be employed as an apprentice at PwC for the duration of your traditional University based study.
While on placement you’ll get to meet our world-class clients and work alongside our highly skilled teams. During your time at university you’ll get to experience the full time student lifestyle. But as the placements are paid you’ll have some money to enjoy it too. You’ll gain a degree, and hopefully impress us enough to secure a place on our graduate scheme.
Software Engineering with Digital Technology Partnership Degree highlights
Industry Links
- Our computing courses are well established and are closely aligned with the needs of employers. Over the last decade, we have enabled thousands of graduates to succeed as professionals within the technology sector.
Northern Ireland has an excellent international reputation for the quality and supply of its software engineers. Indeed many companies, both national and international, have opted for Northern Ireland as a base for their computing divisions in recognition of the high quality of graduates produced by the local universities.
Given this situation, it is not surprising that our graduates have had unparalleled job opportunities over the years, both locally and internationally. Because of the achievements of Queen's graduates already in the software engineering profession, a Software Engineering degree from Queen's is a highly respected qualification.
Employers, from large multinational firms to small local organisations, actively target our students, recognising that Queen's Software Engineering graduates are equipped with the skills they need. On graduating the majority of graduates take up posts associated with software design and implementation. Opportunities exist in fields as diverse as finance, games, pharmaceuticals, healthcare, research, consumer products, and public services - virtually all areas of business.
The types of career open to Software Engineering graduates include: Software Developer; Systems Analyst; Web Designer; Games Developer; Programmer; IT Consultant; Project Manager.
Career Development
- As a degree apprenticeship this programme provides the opportunity to get ‘hands on’ experience from day one. Students will develop close working relationships with their employer and have the opportunity to assist on and lead projects within their specialism.
World Class Facilities
- Our courses are delivered within a recently constructed, start-of-the-art facility that provides access to hundreds of modern computers alongside a diverse and flexible range of individual and group study spaces.
Student Experience
- Other than providing a high-quality education, we also run a wide range of extra-curricular events that expose our students to emerging technologies and provide an opportunity to explore how technology can be used to tackle important problems.
Victoria Porter (PwC Apprentice)
How the year has been overall?
I've really enjoyed my first year, it was a lot less stressful than A-Levels! Queen's presented many incredible opportunities throughout the year and I'm looking forward to embracing what PwC has to offer during summer placement.
Has it met your expectations?
It has exceeded my expectations in all honesty, I have learnt a lot and I love what I do. The societies have offered so many opportunities to apply your learning to practical situations, from programming robots to building autonomous wheelchairs!
What has been the biggest challenge?
In the early stages I became so relaxed with the pace of the course that I forgot I had an exam until a couple of days before it! Needless to say it never happened again!
Are you looking forward to next year? And why?
Absolutely, there is so much still to learn and I'm really looking forward to it. I'd like to get involved in more internal projects within Queen's and also hackathons - these are amazing for knowledge expansion and the topics are always so fascinating.
NEXT
Course content
Course Structure
Course content | The degree teaches the fundamental principles of Software Engineering together with the necessary skills, tools and techniques to enable our graduates to succeed as professional software engineers. In the first two years of the programme, apprentices will develop a broad technology foundation that will underpin later learning. During the final two years of the programme, apprentices will flexibly combine specialist university modules with PwC-based work experience. The programme contains the following themes which may change due to the nature of the IT Industry and keeping up with industrial trends: |
---|---|
Year 1 | Apprentices will establish a solid foundation in topics such as: • Programming • Computer Architecture and Networking • Databases • Software Engineering • Problem-solving You’ll work on cutting-edge digital and technology client projects during your ten-week work placements at the end of your first and second years of study. |
Year 2 | Apprentices will build their foundational knowledge to include more: • Software Development Processes and Practices • Software Engineering • Information Modelling • Computer Architectures and Networking • Data Structures and Algorithm Analysis • Professional Computing Practice You’ll work on cutting-edge digital and technology client projects during your ten-week work placements at the end of your first and second years of study In addition to establishing a solid foundation in the above area, apprentices will also develop though on-the-job learning with PwC outside of term-time (for example, working with PwC over the summer months). |
Year 3 / 4 | In Year 3 and Year 4 of the programme, apprentices will study a number of modules that will permit them to develop specialism in key areas of software engineering. Currently the sort of topics which will be available include: • Data Analysis and Visualisation • Artificial Intelligence • Advanced Data Analytics • Agile and Lean Software Development • Machine Learning • Advanced Computer Architecture • Concurrent Programming • Software Design Principles and Patterns • Cloud Computing • Secure Software Design • Malware Analysis • Software Testing Apprentices will complete one semester of University study in both Year 3 and Year 4. The remaining time will be devoted to on-the-job learning with PwC. |
People teaching you
EEECS
T: +44 ())28 9097 4669
E: eeecs@qub.ac.uk
Contact Teaching Times
Personal Study | 24 (hours maximum) |
---|---|
Small Group Teaching/Personal Tutorial | 6 (hours maximum) hours of practical classes, workshops or tutorials each week |
Large Group Teaching | 9 (hours maximum) hours of lectures |
Learning and Teaching
The School has a world class reputation for research and provides excellent facilities, including access to major new research centres in Secure Information Technologies, Electronics, Communications and Information Technology and Sonic Arts. A number of modules on the course are closely linked to the research expertise of these centres and evolve and change rapidly to reflect some of the current, emerging and exciting developments in the field.
At Queen’s, we aim to deliver a high quality learning environment that embeds intellectual curiosity, innovation and best practice in learning, teaching and student support to enable student to achieve their full academic potential.
On the Software Engineering with Digital Technology Partnership degree we do this by providing a range of learning experiences which enable our students to engage with subject experts, develop attributes and perspectives that will equip them for life and work in a global society and make use of innovative technologies and a world class library that enhances their development as independent, lifelong learners. Examples of the opportunities provided for learning on this course are:
- -
Additional Information
Students have access to a wide range of computers (laboratories are equipped with several hundred PCs) and specialised software packages. Networks link the School and University computers to powerful machines in Great Britain.
The course emphasises the professional and practical application of software engineering. As such, students are encouraged to build strong links with local software engineering companies through employer involvement within projects, lectures and other forms of teaching contact.
E-Learning technologies
Information associated with lectures and assignments is often communicated via a Virtual Learning Environment (VLE) called Queen’s Online. A range of e-learning experiences are also embedded in the degree through, for example: interactive group workshops in a flexible learning space; IT and statistics modules; podcasts and interactive web-based learning activities; opportunities to use IT programmes associated with design in practicals and project- based work etc.
Lectures
Introduce basic information about new topics as a starting point for further self-directed private study/reading. Lectures also provide opportunities to ask questions, gain some feedback and advice on assessments (normally delivered in large groups to all year group peers).
Peer Mentoring
Queen’s runs a peer mentoring scheme for Computing students – a group of students from all year groups (except first year) are trained to provide support for the 1st year students, in terms of offering advice and guidance, organising social events etc. The School also has a Computing Society (QCS – Queen’s Computing Society) who organise a range of activities, including social events and more formal activities such as industry lectures, for all Computing students. A games club also meets once a week and this is open to all computing students in the School (not just those studying for the games degree).
Personal Tutor
Undergraduates are allocated a Personal Tutor who meets with them on several occasions during the year to support their academic development.
Practicals
Where you will have significant opportunities to develop technical skills and apply theoretical principles to real-life or practical contexts. Comprehensive demonstrator support is provided – typically one demonstrator per 8-10 students.
Projects and teamwork
A number of modules throughout the degree will use supervised projects as a means of enabling you to put your technical understanding into practice. The extensive use of team based projects from first year will provide you with the opportunity to develop skills widely used by employers. In final year, you will be expected to carry out a significant piece of research on a topic or practical methodology. You will receive support from a supervisor who will guide you in terms of how to carry out your research and will provide feedback to you.
Self-directed study
This is an important part of life as a Queen’s student when important private reading, engagement with e-learning resources, reflection on feedback to date and assignment research and preparation work is carried out.
Seminars/tutorials
A number of modules will make use of seminars/tutorials (typically 10-20 students). These provide an opportunity for students to engage with academic staff who have specialist knowledge of the topic, to ask questions of them and to assess their own progress and understanding with the support of peers. You should also expect to make presentations and other contributions to these groups.
Work placements
A student taking this programme can spend a year gaining professional experience in industry in a paid full-time post. Students are helped to obtain suitable places and the School has excellent links with over 500 local, national and international employers such as Microsoft, Liberty IT, Kainos, IBM,Deloitte, BT, Citi Group, SAP and Dell. It is expected that students will gain a Licentiateship of the City and Guilds from this period of work experience.
Assessment
Details of assessments associated with this courses are outlined below:
- The way in which you are assessed will vary according to the Learning objectives of each module. Some modules are assessed solely through project work or written assignments. Others are assessed through a combination of coursework and end of semester examinations. Details of how each module is assessed are shown in the Student Handbook which is provided to all students during their first year induction.
Feedback
As students progress through their course at Queen’s they will receive general and specific feedback about their work from a variety of sources including lecturers, module co-ordinators, placement supervisors, personal tutors, advisers of study and peers. University students are expected to engage with reflective practice and to use this approach to improve the quality of their work. Feedback may be provided in a variety of forms including:
- Feedback provided via formal written comments and marks relating to work that you, as an individual or as part of a group, have submitted.
Face to face comment. This may include occasions when you make use of the lecturers’ advertised “office hours” to help you to address a specific query.
Placement employer comments or references
Online or emailed comment
General comments or question and answer opportunities at the end of a lecture, seminar or tutorial.
Pre-submission advice regarding the standards you should aim for and common pitfalls to avoid. In some instances, this may be provided in the form of model answers or exemplars which you can review in your own time
Feedback and outcomes from practical classes.
Comment and guidance provided by staff from specialist support services such as, Careers, Employability and Skills or the Learning Development Service.
Once you have reviewed your feedback, you will be encouraged to identify and implement further improvements to the quality of your work.
PREV
Overview
NEXT
Modules
Modules
The information below is intended as an example only, featuring module details for the current year of study (2022/23). Modules are reviewed on an annual basis and may be subject to future changes – revised details will be published through Programme Specifications ahead of each academic year.
- Year 1
Core Modules
Introduction to Computer Architecture (20 credits)Introduction to Computer Architecture
Overview
• Computer Abstractions and Technology
• Basic computer organisation
• Digital Design Basics
• Number Representation
• Arithmetic for Computers
• Microarchitecture Basics – Pipelining
• Instructions: Language of the CPU
• Instruction Set Architectures
• Basic Assembly Programming
• Compilation Flow (how high-level languages are operated)
• The role of the operating systemLearning Outcomes
• Describe how information (e.g. numbers, characters etc.) is represented in computers.
• Describe the internal hardware organisations that form a computer.
• Describe how a high level program is executed in a computer, including the role of the operating system
• Implement basic assembly language programs
• Describe some of the fundamental differences between instruction set architecturesSkills
Application of Number, ICT, Improving Own Learning and Performance, Problem Solving, Design and Implementation of solutions, Programming
Coursework
100%
Examination
0%
Practical
0%
Stage/Level
1
Credits
20
Module Code
CSC1033
Teaching Period
Autumn
Duration
12 weeks
Databases (20 credits)Databases
Overview
• Databases
o Introduction to the fundamental concepts in database systems
o Exploring and solving real world problems using data models and schemas.
o Creating and designing Relational databases including Tables, Fields, Keys and Joins
o Managing a relational database using Structured Query Language (SQL)
o Formal Approaches to Relational Database Design (normalization theory, dependency theory).
o Advanced Topics on Modern Data Management (data extraction, mining, integration).
o Database access from a programming language (e.g. Java) including being able to display, modify, delete and update data on it.Learning Outcomes
Be able to:
• Databases
o Demonstrate knowledge, understanding and the application of the fundamental concepts of basic database systems.
o Demonstrate knowledge, understanding and the application of the fundamental concepts in data modelling and database schemas
o Demonstrate knowledge, understanding and the application of the fundamental concepts of SQL queries to manage a relational database including Create, Insert, Select, Delete and Update.
o Demonstrate knowledge, understanding and the application of using a programming language to connect, manage and execute SQL queries.Skills
Application of Number, ICT, Improving Own Learning and Performance, Problem Solving.
Coursework
30%
Examination
30%
Practical
40%
Stage/Level
1
Credits
20
Module Code
CSC1023
Teaching Period
Spring
Duration
12 weeks
Fundamentals of Maths for Computing (20 credits)Fundamentals of Maths for Computing
Overview
This module will introduce the fundamentals of maths for students studying a computing degree. As you progress through your nominated degree you will need to understand the concepts of algorithms design, logical reasoning and programming. Therefore, it is necessary to understand how to apply mathematical arguments and knowledge to model real world problems. This module will also cover key mathematical concepts for problem solving and analysis including: number theory, algebra, logic, set theory, vectors and matrices, statistics and graph theory. This will allow you to apply mathematical reasoning about problems and programs and strategies for problem solving.
Learning Outcomes
Students must be able to:
• Demonstrate knowledge, understanding and the application of the principles of number theory to include:
o Number systems, arithmetic operations, prime numbers, fundamental theorem of arithmetic.
• Demonstrate knowledge, understanding and the application of the principles of algebra to include:
o Algebraic expressions and notation for the product and summation of algebraic terms.
• Demonstrate knowledge, understanding and the application of the principles of logic to include:
o Propositional logic, predicate logic and proofs.
• Demonstrate knowledge, understanding and the application of the principles of set theory to include:
o Sets, set operations, set equality, subsets, sequences and functions.
• Demonstrate knowledge, understanding and the application of the principles of vectors & matrices to include:
o Addition, multiplication, distributive and associativity, and identity matrix.
• Demonstrate knowledge, understanding and the application of the principles of statistics to include:
o Probability theory and introductory methods for data analysis.
• Demonstrate knowledge, understanding and the application of the principles of graph theory to include:
o Graph models, trees, paths, cycles, Euler's theorem.Coursework
60%
Examination
0%
Practical
40%
Stage/Level
1
Credits
20
Module Code
CSC1026
Teaching Period
Autumn
Duration
12 weeks
Optional Modules
Introduction to Cyber Security (20 credits)Introduction to Cyber Security
Overview
• Foundational concepts – objectives of cyber security
• Principles - Saltzer and Schroeder principles, NIST principles etc.
• Attack Types, Threats and Vulnerabilities
• Confidentiality, integrity, and availability
• Authentication, Access Control, and Accounting
• Security policy
• Human threats/social engineering
• Secure information system design – security architecture and lifecycle
• System protection technologies and countermeasuresLearning Outcomes
• Demonstrate knowledge and understanding of the principles of cyber security.
• Identify and analyse the current threats and challenges to the security of information systems, data, and services.
• Evaluate system protection technologies and methods.
• Demonstrate knowledge and understanding of the design of a system from a security perspective.Skills
Improving Own Learning and Performance, Problem Solving, planning and researching assignments, design and implementation of solutions
Coursework
100%
Examination
0%
Practical
0%
Stage/Level
1
Credits
20
Module Code
CSC1032
Teaching Period
Spring
Duration
12 weeks
Programming (20 credits)Programming
Overview
This module introduces the fundamentals of object-oriented programming. Real-world problems and exemplar code solutions are examined to encourage effective data modelling, code reuse and good algorithm design. Fundamental OO programming concepts including abstraction, encapsulation, inheritance and polymorphism are practically reviewed through case studies, with an emphasis on testing and the use of code repositories for better management of code version control.
Learning Outcomes
Students must be able to:
• Demonstrate knowledge, understanding and the application of the principles and application of object-oriented design, to include:
o Abstraction, encapsulation, inheritance and polymorphism
• Demonstrate knowledge of static data modelling techniques (through UML)
• Demonstrate knowledge, understanding and the application of the principles and application of object extensibility and object reuse.
• Demonstrate knowledge, understanding and the application of more advanced programming concepts, to include:
o Recursion
o Searching and sorting
o Basic data structures
• Demonstrate knowledge, understanding and the application of testing, in particular, unit and integration testing.
• Apply good programming standards in compliance with the relevant codes of practice and versioning tools being employed e.g. naming conventions, comments and indentation
• Analyse real-world challenges in combination with OO programming concepts to write code in an effective way to solve the problem.Skills
KNOWLEDGE & UNDERSTANDING: Understand fundamental theories of object-oriented programming
INTELLECTUAL AND PRACTICAL:
• Be able to design, develop and test programs, which meet functional requirements expressed in English.
• Programs designed, developed and tested will contain a combination of some or all of the features as within the Knowledge and Understanding learning outcomes.Coursework
50%
Examination
20%
Practical
30%
Stage/Level
1
Credits
20
Module Code
CSC1027
Teaching Period
Autumn
Duration
12 weeks
Software Design Principles (20 credits)Software Design Principles
Overview
The module will introduce the fundamentals of a good and secure software design i.e., software that applies fundamental design and cuber-security principles. The module offers not only the necessary theoretical foundation but also the required practical examples/exercises, along with real-world projects. The students will develop their projects via working in small teams and by following a well-defined software-engineering process. The process will start with the specification of the software requirements, will continue with the specification of the proper software design that meets the requirements, and will end with software testing to satisfy the specified requirements. The developed software will follow the object-oriented paradigm (esp., the java language will be used for the software development).
Learning Outcomes
Students must be able to demonstrate knowledge in:
- specifying software requirements by using UML language,
- employing object-oriented principles
-applying design and cyber-security principles
-specifying software design by using UML language
- employing principles of package design
-applying software testing to satisfy the specified requirements.Skills
KNOWLEDGE & UNDERSTANDING: Understand fundamental theories of software design and the importance of analysing a problem domain for a specific target audience.
INTELLECTUAL AND PRACTICAL:
• Be able to design and develop solution within a collaborative team to meet simple the requirements as expressed through the project.Coursework
100%
Examination
0%
Practical
0%
Stage/Level
1
Credits
20
Module Code
CSC1031
Teaching Period
Spring
Duration
12 weeks
Web Technologies (20 credits)Web Technologies
Overview
In this module, you will learn how the three key technologies of HTML, CSS and JavaScript combine to provide client-side web applications. In particular, you will look at designing relevant content, how to present this content and how to integrate interactive features using dynamic behaviours. You will also learn how to test and debug web pages across multiple browser platforms and ensure your pages conform to accessibility standards and relevant legislation. As part of your consideration for multiple browser platforms you will cover a range of web design principles for mobile web applications.
Learning Outcomes
On completion of this module, students will be able to:
• Demonstrate knowledge, understanding and the application of the principles and application of the three key technologies of HTML, CSS and JavaScript, to include:
o Applying the latest version of HTML to create fully compliant web pages
o Applying the latest version of CSS to control the layout and appearance of web pages across multiple browsers
o Applying JavaScript to add dynamic behaviour and interactive elements to web pages
• Demonstrate knowledge, understanding and the application of the principles and application of appropriate tools to test and debug web sites
• Demonstrate knowledge and understanding of the principles of web accessibility.Coursework
100%
Examination
0%
Practical
0%
Stage/Level
1
Credits
20
Module Code
CSC1030
Teaching Period
Spring
Duration
12 weeks
Object Oriented Programming (20 credits)Object Oriented Programming
Overview
This module introduces the fundamentals of object-oriented programming. Real-world problems and exemplar code solutions are examined to encourage effective data modelling, code reuse and good algorithm design. Fundamental OO programming concepts including abstraction, encapsulation, inheritance and polymorphism are practically reviewed through case studies, with an emphasis on testing and the use of code repositories for better management of code version control.
Learning Outcomes
Students must be able to:
• Demonstrate knowledge, understanding and the application of the principles and application of object-oriented design, to include:
o Abstraction, encapsulation, inheritance and polymorphism
• Demonstrate knowledge of static data modelling techniques (through UML)
• Demonstrate knowledge, understanding and the application of the principles and application of object extensibility and object reuse.
• Demonstrate knowledge, understanding and the application of more advanced programming concepts, to include:
o Recursion
o Searching and sorting
o Basic data structures
• Demonstrate knowledge, understanding and the application of testing, in particular, unit and integration testing.
• Apply good programming standards in compliance with the relevant codes of practice and versioning tools being employed e.g. naming conventions, comments and indentation
• Analyse real-world challenges in combination with OO programming concepts to write code in an effective way to solve the problem.Skills
KNOWLEDGE & UNDERSTANDING: Understand fundamental theories of object-oriented programming
INTELLECTUAL AND PRACTICAL:
• Be able to design, develop and test programs, which meet functional requirements expressed in English.
• Programs designed, developed and tested will contain a combination of some or all of the features as within the Knowledge and Understanding learning outcomes.Coursework
50%
Examination
20%
Practical
30%
Stage/Level
1
Credits
20
Module Code
CSC1029
Teaching Period
Spring
Duration
12 weeks
Computer Science Challenges (20 credits)Computer Science Challenges
Overview
Computer Science Challenges provides an opportunity for students to engage with practical and challenging problems in Computer Science. The course will offer a range of topical areas in Computer Science such as, data science, machine learning, cybersecurity or computing systems that students can select a project within. The choice of topical areas will depend on availability of resources. Through developing a project within one of the set areas, students will advance their programming experience, including the use of tools and technologies such as, version control, testing and secure and efficient programming.
Learning Outcomes
Students must be able to:
- demonstrate knowledge of the topical areas and be able to apply this knowledge in a software project.
Additionally, students must be able to demonstrate the application of:
• Professional programming standards: clean code techniques, commenting and code review.
• Tools: appropriate integrated development environments (IDE) for the specific tasks, version control, debugging tools and static analysis tools.
• Program design: modular decomposition and functional decomposition.
• Professional programming practices: error handling, input validation, use of standard libraries and secure programming considerations.Skills
Self learning, perseverance, debugging, user focused development, self promotion.
Coursework
100%
Examination
0%
Practical
0%
Stage/Level
1
Credits
20
Module Code
CSC1028
Teaching Period
Spring
Duration
12 weeks
Procedural Programming (20 credits)Procedural Programming
Overview
This module introduces the fundamentals of procedural programming. Using a problem-solving approach, real-world examples are explored to promote code literacy and good algorithm design. Students are introduced to the representation and management of primitive data, structures for program control and refinement techniques, which guide the development process from problem specification to code solution.
Learning Outcomes
Students must be able to:
• Demonstrate knowledge, understanding and the application of the principles of procedural programming, including:
o Primitive data types (including storage requirements)
o Program control structures: Sequencing, selection and iteration
o Functions/methods and data scope
o Simple abstract data structures, i.e. strings and arrays
o File I/O and error handling
o Pseudocode and algorithm definition/refinement
• Apply good programming standards in compliance with the relevant codes of practice e.g. naming conventions, comments and indentation
• Analyse real-world challenges in combination with programming concepts to write code in an effective way to solve the problem.Skills
KNOWLEDGE & UNDERSTANDING: Understand fundamental theories of procedural programming
INTELLECTUAL AND PRACTICAL:
• Be able to design and develop small programs, which meet simple functional requirements expressed in English.
• Programs designed, developed and tested will contain a combination of some or all of the features as within the Knowledge and Understanding learning outcomes.Coursework
60%
Examination
0%
Practical
40%
Stage/Level
1
Credits
20
Module Code
CSC1025
Teaching Period
Autumn
Duration
12 weeks
- Year 2
Core Modules
Service-Oriented Programming (20 credits)Service-Oriented Programming
Overview
The module deals with the design and the development of software with service-oriented architecture (SoA). In particular, the module focuses on how software can be developed by designing well-separated and cohesive components (a.k.a. modular architecture) using SoA design principles. To make these components reusable over the Web, the module further illustrates how software components can be exposed using the current technology of Web services, accessed via Web APIs. Also, the module deals with the serialization techniques that service components use to exchange data to each other. The students will collaborate in small teams to build software as a composition of macro-services and/or micro-services.
Learning Outcomes
Students must be able to demonstrate knowledge and understanding on:
* designing (modular) service-oriented architecture software
* applying SoA design principles
* using the current technology of Web services
* defining Web APIs
* employing serialization techniques
* designing service compositions
*collaborative development of SoA team projectsSkills
The skills acquired after completing the module are the following:
* the design and the development of service-oriented architecture software
* the usage of the current technology of Web services (RESTful and SOAP services)
* the design of reusable software components
* the definition of JSON and XML Web APIs
* the employment of serialization techniques (e.g. Java to JSON/XML and vice versa) for the data exchange between Web services
* the collaborative SoA software developmentCoursework
70%
Examination
0%
Practical
30%
Stage/Level
2
Credits
20
Module Code
CSC2063
Teaching Period
Spring
Duration
12 weeks
Networks and Protocols (20 credits)Networks and Protocols
Overview
• Networking fundamentals, classifications and protocols
• The Internet and World Wide Web including Client-Server approach
• Computer Network layers
• Routing algorithms/Scalable routing
• Local Area Network topologies and protocols
• Common Internet application protocols e.g., HTTP/HTTPS
• Software-Defined Networks
• Socket-based connections
• Selected networking topics e.g., Network Security, Wireless Networks, Network ResourcesLearning Outcomes
• Describe Computer Network layers and models such as OSI, TCP/IP.
• Describe common network protocols including TCP/IP suite e.g. IP/TCP/UDP.
• Demonstrate knowledge and understanding of routing algorithms and scalable routing.
• Demonstrate knowledge and understanding of common Internet application protocols as well as client-server network architectures.
• Demonstrate knowledge and understanding of software-defined networks.
• Demonstrate knowledge and understanding of security and resource consumption in networking.Skills
Improving Own Learning and Performance, Problem Solving, planning and researching assignments, design and implementation of solutions
Coursework
100%
Examination
0%
Practical
0%
Stage/Level
2
Credits
20
Module Code
CSC2066
Teaching Period
Spring
Duration
12 weeks
Data Structures and Algorithms (20 credits)Data Structures and Algorithms
Overview
• Data structures: Stacks, Lists, Queues, Trees, Hash tables, Graphs, Sets and Maps
• Algorithms: Searching, Sorting, Recursion (with trees, graphs, hash tables etc.)
• Asymptotic analysis of algorithms
• Programming languages representation and implementationLearning Outcomes
• Demonstrate understanding of the operation and implementation of common data structures and algorithmic processes (including stacks, lists, queues, trees, hash tables, graphs, sets and maps, alongside searching, sorting and recursion algorithms).
• Select, implement and use data structures and searching, sorting and recursive algorithms to model and solve problems.
• Perform asymptotic analysis of simple algorithms.
• Demonstrate understanding of the fundamentals of programming languages representation, implementation and execution.Skills
Problem solving by analysis, solution design and application of techniques (e.g. suitable data structures, algorithms, and implementation in C++). Precision and conciseness of expression. Rigour in thought.
Coursework
50%
Examination
0%
Practical
50%
Stage/Level
2
Credits
20
Module Code
CSC2059
Teaching Period
Autumn
Duration
12 weeks
Software Engineering and Systems Development (40 credits)Software Engineering and Systems Development
Overview
• Software development as teamwork; roles and responsibilities within a team.
• The software engineering process: eliciting and specifying requirements – functional and non-functional; analysing, designing, implementing and testing software systems; deployment; maintenance.
• Contemporary software development methodologies – including:
- use-case-driven and model-based approaches; representing actors and aspects of system behaviour and architecture in the Unified Modelling Language (UML) ;
- agile and lean approaches; user stories, story estimation, sprints (planning, monitoring and review);
- hybrid approaches – e.g. combining use cases and stories.
• Specific techniques, tools and practices – including:
- version control software; automated tests and test-driven development; pair- and mob-programming; test coverage; continuous integration, delivery and deployment; DevOps.
• Object-oriented design principles: evaluating the quality of a software design; questions of coupling and cohesion; configuring mechanisms of collaborating software objects.
• GUI design principles: evaluating the quality of an interface design; usability and the user experience.
• Algorithmic design: formulating and representing stepwise solutions to a problem.
• Building security into the development process; awareness of and avoidance of vulnerabilities.
• Delivering reliable and secure working systems – from design to working software.Learning Outcomes
• work as a member of a collaborative, mutually supportive team;
• actively develop and deliver a non-trivial, well-engineered software system that meets its functional and non-functional requirements (including avoidance of software vulnerabilities);
• understand key aspects of modern software development practices;
• critically evaluate development challenges and resolve them methodically using appropriate techniques and tools;
• realise object and algorithmic designs using an appropriate implementation language (e.g. Java, C#) and operating system (e.g. Windows, Android);
• plan and implement a test strategy that incorporates automated tests (e.g. Junit, Visual Studio Test Explorer) and manual tests (e.g. user acceptance testing and evaluation);
• use appropriate version and project management software (e.g. Git, Trello, Jira).Skills
Problem solving, time management, communication skills, team working, practical skills (competent use of development software and project management software in the context of a software engineering project).
Coursework
100%
Examination
0%
Practical
0%
Stage/Level
2
Credits
40
Module Code
CSC2058
Teaching Period
Full Year
Duration
24 weeks
Professional and Transferrable Skills (20 credits)Professional and Transferrable Skills
Overview
This module will prepare students for employment by developing an awareness of the business environment and the issues involved in successful career management combined with the development of key transferrable skills such as problem solving, communication and team working. Students will build their professional practice and ability to critically self-reflect to improve their performance.
Key elements will explode legal, social, ethical and professional issues (LSEPIs) including intellectual property, computer-aided crime, data protection and privacy including GDPR, security, net neutrality, communication through technology, cultural sensitivity and gender neutrality. The British Computer Society (BCS) code of conduct will be exploded and understood.Learning Outcomes
To prepare students for employment in industry and research through developing an awareness of the business environment and key skills.
To develop and demonstrate a range of transferrable skills including communication skills, presentation, group working and problem solving.
To develop skills in critical reflection of self and others feeding into improvements.
To explore legal, social, ethical and professional issues (LSEPIs). Examples of areas to be explored will relate to: Intellectual Property, Computer Crime, Work Quality, Challenges of On-line content Quality, Digital Divide including Net Neutrality, Privacy including GDPR, Security, Globalisation, Communication through effective use of technology, Cultural Sensitivity, Gender Neutrality. British Computer Society (BCS) Code of Conduct will be explored covering Public Interest, Professional Competence and Integrity, Duty to Relevant Authority and Duty to the Profession.Skills
Problem synthesis and resolution as an individual and as a team. Development and use of suitable communication mechanisms. Business and professional awareness.
Coursework
100%
Examination
0%
Practical
0%
Stage/Level
2
Credits
20
Module Code
CSC2065
Teaching Period
Autumn
Duration
12 weeks
Optional Modules
Introduction to Artificial Intelligence and Machine Learning
Overview
• Concepts of artificial intelligence and machine learning.
• Fundamentals of supervised and unsupervised learning
• Fundamentals of experimental settings and hypothesis evaluation
• The concept of feature selection
• Evaluation in machine learning
o Type I and Type II errors
o Confusion matrices
o ROC and CMC curves
o Cross validation
• Linear and non-linear function fitting
o Linear Regression
o Kernels
• Classification models:
o Nearest Neighbour
o Naïve Bayes
o Decision Trees
• Clustering models:
o k-Means
o hierarchical clustering
o Anomaly detectionLearning Outcomes
• Knowledge and understanding of techniques and selected software relevant to the field of artificial intelligence.
• Ability to identify techniques relevant to particular problems in artificial intelligence and data analysis.
• Ability to discuss and provide reasonable argumentation using artificial intelligence and machine learning concepts.
• Ability to identify opportunities for software solutions in artificial intelligence and data analysis.
• Ability to solve specific data analysis problems using techniques of artificial intelligence and machine learning.Skills
Problem and data analyses, design of logical and statistical models, application of computational techniques, understanding results.
Coursework
60%
Examination
0%
Practical
40%
Stage/Level
2
Credits
20
Module Code
CSC2062
Teaching Period
Spring
Duration
12 weeks
Systems Security and Cryptography (20 credits)Systems Security and Cryptography
Overview
This module will introduce fundamental concepts in cyber security, including vulnerabilities, threats and attacks, principles of secure design, and cryptography. By the end of this module students should grasp the core principles of secure information system design, be aware of the current threats and challenges to the security of information systems, data, and services, and understand the application of cryptographic algorithms for confidentiality, integrity, and authentication.
• Security and Vulnerability
• Introduction to modern cryptography
o Confidentiality, integrity and availability
o Symmetric cryptography and Public key cryptography
o Authentication and access control
o Use of cryptography in information systems
• Introduction to secure information system design
• Threats and challenges in cyber security
o Human threats/social engineering
o Physical layer attacks
• System protection technologies and countermeasuresLearning Outcomes
• Understand the core principles of secure information system design,
• Identify and analyse the current threats and challenges to the security of information systems, data, and services,
• Evaluate system protection technologies and methods,
• Apply knowledge of cryptographic algorithms to provide confidentiality, integrity, and authentication.Skills
Problem solving, communication skills, time management, practical skills (including a base understanding of cryptography and challenges in cyber security).
Coursework
80%
Examination
20%
Practical
0%
Stage/Level
2
Credits
20
Module Code
CSC2056
Teaching Period
Spring
Duration
12 weeks
- Year 3
Core Modules
Software Development Practice (20 credits)Software Development Practice
Overview
A team project involving the specification, design, planning, and partial implementation of a software system. Team members are expected to take on specific roles both in terms of project management as well as technical. The final project design and specification along with a proof-of-concept partial implementation will be presented to stakeholders and a report produced including the requirement elicitation, design, implementation, and testing phases.
Learning Outcomes
- Demonstrate competency in the management techniques and processes necessary for successful delivery of commercial software products.
- Demonstrate IT enterprise, system and data architectural design skills.
- Demonstrate research into application area and independent learning.
- Demonstrate a range of project management skills including those relating to the management of quality, human resource, communication and risk through the development of a project plan and the use of strategic planning.
- Demonstrate an ability to identify and assess the societal, commercial and economic advantages/disadvantages of any proposed application, its goals and requirements.
- Demonstrate promotion of the application developed.
- Demonstrate an ability to elicit and react to feedback from users and other experts in order to gauge the degree to which the project has delivered, or is likely to deliver in the longer term, the societal, commercial and economic benefits that were anticipated.
- Demonstrate attainment of QCA Keystage 4 "Working with others" key skills.
- Demonstrate attainment of QCA Keystage 4 "Communication" key skills.Skills
The module provides an opportunity to exercise aspects of the following QCA Key Skills (at proficiency Level 4): Communication, ICT, Improving Own Learning and Performance, Problem Solving, Working with others. Additionally the module provides an opportunity for students to develop the critical faculties needed to assess the societal, commercial and economic implications of the software systems that they are developing and to adjust their development plans accordingly.
Coursework
100%
Examination
0%
Practical
0%
Stage/Level
3
Credits
20
Module Code
CSC3068
Teaching Period
Spring
Duration
12 weeks
Optional Modules
Network Security (20 credits)Network Security
Overview
Introduction to Network Security
• Key concepts & principles
• Attack Types, Threats, Vulnerabilities in Internet Protocols.
• Firewalls, Access Control and Traffic Filtering
• Intrusion Detection and Prevention Systems
• Secure Network Architecture
• Internet Security ProtocolsLearning Outcomes
A successful student will:
• Know and understand the administration of network security;
• Know and understand the technologies involved in the design and deployment of secure networks;
• Be able to demonstrate the use of tools for network security analysis, Firewalls etc.Skills
This module provides an opportunity to exercise aspects of the following QCA Key Skills (at proficiency Level 4): Communication, ICT, Improving Own Learning and Performance and Problem Solving.
Coursework
100%
Examination
0%
Practical
0%
Stage/Level
3
Credits
20
Module Code
CSC3064
Teaching Period
Spring
Duration
12 weeks
Secure Software Development (20 credits)Secure Software Development
Overview
Lectures:
• Introduction to the threat landscape
o Attack surface and vectors
o Attacker’s perspective (Bad actors)
• Software assurance initiatives and standards
o The need for software assurance (famous disaster)
o OWASP, CWE , SANS, etc.
• Secure software development lifecycle
o Examine the different approaches to software management
• Security issues, risks and risk management
o Types of attacks/vulnerabilities
o Roles and Responsibilities
o Vulnerability management (CVE)
• Requirements specification and threat modelling
o Identifying risks
o Misuse and Abuse Cases
o Model and manage risks
• Secure architecture and design
o Asset Protection
o Authentication, Authorisation
o Risk management
o Code deployment (signing)
• Secure coding, principles and practice
o Secure Coding standards
o Examine different programming languages
• Security analysis and testing
o Testing principles
o Black/white Box, Unit testing, Integration and Regression testing
o Testability of software (third party etc.)
• Development and code analysis tools
o Types of code analysis tools
o Scanner and penetration tools
Coursework:
• Implement an SQL filter to detect attack strings
• Secure Code Review Report
Practical Labs:
• Investigate three forms of injection attacks- Implement three attacks on a Weak-Server and write an evaluation report.
• Scanner Analysis tools – Perform a security risk assessment on a web application using appropriate scanner tools.
• Code analysis tools – Using both static and dynamic code analysis, evaluate a software program for vulnerabilities.Learning Outcomes
A successful student will be able to:
• Explain industry's approach to software assurance
• Manage and implement software assurance processes
• Understand and critically assess security requirements
• Identify software risks and vulnerabilities
• Implement secure coding standards
• Demonstrate the use of software vulnerability verification toolsSkills
Successful participation in this module will enable students to develop skills in the following areas:
• Manage one’s own learning and development including time management and organisational skills
• Good cyber security practice in the specification, design, implementation, evaluation and maintenance of security solutions.
o Adversarial thinking, threat landscape and attack vector evaluation.
o Perform risk assessment and identify countermeasures.
o Understanding impact and consequences
o Design and development secure software programs
o Software security testing and vulnerability analysisCoursework
40%
Examination
0%
Practical
60%
Stage/Level
3
Credits
20
Module Code
CSC3063
Teaching Period
Spring
Duration
12 weeks
Malware Analysis (20 credits)Malware Analysis
Overview
• Basic Static Techniques
• Cyber Security Overview
• Malware Analysis in Virtual Machines
• Basic dynamic analysis
• X86 Disassembly
• IDA Pro
• Recognising C Code Constructs in Assembly
• Malware Types
• Analyzing Malicious Window Programs
• Covert Malware Launching
• Malware Behaviour and Signatures
• Machine learning for malware detectionLearning Outcomes
Students should be able to:
- Ability to perform basic and advanced static analysis
- Ability to perform basic dynamic analysis
- Understand the different types of malware and understand their behaviour
- Understand how automated malware detection worksSkills
Problem analysis, Problem solving. Rigour in thought. Ability to work individually or as part of a team. Demonstrate increased communication, library, research, time management and organisational skills.
Coursework
0%
Examination
40%
Practical
60%
Stage/Level
3
Credits
20
Module Code
CSC3059
Teaching Period
Spring
Duration
12 weeks
Software Design Principles, Patterns, Practice and Innovation
Overview
Underlying Principles of Good Software Design. Creational patterns; Structural patterns; Behavioural patterns; Architectural Patterns. Commercialisation of software products, Entrepreneurship and Innovation, Legal Social and Ethical considerations.
Learning Outcomes
Learning Outcomes: On completion of this module, the successful student will have achieved the following learning outcomes, commensurate with module classification:
• Understand and be able to explain with examples the basic principles of good OO design;
• Demonstrate the capability to design and implement a range of well-known software design patterns;
• Be able to document a given software design pattern;
• Be able to choose between software design patterns;
• Know the steps in bringing a software product to market
• Appreciate the Legal, social and ethical considerations in delivering software.Coursework
100%
Examination
0%
Practical
0%
Stage/Level
3
Credits
20
Module Code
CSC3031
Teaching Period
Spring
Duration
12 weeks
Software Testing (20 credits)Software Testing
Overview
Concepts, techniques, and tools in software testing including: Unit testing, integration and system testing, acceptance testing, GUI testing, test coverage analysis, automated testing, test tools, test management, test organisation, test planning, test maturity and career paths in Software Testing.
Learning Outcomes
On completion of this module, the successful student will have achieved the following learning outcomes, commensurate with module classification:
- Be able to understand and apply fundamental testing principles and techniques.
- Be able to develop an appropriate test plan alongside a relevant set of tests for a given piece of software against a set of defined test goals.
• Be able to efficiently organise, execute, report and evaluate a given test plan against a piece of software.
• Be able to effectively employ a range of test automation tools.Skills
Understanding and applying various software testing concepts, techniques, and tools.
Coursework
60%
Examination
0%
Practical
40%
Stage/Level
3
Credits
20
Module Code
CSC3056
Teaching Period
Spring
Duration
12 weeks
- Year 4
Core Modules
Software Engineering Enterprise Project (20 credits)Software Engineering Enterprise Project
Overview
A team project involving the design, planning, and implementation of a software engineering solution to business or industry problem. Team members are expected to take on specific roles and responsibilities both in terms of project management as well as areas of technical ownership. The final project deliverables along with a design and implementation decisions will be presented to stakeholders and a report produced detailing the full lifecycle of the project.
Learning Outcomes
- Demonstrate competency in the management and delivery of successful complex software products.
- Demonstrate enterprise competencies including computing at scale
- Demonstrate deep technical research into application area and independent learning.
- Demonstrate a range of project management skills
- Demonstrate an ability to elicit and react to feedback from users and other experts in order to gauge the degree to which the project has delivered, or is likely to deliver in the longer term, the societal, commercial and economic benefits that were anticipated.
- Demonstrate attainment of QCA Keystage 4 "Working with others" key skills.
- Demonstrate attainment of QCA Keystage 4 "Communication" key skills.Skills
The module provides an opportunity to exercise aspects of the following QCA Key Skills (at proficiency Level 4): Communication, ICT, Improving Own Learning and Performance, Problem Solving, Working with others. Additionally the module provides an opportunity for students to develop the critical faculties needed to assess key aspects of delivering a successful complex industrial project.
Coursework
100%
Examination
0%
Practical
0%
Stage/Level
4
Credits
20
Module Code
CSC3069
Teaching Period
Autumn
Duration
12 weeks
Optional Modules
Video Analytics and Machine Learning (20 credits)Video Analytics and Machine Learning
Overview
• Overview of imaging and video systems and generic machine learning pipelines
• Pattern recognition problems: Verification, detection and identification
• Data pre-processing:
o Image enhancement: Normalisation. Point Operations, Brightness and contrast.
o Filtering and Noise reduction. Convolution
• Classification
o Support Vector Machines (SVM).
o Boosting and ensemble of classifiers
o RF
o Neural networks.
o Deep Learning.
• Vision-specific Feature extraction:
o Simple features
o Gradients and Edge extraction
o Colour Extraction and colour histograms
o SIFT
o Histogram of Gradients HoG
• Unsupervised learning:
o Clustering and Bag of Words for vision
o Self-organised maps
• Segmentation, tracking and post processing
o Brightness segmentation
o Motion detection; Background modelling and subtraction; Optical Flow
o Template Matching
o Tracking: Kalman Filter, Particle Filter and tracking by detection
o Introduction to time series analysis
• Dimensionality reduction techniques and latent spaces.
o The curse of dimensionality
o Principal component analysis (PCA).
o Linear discriminant analysis (LDA).
• Introduction to Deep Learning
• GPU acceleration for video processing.
• Applications:
o Video Surveillance
o Cyber-physical security
o Medical imaging
o Secure corridors.
o Pose estimation.
o Biometrics
o Face detection
o Human behaviour analysis.Learning Outcomes
Be able to:
• Explain when and how machine learning and computer vision is useful in industry, public institutions and research.
• Know and apply a range of basic computer vision and machine learning techniques.
• Demonstrate the ability to understand and describe the underlying mathematical framework behind these operations.
• Design and develop machine learning pipelines applied to computer vision applications
• Formulate and evaluate hypothesis
• Evaluate the performance of proposed machine learning solutions through rigorous experimentation
• Analyse quantitative results and use them to refine initial solutions
• Communicate finding effectively and in a convincing manner based on data, and compare proposed systems against existing solutionsSkills
Problem solving. Self and independent learning. Research. Working with others and organisational skills. Critical analysis. Quantitative evaluation. Mathematical and logical thinking.
Coursework
40%
Examination
60%
Practical
0%
Stage/Level
4
Credits
20
Module Code
CSC3067
Teaching Period
Autumn
Duration
12 weeks
Cloud Computing (20 credits)Cloud Computing
Overview
The Cloud Computing module will provide an opportunity for you to learn about and explore a wide range of concepts, technologies, providers, and applications of cloud computing. Initially the module will focus on concepts including how we design, deploy, and manage cloud software and infrastructure to ensure both high availability and elastic scaling (being able to go from thousands of users to millions of users seamlessly). You will learn in detail how software can be developed in such a way as to easily allow (or not) cloud deployment including concepts of functional and stateless programming. After covering general concepts and generic technologies such as containerisation for micro-services, virtualisation, and devops pipelines, the module moves on to look at specific modern cloud providers such as AWS, GCP, and Azure. You will examine the differences between these platforms, learn how to deploy to them, and also gain experience of meta tools which are platform-agnostic and can be used to specify and manage cloud estates covering multiple providers.
Learning Outcomes
On completion of this module, students will be able to:
• Demonstrate knowledge, understanding and the application of:
o Core cloud concepts including data synchronisation, performance management, security, and infrastructure design
o Virtual machines and virtualisation stacks
o Container technology including coordinated container swarms and approaches
o Elastic scalable computing with automatic adjustment to load conditions
• Demonstrate knowledge, understanding and the application of the principles and application of appropriate software development considerations to ensure developed software is cloud-deployable
• Demonstrate knowledge and understanding of the principles of functional and stateless programming
• Demonstrate knowledge and understanding of the principles of modern devops pipelines including automated infrastructure, continuous integration, continuous deployment, and monitoring
• Demonstrate knowledge and understanding and the application of common widely used cloud hosting platforms and management toolsCoursework
100%
Examination
0%
Practical
0%
Stage/Level
4
Credits
20
Module Code
CSC3065
Teaching Period
Autumn
Duration
12 weeks
Advanced Computer Architecture (20 credits)Advanced Computer Architecture
Overview
This course is a study of the evolution of computer architecture and the factors influencing the design of hardware and software elements of computer systems. Topics may include performance issues and evaluation, instruction sets, processor micro-architecture and pipelining (basic design, hazards and speculation), caches, operating system support (virtual memory, exceptions, interrupts), in-order and out-of-order execution, parallel architectures and fault tolerance.
As computer scientists or software engineers understanding how a computer works and what techniques can be used to accelerate its performance is essential. The course will prepare students for jobs in the computer engineering industry and can act as a springboard to more advanced material in graduate-level coursesLearning Outcomes
By the end of this course, a successful student should be able to:
• Describe computer architecture concepts and mechanisms related to the design of modern processors and memories and explain how these mechanisms interact;
• Apply this understanding to new computer architecture design problems, and;
• Evaluate various design alternatives and make a quantitative and/or qualitative argument for why one design or execution strategy is superior to other approaches.Coursework
60%
Examination
0%
Practical
40%
Stage/Level
4
Credits
20
Module Code
CSC3058
Teaching Period
Autumn
Duration
12 weeks
Contemporary Team-based Computing Projects (20 credits)Contemporary Team-based Computing Projects
Overview
"Ambiguous problem situations (‘wicked problems’); design thinking and innovation; design thinking practice and agile software development practices; appropriate software development technologies; project management; collaboration and teams; remote and face-to-face collaboration"
Learning Outcomes
• Understand the principles of agile software innovation
• Understand a range of practices that agile, software-innovation teams can apply
• Understand the properties of, and the impact of, ambiguous problem situations, e.g., wicked problems
• Develop suitable interim and final software prototypes using agile practices and software innovation practices
• Demonstrate proficiency in using a range of contemporary tools and techniques
• Understand the range of factors that can influence the success of team-based software innovation
• Develop a variety of software artefacts as part of a team that demonstrates good software innovation skills, e.g., iterative development of software designs, prototypes and executables with regular feedback from the ‘end user/s’
• Complete a project which demonstrates strong project and team skills.Skills
This module provides an opportunity to exercise aspects of the following Key Skills (at QCA proficiency Level 4); ICT, Improving Own Learning and Performance, Problem Solving
Coursework
100%
Examination
0%
Practical
0%
Stage/Level
4
Credits
20
Module Code
CSC3045
Teaching Period
Autumn
Duration
12 weeks
Concurrent Programming (20 credits)Concurrent Programming
Overview
Concurrent Programming Abstraction and Java Threads, the Mutual Exclusion Problem, Semaphores, Models of Concurrency, Deadlock, Safety and Liveness Properties. Notions are exemplified through a selection of concurrent objects such as Linked Lists, Queues and Hash Maps. Principles of graph analytics, experimental performance evaluation, application of concurrent programming to graph analytics.
Learning Outcomes
To understand the problems that are specific to concurrent programs and the means by which such problems can be avoided or overcome.
Skills
To model and to reason rigorously about the properties of concurrent programs; to analyse and construct concurrent programs in Java; to quantitatively analyse the performance of concurrent programs.
Coursework
100%
Examination
0%
Practical
0%
Stage/Level
4
Credits
20
Module Code
CSC3021
Teaching Period
Autumn
Duration
12 weeks
PREV
Course content
NEXT
Entry Requirements
Entrance requirements
A-level BBB including at least one preferred A-level (see list below) + GCSE Mathematics grade C/4 OR ABB including at least one relevant A-level (see list below) + GCSE Mathematics grade C/4 A maximum of one BTEC/OCR Single Award will be accepted as part of an applicant's portfolio of qualifications with a Distinction* being equated to a grade A at A-level and a Distinction being equated to a grade B at A-level. |
Irish Leaving Certificate H3H3H3H3H4H4/H3H3H3H3H3 including at least one preferred Leaving Certificate subject at grade H3 (see list below) + Ordinary Level grade O4 in Mathematics if not offered at Higher Level OR H3H3H3H3H3H3/H2H3H3H3H3 including at least one relevant Leaving Certificate subject at grade H3 (see list below) + Ordinary Level grade O4 in Mathematics |
BTEC Level 3 Extended/National Extended Diploma A relevant computing QCF Level 3 BTEC Extended Diploma (180 credits), with DDD + GCSE Mathematics grade C/4. OR A relevant computing RQF Level 3 BTEC National Extended Diploma (1080 Guided Learning Hours (GLH)), with DDD + GCSE Mathematics grade C/4. OR A relevant engineering or scientific QCF Level 3 BTEC Extended Diploma (180 credits), with D*DD + GCSE Mathematics grade C/4. OR A relevant engineering or scientific RQF Level 3 BTEC National Extended Diploma (1080 Guided Learning Hours (GLH)), with D*DD + GCSE Mathematics grade C/4. |
Access Course Successful completion of Access Course with an average of 65% in a computing or mathematical Access Course + GCSE Mathematics grade C/4 or equivalent in Access Course OR Successful completion of Access Course with an average of 70% in a scientific Access Course + GCSE Mathematics grade C/4 or equivalent in Access Course |
International Baccalaureate Diploma 32 points overall including 6,5,5 at Higher Level to include at least one preferred Higher Level subject (see list below) OR 33 points overall including 6,5,5 at Higher Level to include at least one relevant Higher Level subject (see list below) If not offered at Higher Level/GCSE then Standard Level grade 4 in English and Mathematics would be accepted. |
BTEC Higher National Certificate For applicants offering a relevant HNC, the current requirements are successful completion of the HNC with 2 Distinctions and remainder Merits. Applicants are also required have GCSE English Language and Mathematics at grade C/4. |
BTEC Higher National Diploma Given the nature of this course all applicants are considered for entry to Stage 1. Advanced entry is not possible. For those offering a relevant Higher National Diploma, applicants must have at least one first year unit at Merit grade and the remainder Passes. Students would be required to achieve Merits in all units assessed in final year. For those offering a relevant Foundation Degree, applicants must have at least an average of 50% in first year modules with all modules passed. Students would be required to achieve an average of 55% in final year modules and no less than 50% in any final year module. Applicants are also required have GCSE English Language and Mathematics at grade C/4. |
Graduate A minimum of a 2:2 Honours Degree, provided that subject specific requirements are met |
Note Please note that the course is open only to applicants who are deemed Northern Ireland, Great Britain or European Union (Republic of Ireland) for tuition fees purposes. The Software Engineering with Digital Technology Partnership degree is a Higher Level Apprenticeship and by applying for this degree you are consenting to the University sharing your information (UCAS ID, name, email address and contact phone number) with participating employer(s). Please note that if you are not willing to consent to your personal data being shared with participating employer(s) we cannot progress your application for this degree any further. Eligible applicants will be invited to take part in the employer(s) selection process from which the final successful candidates will be chosen. Applicants who are not successful will automatically be considered for one of the other computing courses offered by the School - Software Engineering, Computer Science or Computing and Information Technology. |
All applicants Preferred subjects: Computing, Mathematics or Software Systems Development Relevant subjects: Biology, Chemistry, Digital Technology, ICT, Physics, Technology and Design or Double Award Applied ICT |
Selection Criteria
In addition, to the entrance requirements above, it is essential that you read our guidance below on 'How we choose our students' prior to submitting your UCAS application.
Applications are dealt with centrally by the Admissions and Access Service rather than by the School of Electronics, Electrical Engineering and Computer Science. Once your application has been processed by UCAS and forwarded to Queen's, an acknowledgement is normally sent within two weeks of its receipt at the University.
Selection is on the basis of the information provided on your UCAS form, which is considered by a member of administrative staff from the Admissions and Access Service and, if appropriate, the Selector from the School. Decisions are made on an ongoing basis and will be notified to you via UCAS. These decisions can only be made on the basis of the information given and applicants must show due care and diligence when completing their applications. In particular, full details must be included about qualifications completed or still to be completed.
For entry last year, applicants must have had, or been able to achieve, a minimum of five GCSE passes at grade C/4 or better (to include English Language and Mathematics), though this profile may change from year to year depending on the demand for places. The Selector also checks that any specific entry requirements in terms of GCSE and/or A-level subjects can be fulfilled.
Offers are normally made on the basis of three A-levels. Two subjects at A-level plus two at AS would also be considered.
The offer for repeat candidates is normally the same as the offer for first time applicants. For repeat applicants acceptable grades may be held from the previous year.
A-level General Studies and A-level Critical Thinking are not normally considered as part of a three A-level offer and, although they may be excluded where an applicant is taking 4 A-level subjects, the grade achieved could be taken into account if necessary in August/September.
Applicants offering other qualifications, such as BTEC National and Higher National Certificates/Diplomas, the International Baccalaureate, Irish Leaving Certificate or an Access course, will also be considered. The same GCSE profile is usually expected of those candidates offering other qualifications.
The information provided in the personal statement section and the academic reference together with predicted grades are noted but these are not the final deciding factors in whether or not a conditional offer can be made. However, they may be reconsidered in a tie break situation in August.
Applications will be academically assessed by the Admissions and Access Service. Academically eligible applicants will be invited to take part in the PwC selection process. The PwC selection process will determine which applicants will be made an offer. Applicants who are not successful at this stage will be offered a place on of the other computing courses offered by the School - Software Engineering, Computer Science or Computing and Information Technology.
If you are made an offer then you may be invited to an Open Day, which is usually held during the second semester. This will allow you the opportunity to visit the University and to find out more about the degree programme of your choice; the facilities on offer. It also gives you a flavour of the academic and social life at Queen's.
If you cannot find the information you need here, please contact the University Admissions and Access Service (admissions@qub.ac.uk), giving full details of your qualifications and educational background.
International Students
Our country/region pages include information on entry requirements, tuition fees, scholarships, student profiles, upcoming events and contacts for your country/region. Use the dropdown list below for specific information for your country/region.
English Language Requirements
An IELTS score of 6.0 with a minimum of 5.5 in each test component or an equivalent acceptable qualification, details of which are available at: http://go.qub.ac.uk/EnglishLanguageReqs
If you need to improve your English language skills before you enter this degree programme, INTO Queen's University Belfast offers a range of English language courses. These intensive and flexible courses are designed to improve your English ability for admission to this degree.
- Academic English: an intensive English language and study skills course for successful university study at degree level
- Pre-sessional English: a short intensive academic English course for students starting a degree programme at Queen's University Belfast and who need to improve their English.
International Students - Foundation and International Year One Programmes
INTO Queen's offers a range of academic and English language programmes to help prepare international students for undergraduate study at Queen's University. You will learn from experienced teachers in a dedicated international study centre on campus, and will have full access to the University's world-class facilities.
These programmes are designed for international students who do not meet the required academic and English language requirements for direct entry.
INTO - English Language Course(QSIS ELEMENT IS EMPTY)
PREV
Modules
NEXT
Careers
Career Prospects
Employment Links
As a degree apprenticeship this programme provides the opportunity to get ‘hands on’ experience from day one. Students will develop close working relationships with their employer and have the opportunity to assist on and lead projects within their specialism.
Additional Awards Gained(QSIS ELEMENT IS EMPTY)
Prizes and Awards(QSIS ELEMENT IS EMPTY)
Degree plus award for extra-curricular skills
In addition to your degree programme, at Queen's you can have the opportunity to gain wider life, academic and employability skills. For example, placements, voluntary work, clubs, societies, sports and lots more. So not only do you graduate with a degree recognised from a world leading university, you'll have practical national and international experience plus a wider exposure to life overall. We call this Degree Plus. It's what makes studying at Queen's University Belfast special.
PREV
Entry requirements
NEXT
Fees and Funding
Tuition Fees
Northern Ireland (NI) 1 | £0 |
Republic of Ireland (ROI) 2 | £0 |
England, Scotland or Wales (GB) 1 | £0 |
EU Other 3 | N/A |
International | N/A |
No tuition fees are payable by students for the degree apprenticeship as it is funded by the Department for the Economy’s Higher Level Apprenticeship programme. Please refer to https://www.nidirect.gov.uk/articles/higher-level-apprenticeships for further information.
1 EU citizens in the EU Settlement Scheme, with settled status, will be charged the NI or GB tuition fee based on where they are ordinarily resident. Students who are ROI nationals resident in GB will be charged the GB fee.
2 EU students who are ROI nationals resident in ROI are eligible for NI tuition fees.
3 EU Other students (excludes Republic of Ireland nationals living in GB, NI or ROI) are charged tuition fees in line with international fees.
All tuition fees quoted relate to a single year of study and will be subject to an annual inflationary increase, unless explicitly stated otherwise.
Tuition fee rates are calculated based on a student’s tuition fee status and generally increase annually by inflation. How tuition fees are determined is set out in the Student Finance Framework.
Additional course costs
All Students
Depending on the programme of study, there may be extra costs which are not covered by tuition fees, which students will need to consider when planning their studies.
Students can borrow books and access online learning resources from any Queen's library.
If students wish to purchase recommended texts, rather than borrow them from the University Library, prices per text can range from £30 to £100. A programme may have up to 6 modules per year, each with a recommended text.
Students should also budget between £30 to £75 per year for photocopying, memory sticks and printing charges.
Students undertaking a period of work placement or study abroad, as either a compulsory or optional part of their programme, should be aware that they will have to fund additional travel and living costs.
If a final year includes a major project or dissertation, there may be costs associated with transport, accommodation and/or materials. The amount will depend on the project chosen. There may also be additional costs for printing and binding.
Students may wish to consider purchasing an electronic device; costs will vary depending on the specification of the model chosen.
There are also additional charges for graduation ceremonies, examination resits and library fines.
Software Engineering with Digital Technology Partnership costs
Students may wish to become a student member of BCS - The Chartered Institute for IT - at an annual cost of £20, or £30 for four years (subject to change).
How do I fund my study?
There are different tuition fee and student financial support arrangements for students from Northern Ireland, those from England, Scotland and Wales (Great Britain), and those from the rest of the European Union.
Information on funding options and financial assistance for undergraduate students is available at www.qub.ac.uk/Study/Undergraduate/Fees-and-scholarships/.
Scholarships
Each year, we offer a range of scholarships and prizes for new students. Information on scholarships available.
International Scholarships
Information on scholarships for international students, is available at www.qub.ac.uk/Study/international-students/international-scholarships/.
PREV
Careers
NEXT
Apply
How and when to Apply
A. How to Apply
Application for admission to full-time undergraduate and sandwich courses at the University should normally be made through the Universities and Colleges Admissions Service (UCAS). Full information can be obtained from the UCAS website at:
http://www.ucas.com/apply
B. When to Apply
UCAS will start processing applications for entry in autumn 2023 from 1 September 2022.
Advisory closing: 25 January 2023 (18:00).
Applications received after this date will not be considered.
Applicants are encouraged to apply as early as is consistent with having made a careful and considered choice of institutions and courses.
The Institution code for Queen's is QBELF and the institution code is Q75.
Further information on applying to study at Queen's is available at:
http://www.qub.ac.uk/Study/Undergraduate/How-to-apply/
PREV
Fees and Funding