Introduction

The Post Graduate Diploma in Computer Science aims at equipping students with advanced skills in Computer Science.

The objectives of the program are to:

  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 then grow with the technological advancements as well as help them participate in the development of new technologies

The Program

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:

  • 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, software engineering/software development, and cloud computing among others.
  • those interested in pursuing Masters research in Computer Science.

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.

Regulations

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:

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

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.

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

Detailed Curriculum

Year 1

Semester I

(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 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 is 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 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:

  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

Semester II

(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

    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 finding 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 final 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 final 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

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

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

    (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:

    • 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 is 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 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

    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