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
- 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.
- 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.