Introduction

The Master of Science in Computer Science aims at equipping students with advanced skills in Computer Science.

The objectives of the program are :

  1. To provide students with in-depth knowledge of the theoretical and practical aspects of Computer Science so as to satisfy the technological needs in the private and public sector.
  2. To provide students with advanced knowledge and special skills set in the key areas of computer security, computer programming, data science, and cloud computing.
  3. To equip students with the knowledge and skills necessary to meet the ever-evolving demands of the Computer Science profession.
  4. To provide students with skills to deploy and manage Computer infrastructure in organizations so as to improve their effectiveness.
  5. To provide students with research skills which will help them grow with the technological advancements as well as help them participate in the development of new technologies.

Main Features in the program

Areas of Specialization

The MSc in Computer Science program is an evening program that is completely privately sponsored. The curriculum has two areas of specialization:

  1. Software and Systems Security
  2. Artificial Intelligence and Data Science

A student pursuing a MSc in Computer Science will be required to specialize in one of these tracks. The choice of the areas of specialization was dictated by the current trends and needs in the Computing fifield in the region and internationally.

Software and Systems Security

Uganda and the rest of the African continent have witnessed a tremendous increase in the adoption and use of automated computing systems. The region has also seen increase in the usage of the Internet and online IT systems. Computerization increases precision, speed, reliability, availability and reduces cost. Computerization has been applied in sensitive/critical areas like finance (e.g., mobile money and online banking), records keeping, monitoring and tracking.

Design and implementing secure computer systems is an ever increasing challenge worldwide. Unfortunately, most organizations put emphasis on the functionality of the computerized systems but pay less attention on the susceptibility of the systems to malicious attack by intruders. Without proper implementation of security, organizations could suffer from high security risks including fifinancial losses. In some cases, businesses can be thrown several years back and rendered uncompetitive.

There is shortage of computer security professionals in Uganda and internationally. The Software and Systems Security track therefore aims at producing computer security experts who will be able to design, develop, implement and manage secure computing systems and networks. The graduates will also be able to critically evaluate threats and vulnerabilities and integrate appropriate security strategies in computing systems and networks.

Artificial Intelligence and Data Science

The Artificial Intelligence and Data Science option aims at producing graduates equipped with skills to process, analyse and extract insight from huge amounts of data. It draws upon our world-leading expertise in the areas of machine learning, computer vision and image processing, visual analytics, high-performance computing, data mining and information retrieval.

There is a growing demand of professionals with this skills set because individuals and organizations are continuously producing vast amounts of real-time heterogeneous data (known as Big Data). Big Data challenge in areas such as health, business, security,intelligent transport, energy efficiency, education, retail and the creative industries.

This option will equip students with advanced knowledge and hands-on experience in algorithms, tools, and techniques for managing and processing big data.

Emphasis on Research, Problem Solving and Transdisciplinarity

The MSc in Computer Science program puts strong emphasis on research, transdisciplinarity and problem solving using advanced computational thinking skills.

This is because Computer Science is a highly ever-evolving field that demands keeping up with the most up-to-date research and trending advancements not only in Computer Science but also in other fields. Most graduates of Computer Science work in fast changing and technically challenging environments that require continuous research and learning.

In order to produce graduates who can work successful in the field of Computer Science, the curriculum ensures that the two offered options have a heavy component of research and problem solving. The modes of delivery and research problems are designed to equip students with skills to tackle inter and trans-disciplinary research abilities

Career Options Arising from the MSc in Computer Science program

The graduates from the MSc. in Computer Science find themselves in different kinds of environments for example, academia, research, industry, government, private and business organizations. The list below provides some of the possible career options for a graduate of the MSc. in Computer Science:

  • Computer/Cyber Security Expert
  • Software Engineers/programrs
  • Data Scientist
  • ICT Project Consultants
  • Systems Security Analyst
  • Researcher
  • Systems Analyst, and Business Intelligence Analyst
  • Database, Systems and Network Administrators

The Program

Target Group

The program is designed for graduates from computing (Computer Science, Computer Engineering, and Software Engineering) and closely related fields, who wish to gain advanced knowledge in Computer Science. The broad target groups include but not limited to:

  • those interested in pursuing both academic and professional careers requiring advanced Computer Science knowledge.
  • professionals interested pursuing careers in the fields of computer security, data science, network security, analytical, programming, software engineering/ software development, and cloud computing, among others.
  • those interested in pursuing PhD research in Computer Science.

Program Duration

The duration of the program is four semesters spread in two years. Each semester has fifteen weeks of studying and two weeks of examinations

Tuition Fees

Tuition fees for privately sponsored students is 5,000,000 Uganda Shillings per academic year for Ugandans and 12,780,000 Uganda Shillings for international students.

Regulations

Admission requirements

To qualify for admission to the MSc. in Computer Science, a candidate must fulfill the general Makerere University entry requirements for Masters Degrees, and in addition, the candidate must be a holder of either:

  1. A minimum of Second Class (lower division) undergraduate degree in Computer Science, Computer Engineering, Software Engineering, or a closely related field from a recognized university/institution.
  2. A minimum of Second Class (lower division) postgraduate diploma in Computer Science, Computer Engineering, Software Engineering or a closely related field from a recognized university/institution.

Candidates from closely related fields should have taken core computer science courses in undergraduate or postgraduate diploma studies including: compiler design, automata and complexity, object-oriented programming languages, data structures and algorithms, computer architecture, mathematics particularly in linear algebra, statistics and calculus.

Upgrading from Postgraduate Diploma

If a candidate holds a Postgraduate Diploma in Computer Science of Makerere University of at least a Lower Second class, he/she may apply to join in the second year of the Master of Science in Computer Science provided they have followed equivalent courses in the post graduate Diploma. In such a case, the applicant is expected to undertake research in the second year and any remaining course units to meet the minimum requirement for the award of the MSc. in Computer Science Degree.

The upgrade of the PGD Computer Science to the MSc. Computer Science described above must be supported by relevant academic documents attained for the PGD Computer Science of Makerere University. This must be done for purposes of analyzing the relevant academic courses that must have been attempted as per the current MSc. in Computer Science curriculum. Any courses that were not attempted by the applicant as per the first years course load of the current MSc. in Computer Science curriculum must be taken. When a student graduates with a Postgraduate Diploma of Computer Science of Makerere University with a classification of Pass, s/he can apply for the Master of Science in Computer Science but is admitted to the first year of the MSc. in Computer Science program.

Plans

The curriculum is made up of two plans - Plan A and Plan B.

  • Plan A: Plan A is made up of two semesters of coursework (40 credit units) and two semesters of research and writing of a dissertation (20 credit units) and Seminar Series (2 credit units). The minimum total credit units (graduation load) for Plan A is 62.
  • Plan B: Plan B is made up of three semesters of coursework (58 credit units) and one semester of developing a project (10 credit units). The minimum total credit units (graduation load) for Plan B is 68.

Weighting System

The weighting unit is the Credit Unit (CU). The Credit Unit is a contact hour per week per semester. A contact hour is equal to:

  1. one lecture hour (LH)
  2. two practical hours (PH)
  3. two tutorial hours (TH)

Semester Load

The normal load for Year one is 20 credit units per semester. The normal semester load for Year Two Semesters One is 22 credit units for Plan A while that for Year two Semester one is 18 credit units for Plan B. The minimum semester load for Year two Semester two is 20 for Plan A while that for Year two Semester two for Plan B is 10 credit units.

Minimum Graduation Load

The minimum graduation load for Plan A is 62 credit units while the minimum graduation load for Plan B is 68.

Evaluation and Grading

Every course unit will be graded within and at the end of the semester in which it is covered. The progressive assessment will constitute 40% of the overall mark and the final examination will constitute 60%. The form of progressive assessment and final examination (e.g., project-based/research-based or written) may vary depending on the course unit. Grade points will be allocated to the nal mark got in every course unit according to the table below:

Marks Letter Grade Grade Point (GP) Interpretation
90 - 100 A+ 5 Exceptional
80 - 89 A 5 Excellent
75 - 79 B+ 4.5 Very good
70 - 74 B 4 Good
65 - 69 C+ 3.5 Fairly good
60 - 64 C 3 Pass
55 - 59 D+ 2.5 Marginal fail
50 - 54 D 2 Clear fail
45 - 49 E 1.5 Bad fail
40 - 45 E- 1 Qualified fail
Below 45 F 0 Qualified fail

The following additional letters are used where appropriate:

  • W - Withdraw from Course
  • I - Incomplete
  • AU - Audited course only
  • P - Pass
  • F - Failure

Calculation of Cumulative Grade Point Average (CGPA)

The CGPA is calculated as follows:

cgp formulae

Where GPi is the Grade Point score of a particular course unit i; CUi is the number of Credit Units of course unit i; and n is the number of course units done so far.

Progression

Progression is regarded as normal, probationary or discontinuation as per the standard Makerere University senate guidelines:

  1. Normal Progress: This occurs when a student passes each course unit taken with a minimum Grade Point of 3.0.
  2. Probationary: This is a warning stage and occurs if either the Cumulative Grade Point Average (CGPA) is less than 3.0 and/or the student has failed a core course unit. Probation is waved when these conditions cease to hold.
  3. Discontinuation: When a student accumulates three consecutive probations based on the CGPA or the same core course unit(s), s/he shall be discontinued. A student who has failed to obtain at least the pass mark of 60% or Grade Point of 3.0 after the third attempt in the same course unit(s) s/he had retaken shall be discontinued from his/her studies at the University. A student who has overstayed in an academic program by more than two (2) years shall be discontinued from his/her studies at the University.

Retaking a Course Unit

A student will retake all courses where he/she has a grade point less than 3.0.

  • A student shall retake a course unit when next offered in order to obtain at least the pass mark (60%) if s/he had failed the course unit during the rst attempt. A student may take a substitute elective course unit where s/he does not wish to retake a failed elective course unit.
  • A student who has failed to obtain at least the pass mark of 60% after the second attempt of the same course unit s/he has retaken shall receive a warning.
  • Where students miss to sit examinations for justified reasons; they should not be recorded as those who retake when they sit the examinations when next offered.
  • A student shall not be allowed to accumulate more than five (5) retake course units at a time. Students are required to register for retake course units first before registering for course units the will be attempting for the first time in that semester and the retake course units should fit into the approved normal load so as to avoid timetable clashes.
  • Students who have a course unit or course units to retake and where the total credit load for this course unit or course units is more than the set normal semester load for their program will be required to pay additional tuition for the retake course unit(s). Such students will also be required to pay the re-examination fees per retake course unit and the registration fees for that semester.

Course Outline

Year I Semester I

Mandatory for all students

Code Name LH PH CH CU
MCS 7101 Cloud Technologies and Architectures 30 60 60 4
MCS 7102 Data Security and Privacy 30 60 60 4
MCS 7103 Machine Learning 60 30 45 4
MCN 7105 Structure and Interpretation of Computer Programs 30 60 60 4
MCS 7106 Advanced Topics in Computer Program Science 30 60 60 4
Total Credit Units 20

Semester 1 (5 Courses)

Code Name LH PH CH CU
MCS 7101 Cloud Technologies and Architectures 30 60 60 4
MCS 7102 Data Security and Privacy 30 60 60 4
MCS 7103 Machine Learning 60 30 45 4
MCN 7105 Structure and Interpretation of Computer Programs 30 60 60 4
MCS 7106 Advanced Topics in Computer Program Science 30 60 60 4
Total Credit Units 20

Year I Semester II

Software and Systems Security Option

Code Name LH PH CH CU
MCS 7201 Computer Systems Security 30 60 60 4
MCS 7202 Network Security 30 60 60 4
MCS 7227 Data Analytics and Visualization 60 30 45 4
MIT 7116 Research Methodology 45 30 60 4
Electives (Select 1)
MCS 7203 Cloud and Web Security 30 60 60 4
MCS 7203 Cloud and Web Security 30 60 60 4
MCS 7204 Deep Learning 30 60 60 4
MCS 7205 Digital Forensics 30 60 60 4
Total Credit Units 20

Artificial Intelligence and Data Science Option

Code Name LH PH CH CU
MCS 7224 Computer Vision 30 60 60 4
MCS 7208 Data Mining 30 60 60 4
MCS 7227 Data Analytics and Visualization 60 60 30 4
MIT 7116 Research Methodology 45 30 60 4
Electives (Select 1)
MCS 7203 Cloud and Web Security 30 60 60 4
MCS 7203 Cloud and Web Security 30 60 60 4
MCS 7204 Deep Learning 30 60 60 4
MCS 7205 Digital Forensics 30 60 60 4
Total Credit Units 20

plan A

Year II Semester I and II

Code Name LH PH CH CU
MCS 7226 Seminar Series (Semester I) 60 30 2
MCS 8113 Master's Dissertation (Semester I & II) 20
Total Credit Units 22

Plan B

Year II Semester I

Code Name LH PH CH CU
MIT 7117 Advanced IT Project Management 30 60 60 4
MCS 7102 Seminar Series 60 30 2
Electives (Select 3)
MIS 8117 Business Process Modelling & Analysis 30 60 60 4
MIS 8110 Geographical Information & Remote Sensing 30 60 60 4
MCN 7106 Mobile Software & Content Development 30 60 60 4
MCN 7110 Internet of Things 30 60 60 4
Total Credit Units 18

Year II Semester II and II

Code Name LH PH CH CU
MCS 8200 Master's Dissertation (Semester I & II) 10
Total Credit Units 10

Minimum Graduation Load Plan A:62 credit units

Minimum Graduation Load Plan B:68 credit units

Detailed Curriculum

Year 1

Semester 1

(a) Description

This course enables the students to explore concepts and research trends in fundamental areas of computer science not specifically handled in this program. Specifically students will explore the fundamentals and trends in algorithm design and complexity, computational logic, fundamentals of computer languages and computational modeling. Students are expected to do a deeper reading and analyze the research trends in each of the area.

(b) Course Objectives:

The objectives of the course are:

  • To aid a student get an in depth understanding of the developments in one area of computer science
  • To expand the breadth of the students understanding in the different areas of computer science
  • To improve the student's research skills
  • To introduce the student to areas that are normally used as a basis and some times methodologically in research in computer science

(c) Learning outcomes

By the end of the course, students shall be able to:

  • Explain the current fundamental concepts of algorithms and complexity, computational logic, theory of computer languages and computational modeling.
  • Demonstrate ability to understand the current research trends algorithms and complexity, computational logic, computer languages and computational modeling.
  • Write short survey papers in the areas of algorithms and complexity, computational logic, computer languages and computational modeling

(d) Detailed Course Content:

Teaching of this course will be in four modules. Each module will be a complete unit of teaching and will be assessed at independently during continuous assessments. This course is broken up into the following modules;

  1. Module 1: Algorithms and Complexity (15 hours)

    Review of algorithms, Greedy algorithms, Scheduling algorithms, divide and conquer, dynamic programming, network ow applications, matching, matching and NP Completeness and algorithm approximation.

  2. Module 2: Computational logic (15 hours)

    Review of Logic, formalization within the logic, system descriptions using logic, proving theorems using logic, selected applications of logic in Computer Science.

  3. Module 3: Optimization (15 hours)

    Review of linear optimization and scheduling techniques

  4. Module 4: Linear Algebra (15 hours)

    Vector Spaces, Sub spaces, linear combinations, linear dependence, linear independence, bases and dimensions, linear transformations, null spaces and ranges. Invertibility and isomoprhism, dual spaces. Eigine values and Eigine vectors, diagonilizability.

(e) Study Materials

This class covers a great deal of information about advanced topics in omputer Science, so no single textbook can cover it all. Class notes willbe provided for all topics covered.

(f) Mode of Assessment

Assessment shall be by progressive assessment (40%) and final examination (60%). Progressive assessment shall be by doing a self paced literature search and report on/critique scientific arguments in each module. The final examination shall be set by the lecturer identifying one area per module focusing on the practicals and applications in real life. The student shall be given the problem description and required to do the investigations and experiments and write a position paper in the last three weeks of the semester. The paper up will be evaluated and the final mark awarded.

(g) Reading List

The reference books for the course are:

  1. Bollobas, B. (2002) Modern Graph Theory. Springer
  2. Marcus, D. (2008) Graph Theory: A Problem Oriented Approach MAA.

(a) Description

Cloud Computing technologies are emerging as a common way of provisioning infrastructure services, applications and general computing and storage resources on-demand. Cloud computing enables new possibilities for highly elastic and potentially infinite computing power with scalability, big data analytics, and support for delivery of mission-critical secure enterprise applications and services. During this course student will gain hands-on experience with various types of cloud models and explore areas such as programming models and application development for cloud systems, cloud management technologies, the underlying system architectures, data centers, virtualization, and cloud storage. The course prepares graduates to enter a range of professional positions related to cloud systems, including developing cloud-based applications, managing cloud systems and designing cloud infrastructures.

(b) Course Objectives:

The objectives of the course are to:

  • provide an understanding of the field of Cloud Computing, its enabling technologies, main building blocks, and architectures.
  • provide hands-on experience for solving relevant and cloud computing real-world problems.
  • develop the skills needed to become a practitioner or carry out research projects in the Cloud Computing domain.

(c) Learning outcomes

At the end of this course, students will have:

  • an understanding of the field of Cloud Computing, its enabling technologies, main building blocks, and architectures.
  • gained hands-on experience for solving relevant and real-world problems through projects that utilize various cloud tools including programming models and cloud systems such as Amazon, Microsoft Azure, Google App Engine, etc.
  • developed the skills needed to become a practitioner or carry out research projects in the Cloud Computing domain.

(d) Detailed Course Content:

Teaching of this course will be in four modules. Each module will be a complete unit of teaching and will be assessed at independently during continuous assessments. This course is broken up into the following modules;

  1. Module 1: Cloud Computing Systems and Architectures (15 hours)

    This module will provide a broad overview of cloud computing, its history, technology overview, benefits, risks and the economic motivation for it. The module will also cover cloud computing types: Infrastructure as a service (IaaS), Software as a service (SaaS), Platform as a service (PaaS) - Architectures and Models: local/distributed, private/public, hybrid. The modules will involve experimentation through case studies using popular cloud systems like Amazon S3, EC2, Force.com, MS Azure, Google App Engine, etc.

  2. Module 2: Cloud Computing Technologies (15 hours)

    Topic will include Virtualisation - Multi-tenancy - Data management - Elastic and resilient environments - Cloud and Load Balancing. Students will learn how virtualization can allow software and hardware images (e.g., virtual machines) to run side-by-side on a single cloud data center yet provided security, resource and failure isolations. They will understand how virtualization enables clouds to offer software, computation, and storage as services as well as attain agility and elasticity properties. We will discuss resource virtualization in detail and present multiple examples from Xen and VMware. Finally, we will present real use cases such as Google App Engines and Amazon EC2.

  3. Module 3: Programming Models for Cloud Computing (15 hours)

    Students will be given an overview on a variety of cloud-applicable programming models. Students will understand the benefits and limitations of each so that they can assess applicability based on the problem domain. Students will gain working experience in one (or two) of these programming models. Upon completion of this module students will be able to: Explain the fundamental aspects of parallel and distributed programming model, demonstrate an understanding of the different cloud programming models (Dryad, MapReduce, Spark, GraphLab, Pregel).

  4. Module 4: Challenges and Trends: Self-* properties (15 hours)

    This module will cover Data and Information Integration - Security/ Trust Management and Governance - Legislative and economic environment - Cloud computing future trends.

(e) Study Materials

The materials shall include textbooks, journal/conference papers, cloud platforms, and several freely available online resources.

(f) Mode of study

The teaching will be highly student centered. It will involve teaching, online/class room discussions, demonstrations, group/individual projects and self guided research. A student will be expected to do self paced research in each of the module.

(g) Mode of Assessment

  • Progressive assessment (40%). This will include in-class quizzes and cross-module projects
  • End of semester examination (60%). Part of the final exam may be a practical project.

(h) Reading List

The reference books for the course are:

  1. Thomas Erl, Robert Cope, and Amin Naserpour. Cloud Computing Design Patterns 2015: Prentice Hall Press. Available: http://dl. acm.org/citation.cfm?id=2810076
  2. Michael J. Kavis. Architecting the Cloud: Design Decisions for Cloud Computing Service Models (SaaS, PaaS, and IaaS) 2014: WILEY. Available: http://eu.wiley.com/WileyCDA/WileyTitle/ productCd-1118617614
  3. Michael Armbrust, Armando Fox, Rean Griffith, Anthony D. Joseph, Randy Katz, Andy Konwinski, Gunho Lee, David Patterson, Ariel Rabkin, Ion Stoica, and Matei Zaharia. A view of cloud computing 2010: WILEY. Available: http://dx.doi.org/10.1145/1721654. 1721672

(a) Description

The digitalization of information and the Internet have dramatically changed the today's society. New business models and technologies have been deployed to provide users with new services (e.g., eBusiness, eHealth, eGoverment). However, this new trend increasingly faces the risk of unauthorized access and misuse of personal information. This course focuses on data protection technologies designed to prevent dissemination of sensitive information of individuals. The course will provide a solid introduction to most important access control models (e.g., DAC, MAC, RBAC) and their extensions for distributed systems (e.g., RT) and usage control (e.g., UCON). The course will also introduce privacy principles and provide insights on how access control models can be extended to address privacy issues. The last part of the course will focus on industry standards in the area of access control and privacy (e.g., XACML and EPAL).

(b) Course Objectives:

The main objectives of this course are to:

  • provide a detailed understanding of the most important access control models.
  • provide knowledge of the well-established privacy principles.
  • understand specific access control and privacy policies.
  • provide the ability to evaluate access control and privacy policies.

(c) Learning outcomes

After completing this course the student will:

  • be able to understand data security principles in real settings.
  • be able to have a detailed understanding of the important access control models.
  • be able to specify and evaluate access control and privacy policies.

(d) Detailed Course Content:

Teaching of this course will be in five modules. Each module will be a complete unit of teaching and will be assessed independently using continuous assessments. The content of the modules will include:

  1. Module One: Introduction and Context (9 hours)

    This module will provide an introduction to the changing landscape in security brought about by digitalization of information. We will discuss the privacy, data security and how the law affects security principles.

  2. Module Two: Access Control (15 hours)

    This module will discuss the three main access control policies. These include Discretionary access control, Mandatory access control and Role-based Access Control. Under discretionary access control, we will discuss access matrix, HRU model and safety problems. Mandatory access control will cover sever security classification models like Bell-LaPadula Model, Biba Model, Chinese Wall Model. Role-based Access Control will deal with roles, role hierarchy and separation of duties.

  3. Module Three: Usage Control (15 hours)

    This module discusses usage control which covers the UCON usage control model. This model will cover authorizations, obligations, conditions, continuity and mutability. This module will also introduce the Role-based trust management and policy languages for representing policies and credentials in distributed authorization. This will focus on the strengths of role-based access control and trust management systems and is especially suitable for attribute based access control.

  4. Module Four: Privacy (9 hours)

    This module discusses the concepts of data privacy and database security. We discuss privacy-aware access control techniques, which include: Hippocratic Databases, Purpose-based Access Control. This module will also discuss how to balance privacy in statistical databases, k-anonymity and related techniques.

  5. Module Five: Languages (12 hours)

    This module covers the Industry standards for access control and the privacy languages. These include Enterprise Privacy Authorization Language (EPAL), eXtensible Access Control Markup Language (XACML), RBAC Profile of XACML, Privacy Profile of XACML and Reduction of Access Control decisions.

(e) Study Materials

Thus course will be offered using several application areas that will be used to master concepts of access control, usage control and privacy. The eXtensible Access Control Markup Language (XACML) language which is used for representing authorization and entitlement policies will be used in this course.

(f) Mode of study

The course will be broken up into modules. The mode of study will be the lectures. After each module students will be given a hands-on mini project which will cover the concepts discussed in each module.

(g) Mode of Assessment

After each module, students will have to present findings from research papers that are related to the topics covered in the module. Students will also be expected to carry out-group projects. The assessment will be categorized as:

Progressive assessment (40%). This will include in-class quizzes and cross-module projects

Final examination (60%). Part of the final exam may be a practical project.

(h) Reading List

Each of the modules will have a pointer to a list of published research papers that will be relevant for the topics covered in each module. However, some of the relevant materials for this course are listed below.

  1. Samarati, P. and De Capitani di Vimercati, S. Access Control: Policies, Models, and Mechanisms Revised versions of lectures given during the IFIP WG 1.7 International School on Foundations of Security Analysis and Design on Foundations of Security Analysis and Design: Tutorial Lectures.
  2. Sandhu, R.S., Coyne, E.J., Feinstein, H.L., Youman, C.E. Role-Based Access Control Models IEEE Computer 29(2): 38-47, 1996
  3. Ninghui L., Mitchell, J.C., and Winsborough, W.H. Design of a Role- Based Trust-Management Framework Proceedings. 2002 IEEE Symposium on. IEEE, 2002.
  4. Agrawal, R., Kiernan, J., Srikant, R. and Xu, Y. Hippocratic Databases. VLDB :143-154, 2002.

(a) Description

Machine learning is the study of algorithms that take in specific data and process it in such a way that they can predict the outcome or generate some unique understanding of new data based on what was learned from the initial data introduced to the machine learning algorithm.Machine learning is a branch of Artificial Intelligence that is presently used in several diverse fields in finance - to predict stocks to trade, in medicine - to do effective diagnoses, in business - e.g. in fraud detection, it is also used in the email spam filter you use for your email.

(b) Course Objectives:

Upon completion of this course a student should be able to:-

  • Demonstrate knowledge and understanding of the working concepts of Machine Learning.
  • Be able to evaluate and use different Machine Learning techniques and methods to solve complicated problems.
  • Be able to implement the basic Machine Learning algorithms and applications using Python to solve real-world problems.

(c) Learning outcomes

The intended learning outcomes for this course are :-

  • Students will be able to explain the key concepts of Artificial Intelligence and Machine Learning, and should be able to apply this knowledge to solving different types of problems.
  • Students will be able to articulate key concepts in the application of robabilistic reasoning to problem solving.
  • Students will be able to formulate solutions to problems by incorporation of machine learning algorithms. They should be able to explain these algorithms and evaluate how altering different algorithm parameters affects the system.
  • Students will be able generally to write well commented, properly tested code that illustrates the use of machine learning to solve a specific real world problem of their choice

(d) Detailed Course Content:

Teaching of this course will be in 6 modules. Each module will be a complete unit of teaching and will be assessed at independently during continuous assessments. This course is broken up into the following modules;

  1. Module 1: Introduction to Machine learning concepts (6 hours)

    This module introduces the students to the major concepts of machine learning. It introduces why learning from examples is a powerful way of learning and generalizing. It introduces the broad kinds of learning; supervised, unsupervised and reinforcement learning. It introduces the concept of learning a function and selecting suitable hypotheses. It also introduces the ideas of bias and variance and generalization of a machine learning algorithm.

  2. Module 2: Uncertainty and probability (10 hours)

    Uncertainty is a big concept in learning. Because learning is inherently uncertain, we introduce probabilistic reasoning to try and understand learning under uncertainty. Here the concepts of conditional probability are reiterated, Bayes rule and Bayesian reasoning. The Naive Bayes algorithm is introduced as well.

  3. Module 3: Supervised learning - classification algorithms (10 hours)

    Supervised learning is the biggest branch of machine learning. It deals with learning from labeled data. Here we introduce the concepts of Classification. We look at two kinds of algorithms here; Support Vector Machines and Decision Trees. We explain the different parameters required to build these algorithms to generalize well given some data. We also introduce the K-Nearest Neighbour algorithm and discuss distance measures.

  4. Module 4: Supervised learning - regression algorithms (12 hours)

    Here we introduce the other type of Supervised learning; regression. We discuss the concepts behind logistic regression. We derive analytically as well as simulate learning using gradient descent. We also introduce the concept of regularization to curb overfitting.

  5. Module 5: Unsupervised learning (12 hours)

    Here we introduce the other type of Supervised learning; regression. We discuss the concepts behind logistic regression. We derive analytically as well as simulate learning using gradient descent. We also introduce the concept of regularization to curb overfitting.

  6. Module 6: Feature selection and Evaluation metrics (10 hours)

    This last module we discuss some aspects of data manipulation, feature selection, feature engineering as well as dealing with outliers. We also discuss the different evaluation metrics in broader depth. We discuss the implication of the Receiver Operator Characteristics (ROC) curve, the F-measure, the AUC, precision and recall.

(e) Study Materials

This course will mainly be offered using the Python programming language. Students are particularly encouraged to get up to speed with Python programming by the start of the course. This course will have as its pre-requisite proficiency in programming complex systems in Python. Students should possess a laptop computer for doing in-class programming assessments. The course will work around open source Machine Learning toolkits. Students should install some of the trending machine learning packages particularly scikit-learn (http://scikit-learn.org/stable/), Numpy, SciPy and Matplotlib. A useful package that installs all these is the Anaconda package (https://www.continuum.io/downloads).

(f) Mode of study

The only way to learn Machine Learning suffciently is through handson experience programming these algorithms and applying them to real problems. The course is broken up into modules to facilitate learning of the different concepts. The mode of study will be inclusive of a variety of methods;

Lectures - these will be the chief mode of study. Lectures will take up 3 hours every week for 15 weeks.

Hands-on practice sessions - these will be for each topic. Small quizzes that require students to get hands-on practice with Machine Learning will be given out every week to cover content for that particular week.

Student mini projects - longer projects will be spaced out during the course and given after every module.

In-class practice sessions - each lecture will include some in-class practice sessions. Students will have to attend class with a reliably powered laptop to benefit from this mode of study.

(g) Mode of Assessment

Assessment will include:

  • Progressive assessment (40%). This will include in-class quizzes, practical mini projects, and test.
  • Final exam (60%). Part of the final exam may be a practical project.

(h) Reading List

Several reference books are available for this course - some of them are free books and downloadable.

  1. Toby Segaran. Programming Collective Intelligence: Building Smart Web 2.0 Applications 2007: O'reilly.
  2. Tom M. Mitchell. Machine Learning 1997: McGraw. Online: http://personal.disco.unimib.it/Vanneschi/McGrawHill_ -_Machine_Learning_-Tom_Mitchell.pdf
  3. Trevor Hastie and Robert Tibshirani. The Elements of Statistical Learning 2009: Springer Series in Statistics, 2nd Ed. Available: http://www-stat.stanford.edu/~tibs/ElemStatLearn/ printings/ESLII_print10.pdf
  4. Christopher M. Bishop. Pattern Recognition and Machine Learn- ing 2007: Springer. Available: http://www.rmki.kfki.hu/~banmi/ elte/Bishop-PatternRecognitionandMachineLearning.pdf

(a) Description

Effective software engineers need to know efficient techniques that serve as building blocks in the design and implementation of software systems. This course covers a series of techniques for controlling complexity in large software systems. We control complexity by building abstractions that hide details when appropriate. We control complexity by establishing conventional interfaces that enable us to construct systems by combining standard, well-understood pieces in a \mix and match" way. As we confront increasingly complex problems, we find that existing programming languages are not sufficient for our needs and thus we must control complexity by establishing new programming languages in order to express our ideas more effectively. These techniques will be illustrated using a highly expressive language such as Scheme, Python or Clojure. However, the course is not about teaching a particular programming language but rather examines fundamental issues underlying the design decisions of programming languages. This course will forever change the way you think about programming and programming languages i.e., from a language user's view to a designer's view.

(b) Course Objectives:

The objectives of this course are:

  • to provide an understanding of the major techniques for controlling complexity in large software systems
  • to provide an understanding of the internals of a program execution environment.
  • to provide an understanding of modifying and creating an interpreter for a new programming language.

(c) Learning outcomes

Upon completion of the course, students should be able to:

  • explain and apply the major techniques for controlling complexity in large software systems: Building abstractions, controlling interaction through Conventional interfaces, and designing new Languages.
  • design and implement software systems that demonstrate the concepts covered in the course, specifically: recursive and iterative processes and procedures, higher order procedures, object-oriented methods, data abstractions, procedures with state and dispatch on type.
  • understand, modify and create an interpreter for a new programming language, either at the level of a higher order language description or at the level of a register machine description.

(d) Detailed Course Content:

  1. Module 1: Building abstractions with procedures (15 hours)

    Introduction to Procedure abstraction; procedures as black-box ab- straction; computational processes; formulating abstractions with higher- order procedures

  2. Module 2: Building abstractions with data (15 hours)

    Introduction to data abstraction; compound data; hierarchical data and the closure property; symbolic data; multiple representations of abstract data.

  3. Module 3: Controlling interactions (15 hours)

    generic operations; self-describing data; message passing; streams and infinite data structures; and object-oriented programming without object-oriented programming language constructs; assignment and state; concurrency.

  4. Module 4: Meta-linguistic abstraction (15 hours)

    interpretation of programming languages; meta-circular evaluator; evaluation models; machine model; compilation; and embedded languages.

(e) Study Materials

The course is based on the famous \Structure and Interpretation of Com- puter Programs" (SICP) textbook that has been used since the 1980s at the Massachusetts Institute of Technology (MIT). The textbook, recorded videos and other supporting materials are freely available online.

(f) Mode of study

The course will be taught on fast pace. It assumes that students already know how to program in a mainstream imperative language such as Python, C, C++, Java or C#, or, that the students are learning such a language in parallel at the postgraduate level on their own or in other courses.

The course will employ blended learning approaches, combining class and online lectures. Videos will be uploaded on the University learning platform and students are expected to watch the videos on their own schedule and pace. Class lectures will be used for introducing and motivating new materials. Problem sets will also be uploaded on the e-learning platform. In addition to the problem sets there will be several substantial programming projects, each involving extensive programming.

(g) Mode of Assessment

Assessment will include:

  • Substantial weekly problem sets, quizzes, and programming projects will an integral part of the course assessment (40%).
  • Final examination (60%).Part of the final exam may be a practical project.

(h) Reading List

  1. Abelson, Harold, Gerald Jay Sussman, and Julie Sussman. Structure and Interpretation of Computer Programs 1996: MIT Press. Available: https://mitpress.mit.edu/books/ structure-and-interpretation-computer-programs

Semester 2

(a) Description

The course covers computational techniques and algorithms for analyzing and mining patterns in large-scale datasets. Techniques studied address data analysis and visualisation issues related to data volume (scalable and distributed analysis), data velocity (high-speed data streams), data variety (complex, heterogeneous, or unstructured data), and data veracity (data uncertainty). The course will focus on teaching students the principles and techniques for analytics and creating visual representation from raw data. The course will be based on real-world applications and public available datasets as well as freely available tools. Students are expected to engage in hands-on projects using one or more of these technologies.

(b) Course Objectives:

The objectives of the course are to:

  • provide an understanding of the principles, techniques and tools for data analytics and visualization
  • provide an understanding of using analytics and visualization as a tool to explore trends, relationships, confirm hypothesis, communicate findings and gain insight about data.

(c) Learning outcomes

By the end of this course, students will have gained:

  • an understanding of the principles, techniques and tools for data analytics and visualization.
  • practical experience in data analytics and creating visualizations.
  • able to identify appropriate tools to analyze and visualise data.

(d) Detailed Course Content:

    Teaching of this course will be in 4 modules. Each module will be a complete unit of teaching and will be assessed at independently during continous assessments. The course is broken up into the following modules;

  1. Module 1: Introduction to data analytics and visualisation (15 hours).
  2. This module covers principles, theory and techniques. Data Quality/ Data Capture, Functions of Visualisations, Graphic Integrity, Data-Ink Ratio, Tables & Graphs, Multiple Datasets, Interactive Graphs.

  3. Module 2: Analytics and visualisation tools (15 hours)
  4. TThis module will cover the coves analytics and visualisation tools like D3.JS

  5. Module 3: Types of Data (15 hours)
  6. High dimensional data, network data, geographic data and text data.

  7. Module 4: Advanced Analytics and Statistical Modelling (15 hours)
  8. This module covers Scientific visualisation (isosurface, volume rendering, and introduction to VisIt). Basic and Advanced Statistical Tests, Linear and Logistic Regression, Clustering Techniques, Decision Trees, Time Series Analysis, Text Analysis, Survival Analysis.

(e) Study Materials

    The materials shall include textbooks, journal/conference papers, data visualisation tools and platforms, and several freely available online resources

    (f) Mode of study

    The teaching will be highly student centered. It will involve teaching, online/class room discussions, demonstrations, group/individual projects and self guided research. A student will be expected to do self paced research in each module.

(g) Mode of Assessment

The mode of assessment will consist of:

  • PProgressive assessments (40%). These will include Short weekly quizzes, projects and programming assignments
  • Final exam (60%). Part of the final exam may be a practical project.
  • (h) Reading List

    1. EMC Education Services. Data Science and Big Data Analytics: Discovering, Analyzing, Visualizing and Presenting Data 2015: WILEY. Available: http://eu.wiley.com/WileyCDA/WileyTitle/ productCd-111887613X
    2. Bart Baesens . Analytics in a Big Data World: The Essen- tial Guide to Data Science and its Applications 2014: WILEY. Available: http://eu.wiley.com/WileyCDA/WileyTitle/ productCd-1118892704
    3. Ritchie S. King. Visual Storytelling with D3: An Introduction to Data Visualization in Javascript 2014: Addison-Wesley Professional. Available: http://www.informit.com/articles/article.aspx?p= 2247311
    4. Thomas H. Davenport. Big Data at Work: Dispelling the Myths, Uncovering the Opportunities 2014: Harvard Business Review Press. Available: http://dl.acm.org/citation.cfm?id=2636707
    5. Stephen Few. Show Me the Numbers: Designing Tables and Graphs to Enlighten (2nd ed.). 2012: Analytics Press. Available: http://dl. acm.org/citation.cfm?id=2385879

    (a) Description

    In this course, guidance will be given to students on how to identify a research problem. Instructions will be provided which will enable students to perform effective literature review. Students will be presented with various research paradigms and models of methodology and assist with designing an appropriate method for their research. Students will be trained in the analysis and presentation of results, exposition of processes and methods used and conclusions drawn. Guidelines outlining the preparation and writing of a research dissertation will be provide at the conclusion of the course.

    (b) Course Objectives:

    The objectives of the course are to:

    • equip students with research knowledge and practical skills relevant to conduct research in their area of specialization.
    • expose students to various computing disciplines or thematic areas and formulate relevant research problems.
    • equip students with the capacity to conceptualize and interpret research outcomes from a wide variety of approaches.

    (c) Learning outcomes

    By the end of this course, students will have gained:

    • demonstrate the application of research knowledge and skills in their area of specialization.
    • systematically conduct scientific research that can be published in peer-reviewed conferences and journals.
    • formulate a good research question and match it to a systematic research design.
    • conceptualize and interpret research outcomes from a wide variety of approaches

    (d) Detailed Course Content:

      The course will cover the following content:

    1. Introduction to research methods and research methodology (3 hours)
    2. Research paradigms in Computing (8 hours)
    3. Search and review of literature and formulation of hypothesis (6 hours).
    4. Categorization of Research Methods (10 hours).
    5. Scientific writing and presentation; identifying research problems, research objectives and questions (10 hours).
    6. Preparing technical documents (concept, proposal, dissertation) (4 hours).
    7. Research planning and management (selection of methods, techniques, tools, models) (6 hours).
    8. Proving concepts (analysis techniques; formal proofs, experimental proofs) (10 hours).
    9. Research ethics and plagiarism (3 hours).

    (f) Mode of study

    This course can be delivered in different forms including but not limited to these: Guest Speakers/Lectures, seminar series and presentations, lectures and discussion groups.

    (g) Mode of Assessment

    For the modes of delivery above, the following table shows the corresponding modes of assessment.

  • Reading Assignments (20%)
  • Research Position paper (40%)
  • Research Proposal (with a detailed research plan) (40%)
  • (h) Reading List

    Several reference books are available for this course - some of them are free books and downloadable.

    1. Paul D. Leedy, Jeanne E. Ormrod (March 2004), Practical Research: Planning and Design Paperback, Prentice Hall
    2. Zikmund, W.G. et.al (2010) Business Research Methods (8th Ed.) Thomson South Western
    3. Robert V. Smith, (May 1998), Graduate research: A guide for Students in the sciences Paperback, University of Washington
    4. Anthony M. Graziano, Michael L. (May 2006) Research Methods: A process of Inquiry Raulin, Hardcover, Prentice Hall
    5. Taylor, Steven J.; Bogdan, Robert, Hoboken, (1998) Introduction to qualitative research methods: A guidebook and resource: (3rd Ed.) NJ, US: John Wiley & Sons Inc.
    6. Yin, R.K. (2009). Case Study Research, Design and Methods. 4th ed Newbury Park, Sage Publications.
    7. Neuman, W.L. (2003). Social Research Methods: Qualitative and Quantitative Approaches. Pearson Education, Inc. USA.
    8. Myers, M.D. (2009) Qualitative Research in Business and Management. Sage Publications, London.

    (a) Description

    This course covers the aspects of attacking and securing computer Systems. The course covers aspects of ways typical computer systems can be exposed to attacks, the techniques of attacking them and techniques of defending them. The course also covers recent research in the said techniques.

    (b) Course Objectives:

    The objectives of the course are to:

    • introduce to the students the concept of viewing computer systems as security/attackable objects on top of functionality objects.
    • enable the students understand ways computer systems can be attacked as well as defended.
    • enable students explore the current research and advances in systems attack and defense.

    (c) Learning outcomes

    By the end of the course, students should be able to:

    • demonstrate ability to compartmentalize the computer systems into security assets.
    • describe the threat modeling process for computer systems.
    • explain key approaches of attack, how they are executed and how they are defended.
    • demonstrate ability to explain current research trends in selected aspects of system security.

    (d) Detailed Course Content:

      Teaching of this course will be in five modules. Each module will be a complete unit of teaching and will be assessed independently during continuous assessments. The content of the modules will include:

    1. Introduction and threat Modeling (15 hours).
    2. Input and output based threats (10 hours).
    3. Malicious Codes (10 hours).
    4. Programming language/platform Based Security (15 hours).
    5. Mobile Phone security (10 hours)

    (e)Study Materials

    This class covers a great deal of information about Computer Systems security, so no single textbook can cover it all. The materials shall include textbooks, journal/conference papers, and several freely available open online educational resources.

    (f) Mode of study

    Teaching will be by lectures, demonstrations, and guided self-paced studies learning.

    (g) Mode of Assessment

    Assessment will be by assignments that will enable students explore recent research in the specific modules (40%) and final examination (60%). Part of the final exam may be a practical project.

    (h) Reading List

    1. William, S. and Lawrie, B. Computer Security: Principles and Practice, 3rd Edition. 2014. Prentice Hall Press, Upper Saddle River, NJ, USA.
    2. Sabelfeld, A. and Myers, A. C. Language-based information- ow security, 2006. IEEE Journal on Selected Areas in Communications, Volume 21 Issue 1, Available: http://dl.acm.org/citation.cfm?id=2314769
    3. Charles, P. P. and Shari, L. P. Security in Computing (4th Edition). 2006. Prentice Hall Press, Upper Saddle River, NJ, USA.
    4. Matthew, A. B. The Art and Science of Computer Security. 2002. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA.
    5. La Polla, M., Martinelli, F. and Sgandurra, D. A Survey on Security for Mobile Devices 2013: In IEEE Communications Surveys & Tutorials, vol. 15, no. 1, pp. 446-471, First Quarter 2013. Available: doi:10. 1109/SURV.2012.013012.00028

    (a) Description

    In this age of universal electronic connectivity, of viruses and hackers, of electronic eavesdropping and electronic fraud, there is indeed no time at which security does not matter. Two trends have come together to make the topics of this course of vital interest. First, the explosive growth in computer systems and their interconnections via networks has increased the dependence of both organizations and individuals on the information stored and communicated using these systems. This, in turn, has led to a heightened awareness of the need to protect data and resources from disclosure, to guarantee the authenticity of data and messages, and to protect systems from network-based attacks. Second, the disciplines of cryptography and network security have matured, leading to the development of practical, readily available applications to enforce network security. This course introduces a concise survey of the cryptographic algorithms and protocols underlying network security applications, including encryption, hash functions, digital signatures, and key exchange. It also Covers important network security tools and applications, including Kerberos, X.509v3 certificates, PGP, S/MIME, IP Security, SSL/TLS, SET, and SNMPv3 and Finally the course looks at system-level security issues, including the threat of and countermeasures for intruders and viruses and the use of rewalls and trusted systems.

    (b) Course Objectives:

    The objectives of the course are:

    • To equip the student with the principles of security specifically in networks.
    • To equip students with approached of compromising networks.
    • To equip students with techniques of mitigating network attacks.

    (c) Learning outcomes

    Upon completion of this course, the student shall:

    • Have an understanding of network security protocols and applications;
    • Have an understanding of threat models, attacks that compromise security, and techniques for achieving security;
    • Be able to provide security assessment of networks;
    • Have ability to use the basic concepts of secure communication via insecure networks to design secure architectures;
    • Describe and justify relevant alternatives and decision recommendations;
    • Implement security management in networks.

    (d) Detailed Course Content:

      Teaching of this course will done in modules. Each module will be a complete unit of teaching and will be assessed independently during continuous assessments. The content of the modules will include:

    1. Introduction (6 hours)
    2. Computer Security Concepts, The OSI Security Architecture, Security Attacks, Security Services, Security Mechanisms, A Model for Network Security.

    3. Symmetric Encryption and Message Confidentiality (6 hours)
    4. Symmetric Encryption Principles, Symmetric Block Encryption Algorithms, Random and Pseudorandom Numbers Stream Ciphers and RC4, Cipher Block Modes of Operation

    5. Public-Key Cryptography and Message Authentication (6 hours)
    6. Approaches to Message Authentication, Secure Hash Functions, Message Authentication Codes, Public-Key Cryptography Principles, Public- Key Cryptography Algorithms. Digital Signatures,

    7. Key Distribution and User Authentication (9 hours)
    8. Symmetric Key Distribution Using Symmetric Encryption, Kerberos Key Distribution Using Asymmetric Encryption, X.509 Certificates, Public-Key Infrastructure, Federated Identity Management,

    9. Transport-Level Security (6 hours)
    10. Web Security Considerations, Secure Socket Layer and Transport Layer Security Transport Layer Security HTTPS Secure Shell (SSH)

    11. Wireless Network Security (9 hours)
    12. IEEE 802.11 Wireless LAN Overview, IEEE 802.11i Wireless LAN Security, Wireless Application Protocol Overview, Wireless Transport Layer Security, WAP End-to-End Security

    13. Electronic Mail Security (6 hours)
    14. Pretty Good Privacy, S/MIME, Domain Keys Identified Mail

    15. IP Security (6 hours)
    16. IP Security Overview, IP Security Policy, Encapsulating Security Payload, Combining Security Associations, Internet Key Exchange, Cryptographic Suites

    17. Intruders (6 hours)
    18. Intrusion Detection, PasswordManagement, Malicious Software, Types of Malicious Software, Viruses, Virus Countermeasures, Worms, Distributed Denial of Service Attacks

    (e)Study Materials

    Materials shall include textbooks, Journal/conference papers and simulators

    (f) Mode of study

    Teaching delivery shall be based on conventional in-class interaction between lecturers and students. The teaching shall follow the content of the suggested text book in addition to other teaching materials such as papers where possible. Students are expected to learn through lectures and different assessment exercises which shall include quizzes, research coursework, and project. Research course work will be based on identifying a security problem that a student or a group of students will independently research on and present at the class. A project on the other hand may require some programming skills where students to implement various security mechanisms such as firewalls in real systems.

    (g) Mode of Assessment

    Assessment shall be by course work - that will largely constitute take home research assignments (40%) and final examination (60%). Part of the final exam may be a practical project.

    (h) Reading List

    1. Fundamentals of Network Security by J. Canavan; Artech House (2013)
    2. Network Security Essentials: Applications and Standards 4th Edition, By William Stallings (2011)
    3. Network Security Essentials: Applications and Standards 4th Edition, By William Stallings (2011)
    4. Bruce Schneier, Applied Cryptography: Protocols, Algorithms, and Source Code in C, 2nd Edition, John Wiley & Sons 1995

    (a) Description

    Computer Vision is a branch of Artificial Intelligence that deals with extracting and interpreting images (and videos) to obtain some knowledge or information from the scene or image. This course provides an introduction to computer vision including fundamentals of image formation, image processing, feature detection and matching, motion estimation and tracking, and classification. We will develop basic methods for applications that include finding known models in images, image processing, feature extraction, tracking, and recognition.

    (b) Course Objectives:

    The main objectives of this course are:-

    • Demonstrate knowledge and understanding of the theoretical and practical aspects of computing with images.
    • To equip students with the ability to evaluate and use different image processing and computer vision methods to solve complicated problems for example scene understanding and recognition.
    • To equip students with the skills to be able to implement the basic computer vision methods and applications using Python and apply these in a tractable way to solve real-world problems.

    (c) Learning outcomes

    The intended learning outcomes for this course are :-

    • Students will be able to explain the key concepts of Image processing and Computer vision, and should be able to apply this knowledge to solving different types of problems.
    • Students will be able to articulate key concepts in image and video analysis to problem solving for example tracking and recognition.
    • Students will be able to formulate solutions to problems by incorporation of computer vision algorithms. They should be able to explain these algorithms and evaluate how altering different algorithm parameters affects the system. Solutions should be tractable.
    • Students will be able generally to write well commented, properly tested code that illustrates the use of image processing and computer vision to solve a specific real world problem of their choice.

    (d) Detailed Course Content:

      Teaching of this course will be in 5 modules. Each module will be a complete unit of teaching and will be assessed at independently during continuous assessments. This course is broken up into the following modules;

    1. Module 1: Image processing for computer vision (10 hours)
    2. A precusor for computer vision is image processing. This module will mainly deal with techniques of transforming an image to an amenable form that can be used for apply computer vision techniques to derive information. Particularly this module will deal with point operators, linear fifiltering, neighborhood operators, convolutions and other topics related to image processing.

    3. Module 2: Image features (15 hours)
    4. In order to derive information from images, we need to extract representative features. This module will deal with feature extraction from images. We will investigate extraction of corners, SIFT features, SURF features, color features, ORB features. This module will also look at feature matching.

    5. Module 3: Image segmentation (10 hours)
    6. Segmentation is an important technique that aids computer vision. This module will look at image segmentation, particularly deriving contours from images, mean shift, graph cuts and normalized cuts.

    7. Module 4: Tracking (10 hours)
    8. Tracking of objects in video is an important computer vision technique. This module will focus on processing of videos and identifying and tracking objects in the videos.

    9. Module 5: Classification and Recognition (15 hours)
    10. Classification and recognition are very important computer vision techniques. This module will deal with object detection and face recognition using HAAR cascade classifiers and other techniques.

    (e)Study Materials

    This course will mainly be offered using the Python programming language. Students are particularly encouraged to get up to speed with Python programming by the start of the course. This course will have as its pre-requite proficiency in programming complex systems in Python. Students should possess a laptop computer for doing in-class programming assessments.The course will work around open source Computer Vision toolkits. Students should install some of the trending computer vision packages particularly OpenCV (http://opencv.org), Numpy, SciPy and Matplotlib. Several other computer vision packages are available, however for this course we will use OpenCV.

    (f) Mode of study

    The only way to learn Computer Vision sufficiently is through handson experience programming these algorithms and applying them to real problems. The course is broken up into modules to facilitate learning of the different concepts. The mode of study will be inclusive of a variety of methods;

  • Lectures - these will be the chief mode of study. Lectures will take up 3 hours every week for 15 weeks.
  • Hands-on practice sessions - these will be for each topic. Small quizzes that require students to get hands-on practice with Machine Learning will be given out every week to cover content for that particular week.
  • Student mini projects - longer projects will be spaced out during the course and given after every module.
  • In-class practice sessions - each lecture will include some in-class practice sessions. Students will have to attend class with a reliably powered laptop to benefit from this mode of study.
  • (g) Mode of Assessment

    Assessment will consist of:

  • Progressive assessment includingWeekly quizzes, practical mini projects (after each module), and a test (40%).
  • Final exam - for overall assessment (60%). Part of the fifinal exam may be a practical project.
  • (h) Reading List

    Several reference books are available for this course - some of them free books and downloadable.

    1. Richard Szeliski. Computer Vision: Algorithms and Applications 2010: Springer. Available: http://szeliski.org/Book/
    2. David A. Forsyth and Jean Ponce. Computer Vision: A Modern Approach 2002: Prentice Hall. Online: http://dl.acm.org/citation. cfm?id=580035
    3. Itseez. OpenCV Documentation 2016. Available: http://docs. opencv.org

    (a) Description

    Big Data is now transforming the world. In this course, students will learn data mining techniques to process large datasets and extract valuable knowledge from them. Students will be introduced to modern distributed le systems for creating parallel algorithms that process very large amounts of data. The course will also cover algorithms for extracting models and information from large datasets.

    (b) Course Objectives:

    The main objectives of this course are:

    • To equip students with techniques necessary to mine different types of data.
    • To use different models of computation to mine data, i.e., MapReduce, streams and online algorithms, single machine in-memory,
    • To learn and use different data mining tools for analysis of big data.

    (c) Learning outcomes

    At the end of this course unit students should be able to:

    • Mine different types of data, i.e., high dimensional, graphical, labeled.
    • Apply different models of computation to mine data, i.e., MapReduce, streams and online algorithms, single machine in-memory,
    • Apply data mining techniques to solve real-world problems, for example, recommender systems, market basket analysis.
    • Apply and use different data mining tools for analysis of big data.

    (d) Detailed Course Content:

    Teaching of this course will be in six modules. Each module will be a complete unit of teaching and will be assessed independently during continuous assessments. The content of the modules will include:

    1. Module One: Introduction to Data Mining (12 hours)
    2. This module provides an introduction to data mining. This module will also cover the tools that will used for the data mining tasks that will covered in the rest of the modules. To gain hands on experience working with data mining tasks, two main platforms will be used,that is, R and Map-Reduce/Hadoop environments. The module will provide pointers to several papers and tutorials that are intended to teach students on how to use the tools as an environment for mining big data.

    3. Module Two: Finding Similar Items (9 hours)
    4. This module will cover fundamental data mining problem of examining data for "similar" items. This module will cover the problem of similarity as one of finding sets with a relatively large intersection. Topics to be covered include shingling, minhashing, and Locality Sensitive Hashing.

    5. Module Three: Recommender Systems (10 hours)
    6. This module will discuss a model for recommender systems. Recommendation systems use a number of different technologies. These will be classified into two broad groups, i.e., content-based systems and collaborative filtering systems. Under content-based systems, this module will examine properties of the items recommended while collaborative filtering systems will cover recommendation techniques based on similarity measures between users and/or items.

    7. Module Four: Link Analysis (10 hours)
    8. One of the biggest changes in our lives in the decade following the turn of the century was the availability of efficient and accurate Web search, through search engines such as Google. This module will discuss several techniques on which search engines are based. The focus will be on topics such as PageRank is and how it is computed efficiently. The module will also cover techniques like TrustRank and other approaches used to detect link spam.

    9. Module Five: Analysis of Massive Graphs (10 hours)
    10. There is much information to be gained by analyzing the large-scale data that is derived from social networks. This module will cover techniques for analyzing social networks. The topics that will be covered in this module will include: community detection in graphs and fifinding overlaps in social networks, detecting communities with AGM, analysis of large Graphs and Social Networks.

    11. Module Six: Mining Data Streams (9 hours)
    12. This module will shift away from mining a database and will cover techniques that are useful for mining data that arrives in a stream, e.g., sensor data, image data, Internet and Web traffic data. This module will discuss algorithms for processing streams which involve summarization of the stream in some way.

    (e) Study Materials

      Thus course will be odered using MapReduce/Hadoop environment which is an open source implementation of MapReduce distributed data processing environment for mining large data sets across clusters of computers (http://wiki.apache.org/lucene-hadoop/HadoopMapReduce). This course will also use R project which is a freely downloadable language and environment for statistical computing and graphics (http: //www.rproject.org/).

      (f) Mode of study

      The course is broken up into modules to facilitate learning of the different data mining concepts. The mode of study will be inclusive of a variety of methods. These will include class lecturers, student projects and several class practice sessions.

      (g) Mode of Assessment

      The mode of assessment will consist of:

    • Progressive assessment (40%). This will include in-class quizzes and cross-module practical projects
    • Final exam (60%). Part of the fifinal exam may be a practical project.

    (h) Reading List

    1. Leskovec, J., Rajaraman, A., and Ullman, J. Mining of Massive Datasets. 2nd Ed. Cambridge University Press, 2014, Available at http://mmds.orgLeskovec, J., Rajaraman, A., and Ullman, J. Mining of Massive Datasets. 2nd Ed. Cambridge University Press, 2014, Available at http://mmds.org
    2. Han, J., Kamber, M. and Pei, J. Data Mining: Concepts and Tech- niques. 3rd Ed. Morgan Kaufman, 2011
    3. Kargupta, H., Han, J. Yu, P., Motwani, R. and Kumar, V. (eds.). Next Generation of Data Mining. Taylor & Francis, 2008.

    (a) Description

    This course provides the ground-up coverage on the high-level concepts of cloud landscape, architectural principles, techniques, design patterns and real-world best practices applied to Cloud service providers and consumers for delivering secure Cloud based services. The course will describe the Cloud security architecture and explore the guiding security design principles, design patterns, industry standards, applied technologies and addressing regulatory compliance requirements critical to design, implement, deliver and manage secure cloud based services. The course delves deep into the secure cloud architectural aspects with regards to identifying and mitigating risks, protection and isolation of physical & logical infrastructures including compute, network and storage, comprehensive data protection at all OSI layers, end-to-end identity management and access control, monitoring and auditing processes and meeting compliance with industry and regulatory mandates. The course will leverage cloud computing security guidelines set forth by ISO, NIST, ENISA and Cloud Security Alliance (CSA).

    (b) Course Objectives:

    The objectives of this course are to:

    • provide students an understanding of the fundamentals of cloud computing architectures.
    • be able identify the known threats, risks, vulnerabilities and privacy issues associated with Cloud based IT services.
    • provide students an understanding of the concepts and guiding principles for designing and implementing appropriate safeguards and countermeasures for Cloud based IT services
    • provide students an understanding of the industry security standards, regulatory mandates, audit policies and compliance requirements for Cloud-based infrastructures.

    (c) Learning outcomes

    At the end of this courses students should be able to have gained the following:

    • an understanding of the fundamentals of cloud computing architectures based on current standards, protocols, and best practices intended for delivering Cloud based enterprise IT services and business applications.
    • be able to identify the known threats, risks, vulnerabilities and privacy issues associated with Cloud based IT services.
    • an Understanding of the concepts and guiding principles for designing and implementing appropriate safeguards and countermeasures for Cloud based IT services
    • be able explain and demonstrate the approaches to designing cloud services that meets essential Cloud infrastructure characteristics ondemand computing, shared resources, elasticity and measuring usage.
    • be able to design security architectures that assures secure isolation of physical and logical infrastructures including compute, network and storage, comprehensive data protection at all layers, end-to-end identity and access management, monitoring and auditing processes and compliance with industry and regulatory mandates.
    • be able to demonstrate an understanding of the industry security standards, regulatory mandates, audit policies and compliance requirements for Cloud based infrastructures.

    (d) Detailed Course Content:

    Teaching of this course will be in 5 modules. Each module will be a complete unit of teaching and will be assessed at independently during continuous assessments. This course is broken up into the following modules;

    1. Module 1: Cloud Security Concepts (10 hours)
    2. At the end of this module students will be able to: investigate the Security Fundamentals (i.e. CIA Security Triad, Defence in Depth, AAAs of Security, Non-repudiation, Least Privilege, Separation of Duties, Due Diligence, etc.). Identify and investigate Top Security Risks (i.e. Loss of Governance, Lock-In, Isolation Failure, Compliance Risks, Management Interface Compromise, Data Protection, Insecure or Incomplete Data Deletion, Malicious insider, etc.). Explore various security architectures (i.e. TOGAF, SSE-CMM, etc.) and reference models (i.e. CSA TCI, Cloud Cube Model, etc.). Compare and contrast various threat models (i.e. STRIDE, DREAD, etc.). Investigate security assurance (i.e. CSA STAR initiative, ENISA Information Assurance Framework, etc.)

    3. Module 2: IaaS, PaaS, and SaaS Security (10 hours)
    4. At the end of this module students will be able to: Assess IaaS, PaaS, and SaaS Security Concerns. Assess the challenges associated with protecting data in IaaS, PaaS, and SaaS (i.e. Information Architectures for IaaS/SaaS/PaaS, IaaS/SaaS/PaaS Encryption). Investigate portability and interoperability in IaaS/SaaS/PaaS (i.e. Lock-In). Appraise security in cloud environments with multi-tenancy at an Infrastructure level and testing in IaaS/PaaS/SaaS. Assess the challenges associated with protecting applications in IaaS/SaaS/PaaS. Explore how applications can be monitored in IaaS/SaaS/PaaS. Investigate and assess the impact of client-side vulnerabilities and mobile devices on cloud application security (XSS and CSRF).

    5. Module 3: Identity and Access Management (IAM) (15 hours)
    6. Assess identity federation and claims-based security services with respect to cloud based systems (e.g., SAML, OpenID and OAuth). Evaluation of IAM provider types (e.g., Silo-based Identity Providers, Replicated Identity Providers). Investigate risk-based authentication strategies for cloud applications (e.g., authentication based on geolocation, device identifier etc.)

    7. Module 4: Intrusion Detection and Incident Response (15 hours)
    8. Assess the challenges associated with establishing security perimeters within cloud computing environments (e.g. the impact of mobile devices on extending the attack surface of cloud based systems) Investigate and assess a range of attack vectors that may be encountered on cloud based environments (e.g. Cryptanalysis, Impersonation, Social Engineering, DNS Mis-directions, DDoS, Brute Force). Assess the challenges associated with monitoring and logging within cloud computing systems. Determine how to identify security breaches, detect intrusions (e.g. honey pots) and recommend responses to such incidents (e.g. containment)

    9. Module 5: Information Management and Data Security (10 hours)
    10. Students will be able to: Analyse and assess data dispersion in cloud environments. Compare and contrast the Data Security Lifecycle and Information Lifecycle Management. Analyse and assess information security governance processes. Assess the challenges associated with protecting data in a cloud (i.e. Detecting and Preventing Data Migrations to the Cloud, Protecting Data Moving To and within the Cloud, Content Discovery, Data Loss Prevention, Database and File Activity Monitoring, Privacy Preserving Storage, Digital Rights Management)

    (e) Study Materials

      This class covers a great deal of information about Cloud security technologies, so no single textbook can cover it all. The materials shall include textbooks, journal/conference papers, cloud platforms, and several freely available online resources. The course material will follow the Cloud security guidelines prescribed reputable bodies such as Cloud Security Alliance.

      (f) Mode of study

      The teaching will be highly student centered. It will involve teaching, online/class room discussions, demonstrations, group/individual projects and self guided research. A student will be expected to do self paced research in each of the module.

      (g) Mode of Assessment

    • Progressive assessment (40%). This will include in-class quizzes and cross-module projects
    • End of semester examination (60%). Part of the fifinal exam may be a practical project.

    (h) Reading List

    1. Chunming Rong, Son T. Nguyen and Martin Gilje Jaatun. Be- yond lightning: A survey on security challenges in cloud computing 2013: Computers and Electrical Engineering, Volume 39, Issue 1, 47- 54 Available: http://www.sciencedirect.com/science/article/ pii/S0045790612000870
    2. Rosado, David G., D. Mellado, Eduardo Fernandez-Medina, and Mario G. Piattini. Security Engineering for Cloud Computing: Ap- proaches and Tools 2013: IGI Global. Available: doi:10.4018/ 978-1-4666-2125-1
    3. Dimitrios Zissis and Dimitrios Lekkas. Addressing cloud computing se- curity issues 2012: Future Generation Computer Systems, Volume 28, Issue 3, Available: http://dx.doi.org/10.1016/j.future.2010. 12.006
    4. Vic (J.R.) Winkler. Securing The Cloud: Cloud Computing Security Techniques and Tactics 2011: Syngress/Elsevier. Available: http:// www.sciencedirect.com/science/book/9781597495929
    5. Thomas Ristenpart, Eran Tromer, Hovav Shacham, and Stefan Savage. Hey, you, get off of my cloud: exploring information leakage in third- party compute clouds 2009: ACM, Available: http://dx.doi.org/ 10.1145/1653662.1653687

    (a) Description

    This course involves studying of investigative methods for fifinding evidence in a wide scope of digital devices such as computers, laptops, networks, mobile devices phones, tablets, digital audio and video players, and any device or appliance that carries an electronic circuit board which could potentially store data or information. It also examines the science, the evidence, and the legal aspects associated to digital forensics, the validation of fifindings, and determination of acceptable evidence. It also evaluates various digital forensics models for data identification, preservation, collection, examination, analysis, preparation, and presentation.

    (b) Course Objectives:

    The objectives of the course are to:

    • equip the students with skills to properly carry out digital forensic investigation process
    • equip students with an understanding of advanced techniques and tools to carry out digital forensics

    (c) Learning outcomes

    TBy the end of the course, the students shall be able to:

    • demonstrate ability to carry out a systematic digital forensic investigation process
    • demonstrate an understanding of advanced techniques and tools to carry out digital forensics
    • carry out digital forensic investigations for common scenarios
    • properly document and report investigation results

    (d) Detailed Course Content:

    Teaching of this course will be in seven modules. Each module will be a complete unit of teaching and will be assessed independently during continuous assessments. The content of the modules will include:

    1. Digital Forensics Overview (9 hours)

      The Investigative Process, Forensic Analysis Methodologies, Setting up investigative software, Forensic techniques and tools such as ProDiscover, Encase, Helix, FTK, Autopsy, Sleuth kit Forensic Browser, FIRE, Found stone Forensic ToolKit, WinHex, Linux dd and other open source tools.

    2. Data Recovery and File System Forensic Analysis (12 hours)

      File Systems, Allocation Tables, Master File Table and MFT entries, Directory Entries, Bitmaps, identifying hidden files, recovering deleted files and unallocated space, FAT32 and NTFS analysis, Linux and MacOS file systems analysis, encryption/Decryption, and Steganography.

    3. Network Forensics (9 hours)

      Collecting and analyzing network-based evidence, OS registry changes, intrusion detection, tracking offenders, etc.

    4. Mobile Devices and Mobile Network Forensics (9 hours)

      Acquisition procedures for mobile network technology and devices, remote network acquisition tools, mobile device forensic tools, Collecting Evidence, Interpretation of Digital Evidence on Mobile Network and mobile devices.

    5. E-mail and Internet Forensic Analysis (9 hours)

      Web cache, history, bookmarks, Mail header analysis; E-mail server analysis; Building timeline; network e-mail logs; and tracking e-mail messages.

    6. Incident Response and Live Analysis (6 hours)

      Live analysis of systems, Collecting volatile data, Analyzing Log Files

    7. Memory Analysis (6 hours)

      Dumping physical memory, Analyzing physical memory

    (e) Study Materials

    The materials shall include textbooks, journal/conference papers, software and testing kits.

    (f) Mode of study

    The teaching will be highly student centered. It will involve teaching, class room discussion, demonstrations, laboratory experiments and self guided research. A student will be expected to do self paced research in each of the modules

    (g) Mode of Assessment

    Assessment will be by progressive assessment and fifinal written examination. The progressive assessment will be by the self paced research work done in each module and constitute 40% of the fifinal mark. The examination shall be done at the end of the semester and constitute 60% of the final mark.

    (h) Reading List

    1. Eoghan Casey (2010) Handbook of Digital Forensics and Investigation 1st Ed Elservier Academic Press
    2. Cory Altheide, Harlan Carvey (2011) Digital Forensics with Open Source Tools 1st Edition Elservier Inc

    (a) Description

    With the advent of more powerful computing equipment and better methodology, deep learning has became a reality. Deep learning presently represents the bleeding edge of Machine Learning. Deep learning attempts to model the high-level abstractions in data without explicitly specifying features in the data. Well develop basic methods for applications that include fifinding known models in images, image processing, feature extraction, tracking, and recognition.

    (b) Course Objectives:

    Upon completion of this course a student should be able to:-

    • Demonstrate knowledge and understanding of the theoretical and practical aspects of deep neural networks and convolutional neural networks.
    • Be able to evaluate and use different deep learning methodologies and tools to solve complicated problems for example Tensorflow, Cafe,Nolearn, Theano.
    • Be able to implement the basic deep learning methods and applications using Python and apply these in a tractable way to solve real-world problems.

    (c) Learning outcomes

    The intended learning outcomes for this course are :-

    • Students will be able to explain the key concepts of deep learning particularly deep neural networks and convolutional neural networks, and should be able to apply this knowledge to solving different types of problems.
    • Students will be able to articulate key concepts in deep learning to problem solving for example text mining and computer vision.
    • Students will be able to formulate solutions to problems by incorporation of deep learning techniques. They should be able to explain these techniques and evaluate how altering different algorithm parameters affects the system. Solutions should be tractable.
    • Students will be able generally to write well commented, properly tested code that illustrates the use of deep neural networks and convolutional neural networks to solve a specific real world problem of their choice.

    (d) Detailed Course Content:

    Teaching of this course will be in 4 modules. Each module will be a complete unit of teaching and will be assessed at independently during continuous assessments. This course is broken up into the following modules;

    1. Module 1: Machine learning to deep learning introduction (15 hours)

      This module shall deal with the transition from machine learning to deep learning. Topics will include the motivation for deep learning (from machine learning), basics of machine learning algorithms and optimization using gradient descent and SGD.

    2. Module 2: Deep neural networks (15 hours)

      This module will focus on neural networks, training a basic deep network, regularization of a deep network and model exploration and hyperparameter tuning.

    3. Module 3: Convolutional neural networks (15 hours)

      Convolutional neural networks have been used very successfully in practice for doing computer vision tasks. This module will concentrate in introducing convolutional neural networks and applying them for computer vision tasks.

    4. Module 4: Application of deep learning using toolboxes; Tensorflow, Cafe, Theano, Nolearn (15 hours)

      This module will focus on getting up and running with the different deep learning platforms. In this module students will investigate the different platforms and perform simple tasks on each to understand the relative differences and advantages.

    (e) Study Materials

    This course will mainly be offered using the Python programming language. Students are particularly encouraged to get up to speed with Python programming by the start of the course. This course will have as its pre-requisite proficiency in programming complex systems in Python. Students should possess a laptop computer for doing in-class programming assessments.The course will work around open source deep learning toolboxes. Students should install some of the trending deep learning packages particularly Cafe (http://caffe.berkeleyvision.org), Theano (http://deeplearning.net/software/theano/), Nolearn (https://pythonhosted.org/nolearn/) and Tensorflow (https://www.tensorflow.org).

    (f) Mode of study

    The only way to learn deep learning sufficiently is through hands-on experience programming these algorithms and applying them to real problems. The course is broken up into modules to facilitate learning of the different concepts. The mode of study will be inclusive of a variety of methods;

    • Lectures - these will be the chief mode of study. Lectures will take up 3 hours every week for 15 weeks.
    • Hands-on practice sessions - these will be for each topic. Small quizzes that require students to get hands-on practice with Machine Learning will be given out every week to cover content for that particular week.
    • Student mini projects - longer projects will be spaced out during the course and given after every module.
    • In-class practice sessions - each lecture will include some in-class practice sessions. Students will have to attend class with a reliably powered laptop to benefit from this mode of study.

    (g) Mode of Assessment

    Assessment will be three fold;

    Progressive assessment (40%). This will include in-class quizzes and cross-module projects

    Final exam (60%). Part of the fifinal exam may be a practical project.

    (h) Reading List

    Several reference books are available for this course - some of them free books and downloadable.

    1. Yoshua Bengio, Ian Goodfellow, Aaron Courville. Deep Learning 2016: MIT Press. Available: http://www.deeplearningbook.org
    2. Alex Krizhevsky, Ilya Sutskever, Geoffrey E Hinton. ImageNet Clas- sification with Deep Convolutional Neural Networks 2012: NIPS. Online: http://books.nips.cc/papers/files/nips25/NIPS2012_ 0534.pdf
    3. Itamar Arel, Derek C. Rose, and Thomas P. Karnowski. Deep Ma- chine Learning A New Frontier in Artificial Intelligence Research 2010. Available: http://www.ece.utk.edu/~itamar/Papers/DML_ Arel_2010.pdf
    4. Vic (J.R.) Winkler. Securing The Cloud: Cloud Computing Security Techniques and Tactics 2011: Syngress/Elsevier. Available: http:// www.sciencedirect.com/science/book/9781597495929
    5. Thomas Ristenpart, Eran Tromer, Hovav Shacham, and Stefan Savage. Hey, you, get off of my cloud: exploring information leakage in third- party compute clouds 2009: ACM, Available: http://dx.doi.org/ 10.1145/1653662.1653687

    Year 2

    Semester 1

    (a) Description

    This course will help students to strengthen their ability to do guided research. Through class presentations, students will provide progress on their masters research plans. This course will also help students to be equipped with scholarly writing and presentation skills. However, what is expected out of the students will be explicitly given to them and examined.

    (b) Course Objectives:

    The main objectives of this course are:-

    • Equip students with the ability to search for and internalize scientific academic material.
    • Develop the students ability in technical writing.
    • Develop the students' presentation skills.

    (c) Learning outcomes

    At the end of this course students should be able to:

    • Read and internalize scientific academic material in their area of specialization.
    • Developed appropriate conceptual and methodological approaches to their research.
    • Have developed a full research plan for their research-based dissertation.
    • Learned how to offer and received constructive comments on their work in progress.
    • Competently present scientific findings.

    (d) Detailed Course Content:

    Teaching of this course will be in four modules. Each module will be a complete unit of teaching and will be assessed at independently during continuous assessments. The content of the modules will include:

    1. Module One: Scientific paper writing (6 hours)
    2. Module Two: Scientific paper presentation (6 hours)
    3. Module Three: Presentation of research plan (9 hours)
    4. Module Four: Presentation and discussion of research progress (9 hours)

    (e) Study Materials

      Journal articles, conference proceedings, projector and laptop.

      (f) Mode of study

      Students will be given broad areas of study together with research questions to address by the beginning of the second semester. Each student will be given a senior staff who will be their supervisor and from whom they will get advice and guidance. The student will then be required to address one research problem and make a write up on it. The student will then be required to present their research proposal to the staff members in the department. As part of the course, the student will also be obliged to attend all (weekly) research talks in the school for the entire semester.

      (g) Mode of Assessment

      Students are expected to attend class every week, participate in discussions, and prepare and deliver presentation(s) during the semester. The method of assessment will be categorized as:

    • Attendance of weekly research seminars (10%)
    • Scientific paper write up and presentation (40%)
    • Research proposal presentation (40%)
    • Knowledge of subject matter (10%)

    (h) Reading List

    1. J. Zobel Writing for Computer Science Springer, 8, 2014.
    2. S. Keshav How to Read a Paper ACM SIGCOMM Computer Communication Review, 37(3), 83-84, 2007
    3. How to Present a Paper in Theoretical Computer Science: A Speaker's Guide for Students. https://larc.unt.edu/ian/pubs/ speaker.pdf
    4. Giving a Talk: Guidelines for the Preparation and Presentation of Technical Seminars. http://www.comm.toronto.edu/%7Efrank/ guide/guide.pdf
    5. The Paper Reviewing Process. http://greatresearch.org/2013/ 10/18/the-paper-reviewing-process/

    (a) Description

    This course is designed to build and expand the foundation of knowledge needed by successful and effective I.T managers through its coverage of concepts, techniques, and technologies relevant to IT projects management. The course design provides learners with broad knowledge of project management. It also provides both a theoretical and practical overview of the processes involved in managing large projects, with emphasis on those common to the information technology industry. Focus is on the various knowledge areas of project management organization namely: scope management, time management, cost management, risk management, quality management, change management, and integration management

    (b) Course Objectives:

    The main objectives of this course are to:

    • explore concepts of project management and leadership, steps of the project management framework, the project life cycle, and project charter.
    • discuss the roles of the project manager, the project team member and effectively communicate with the project team, clients and customer (sponsor)
    • examine the importance and function of project management and apply the project process of initiating, planning, executing, controlling and closing the project.
    • equip students with skills and knowledge in theoretical and practical understanding of the different project management areas of scope, integration, quality, cost, time, risk, human resources, communication and procurement.

    (c) Learning outcomes

    After completing this course the student will be able to:

    • demonstrate mastery of concepts of project management and leadership, steps of the project management framework, the project life cycle, and project charter.
    • Explain the processes involved in selecting and initiating a project and prepare various critical documents required for these processes.
    • Demonstrate Understanding of the importance and function of project management and apply the project process of initiating, planning, executing, controlling and closing the project.
    • Apply the knowledge and skills from the different project management areas of scope, integration, quality, cost, time, risk, human resources, communication and procurement. to plan and manage large IT projects

    (d) Detailed Course Content:

    Teaching of this course will be in ten modules. Each module will be a complete unit of teaching and will be assessed independently using continuous assessments. The content of the modules will include:

    1. Module One: Project planning and Control (15 hours)

      Principles of project management and control, the project management process, Work breakdown structure, Project planning, Project scheduling, Project budgeting, Cost Control, Risk management.

    2. Module Two: Project Management in the IT Context (5 hours)

      A systems view of project management, the project life cycle, recent trends in IT project management.

    3. Module Three: Integrated Project Management. 6 hours)
    4. Module Four: Project Budgeting and finance (6 hours)
    5. Module Five: Project risk management (5 hours)
    6. Module Five: Project Quality Management(5 hours)
    7. Module Five: Managing and leading the Human Resource (5 hours)
    8. Module Five: Communication management and Team building (5hours)
    9. Module Managing the Procurement Process (4 hours)
    10. Module Five: Project Closure and Reporting (4 hours)

    (e) Study Materials

    Samples of project reports, Case studies

    (f) Mode of study

    Lectures, class presentations, class discussions, independent study, case studies, class demonstrations/presentations.

    (g) Mode of Assessment

    After each module, students will have to present fifindings from research papers that are related to the topics covered in the module. Students will also be expected to carry out-group projects. The assessment will be categorized as:

    • A Progressive assessment (40%). This will include in-class quizzes and cross-module projects
    • Final examination (60%).

    (h) Reading List

    Each of the modules will have a pointer to a list of published research papers that will be relevant for the topics covered in each module. However, some of the relevant materials for this course are listed below.

    1. Schwalbe, K. Information Technology Project Management. Sixth Edition 2010. Cengage Learning
    2. Richman, L. Project Management Step - by - Step. 2011. American Management Association.
    3. Billows, D. Advanced Project Management Techniques. 4th Edition 2009. Gower Publishing, Ltd.

    (a) Description

    This course focuses on enterprise information systems that are driven by models. Of particular interest are so-called \process-aware" information systems. Typical examples are Workflow Management (WFM) systems,Business Process Management (BPM) systems, and the process engines of ERP, CRM, PDM and other enterprise information systems. The first part of the course focuses on the modeling and implementation of workflows. Different languages and systems are presented. Emphasis is on the controlflow and resource perspective. The second part of the course focuses on the analysis of workflows and business processes. This will cover techniques like workflow verification and process mining.

    (b) Course Objectives:

    The objectives of this course are to:

    • equip students with skills needed to identify business processes within an organization.
    • equip students with skills necessary to document business processes using different business process modeling techniques.
    • be equipped with skills to translate informal requirements into explicit models and model complex business processes in terms of various languages,
    • understand the functionality and architecture of a variety of processaware information systems (e.g., workflow management systems like YAWL),
    • understand the relation between Service Oriented Architecture (SOA) and BPM architectures,
    • understand the workflow patterns and their use to characterize and model processes and to evaluate systems,
    • provide an overview of the different analysis techniques (simulation, process mining, verfication, etc.),

    (c) Learning outcomes

    Upon completion of this course, the student shall be to:

    • explain the organizational merits of process thinking and the use of process-aware information systems in particular,
    • translate informal requirements into explicit models and model complex business processes in terms of various languages,
    • describe the functionality and architecture of a variety of processaware information systems (e.g., work ow management systems like YAWL),
    • demonstrate an understanding of the relation between Service Oriented Architecture (SOA) and BPM architectures,
    • use the workflow patterns to characterize and model processes and to evaluate systems,
    • demonstrate an understanding an overview of the different analysis techniques (simulation, process mining, verfification, etc.),

    (d) Detailed Course Content:

    content Teaching of this course will done in modules. Each module will be a complete unit of teaching and will be assessed independently during continuous assessments. The content of the modules will include:

    1. Introduction to Business Process Management Systems. (6 hours)Role of models in the BPM lifecycle.
    2. Modeling the Controlflow perspective. (10 hours) Focus on the controlflow perspective of business process and model based on Wf-nets. Translate languages coming from a variety of tools ranging from business process modeling tools to workflow management systems to Wf-nets and evaluate systems, to understand concepts such as WF-nets, soundness, etc.
    3. Modeling the Resource perspective. (6 hours)Discuss modeling of resource perspective of business processes. Consider resource classification and resource management rules used to map work onto resources.
    4. Workflow Management Systems. (6 hours) Describe the functionality and architecture of a variety of process-aware information systems. Focus on the workflow management system YAWL.
    5. Workflow Patterns. (6 hours) Discuss the different categories of workflow patterns, i.e., controlflow, resource and data patterns. Use the workflow patterns to characterize and model processes and to evaluate systems
    6. Business Process Verification. (6 hours) Discuss the analysis of business processes before they are put in production. Explain and recognize semantic problems such as the vicious circle in the presence of OR-joins.
    7. Process Mining. (10 hours) Discuss process mining techniques in detail. Apply different process discovery techniques, understand and apply conformance checking techniques. Use ProMLite as the process mining tool
    8. Business Process Configuration and Services. (10 hours) Model a family of processes in terms of a configurable process model, discuss the basic principles of process configuration, and explain how BPM systems can be used to compose new services.

    (e) Study Materials

      This course will mainly be offered using WoPed (Workflow Petrinet Designer) and YAWL which is an open source workflow management system. Students will be required to come up with a practical workflow management systems using YAWL. Students are encouraged to get up to speed with modelling using Petri nets and also be conversant with modelling using Business Process Modelling Notation (BPMN).

      (f) Mode of study

    • Lectures, tutorial/practical sessions as well as demonstrations.
    • Individual and group-based tutorial.
    • Class presentations
    • (g) Mode of Assessment

      Assessment will include:

    • Progressive assessment (40%).
    • Final exam (60%).

    (h) Reading List

    Several reference books are available for this course - some of them are free books and downloadable.

    1. Weske, M. An Business Process Management: Concepts, Languages, Architecture. (Second Edition) 2012: Springer.
    2. van der Aalst, W.M.P Process Mining: Data Science in Action (Second Edition) 2016. Springer
    3. van der Aalst, W.M.P and and van Hee, K. Workflow Management:Models, Methods and Systems. MIT Press) 2002. MIT Press
    4. ter Hofstede, A., van der Aalst, W.M.P., Adams, M., and Russell, N. Modern Business Process Automation: YAWL and its Support Environment 2010

    (a) Description

    Geographical information systems (GIS) are powerful tools for handling geographically referenced data. This course introduces students to the fundamental principles, concepts and techniques of geographic information systems (GIS) and remote sensing (RS). Students will also be introduced to theoretical, practical and application-oriented aspects of GIS and RS. Students will be able to learn how to independently design and carry out sequential data processing chains in the application fields of geo-information science. The course will cover: Characteristics of spatial data; Models of spatial information; Spatial relationships and algorithms; Spatial analysis (such as route planning, map overlay, buffer zoning, etc.); Database models for spatial data; Errors in spatial data; Sources of raster spatial data and introduction to remote sensing; Sources of vector spatial data; Ethical issues and spatial data; Cartographic communication the display of spatial data; Coordinate systems and map projections. REMOTE sensing, Geo-DBMS (spatial ADT's, spatial indexing, etc), Mobile GIS" (location based services, combination with positioning, e.g. GPS, Galileo, etc). Students will do Laboratory assignments that can include the following aspects: urban & rural planning, water, management, utilities pipelines and cables, etc.

    (b) Course Objectives:

    The objective of this course is to equip students with skills and knowledge of how to generate information about the Earth from remote sensing and data stored in Geographic Information Systems.

    (c) Learning outcomes

    Upon completion of this course, the student shall:

    • be able to identify basic concepts and operations of a GIS and Remote Sensing
    • be able to describe the nature of geographic phenomena and their representation in the context of geo-informatics
    • have gained an understanding of the principal data models for spatial and non-spatial data used in GIS databases;
    • be able to describe the physical background of remote sensing and compare the main platforms and sensor systems using examples for Applied Earth Science
    • be able to explain the main digital image processing procedures in their fifield of application
    • be to apply and demonstrate an understanding of RS/GIS technology, operations, methods and techniques

    (d) Detailed Course Content:

    content Teaching of this course will done in modules. Each module will be a complete unit of teaching and will be assessed independently during continuous assessments. The content of the modules will include:

    1. Functionality and applications of a GIS (2D, 3D, or 4D (3D + time). (4 hours)
    2. Characteristics of spatial data. Models of spatial information. (4 hours)
    3. Spatial relationships and algorithms. (4 hours)
    4. Spatial analysis (such as route planning, map overlay, buffer zoning, etc.). (4 hours)
    5. Database models for spatial data. (4 hours)
    6. Errors in spatial data. (4 hours)
    7. Sources of raster spatial data and introduction to remote sensing. (4 hours)
    8. Sources of vector spatial data. (4 hours)
    9. Ethical issues and spatial data. (4 hours)
    10. Cartographic communication the display of spatial data. (4 hours)
    11. Coordinate systems and map projections. (4 hours)
    12. Remote sensing. (4 hours)
    13. Geo-DBMS. (4 hours)
    14. Mobile GIS (Location based services, combination with positioning e.g. GPS, Galileo,..). (4 hours)
    15. Laboratory assignments to include: urban & rural planning, water, management, utilities pipelines and cables, etc.. (4 hours)

    (e) Study Materials

      The materials shall include textbooks, journal/conference papers, remote sensing/GIS and data visualisation tools and platforms, and several freely available online resources

      (f) Mode of study

    • Lectures, tutorial/practical sessions as well as demonstrations.
    • Individual and group-based tutorial.
    • Wide range of computer-based learning and other tools will be used to support the student's learning process.
    • Use of real life case studies and individual literature review of current developments in the GIS
    • (g) Mode of Assessment

      Assessment will include:

    • Progressive assessment (40%).
    • Final exam (60%).

    (h) Reading List

    Several reference books are available for this course - some of them are free books and downloadable.

    1. Ian Heywood, Sarah Cornelius and Steve Carver. An Introduction to Geographical Information Systems (Fourth Edition) 2012: Pearson.
    2. James B Campbell and Randolph H. Wynne. Introduction to Remote Sensing (Fifth Edition) 2011. The Guilford Press
    3. Editors: Klaus Temp i, Norman Kerle, Gerrit C. Huurneman and Lucas L. F. Janssen. Principles of Remote Sensing An introductory textbook. (Fourth Edition) 2009: ITC, Enschede, The Netherlands
    4. Editors: Otto Huisman and Rolf A. de . Principles of Geographic In- formation Systems An introductory textbook (Fourth Edition) 2009: ITC, Enschede, The Netherlands.

    (a) Description

    This course prepares students to develop advanced applications and services for mobile devices, equipping them to become highly skilled professionals for the Mobile Industry with the latest and relevant skills set. Students are expected to already have basic mobile development and programming experience

    (b) Course Objectives:

    The main objectives of this course are:-

    • to equip students with latest and relevant mobile industry skills
    • provide students with advanced knowledge in modern programming languages for mobile platforms such as Swift, Python and Java.
    • to provide students with an understanding on integrating cloud services, networking, the OS and hardware into mobile-applications.
    • to skill students on Testing methodologies for mobile applications.
    • to enable students understand Publishing, deployment, maintenance and management of applications and content

    (c) Learning outcomes

    The intended learning outcomes for this course are :-

    • students will be able to demonstrate an understanding of and ability to develop software for latest mobile platforms.
    • students have acquired knowledge in modern programming languages for mobile platforms such as Swift, Python and Java.
    • students will have an understanding of integrating cloud services,networking, the OS and hardware into mobile-applications.
    • students will be able to publish, deploy, maintain and manage mobile applications, services and content.
    • students be competent with understanding enterprise scale requirements of mobile applications as well as the ability to develop mobile applications using one application development framework.

    (d) Detailed Course Content:

    Teaching of this course will be in 12 modules. Each module will be a complete unit of teaching and will be assessed at independently during continuous assessments. This course is broken up into the following modules;

    1. Module 1: Review of Mobile Computing fundamentals. (3 hours)
    2. Module 2: Fundamentals of Mobile Terminal Hardware set-up (6 hours) Radio, DSP, Memory and CPU components. The division into access & application parts. Base Station side radio interface standards.
    3. Module 3: Review of Mobile Operating System Platforms (OSPs) (6 hours) Android, Linux & Microsoft mobile, iOS.
    4. Module 4: Advanced Mobile User Interface (6 hours) Menu system, and Applications.
    5. Module 5: Software set-up in modern Mobile Terminals (6 hours)
    6. Module 6: Overview of Mobile Multimedia Codecs (6 hours)
    7. Module 7: Fundamentals of Mobile Content & Mobile web content design. (3 hours)
    8. Module 8: Widgets & W3C Standards (6 hours) Device Recognition & dotMobi. The .mobi top level domain (TLD) initiative for mobile optimized web-site creation.
    9. Module 9: Advanced concepts of programming languages (6 hours) Programmable mobile phones.(4 hours)
    10. Module 10: The mobile applications (4 hours) Services ecosystem.
    11. Module 11: The Mobile IP stack and mobile web-browsing (4 hours) The WAP-protocol & Location Information.
    12. Module 12: Principles of Multimedia Messaging (SMS, MMS) and web services (4 hours)

    (e) Study Materials

      This course will mainly be offered using the mobile platforms and mobile programming languages such as Java, Swift and Python. Students are particularly encouraged to get up to speed with mobile programming and platforms by the start of the course. This course will have as its prerequite proficiency in programming and mobile platforms. Students should possess a laptop computer for doing in-class programming assessments

      (f) Mode of study

    • Lectures and seminars.
    • Student mini projects
    • Practical sessions
    • (g) Mode of Assessment

      Assessment will consist of:

    • Progressive assessment including Weekly quizzes, practical projects (40%)
    • Final exam - for overall assessment (60%). Part of the final exam may be a practical project.

    (h) Reading List

    Several reference books are available for this course - some of them free books and downloadable.

    1. Bill, P. and Chris, S. and Brian, H., and Kristin M. Android Program- ming: The Big Nerd Ranch (2nd edition) 2015. LLC.
    2. Maximiliano, F. Programming the Mobile Web (2nd ed) 2013: OReilly Media, Inc.
    3. Cristian, C. and Erin, M. Designing Social Interfaces (2nd ed) 2014: OReilly Media, Inc.
    4. Benjamin, J. E. and Martijn, V. The Well-Grounded Java Developer: Vital Techniques of Java 7 and Polyglot Programming 2013: Manning Publications.

    (a) Description

    This course covers the applications of the Internet of Things (IoT) and their relevance to developing countries, with a focus on low-cost, open and sustainable solutions as well as Policy and regulation that apply. Exponentially developing technologies that spawn new services and applications, coupled with regulatory reform, changing legal frameworks and the emergence of new markets, have given rise to increased demands for training and skills development. Further, the impact of convergence and globalization has intensified the ongoing challenge to people in these sectors to remain informed of local developments and international trends and practices. The IoT technology has the potential to change the world, just as the Internet did. This is very much starting to happen, as the continual decrease in size, cost, and energy consumption of wireless devices is dramatically boosting the number of mobile objects. The number of mobile objects composing the IoT will significantly grow: in 2020, between 12 and 50 billion devices are expected to be connected with each other, a 12 to 50-fold increase from 2012. This implies that the traffic generated will explode. The huge amount of traffic will require standardized interfaces and IP address utilization, such as IPv6. The course will cover Introduction to Internet of Things and ICT Standards and Regulation. Stake holders & echo system in communications Technology & Services. QoS regulation in Communications Networks. Enabling policies for Sustainable Communications and Information Technology services.

    (b) Course Objectives:

    The objectives of the course are to:

    • introduce students to the concepts of IoT.
    • Understand IoT Market perspective.
    • explore the interconnection and integration of the physical world and the cyber space.
    • design & develop IOT Devices.
    • provide Data and Knowledge Management skills with the use of Devices in IoT Technology.
    • understand State of the Art IoT Architecture.
    • understand the real World IoT Design Constraints, Industrial and Commercial Automation in IoT.

    (c) Learning outcomes

    By the end of the course, students should be able to:

    • demonstrate an understanding of the fundamentals of IoT and Wireless sensor network communications
    • Demonstrate an understanding of the basic principles, practices and regulatory objectives to be achieved in licensing services; administering universal service obligations and resources.
    • Design, implement and Deploy an IoT solution
    • Work with IoT open software and open hardware platforms
    • Demonstrate an understanding of the basic principles, practices and regulatory objectives to be achieved in administering competition policy; transparent and efficient interconnection and facilities leasing policy; and tariff and rate regulation.

    (d) Detailed Course Content:

    Teaching of this course will be in nine modules. Each module will be a complete unit of teaching and will be assessed independently during continuous assessments. The content of the modules will include:

    1. Module: Introduction To IoT (3 hours)
    2. Module: WSN; MAC, IEEE 802.15.4; WSN Communications (802.15.4, Wifi, Gprs, Bt)(9 hours
    3. Module: Routing, RPL (6 hours)
    4. Module: Design and Deployment of IoT solution. Open Software, Open Hardware And Arduino. Introduction To Middleware (6 hours)
    5. Module: Law, regulation, governance and the institutional framework; Licensing and monitoring; Competition policy and resource management; Internet policy and the Internet in effective regulation (9 hours)
    6. Module: Universal access, universal service and the digital divide; Net neutrality and the open Internet. (9 hours)
    7. Module: Interconnection and facilities-leasing; (6 hours)
    8. Module: Price and tariff regulation (6 hours)
    9. Module: Quality of service and consumer protection (6 hours)

    (e) Study Materials

      The materials shall include textbooks, journal/conference papers, and several freely available open online educational resources.

      (f) Mode of study

      Teaching will be by lectures, presentations, demonstrations, discussions, and guided self-paced studies learning

      (g) Mode of Assessment

      Coursework (Assignments and projects) (40%) and fifinal examination (60%).

    (h) Reading List

    1. Arshdeep, B. and Vijay, M. Internet of Things: A Hands-On Approach 2014. Vijay Madisetti, USA.
    2. Maciej, K. Building the Internet of Things: Implement New Business Models, Disrupt Competitors, Transform Your Industry. 2016. WILEY Publishing.
    3. Li, S. and Xu, L. D. Securing the Internet of Things 2017. Syngress, Boston, USA.
    4. Adria,n M. and Hakim C. Designing the Internet of Things (1st ed.) 2013. WILEY Publishing, Boston, USA.

    Semester 2