Skip to content

Curriculum · Postgraduate Diploma

Postgraduate Diploma in Computer Science

The Postgraduate Diploma in Computer Science curriculum and course requirements.

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