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 250, 251

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 213

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

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, 254, 350

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: 15 points from SOFTENG 351, COMPSYS 302

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 211 or COMPSCI 225

Restriction: COMPSCI 351

SOFTENG 364
15 Points

Computer Networks

Principles of data communications; representation, transmission. Physical layer, signals in time and frequency domain. Modulation and coding. Data layer and protocols. Layered architecture model of computer networks, OSI and TCP/IP, Flow control, error control. Local area networks and IEEE standards, Ethernet and Wireless LAN. Circuit, message and packet switching. The internet protocol (IPv4 and IPV6), routing algorithms, design of subnets. TCP and UDP. Network security. Introduction to ATM.

Prerequisite: 15 points from COMPSYS 201, SOFTENG 252 and 15 points from SOFTENG 206, 211, 250, 251, 254, 325

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 or SOFTENG 252, 250

Restriction: COMPSCI 340

Postgraduate 700 Level Courses

SOFTENG 700A
15 Points

SOFTENG 700B
15 Points

Research Project

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

Restriction: SOFTENG 401

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

SOFTENG 701
15 Points

Advanced Software Engineering Development Methods

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: Permission of the Head of Department

SOFTENG 711
15 Points

Studies in Software Engineering 2

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

Prerequisite: Permission of the Head of Department

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 450

SOFTENG 751
15 Points

High Performance Computing

Advanced parallel and high performance computing concepts and techniques such as memory architecture and networks; multicores, hardware acceleration devices; shared memory and data parallel programming; object oriented and low level parallel programming; parallelisation process: subtask decomposition, dependence analysis and scheduling. Core concepts are extended by a hands-on research project in which a challenging parallel computing problem is analysed and solved.

Prerequisite: SOFTENG 306 or COMPSYS 302 or MECHENG 313 or 30 points at Stage III in Computer Science

Restriction: SOFTENG 461

SOFTENG 752
15 Points

Formal Specification and Design

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

Restriction: SOFTENG 462

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 213, SOFTENG 250, 251

SOFTENG 754
15 Points

Software Requirements Engineering

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

SOFTENG 755
15 Points

Special Topic

An advanced course on a topic to be determined each year by the Head of Department. Includes a substantial individual research project.

Prerequisite: Permission of the Head of Department

SOFTENG 761
15 Points

Agile and Lean Software Development

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

Special Topic

An advanced course on a topic to be determined each year by the Head of Department.

Prerequisite: Permission of the Head of Department

SOFTENG 787
15 Points

Project X

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

SOFTENG 788A
15 Points

SOFTENG 788B
15 Points

Project Y

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

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

SOFTENG 789
30 Points

Project Z

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

SOFTENG 795
45 Points

SOFTENG 795A
15 Points

SOFTENG 795B
30 Points

Research Project (Software Engineering)

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

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)

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

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

Top