MASTER OF SCIENCE DEGREE IN COMPUTER SCIENCE
PROGRAMME OVERVIEW
This programme is designed to develop and produce graduates with a broad understanding of the state-of-the-art miniaturized and computer-based systems, smart device technology 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
An Honours degree with a degree class of at least 2.2 in Computing (Computer Engineering, Informatics, Information Systems, Computer Science, Software Engineering), Electronic Engineering, Cyber security or Data analytics.
- Special Entry
Special entry may be granted to applicants with 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 Computer Science field which include:
Embedded Software Engineers, Senior Network Engineers, Senior Hardware Engineers, Network and Systems Administrators, Database Managers, Senior Analyst Programmers, Senior Systems Analysts, Project Manager, Cyber Security Manager, Software Architect, PhD opportunities that lead to lectureship and research in universities.
- Further Studies: Doctoral studies in Computer Science, Computer System Engineering, Software Engineering, 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 modules.
Level 1 Semester 1
Code | Module Description | Credits |
---|---|---|
MSC111* | Pattern Recognition and Image Processing | 18 |
MSC112* | Advanced Enterprise Architecture Programming | 18 |
MSC113* | Advanced Database and Data Mining | 18 |
MSC121* | Computational Discrete Mathematics | 18 |
MSE114 | Cyber Security and Cryptography | 18 |
Level 1 Semester 2
Code | Module Description | Credits |
---|---|---|
MSE124* | Research Methods | 18 |
MSC211* | Evolutionary Computing and Parallel Distributed Processing | 18 |
MSC212* | Simulation and Modelling | 18 |
Electives (Select 2 Modules)
Code | Module Description | Credits |
---|---|---|
MSC122 | Software Methodology | 18 |
MSC123 | Machine Learning and Artificial Intelligence | 18 |
MCSE122 | Mobile Computing | 18 |
MCSE125 | Real-Time Systems | 18 |
MCSE127 | Advanced Operating System Design | 18 |
MSE111 | Advanced Data Structures and Algorithms | 18 |
MSE215 | Enterprise Computing in Java | 18 |
Level 2 Semester 1
Code | Module Description | Credits |
---|---|---|
MSC221* | Dissertation | 90 |
SYNOPSES
MSC111 Pattern Recognition and Image Processing
Introduction to pattern recognition. Fundamental problems in pattern recognition. Foundations of pattern recognition algorithms and machines, including statistical and structural methods. Data structures for pattern representation, feature discovery and selection, classification vs. description, parametric and non-parametric classification, supervised and unsupervised learning, use of contextual evidence, clustering, recognition with strings, small sample-size problems biological object recognition, Bayesian decision theory.
MSC112 Advanced Enterprise Architecture Programming
Introduction to application server programming and business logic programming. Transaction processing, concurrency control, Event-driven programming, asynchronous method invocation, job scheduling, Inter process communication. Deployment of software components in an application server. Business Interface development and deployment.
MSC113 Advanced Database and Data Mining
Data Models; The Enhanced Entity Relationship (EER) Model, EER Models to Relational Databases, Database Design and Implementation; design methodologies, implementation methodologies, Physical Database design and Tuning, Query processing and Optimization. Algorithms for Query Processing and Optimization, Transaction Processing, Concurrency Control Techniques. Database Security and Distribution, Distributed Databases, Mobile Databases Machine Learning and Pattern Recognition, Data Mining.
MSE114 Cyber Security and Cryptography
Cryptography is a key component in computer network security engineering. This course gives a broad overview of methods of implementing security services based on cryptography in data networks. Topics to be covered include the fundamentals of contemporary cryptography and its application to security engineering in software services, such as confidentiality, integrity, authentication, and non-repudiation. The course will also introduce relatively new ideas in cryptology, such as public key cryptography and zero-knowledge protocols, permitting efficient solutions to the problems of digital signature, electronic cash, key exchange, and access control.
Students will also learn how to analyse the strength of today’s ciphers and their implementations, and discuss the best known crypto analytical techniques used to break security systems. During the course we will analyse the most popular implementations of cryptography used on the Internet, including systems for electronic mail protection, secure WWW, and electronic payment protocols. We discuss the ongoing work on the development of international standards for secure communications and present the most recent research trends in cryptology.
MSC121 Computational Discrete Mathematics
Discrete models. Foundations. Basic concepts of sets and functions. Finite series. Logic. Propositional logic. Predicate logic. Combinational circuits. Induction. Finite probability space, events. Conditional probability, Bayes’ theorem. Integer random variables. Expectations. Variance Analysis and verification. Searching algorithms. Recursive algorithms. Relations. Basic concepts. Properties of relations. Operations on relations. Undirected graph, directed graph, weighted graph, Euler circuits and Hamiltonian cycles. Graph isomorphism and representations. Planar graphs. Trees. Different state machines. Input, Output, Initial state. Transition table.
MSC122 Software Methodology
Overview of Software Engineering, the Software Development Process; requirements analysis and specification phase Design phase; implementation phase, maintenance; Engineering with a Programming Language; Software Engineering Paradigms; Engineering with existing software. Software Engineering Project.
MSC123 Machine Learning, and Artificial Intelligence
The module is intended to combine the theory with the hands-on practice of solving modern industry problems with an emphasis on image processing and natural language processing. Topics include outlier detection, advanced clustering techniques, deep learning, dimensionality reduction methods, frequent itemset mining, and recommender systems. Topics also considered include reinforcement learning, graph-based models, search optimization, and time series analysis. The module uses Python as the primary language, although later projects can include R and other languages. The module also introduces some industry standard tools to prepare students for artificial intelligence jobs.
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. Students are taught to write research project proposals, use of bibliography management software and explore quantitative and qualitative software.
MCSE122 Mobile Computing
The module covers Mobile Communications, Mobile Computing – Paradigm, Architecture; Mobile and Handheld Devices. GSM – Services, System Architecture, Radio Interfaces, Protocols, Security, New Data Services, GPRS, CSHSD, DECT. (Wireless) Medium Access Control (MAC) Motivation for a specialized MAC, SDMA, FDMA, TDMA, CDMA, Wireless LAN/(IEEE 802.11) Mobile Network Layer IP and Mobile IP Network Layers, Mobile Transport Layer Conventional TCP/IP Protocols, Mobile TCP, Other Transport Layer Protocols for Mobile Networks. Database Issues, Client-Server Computing and Adaptation, Transactional Models, Query processing, Data Recovery Process and QoS Issues. Data Dissemination and Synchronization Mobile Ad hoc Networks (MANETs), Applications and Challenges, Routing, Classification of Routing Algorithms, Algorithms such as DSR, AODV, DSDV, Mobile Agents, Service Discovery. Protocols and Platforms for Mobile Computing WAP, Bluetooth, XML, J2ME, JavaCard, PalmOS, Windows CE, SymbianOS, Linux for Mobile Devices, Android.
MCSE125 Real-Time Systems
The module focuses on Real-time systems models and types, structure, Performance measures, Examples of real-time systems and real-world applications, Modelling and Designing real-time systems. Real-Time Process Management: Task scheduling for Uniprocessor systems, handling priorities with critical section, interrupts, task allocation and scheduling for multiprocessor systems, adaptive scheduling. Programming Environment: In depth Knowledge of RTOS programming languages, tools and techniques. Real-Time System Design: Design techniques for Reliability, Fault Tolerance and other application specific quality considerations. Study of Micro C/OS-II or Vx Works or Any other popular RTOS – RTOS System Level Functions – Task Service Functions – Time Delay Functions – Memory Allocation Related Functions Trends in Real-Time System- Design and Development in fields such as Robotics. Introduction to research topics.
MCSE127 Advanced Operating System Design
Introduction and History of OS, OS Concepts, System Calls, OS Structure, PROCESSES: Process Concept, Interprocess Communication, Classical IPC Problems and Scheduling. Principles of I/O Hardware and I/O Software, Deadlocks, RAM Disks, Disks and Terminals. Basic Memory Management, Swapping, Virtual Memory, Page Replacement Algorithms, Design Issues for Paging Systems and Segmentation. Files, Directories, File System Implementation, Security and Protection Mechanisms. MINIX 3. Overview and implementation of processes, the system task and the clock task in minix 3. Overview and implementation of I/O, Block Devices, Process Manager, and File System in Minix3.
MSC211 Evolutionary Computing and Parallel Distributed Processing
Fundamentals of genetic algorithms, genetic programming. Conceptual simplicity and broad applicability of genetic algorithms. Features of evolutionary computation, evolutionary strategies, evolutionary programming. Hybridization and Optimization techniques. Heuristic level: knowledge representation, inference strategies. Man-machine interfaces. Fuzzy set theory. Decision: Classical, nonstandard and fuzzy logic. Data representation. Network configurations: single layer non-recurrent networks. Multilayer non-recurrent networks. Recurrent networks. Application for artificial neural networks: character and speech recognition, image analysis Parallel distributed processing. General framework. Distributed representation. Basic mechanisms and formal analysis.
MSC212 Simulation and Modelling
Advances in simulation and modelling methodology. All students are expected to have completed an introductory module in simulation. Modelling complexities and decision-making simulation using system dynamics. Applied statistical functions, Experimentation, Applied statistical methods for analysis and modelling. Approaches to structuring simulations. Contrasting discrete, continuous and agent-based simulation. The module explores the power of the use of computers in solving complex problems using modelling and simulation, by substituting physical experiments that are costly and time consuming by computations. This allows for fast extraction of useful information from experimental data in science and engineering.
MSE111 Advanced Data Structures and Algorithms
Topics include Algorithm analysis covering RAM model–nations, Recurrence analysis – Master’s Theorem, Amortized analysis, Disjoint sets, Randomized Algorithms – n-queen problem. Sorting and Order Statistics covering -Heap Sort, Selection sort, Quick sort, Heap Structures, Min-Max Heaps, Leftist trees, Binomial Heaps, Fibonacci heaps. Search Structures covering OBST, AVL, 2-3 trees, Red-Black trees, B-trees, Digital trees, tries, Splay trees. Graph Algorithms covering Minimum spanning trees, Single source shortest path, All pairs shortest path, Maximum flow, Planar graph colouring. Advanced design and Analysis Techniques covering Dynamic Programming, Greedy Algorithms, Amortized Analysis, Linear programming, Job Scheduling, TSP.NP-Hard and NP-complete: Non-deterministic algorithms, clique problem, Vertex cover problem, TSP.
MSE215 Enterprise Computing in Java
This course will equip students with knowledge and development skills in J2EE, Hibernate, Spring and Web Services. The course will include topics in building J2EE Applications using Servlets, Java Server Pages (JSP), Enterprise Java Beans (EJB) and Java Database Connectivity (JDBC). It will also give students experience with Model View Control (MVC) frameworks which include Hibernate, Spring and Struts. The Service Oriented Architecture (SOA) principles and implementations will also be covered with a special focus on Java Web Services (JAX), SOAP, JAX-RPC and Web service clients in Java and C Sharp.
MSC221 Dissertation
The Final year dissertation involves in-depth research in a particular area of interest in Computer Science. The dissertation will capture the details of the practical work carried out by a master’s student, in which the student demonstrates the ability to transfer the theoretical knowledge gained during the course of study into some tangible computer science product that will be evaluated by the department board of examiners. The research finding is expected to be published in peer reviewed journals or conference proceedings. Finally, all the work should be presented in a thesis.