The Post Graduate Diploma in Computer Science aims at equipping students with advanced skills in Computer Science.
The objectives of the program are to:
Target Group
The program is designed for graduates who wish to gain advanced knowledge in Computer Science. The broad target groups include but not limited to:
program Duration
The duration of the program is two semesters and one recess term spread in one year. Each semester has fifteen weeks of studying and two weeks of examinations. A recess term is made up of ten weeks.
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.
Admission requirements
To be admitted to the Post Graduate Diploma in Computer Science, the candidate must hold an undergraduate degree in Computer Science, Computer Engineering, and 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 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.
Progression
Progression is regarded as normal, probationary or discontinuation as per the standard Makerere University senate guidelines:
Normal Progress
This occurs when a student passes each course unit taken with a minimum Grade Point of 3.0
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.
Discontinuation
When a student accumulates three consecutive probations based on the CGPA or the same core course unit(s), s/he is 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 is discontinued from his/her studies at the University. A student who has overstayed in an academic program by more than two (2) years is discontinued from his/her studies at the University.
Retaking a course unit or course units:
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 first 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.
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:
Semester Load and Minimum Graduation Load
The normal semester load is between 15 and 21 credit units. The minimum graduation load is 120 credit units of which 106 credit units are from core course units. The remaining 14 credit units are to be gotten from elective course units in semesters where elective courses are offered.
Course Assessments
Each course will be assessed on the basis of 100 marks with proportions as follows:- Coursework – 40% and Examination 60%
A minimum of two course assignments/tests is required per course
Course work shall consist of individual tests, group assignment and presentations in each semester.
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 |
MCS 7106 | Advanced Topics in Computer Science | 30 | 60 | 60 | 4 |
Total Credit Units | 16 |
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 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 | 16 |
Artificial Intelligence and Data Science Option
Code | Name | LH | PH | CH | CU |
---|---|---|---|---|---|
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 7204 | Deep Learning | 30 | 60 | 60 | 4 |
MCS 7205 | Digital Forensics | 30 | 60 | 60 | 4 |
Total Credit Units | 16 |
Recess Term
Code | Name | LH | PH | CH | CU |
---|---|---|---|---|---|
PGD 7307 | Postgraduate Diploma Project | 5 | |||
Total Credit Units | 5 |
Minimum Graduation Load: 37 credit units
(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:
(c) Learning outcomes
By the end of the course, students is able to:
(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;
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.
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.
Module 3: Optimization (15 hours)
Review of linear optimization and scheduling techniques
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 is by progressive assessment (40%) and final examination (60%). Progressive assessment is done by doing a self paced literature search and report on/critique scientific arguments in each module. The final examination is set by the lecturer identifying one area per module focusing on the practicals and applications in real life. The student is 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:
(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:
(c) Learning outcomes
At the end of this course, students will have:
(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;
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.
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.
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).
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
(h) Reading List
The reference books for the course are:
(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:(c) Learning outcomes
After completing this course the student will:
(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:
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.
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.
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.
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.
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.
(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:-(c) Learning outcomes
The intended learning outcomes for this course are :-
(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;
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.
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.
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.
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.
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.
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:
(h) Reading List
Several reference books are available for this course - some of them are free books and downloadable.
(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:
(c) Learning outcomes
By the end of this course, students will have gained:
(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;
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.
TThis module will cover the coves analytics and visualisation tools like D3.JS
High dimensional data, network data, geographic data and text data.
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:
(h) Reading List
(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:
(c) Learning outcomes
By the end of this course, students will have gained:
(d) Detailed Course Content:
The course will cover the following content:
(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.
(h) Reading List
Several reference books are available for this course - some of them are free books and downloadable.
(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:
(c) Learning outcomes
By the end of the course, students should be able to:
(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:
(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
(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:(c) Learning outcomes
At the end of this course unit students should be able to:
(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:
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.
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.
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.
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.
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 finding overlaps in social networks, detecting communities with AGM, analysis of large Graphs and Social Networks.
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:
(h) Reading List
(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:
(c) Learning outcomes
At the end of this courses students should be able to have gained the following:
(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;
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.)
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).
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.)
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)
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
(h) Reading List
(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 finding 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:-(c) Learning outcomes
The intended learning outcomes for this course are :-
(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;
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.
This module will focus on neural networks, training a basic deep network, regularization of a deep network and model exploration and hyperparameter tuning.
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.
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;
(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 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.
(a) Description
This course involves studying of investigative methods for finding 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 findings, 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:
(c) Learning outcomes
TBy the end of the course, the students is able to:
(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:
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.
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.
Collecting and analyzing network-based evidence, OS registry changes, intrusion detection, tracking offenders, etc.
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.
Web cache, history, bookmarks, Mail header analysis; E-mail server analysis; Building timeline; network e-mail logs; and tracking e-mail messages.
Live analysis of systems, Collecting volatile data, Analyzing Log Files
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 final written examination. The progressive assessment will be by the self paced research work done in each module and constitute 40% of the final mark. The examination is done at the end of the semester and constitute 60% of the final mark.
(h) Reading List