Courses - Faculty of Engineering


Software Engineering

Stage II

SOFTENG 206
15 Points

Software Engineering Design 1

Project work. Skills and tools in systematic development of software, including testing, version control, build systems, working with others.

Prerequisite: SOFTENG 251 or 281

SOFTENG 211
15 Points

Software Engineering Theory

Sets. Formal languages, operations on languages. Deterministic and nondeterministic automata, designing automata, determinisation. Regular expressions. Logic. Induction. Recursion. Program correctness. Computability. Counting. Elements of graph algorithms.

Prerequisite: ENGGEN 131 or COMPSCI 101

SOFTENG 250
15 Points

Introduction to Data Structures and Algorithms

Introduction to the analytical and empirical behaviour of basic algorithms and data structures.

Prerequisite: ENGGEN 131 or COMPSCI 101

Corequisite: ENGSCI 211

SOFTENG 251
15 Points

Object Oriented Software Construction

An introduction to Object Oriented software development. Programming with classes; objects and polymorphism. Evolutionary and test-driven development. Analysis and design. Modelling with UML. Design patterns. Design for reuse, for testing, and for ease of change.

Prerequisite: ENGGEN 131 or COMPSCI 101

SOFTENG 254
15 Points

Quality Assurance

Software verification and validation. Static and dynamic QA activities as part of the software lifecycle. Unit, integration, system, and usability testing. Use of visual notations, automation, and tools to support development activities. Metrics to quantify strength of testing and complexity of programs.

Prerequisite: SOFTENG 250, 251

SOFTENG 281
15 Points

Object-Oriented Programming

Computer programming using objects as the mechanism for modularity, abstraction, and code reuse. Review of control structures for conditionals and iteration. Instance variables, methods, and encapsulation. Interfaces, inheritance, polymorphism, and abstract classes. Exception handling. Introduction to basic data structures and basic algorithms including sorting and searching.

Prerequisite: COMPSCI 101 or ENGGEN 131

Restriction: COMPSYS 202, MECHENG 270, SOFTENG 250, 251

SOFTENG 282
15 Points

Software Engineering Theory

Theoretical foundations of software engineering, including sets, formal languages, operations on languages, deterministic and nondeterministic automata, designing automata, determinisation, regular expressions, logic, induction, recursion, program correctness, computability, counting, elements of graph algorithms.

Prerequisite: COMPSCI 101 or ENGGEN 131

Restriction: SOFTENG 211

SOFTENG 283
15 Points

Software Quality Assurance

Software verification and validation. Static and dynamic quality assurance activities as part of the software lifecycle. Unit, integration, system, and usability testing. Metrics to quantify strength of testing and complexity of programs. Techniques for engineering of software systems including requirements, specification, validation, verification. Modelling paradigms including information, behaviour, domain, function and constraint models. Specification languages.

Prerequisite: COMPSYS 202 or SOFTENG 251 or 281

Restriction: SOFTENG 254

SOFTENG 284
15 Points

Data Structures and Algorithms

Data structures including linked-lists, stacks, queues, trees, hash tables; graph representations and algorithms, including minimum spanning trees, traversals, shortest paths; introduction to algorithmic design strategies; correctness and performance analysis.

Prerequisite: COMPSYS 202 or SOFTENG 251 or 281

Restriction: SOFTENG 250

Stage III

SOFTENG 306
15 Points

Software Engineering Design 2

Working in project teams to develop software to meet changing requirements for a large application. Project Planning. Requirements gathering. Estimating, costing and tracking. Acceptance and unit testing. Evolutionary design and development. Collaborative development tools.

Prerequisite: SOFTENG 206, and 254 or 283, and 350

SOFTENG 310
15 Points

Software Evolution and Maintenance

Design and maintenance of multi-version software, debugging techniques, design and documentation for software re-use, programme migration and transformation, refactoring, tools for software evolution and maintenance.

Prerequisite: SOFTENG 254 or 283

SOFTENG 325
15 Points

Software Architecture

Taxonomy of software architecture patterns, including client/server and multi-tier. Understanding quality attributes. Methodologies for design of software architectures. Technologies for architecture level development, including middleware.

Prerequisite: COMPSYS 302 or SOFTENG 254 or 283

SOFTENG 350
15 Points

Human Computer Interaction

Human behaviour and humans’ expectations of computers. Computer interfaces and the interaction between humans and computers. The significance of the user interface, interface design and user centred design process in software development. Interface usability evaluation methodologies and practice. Includes an evaluation project, group design project, and implementation using current techniques and tools.

Prerequisite: SOFTENG 206

Restriction: COMPSCI 345, 370

SOFTENG 351
15 Points

Fundamentals of Database Systems

Relational model, Relational algebra, Relational calculus, SQL, SQL and programming languages, Entity-Relationship model, Normalisation, Query processing, Query optimisation, Distributed databases, Transaction management, Concurrency control, Database recovery.

Prerequisite: SOFTENG 251 or 281

Restriction: COMPSCI 351

SOFTENG 364
15 Points

Networks and Security

Physical networks, TCP/IP protocols, switching methods, network layering and components, network services. Information security, computer and network security threats, defence mechanisms and encryption.

Prerequisite: COMPSYS 201, and SOFTENG 251 or 281

SOFTENG 370
15 Points

Operating Systems

History of operating systems. Multi-user systems. Scheduling. Concurrent processes, threads and synchronisation. Memory allocation and virtual memory. Managing files, disks and other peripherals. Security, protection and archiving. Engineering distributed systems; location, migration and replication transparency. Real-time programming and embedded systems.

Prerequisite: COMPSYS 201, and SOFTENG 251 or 281

Restriction: COMPSCI 340

Postgraduate 700 Level Courses

SOFTENG 700A
15 Points

SOFTENG 700B
15 Points

Research Project - Level 9

Students are required to submit a report on project work carried out on a Software Engineering topic assigned by the Head of Department.

Prerequisite: SOFTENG 306

To complete this course students must enrol in SOFTENG 700 A and B

SOFTENG 701
15 Points

Advanced Software Engineering Development Methods - Level 9

Advanced studies in methods and techniques for developing complex software systems including topics in software engineering environments, advanced software design, tool construction and software architectures. The core taught skills are extended by individual projects in which independent research is undertaken to address challenging software system problems.

Prerequisite: COMPSYS 302 or SOFTENG 306

SOFTENG 702
15 Points

Advanced Human Computer Interaction

Advanced topics in human computer interaction and human aspects of computer systems relevant to commercial solution development and computer science research. Sample topics: advanced evaluation methods; support of pen and touch-based interaction; trends with domain specific user interface design, such as interfaces for enterprise systems.

Prerequisite: COMPSCI 345 or SOFTENG 350

Restriction: COMPSCI 705

SOFTENG 710
15 Points

Studies in Software Engineering 1

Advanced courses on topics to be determined each year by the Head of Department.

Prerequisite: Departmental approval

SOFTENG 711
15 Points

Studies in Software Engineering 2

Advanced courses on topics to be determined each year by the Head of Department.

Prerequisite: Departmental approval

SOFTENG 715
15 Points

Special Topic

SOFTENG 750
15 Points

Software Development Methodologies

Software lifecycle; software process models; examples of software processes; software process improvement; project management; tool support for software development; issues in software engineering.

Prerequisite: SOFTENG 306

Restriction: COMPSCI 732

SOFTENG 751
15 Points

High Performance Computing - Level 9

Advanced parallel and high performance computing concepts and techniques such as parallel system architecture; parallelisation concepts, algorithms and methodology; parallel programming paradigms and technologies. Core concepts and skills are deepened by a hands-on research project in which a challenging parallel computing problem is analysed and solved.

Prerequisite: COMPSYS 302 or SOFTENG 306

SOFTENG 752
15 Points

Formal Specification and Design - Level 9

Formal specification, design, and (automatic) analysis of software systems. Quality assurance through precise description and rigorous verification on the design. Introduction to the Z, OCL, and CSP notations. Comparison of approaches, emphasising on their practical application.

Prerequisite: SOFTENG 306

SOFTENG 753
15 Points

Bayesian Machine Learning

Examines classic and state of the art algorithms in the field of machine learning. Topics will include: Bayesian classification, regression and state estimation; clustering and mixture models; kernel-based methods; sequential models; graphical models; neural networks and deep architectures.

Prerequisite: ENGSCI 211 or 213, and SOFTENG 251 or 281

SOFTENG 754
15 Points

Advanced Software Requirements Engineering - Level 9

Advanced software engineering concepts focusing on techniques for requirements analysis and requirements engineering (RE) of software systems. Topics will include: requirements elicitation, analysis, specification, validation, verification, user experience design, test-driven development, and continuous integration.

Prerequisite: COMPSYS 302 or SOFTENG 251 or 281

SOFTENG 755
15 Points

Special Topic

SOFTENG 761
15 Points

Advanced Agile and Lean Software Development - Level 9

Advanced software engineering concepts focussing on Agile and Lean software development; including hands-on iterative and incremental software development, self-organising teamwork, project management, and an individual research component to explore challenging issues in this discipline.

Prerequisite: SOFTENG 306 or equivalent

SOFTENG 762
15 Points

Robotics Process Automation

Covers the fundamentals of Robotic Process Automation (RPA) systems. Students explore what RPA is and where it is useful, how RPA fits into current information technology setups, extracting and manipulating data from both external and internal sources, generating reports and statistics, and orchestrating multi-robot installations.

Prerequisite: SOFTENG 306

SOFTENG 770
15 Points

Capstone Project

Final year team exercise with students in multi-disciplinary roles, with focus on software engineering, integrating technical learning into realistic design outcomes. Comprehensive investigation of an open ended, complex, real or synthetic computer, electrical and software engineering problem with simulated professional design office constraints. Includes technical, economic and environmental impact components to complete a scheme assessment report.

Prerequisite: 75 points from Part III courses listed in the BE(Hons) Schedule for the Software Engineering specialisation

SOFTENG 787
15 Points

Project X - Level 9

Students are required to submit a report on a topic assigned by the Head of Department.

Prerequisite: Departmental approval

SOFTENG 788A
15 Points

SOFTENG 788B
15 Points

Project Y - Level 9

Students are required to submit a report on a topic assigned by the Head of Department.

Prerequisite: Departmental approval

To complete this course students must enrol in SOFTENG 788 A and B

SOFTENG 789
30 Points

Project Z - Level 9

Students are required to submit a report on a topic assigned by the Head of Department.

Prerequisite: Departmental approval

SOFTENG 795
45 Points

SOFTENG 795A
15 Points

SOFTENG 795B
30 Points

SOFTENG 795V
5 Points

Research Project (Software Engineering) - Level 9

Students are required to submit a report on a topic relevant to the specialisation, as assigned by the appropriate Head of Department.

Prerequisite: Departmental approval

To complete this course students must enrol in SOFTENG 795 A and B, or SOFTENG 795

SOFTENG 796A
60 Points

SOFTENG 796B
60 Points

ME Thesis (Software Engineering) - Level 9

Students are required to submit a thesis on a topic assigned by the Head of Department.

Prerequisite: Departmental approval

To complete this course students must enrol in SOFTENG 796 A and B

Top