MASTER OF SCIENCE DEGREE IN SOFTWARE ENGINEERING (MSE)

PROGRAMME OVERVIEW

The purpose of the Masters in Software Engineering programme is to allow students to delve deeper into topics like software solutions and emerging technologies. Hence allowing them greater specialization, that enables them to explore topics that align more closely with their professional goals.

 

ENTRY REQUIREMENTS

  1. Normal Entry

To qualify for acceptance to the Software Engineering Master’s Degree, the candidate must have obtained an Honours degree in a Software Engineering or any equivalent computing science or engineering qualification with a minimum of a 2.1degree class.

  1. Special Entry

Any equivalent qualification acceptable according to the Institute’s General Academic Regulations.

  • Mature Entry

Refer to section 3.3 of the General Academic Regulations.

 

CAREER OPPORTUNITIES AND FURTHER EDUCATION

Employability: Careers in the Software Engineering field which include:

Embedded Software Engineers, Lead Software Engineers, Senior Analyst     Programmers, Senior Systems Analysts, Project Managers, Cyber Security Manager, Software Architect.

Further Studies: Doctoral studies in Software Engineering, Computer Science, Data Science, or in interdisciplinary programmes related to computing practices.

PROGRAMME STRUCTURE

A student will not be allowed to register for a module with a pre-requisite if the pre-requisite is not passed. Electives will be offered subject to availability of personnel. * Denotes core module.

Level 1 Semester 1

Code Module Description Pre-requisite Credits
MSE111* Advanced Data Structures and Algorithms None 18
MSE112* Software Development Methodologies None 18
MSE113* Software Project Management and Ethics None 18
MSE114* Cyber Security and Cryptography None 18
MSE124* Research Methods None 18

Level 1 Semester 2

Code Module Description Pre-requisite Credits
MSE121* Artificial Intelligence and Expert Systems None 18
MSE122* Business Intelligence and Big Data Analytics None 18
MSE211 Research Seminar None 18

Electives (Select 1 Module from the Following):

Code Module Description Credits
MSE123 Web Technologies and Services 18
MSE115 Software Testing 18
MSE212 Software Modelling and Simulation 18
MSE125 Pervasive Computing 18
MSE126 Distributed Systems 18
MSE127 HCI for Information Systems 18

Electives (Select 1 Module from the Following):

Code Module Description Credits
MSE213 Bioinformatics 18
MSE214 Cloud and Mobile Applications 18
MSE215 Enterprise Computing in Java 18
MSE216 Digital Image Processing 18

Level 2 Semester 1

Code Module Description Pre-requisites Credits
MSE221* Dissertation MSE124 90

 

SYNOPSES

MSE111 Advanced Data Structures and Algorithms

This module will focus on presenting general techniques for designing correct and efficient advanced algorithms. Topics to be covered include data structures (lists, stacks, queues, trees and graphs), Sorting- selection sort and quicksort, flow of networks, algorithm design (searching algorithms, sorting algorithms, streaming algorithms and graph algorithms), recursive algorithms, complexity analysis, linear programming, dynamic programming, NP Hard and NP completeness. It will also cover RAM model – notations, Recurrence analysis – Master’s Theorem, Amortized analysis, Disjoint sets, Randomized Algorithms – n-queen problem.

MSE112 Software Development Methodologies

The module will cover both traditional and modern software development life cycles, requirements engineering, software design paradigms, computer-aided software engineering, system documentation, configuration management tools, common scripting languages and debuggers.

MSE113 Software Project Management and Ethics      

The module focuses on Software Maturity Framework, Principles of Software Process Change, Software Process Assessment, and Process Framework. Process Reference Models; CMM, CMMi, PCMM, PSP, TSP, Conventional Software Management, Evolution of Software Economics, Improving Software Economics, Life-Cycle phases and Process artifacts; Engineering and Production stages, artifact sets, model-based software architectures. Other key knowledge areas are: Software process workflows, Iteration workflows, Major milestones, Minor milestones, Periodic status assessments. Process Planning; WBS, Planning guidelines, cost and schedule estimating process, iteration planning process, Pragmatic planning; Line-of- business organizations, project organizations, evolution of organizations, process automation. Project Control and process Instrumentation; Seven Core Metrics, Management indicators, Quality indicators, Life-Cycle expectations, Pragmatic software metrics, metrics automation; Ethics and Good Governance in Software Project Management Practices and Modern Project Profiles, Next Generation Software Economics, and Modern Process Transitions.

MSE114 Cyber Security and Cryptography

Topics to be covered include the Cybersecurity basics, standards and laws, cyber threats and attacks, ethical hacking, cybersecurity protocols, fundamentals of contemporary cryptography and its application to security engineering in software services, cryptology (i.e. public key cryptography and zero-knowledge protocols), digital signature, key exchange, access control, Blockchain, Cryptocurrency, crypto-analytical techniques. Case studies of cryptography on the Internet.

MSE115 Software Testing

This module covers assessment phases, quality management, quality control tools, quality assurance plan, verification and validation. The module also assesses traditional software testing techniques applicable to all development phases. The techniques include functional, structural, regression, bottleneck, alpha, beta and graphical user interface testing. The agile development paradigm of test-driven development and modern enterprise testing strategies are also discussed. Concepts covered include test cycles, testing objectives, testing in the software development process, types of software errors, reporting and analyzing software errors, problem tracking systems, test case design, testing tools, test planning, test documentation, and managing a test group.

MSE121 Artificial Intelligence and Expert Systems

The module on AI defines the AI Problems and covers: AI Techniques, Basic Problem-solving methods, state space search, problem characteristics, Production systems characteristics, issues in design of intelligent search algorithm. State Space Search: Depth First Search, Breadth First Search, DFID. Heuristic Search: Best First Search, Hill Climbing, Beam Search, Tabu Search. Randomized Search: Simulated Annealing, Genetic Algorithms, Ant Colony Optimization. Problem Reduction, Constraint Satisfaction, Means-End Analysis. Knowledge Representation issues, Knowledge Representation using Predicate logic, Propositional logic. Theorem proving in First Order Logic. Soundness and Completeness, Forward and Backward chaining. Situation calculus. Semantic Nets, Semantic Frames, Conceptual Dependency, scripts, Knowledge representation with uncertainty. Building a Knowledge Base. Partial order planning. Uncertain Knowledge and Reasoning, Probabilities, Bayesian Networks. Overview of different forms of learning: Learning Decision Trees, Neural Networks. Concepts of Fuzzy Logic, Intelligent Agents, Machine Learning. The course focuses on: aspects of Machine Learning, Bayesian Decision Theory, Clustering, and Neural Networks.

MSE122 Business Intelligence and Big Data Analytics  

The module covers: Basic concepts in Business Intelligence (BI), Big Data Analytics (BDA), data mining and warehousing; Data Warehouse and Mining Architectures, Design, Implementation and Maintenance. The course also looks at Data Collection and Cleaning, Analysis, Visualization based on query language. Topics to be covered also include; Classification and Prediction, types of data in Cluster Analysis, Outlier Analysis, Mining Spatial Databases, Mining Multimedia Databases, Mining Time Series and Sequence Data, and Mining NoSQL Databases. Current trends in BI, Data mining, Spatial Mining, and Web Mining will also be discussed.

MSE123 Web Technologies and Services

This module will cover Web evolution, Web 2.0 and Web 3.0 differences, core web technologies (i.e. hypertext mark-up language, cascading style sheets and JavaScript). It will also look at the evolution of distributed computing and service oriented architecture (SOA), web service principles, enterprise web development tools which include J2EE (i.e. Servlets and Javaserver Page) and MVC ASP.Net, XML and SOAP web service architecture, development, registration and discovery process.

MSE124 Research Methods 

This module serves as a fundamental building block in equipping students with the knowledge and competencies to conduct research in the computing field. Qualifying students have an appreciation of the research process and the reason for conducting research according to a specific research paradigm, to solve a problem. They determine appropriate sources to consult for a literature review. Students understand appropriate research strategies, data gathering and analysis techniques to obtain answers to the stated research problem. The module will cover the following; Problem identification, Objective formulation, Anatomy of a literature review, Writing a captivating abstract, Methodology, Results and discussion, conclusion, Research contributions. 

MSE125 Pervasive Computing

The module will introduce students to Pervasive Computing Principles, Characteristics and Architecture. It also covers Pervasive devices, Embedded controls, Smart sensors and actuators and Open Protocols Service discovery technologies (SDP). The module includes topics in Context Aware Sensor Networks and Context aware security. Additionally, current trends in Pervasive Computing and case studies will be covered. 

MSE126 Distributed Systems

The module covers topics in Distributed System Models, Inter-process Communication, Process and Synchronization, Transparency, Scalability, Resource Allocation And Distributed File Systems, Current Trends in Distributed Systems. Concepts to be covered include Middleware, Layered Protocol, Remote Method Invocation (RMI), Remote Procedure Call (RPC), Processes, Threads and Serialization. Students will also learn about Distributed Shared Memory, Process Scheduling, Load Balancing and Load Sharing, Mutual Exclusion, Election algorithms, Coordination and Agreement, Distributed Transaction, Consistency and Replication, Parallel and Distributed Programming and Case Studies in detail and research directions.

MSE127 HCI For Information Systems

This module focuses on major concepts of Human Computer Interaction as applied in Information Systems. It will cover user-centred design (UCD) principles and frameworks, Design Process and Screen Designing, Windows and Components, Prototyping techniques, Devices, Health Care and Health Informatics, HCI in Geographical Information Systems, HCI for E-Commerce, Methodological Issues and Reflections.

MSE211 Research Seminar

This module will include journal article reviewing/reading, plagiarism software interpretation, writing journal papers, peer-reviewing articles and presenting the papers using different styles like IEEE and ACM journal and conference formats. It will be mandatory for students to publish their work as a survey /design paper at a reputable conference or journal at the end of the semester.

MSE212 Software Modelling and Simulation

The module covers basics of Simulation and Modelling – mathematical modelling and the different types of models (Linear Models, Probabilistic Models and Regression Models), Modelling Complex Systems, Simulation Software – Simulation Packages with Programming Languages, Classification of Simulation Software, Experimentation, Sensitivity Analysis, and Optimization Simulation of Manufacturing Systems.

MSE213 Bioinformatics

The course will cover basics of Biology, Methods Of Gene Sequencing, Data acquisition, Data standardization. DNA chips, Protein targeting, Data normalization, Linear view and Statistics Approaches. It will also include Ontology of Genetics, Software availability, Software targets, text parsing, bio-inspired algorithms and systems.

MSE214 Cloud and Mobile Applications

This module covers the key services and application programming interfaces (APIs) offered by Microsoft Azure to build highly scalable, low cost cloud computing services that bring the power of the cloud to mobile, tablet, IOT and desktop devices. The module covers several platform as a service (PaaS) services such as those offered by Microsoft Azure including federated authentication, Azure app service, API apps, mobile apps, Azure web apps, Azure SQL, DocumentDB, cloud services, Notification Hubs, and storage, to name a few. Using these services and others, students learn how to build highly scalable, fine-grained multi-tenant, secure representational state transfer (REST) services in the cloud. Throughout the module, students learn how to build highly responsive and engaging mobile, IOT, tablet, and desktop applications that take full advantage of these services on Android, iOS, and Windows platforms including the Raspberry Pi. This module will also cover the essentials necessary to utilize Azure cloud services from Android, iOS, Windows Universal App platform. It will also cover architecture, design and usability guidance regarding how to decide what software and data executes/resides in the cloud vs on the client IOT and mobile device.

MSE215 Enterprise Computing in Java

This course will cover basics in Enterprise Computing, use and benefits of DevOps. Enterprise Cloud Platform and Web Technologies, Enterprise Infrastructure Solutions, Enterprise Network Solutions and Enterprise Security Products. Enterprise DevOps Integration Platforms. Enterprise Web Technologies like Enterprise Java Beans (EJB), Spring and Microsoft Azure DevOps will be exploited. IBM Infrastructure Solutions will also be investigated. 

MSE216 Digital Image Processing       

Digital Image Fundamentals: Digital Image Representation, Fundamental Steps in Image Processing, Elements of Digital image processing systems. Image Transforms: Discrete Fourier Transform, Some properties of the two-dimensional fourier transform, Fast fourier transform, Inverse FFT. Image Enhancement: Spatial domain methods, Frequency domain methods, Enhancement by point processing, filtering methods, Colour Image Processing. Image Restoration: Degradation model, Diagonalization of Circulant and Block-Circulant Matrices, Algebraic Approach to Restoration, filters, Image Segmentation: Image Compression: Coding, Interpixel and Psychovisual Redundancy, Image Compression models, Error free comparison,. Representation and Description: Representation schemes like chain coding, Polygonal Approximation and Signatures.

MSE221 Dissertation       

The dissertation involves in-depth research in a particular area of interest in software engineering. The student is expected to select a topic and come up with a research proposal which will be reviewed by the faculty project committee. The student will be given a choice to select a supervisor(s) or the department will choose one for him or her. The student will need to conduct a thorough research and present their research findings in the form of well-articulated and structured documents in line with the faculty guidelines under the guidance of the supervisor(s). The student is also expected to create a prototype showing their full understanding of the software engineering development life cycle and present their solution which will be evaluated by the department board of examiners.