0% found this document useful (0 votes)
109 views34 pages

Course Syllabus For Computer S. PG

The document provides course syllabi for various computer science courses in Year I, Semesters I and II. It includes information on course codes, titles, credit hours, status, prerequisites and descriptions for courses on Cryptography, Cloud Computing, Distributed Systems, Big Data Analytics, Natural Language Processing, Software Project Management, Research Methods and Machine Learning. One of the course descriptions provided is for the Software Project Management course, which discusses software development tasks, project cost estimation, planning documents, teamwork and assessments.

Uploaded by

Tahir Isse Mader
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
109 views34 pages

Course Syllabus For Computer S. PG

The document provides course syllabi for various computer science courses in Year I, Semesters I and II. It includes information on course codes, titles, credit hours, status, prerequisites and descriptions for courses on Cryptography, Cloud Computing, Distributed Systems, Big Data Analytics, Natural Language Processing, Software Project Management, Research Methods and Machine Learning. One of the course descriptions provided is for the Software Project Management course, which discusses software development tasks, project cost estimation, planning documents, teamwork and assessments.

Uploaded by

Tahir Isse Mader
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 34

1.

COURSE SYLLABUS

Year I, Semester I
Status
Course Code Course Title Credit Hours ECTS
CoSc5141 Cryptography and Computer Security Not
3 7
Started
CoSc5181 Cloud and Edge Computing On
3 7
Progress
CoSc5121 Distributed Systems On
3 7
Progress
CoSc5171 Seminar in Computer Science Not
1 3
Started
CoSc52*1 Big Data Analytics Not
3 7
Started
Sub Total 0 0

Year I, Semester II
Credit Status
Course Code Course Title ECTS
Hours
CoSc5152 Natural Language Processing 3 7 Completed
CoSc5112 Software Project Management 3 7 Completed
CoSc5162 Research Methods 2 5 Completed
CoSc5132 Machine Learning Not
3 7
Started
CoSc52*2 Digital Image Processing and 3 7 Not
Computer Vision Started
Sub Total 0 0

Course Title: Software Project Management


Course Code: CoSc5112
Credit Hours: 3 (7 ECTS)
Prerequisite Course(s): None
Description of Course
The course discusses about the current methods and practices for good design of software
systems and functions of software project management. And here students are expected to
develop different SPM related working documents.
Learning Outcomes
On successful completion of the Course students will be able to:
 Describe software development and software project management tasks
 Estimate software project costs
 Prepare planning documents: SPMP, RMP, SCMP, and SQAP
 Manage and assess real projects
 Develop team work spirit
Course Content
1. Software design patterns
2. Frameworks and architectures of software development
3. Designing systems
4. Project management Fundamentals
4.1 Software Requirement Engineering,
4.2 Design
4.3 Maintenance and Testing
5 Software Project Planning
6 Work Breakdown Structure and Schedule
7 Software Project Estimation
8 Risk and Change Management
9 Software Quality Assurance
10 Team Management
Teaching Strategy/Method: Lecture and Laboratory
 Lecture and reading assignment, presentation,
 Presentations and discussions of specific assignments
 Laboratory work and Group work
Method of Assessment
This Course is assessed by assignments and an examination. Every assignment is a group work
and includes:
 Ass. 1: Software project management plan- students will produce software project
management plan (SPMP) document of their project.
 Ass. 2: Risk management plan- students will produce risk management plan (RMP)
document of their project.
 Ass. 3: Software configuration management plan- students will produce configuration
management plan (SCMP) document of their project.
 Ass. 4: Software quality assurance plan- students will produce quality assurance plan
(SQAP) document of their project.
 Ass. 5: Assessment report-students assess and produce a report on a completed/ongoing
real project. Each assignment will be defended by the students and feedbacks will be given
to them by the instructor.
Text Books and Reading Materials
1. Steve McConnell, Software Project – Survival Guide, Microsoft Press.
2. Walker Royce, Software Project Management, Pearson.
3. Robert K. Wysocki, Effective Software Project Management, Wiley.
4. E-Book on OO Software Project Management
Course Title: Distributed Systems
Course Code: CoSc5121
Credit Hours: 3 (7 ECTS)
Prerequisite Course(s): None
Description of Course
This Course is intended to introduce to students the current developments in distributed
systems, their construction, issues that are involved in building reliable distributed systems, and
possible applications of distributed systems.
Learning Outcomes
At the end of this Course, students will be able to
 Understand issues in developing distributed systems
 Explain how communication is handled in distributed systems
 Realize issues and difficulties in clock synchronization over several machines
 Learn the different methods that are used in handling consistency and replication and
how fault tolerant systems are built
Course Content
1. Introduction
1.1. Introduction and Definition
1.2. Goals of a Distributed System
1.3. Types of Distributed Systems
2. Architectures
2.1. Architectural Styles
2.2. System Architectures
3. Processes
3.1. Threads and their Implementation
3.2. Anatomy of Clients
3.3. Servers and Design Issues
3.4. Code Migration
4. Communication
4.1. Network Protocols and Standards
4.2. Remote Procedure Call
4.3. Message-Oriented Communication
4.4. Stream-Oriented Communication
4.5. Multicast Communication
5. Naming
5.1. Names, Identifiers, and Addresses
5.2. Flat Naming
5.3. Structured Naming
5.4. Attribute-Based Naming
6. Synchronization
6.1. Clock Synchronization
6.2. Logical Clocks
6.3. Mutual Exclusion
6.4. Election algorithms
7. Consistency and Replication
7.1. Reasons for Replication
7.2. Data-Centric Consistency Models
7.3. Client-Centric Consistency Models
7.4. Replica Management
7.5. Consistency Protocols
8. Fault Tolerance
8.1. Introduction to Fault Tolerance
8.2. Process Resilience
8.3. Reliable Client-Server Communication
8.4. Reliable Group Communication
8.5. Distributed Commit
8.6. Recovery
Teaching Strategy/Method
This course will be offered through lectures, presentations, class discussions, laboratory work
and Group project work. Students present their assignments, and get feedbacks.
Method of Assessment
 Written exams,
 Lab assignments, reports and presentations of assignments.
Text Book and Reading Materials
1. A. S.Tanenbaum and Maarten van Steen, Distributed Systems, Principles and Paradigms,
Prentice Hall, 2nd edition, 2006.
2. G. Coulouris, J. Dollimore, and T. Kindberg, Distributed Systems, Concepts and
Design, Addison Wesley, 4th edition, 2005.
3. A. S. Tannenbaum, Computer Networks, Prentice Hall, 4th edition, 2003.
4. S. Mullender, Distributed Systems, 2nd edition, Addison-Wesley, 1993.
Course Title: Machine Learning
Course Code: CoSc5132
Credit Hours: 3 (7 ECTS)
Prerequisite Course(s): None
Description of Course
This course is about learning to extract statistical structure from data, for making decisions and
predictions, as well as for visualization. The course will cover many of the most important
mathematical and computational tools for probabilistic modeling, as well as examine specific
models from the literature and examine how they can be used for particular types of data. There
will be a heavy emphasis on implementation. You may use Matlab, Python or R. Each of the five
assignments will involve some amount of coding, and the final project will almost certainly
require the running of computer experiments.
Learning Outcomes
The goal of the field of machine learning is to build computer systems that learn from experience
and that are capable to adapt to their environments. Learning techniques and methods developed
by researchers in this field have been successfully applied to a variety of learning tasks in a
broad range of areas, including, for example, text classification, recommender systems, gene
discovery, financial forecasting, credit card fraud detection, speech recognition, bioinformatics
and others.
The course will provide students with knowledge of various types of machine learning problems
and algorithms, and their use in practical applications. Students, upon completing this course,
should be able to:
 explain and differentiate modern machine learning techniques;
 identify potential application areas where machine learning techniques can be useful,
 frame the problem in terms of machine learning,
 Select appropriate techniques based on the particular characteristics of the domains and
applications under consideration.
 Implement the solution, and evaluate the results.
The assignments and project will give students experience applying this knowledge using tools
suitable for machine learning researchers, such as Matlab, R, Python and the WEKA toolkit.
Students will have the opportunity, in their course projects, to not only learn but also create and
apply sophisticated machine learning-based techniques to different application areas like speech
recognition, speaker identification, face recognition etc.
Course Content
1. Machine Learning Overviews
 Introduction to machine learning
  Definition of learning systems
 Goals and applications of machine learning
 AI Vs ML
 Essential Math for ML and AI
2. Supervised Learning
 Regression such as Logistic regression, linear regression and ridge regression
 Classification or Learning Algorithms such as decision tree learning, instance-based
learning (k-nearest-neighbours, collaborative filtering, Case-based learning),
support vector machines (Kernels for learning non-linear functions, kernel methods,
bootstrap, Bayesian learning (naive Bayes classifier and Bayesian networks), EM
algorithms, rule learning (Heuristic rule induction, Learning recursive rules. Inverse
resolution, Golem, and Progol), artificial neural networks (Perceptron, Multilayer
networks and back propagation. Hidden layers and constructing intermediate,
distributed representations. Over fitting, learning network structure, recurrent
networks.)
3. Unsupervised Learning
 Learning from unclassified data.
 Dimensionality reduction and density estimation
 Clustering. Hierarchical Agglomerative Clustering. K-means partitioned clustering.
Expectation maximization (EM) for soft clustering. Semi-supervised learning with EM
using labelled and unlabelled data, Graph-Based Algorithms and Multi-view Algorithms
4. Reinforcement Learning
 Introduction to reinforcement learning,
 Bandit problems and online learning
 Dynamic programming, Frontiers of RL, Monte-Carlo Methods, Temporal Difference
Learning (Q-learning and R-learning) etc.
 Policy Search such as gradient based via backpropagation and gradient free search
method.
5. Deep Learning
 Modern Practical Deep Networks such as Deep Feed forward Networks, Neural
Networks, Bayesian neural nets, Deep Boltzmann Machine(DBM), Deep Belief
Networks(DBN), Convolutional Neural Networks,Sequence Modelling: Recurrent
and Recursive Nets.
 Deep learning platforms such as SciKit-Learn, Tensor flow, DeepLearning4J,
Theano, Keras, PyTorch and etc.
6. Computational Learning Theory
 Models of learnability: learning in the limit; probably approximately correct (PAC)
learning. Sample complexity: quantifying the number of examples needed to PAC learn..
 Inductive learning and analytical Learning ,Parametric vs. non-parametric learning
 Dimensionality Reduction techniques such as Principal Component Analysis, Factor
Analysis (FA) and Linear Discriminant Analysis (LDA).
7. Experimental Evaluation of Learning Algorithms
 Measuring the accuracy of learned hypotheses.
 Comparing learning algorithms:
 Model selection, cross-validation, AUC, Precision, Recall, Specificity, Mean
absolute percentage error, Root mean square error learning curve, and statistical
hypothesis testing.
Teaching Strategy
This course will be offered through lectures, presentations, class discussions, laboratory work
and Group project work. The exact contents of this course may vary. New materials may be
added as new technologies emerge.
Method of Assessment
This module is assessed by a project, article review and examinations. Each group will present
project and article review in the class, defended/demonstrated by the students and feedbacks will
be given to them by the instructor and by other peer students in the class.
Teaching Support and Inputs for each content
There is no single text book for the module. It is, thus, recommended that the students read
appropriate chapters from the given reading materials in addition to their own reading materials.
Module Requirements
 Every student should attend all lectures: - Students should group themselves into 3 for the
project work, article review and identify their own project titles.
 Students should submit every assignment according to the deadline.
 Students should present/demonstrate their assignments.
 Students should sit for the written examination.
Reading Materials
 F. V. Jensen. "Bayesian Networks and Decision Graphs". Springer. 2001.
 Neural Networks and Deep Learning by Michael Nilson
 The Elements of Statistical Learning by Trevor Hastie, Robert Tibshirani & Jerome
Friedman
 Machine Learning: A Probabilistic Perspective Kevin P. Murphy, MIT Press, 2012.
 Pattern Recognition and Machine Learning Christopher M. Bishop, Springer, 2006.
 Information Theory, Inference, and Learning Algorithms David J.C. MacKay,
Cambridge University Press, 2003.
 Machine Learning: a Probabilistic Perspective by Kevin Patrick Murphy,2013
Course Title: Cryptography and Computer security
Course Code: CoSc5141
Credit Hours: 3 (7 ECTS)
Prerequisite Course(s): None
Description of Course
This course is about fundamentals of computer security and privacy, the importance of security
for computer systems, protection schemes and policy, network security concepts and
mechanisms, public and private key encryption techniques, network layers’ security, computer
forensics, legal and policy issues, viruses and worms, web security and programming security.
Learning Outcomes
On successful completion of the Course students will be able to:
 Describe elements of computer security and privacy
 Investigate the degree of vulnerability of a computing environment to security threats
 Identify computer security threats in a computing environment and prepare the necessary
counter measures for protection
 Deploy security techniques like encryption, cryptography, access control, firewall, etc.
 Develop computer security and privacy policies, procedures and guidelines for a
computing environment.
 Develop team work spirit and communication skills
Course Content
1. Fundamentals of Computer Security & Privacy
1.1. Overview and History
1.2. Vulnerabilities
1.3. Countermeasures
1.4. Physical Security
2. Computer Security Threats
2.1. Viruses
2.2. Worms
2.3. Trojan horses
2.4. Crackers
2.5. Spy-wares
3. Security Techniques
3.1. Encryption
3.2. Cryptography
3.3. Access Control
3.4. Firewall
3.5. Biometrics
4. Web Security
4.1. Basics of HTTP
4.2. Cookies
4.3. Session hijacking
4.4. PHP injection attacks
4.5. SQL injection attacks
4.6. Cross-site request forgeries (and countermeasures)
4.7. Cross-site scripting attack
5. Network Security Concepts and Mechanisms
5.1. Denial of Service attacks
5.2. Software Security Mechanisms
5.3. Network intrusion and scanning
5.4. TCP security
6. Secure System Planning and Administration
6.1. Analysing Risks
6.2. Planning
6.3. Policies and Procedures
7. Legal, Ethical and Policy Issues
Teaching Strategy/Method:
This course will be offered through lectures, presentations, class discussions, laboratory work
and Group project work. Students present their assignments, and get feedbacks.

Method of Assessment
This Course is assessed by a group project, individual assignments, and examination. Each
group project will be presented in the class, defended/demonstrated by the students and
feedbacks will be given to them by the instructor and by other peer students in the class.
Text Book and Reading Materials
1. D. Russell and G.T. Gangemi, Computer Security Basics, OReilly & Associates, 1991.
2. BPB Publications, Security Complete, New Delhi BPB Publications,1999.
3. C. Easttom, Computer Security Fundamentals, Prentice Hall, May 2005.
4. W. Stallings, Network Security Essentials, 2nd edition, Prentice Hall, 2003.
5. L. Fennelly, Effective Physical Security, Butterworth-heinemann, 2003.
6. T. R. Peltier, Information Security Policies, Procedures, And Standards:Guidelines
ForEffective Information Security Management, Auerbach Publications, 2001.
7. E. Michael, Physical Security for IT, Digital Pr, 2004.
8. M. Bishop, Computer Security: Art and Science, Addison-Wesley, 2002.
9. S. Bosworth and M. E. Kabay, Computer Security Handbook, 4th edition, Willey, 2002.
10. M. R. Overly, E-Policy: How to Develop Computer, E-Policy, and Internet Guidelines to
Protect Your Company and its Assets, AMACOM, 1998.
11. S. A. Thomas, SSL and TLS Essentials: Securing the Web, Wiley, 2000.
12. R.J. Anderson, Security Engineering, Ross Anderson, John Wiley & Sons Inc., 2008.
Course Title: Natural Language Processing
Course Code: CoSc5152
Credit Hours: 3 (7 ECTS)
Prerequisite Course(s): None
Description of Course
This course is an introduction to natural language processing - the study of human language
from a computational perspective and designed to get students up to speed of with the current
research in the area. It covers morphology, syntactic, semantic and pragmatic processing
models, emphasizing statistical or corpus-based methods and algorithms. It also covers
applications of these methods and models in syntactic parsing, information extraction, statistical
machine translation, dialogue systems, and summarization.
Learning Outcomes
On successful completion of the course students will be able to explain and apply fundamental
algorithms and techniques in the area of natural language processing (NLP). In particular,
students will:
 Describe major trends and systems in Natural Language Processing;
 Define: morphology; syntax; semantics; pragmatic processing;
 Describe approaches to syntax and semantics in NLP;
 Describe approaches to generation, dialogue and summarization within NLP;
 Describe current corpus-based methods to NLP;
 describe statistical techniques as applied within NLP; and
 Describe an application of natural language processing (machine translation,
information retrieval) and show the place of syntactic and semantic processing.
Course Content
1. Natural Language Processing: Background and Overview
2. Lexical Semantics and Word-Sense Disambiguation
3. Morphology
4. Parsing and Syntax
5. Semantic Analysis
6. Pragmatic Processing
7. Natural Language Generation/Summarization
8. Statistical/Corpus-Based NLP
9. Information Extraction
10. Machine Translation
Teaching Strategy/Method:
This course will be offered through lectures, presentations, class discussions, laboratory work
and group project work. Students present their assignments, and get feedbacks.
Method of Assessment
 Assignments
 Article review
 Project and examination
Text Book and Reading Materials
 Jurafsky, David, and James H. Martin. Speech and Language Processing:
AnIntroduction to Natural Language Processing, Computational Linguistics and
Speech Recognition. Upper Saddle River, NJ: Prentice-Hall, 2000
 Manning, Christopher D., and Hinrich Schütze. Foundations of Statistical Natural
Language Processing. Cambridge, MA: MIT Press, 1999
 Allen J, Natural language understanding (2nd ed). Benjamin/Cummings, 1995
Course Title: Research Methods
Course Code: CoSc5162
Credit Hours: 2 (5 ECTS)
Prerequisite Course(s): None
Description of Course
This course presents the research methods and research topics in computer science. Selected
topics are researched under the direct supervision of faculty members, and reports on the
outcome of this research are given in both oral presentations and in written papers. Required of
all students in the M.Sc. program.
The course introduces students to the nature and demands of science and research, provides a
framework for productive writing, and gives opportunities to practice researching, writing, and
presenting that include research paradigms and methodologies across computer science, research
question formulation, design of research approach, literature search and presentation of related
work, analysis of results, verbal and written presentation skills, and research ethics.
Students prepare and defend a thesis proposal or project proposal in an area of their choice
Learning Outcomes
On successful completion of the course students will be able to explain and apply techniques in
the area of research methods. In particular,
 To provide a deep and systematic understanding of the nature and conduct of computer
science research
 To equip the students with the ability to undertake independent research
 To enhance existing transferable key skills
 To develop high-order transferable key skills
 To remind students of the Legal, Social, Ethical and Professional (LSEP) issues
applicable to the computer industry
 To have an understanding of how established techniques of research and enquiry are used
to extend, create and interpret knowledge in Computer Science
 To have a conceptual understanding sufficient to:
1. evaluate critically current research and advanced scholarship in Computer
Science, and
2. propose possible alternative directions for further work
 Be able to deal with complex issues at the forefront of the academic discipline of
Computer Science in a manner, based on sound judgements, that is both systematic and
creative; and be able to communicate conclusions clearly to both specialists and non-
specialists
 Demonstrate self-direction and originality in tackling and solving problems within the
domain of Computer Science, and be able to act autonomously in planning and
implementing solutions in a professional manner
 Be able to define and plan a programme of independent research
 Participate within the professional, legal and ethical framework within which they would
be expected to operate as professionals within the IT industry
 Make use of the qualities and transferable skills necessary for employment requiring:
(i) the exercise of initiative and personal responsibility,
(ii) decision making in complex and unpredictable
situations, and
(iii) the independent learning ability required for
continuing professional development
 Have the skills set to be able to continue to advance their knowledge and understanding,
and to develop new skills to a high level, with respect to continuing professional
development as a “self-directed life-long learner” across the discipline of Computer
Science
Course Content
1. Introduction and overview of the research
2. The nature of CS research
3. Design Research
4. Type of Research
5. Literature searches, information gathering, Problem identification.
6. Reading and understanding research papers.
7. Technical writing, referencing, bibliographies.
8. Topics in Computer Science.
9. Presentation skills-written and oral.
10. Choosing or proposing a project.
11. Project planning, tools and techniques for planning.
12. Project conduct, time management, risk management, team working
13. Commercial and economic considerations in IT research and IT industry
14. Review of legal, ethical, social and professional (LSEP) issues including data protection
and standards
Teaching Strategy/Method:
This course will be offered through lectures, presentations, class discussions, group work.
Students present their assignments, and get feedbacks.
Method of Assessment
 Assignments
 Article review
 examination
Text Book and Reading Materials
1. Christian W. Dawson: Projects in Computing and Information Systems (A Student's
Guide). Addison Wesley, 2005
2. Oates, B.J., Researching Information Systems and Computing, Sage Publications, 2005
3. Zobel, J. (2004). Writing for Computer Science - The art of effective communication. 2nd
ed., Springer, 2004
4. Dresch, Aline et al. 2015. Design Science Research: a Method for Science and
Technology
Advancement. Springer International
5. Online tutorials and research papers
Course Title: Seminar in Computer Science
Course Code: CoSc5171
Credit Hours: 1 (3 ECTS)
Prerequisite Course(s): None
Description of the Course
This course is intended to provide a skill in reviewing recently published works and prepare
review report in a selected area of Computer Science.
Learning Outcomes
On successful completion of the course, students will be able to: -
 Critically and scientifically evaluate published works.
 Identify current research issues in Computer Science.
 Prepare well-written reports and present their findings.
Course Content
In this course, the instructor is not expected to make presentations on the subjects of the topics
except coordinating and guiding the class for self-learning. Students are expected to make
critical and scientific evaluations on published works, which are current research issues and
results in selected areas of Computer Science. So that presentations and interactive sessions in
the class on given topics with the help of the facilitator are expected to facilitate the learning
process.
Teaching Strategy
The instructor will avail published research papers to the students. Students, in groups or
individually, critically and scientifically review published papers, prepare well-written
reports and present their findings in a class.
Assessment Criteria
 Analyze published articles
 Develop assessment report
Method of Assessment
This course is assessed by classroom activities, written report and presentation. Percentage
Contribution to the Assessment
 Class Room Activities: 10%
 Review Report: 60%
 Presentation: 30%
Teaching Support and Inputs for Each Content
Student should find related articles published in journals and conference proceedings, books,
reading materials from the Web, etc.
Course Requirements
 Every student should attend all seminar classes.
 Students should submit their review report according to the deadline.
 Students should present their paper reviews.
Course Calendar
The calendar follows the usual semester duration as per the University legislation. The details
of delivery, assignment deadlines, presentations and examination will be given to the student
one week before commencement of the class.
Reading Materials
Vary depending on the selected topics.
Course Title: Cloud and Edge Computing
Course Code: CoSc5181
Credit Hours: 3 (7 ECTS)
Prerequisite Course(s): None
Course Description
Cloud Computing has become a de facto infrastructure in many business and research
organizations to deliver various user-facing, business, and scientific applications to end users.
The goal of this course is to introduce the underlying technologies that created the current cloud
computing and infrastructure, then discuss the future of clouds by investigating the cutting-edge
research that will soon be part of cloud ecosystems. This is a graduate-level, research-oriented,
and a (mostly) seminar-type course in cloud computing. The instructor will introduce the
fundamentals of cloud computing in the first a few lectures. Then students will read recent
papers and discuss topics such as: Modern Cloud Infrastructures and Applications, Cloud Scale
Machine Learning, Edge, and the Future of Clouds.
In addition, students will have opportunities to present assigned research papers. The students’
presentation should clearly address and summarize motivation, problem statement, the authors’
approach, evaluation, and more discussion ideas like pros/cons, further improvement, etc.
Learning Outcomes
Upon successful completion of this course a student is able to:
 Describe the key architectures and applications in edge computing
 Critically evaluate research publications on cloud services and edge computing.
 Develop presentations for research publications on cloud and edge computing.
 Implement open-source cloud and edge computing software for data analytics.
 Develop and execute a research project related to data analytics and edge computing.
Course Contents
1. Introduction to Cloud Computing
2. Cloud Fundamentals
2.1. Cloud Service Models
2.2. Data Centres, Cloud Infrastructure, VM, and Containers
2.3. Elasticity and Auto Scaling
2.4. Cloud Applications and Workloads
2.5. Cloud Computing Analytics Pipeline
2.6. Cloud Databases
2.7. Coordination of Cloud Services
3. Cloud Infrastructure
3.1. Large-Scale Cluster Management (i.e.; Resource Sharing, Scheduling, Provisioning)
3.2. Container Orchestration and Micro-Service Management
3.3. Server less Computing and Cloud Functions
4. Introduction to Edge Computing
4.1. Edge Computing Fundamentals
4.2. Future Research Direction/Opportunity in the Cloud and Edge Computing
4.3. Apache Edge
4.4. Geo-Distributed Computing
4.5. Edge Architectures
4.6. Algorithms for Sensor Networks
4.7. Edge Computing Applications
5. Internet of Things (IoT) and New Computing Paradigms
5.1. Introduction
5.2. Relevant Technologies
5.3. Fog and Edge Computing Completing the Cloud
5.4. Hierarchy of Fog and Edge Computing
5.5. Business Models
5.6. Opportunities and Challenges
6. Fog Computing: Integrating IoT + Fog + Cloud Infrastructures
6.1. Introduction
6.2. System Modelling and Research Challenges
6.3. Methodology
6.4. Optimization Problems in Fog and Edge Computing
6.5. Data Management in Fog Computing
6.6. Future Research Directions
Teaching Strategy/Method: Lecture and Laboratory
 Lecture and reading assignment
 Presentations and Class discussions
 Laboratory work and Group work
Method of Assessment
 Assignments and Article review
 Project and examination
Text Books and Reading Materials
This course does not require a textbook. Course materials will be recent publications from top-
tier cloud/system conferences and journals.
Course Title: Thesis
Course Code: CoSc6191
Credit Hours: 6 (30 ECTS)
Prerequisite Course(s): Completion of All Required Courses
Description of Course
This module is intended to provide a practical skill in carrying out research and documenting and
presenting the findings in a selected area of Computer Science.
Learning Outcomes
At the end of this module, students will be able to:
 Know how to understand published papers and other materials related to the thesis title
 Understand and apply issues related to research in Computer Science
 Write technical reports in the form of journal and workshop papers and thesis
 Present and defend research findings
Course Content
The student investigates an original work including a study of its possible implications, its
potential applications, and its relationship to previous related works reported in the literature.
Contributions and results from this investigation are synthesized and compiled into a thesis
presenting the new idea and presented to an examining committee, to be organized by the
Department, and any interested audience.
Teaching Strategy/Methods
Individual investigation of significant areas of Computer Science; Guided study and research
working closely with a faculty member
Method of Assessment
The assessment is based on two aspects: content of the thesis and defense in front of an
examination committee. Issues that will be considered for the content of the thesis are;
 Problem formulation and methodology
 Prototype or data presentation and interpretation
 Literature coverage, Format and Overall Organization
 The defense considers presentation skills and response to questions
Text Books and Reading Materials
Articles published in journals and conference proceedings related to the area of the title of the
thesis, books, reading materials from the Web, etc.

15.1. Syllabus of Elective Courses

Course Title: Distributed Database System


Course Code: CoSc5211
Credit Hours: 3 (7 ECTS)
Prerequisite Course(s): None
Description of Course
This course is intended to provide you with an understanding of object oriented database and
data model in representing complex objects. It helps students to understand the notion of
distributed database, designing a homogenous distributed database, querying efficiently from
distributed databases.
The course also provides various principles and features about semantic web analytics. It is also
investigating the next generation of the Web whose key distinguishing characteristics will be the
support for and use of semantics in new, more effective, more intelligent, ways of managing
information and supporting applications. The Semantic Web is Tim Berners-Lee’s vision of a
machine understandable and unambiguously computer interpretable Web.
Learning Outcomes
On successful completion of the course students will be able to:
 Understand the concept of Object Oriented databases
 Understand the Complex data types, Object-Oriented data model and Nested relations
 Understand the homogeneous and heterogeneous database,
 Understand the notion of distributed database
 Capable to design a distributed database
 Compare and contrast different architectural alternatives in distributed database design
Course Content
1. Object Oriented Databases
1.1 Complex data types and Object-oriented data model
1.2 Object-oriented languages and Persistent programming languages
1.3 Object relational databases
1.4 Nested relations, Complex types, Reference types, Querying with complex types,
Functions and Procedures, and Inheritance
1.5 Object-oriented versus object-relational
2. Introduction to Distributed databases
2.1 Distributed databases processing
2.2 Promises of DDBSs
2.3 Design Issues
2.4 Distributed DBMS Architecture
3. Distributed Database Design
3.1 Design Procedure/ strategies
3.2 Distribution design issue
3.3 Fragmentation and Allocation
4. Distributed Query Processing
4.1 Introduction
4.2 Characterization of Query Processors
4.3 Layers of Query Processing
5. Distributed Concurrency Control
Teaching Strategy/Method: Lecture and Laboratory
 Lecture and reading assignment
 Presentations and Class discussions
 Laboratory work and Group work
Method of Assessment
 Assignments and Article review
 Project and examination
Text Books and Reading Materials
1. M. Tamer Özsu, Patrick Valduriez, Principles of Distributed Database Systems, 3rd
Edition, Springer, 2011
2. Henry Korth, F., Abraham Silberchatz, Sudarshan, S.,Database System Concepts, 4th
Edition , Mc Graw Hill International Editions
3. Elmasri, R., Navathe, S.B., Fundamentals of Database Systems, Addison Wesley,2000
4. Pascal Hitzler, Markus Krotzsch, Sebastian Rudolph, Foundations of Semantic Web
Technologies, CRCPress, 2009
5. Dean Allemang, James Hendler, and Semantic Web for the Working Ontologist:n
Effective Modeling in RDFS andOWL, Morgan Kauffmann, ISBN-10: 0-12373556-4
Course Title: Big Data Analytics
Course Code: CoSc5242
Credit Hours: 3 (7 ECTS)
Prerequisite Course(s): None
Description of Course
This course covers big data characteristics, big data components, big data challenges, techniques
and tools required for big data analytics. The course focuses on concepts, principles and
techniques of big data analytics. It also covers big data analytics tools such as Hadoop and Spark.
Learning Outcomes
On successful completion of the course students will be able to:
 Understand big data basics
 Identify big data characteristics and challenges
 Comprehend analytical tools and techniques of big data
 Understand Apache Hadoop, spark and their application
Course Content
1. Introduction to Big Data
1.1 Big Data definition
1.2 Four V’s in Big Data
1.3 Big data sources and Ecosystem
1.4 Big Data as an Industry outlook
1.5 Big Data Applications, Components and Characteristics
1.6 Key Components in Big Data Analytics Environment
2. Big Data Application
2.1 Text Analytics
2.2 Analytics of data Streams
2.3 Graph analytics
2.4 Location analytics
3. Big Data Analytics Philosophy
3.1 Map reduce
3.2 Parallel computing
4. Big Data Analytics Tools
4.1 Comparison of big data analytics tools
4.2 Introduction to Hadoop and Hadoop Architecture
4.3 Hadoop Applications & HDFS
4.4 Hadoop MapReduce Framework
4.5 Apache Mahout
4.6 Spark and its application
Teaching Strategy/Method: Lecture and Laboratory
 Lecture and reading assignment
 Presentations and Class discussions
 Laboratory work and Group work
Method of Assessment
 Assignments and Article review
 Project and examination
Text Books and Reading Materials
1. V.mayer schonberger and k.cukier, “Big data: a revolution that will transform how we
live, work and think
2. Eric Sammer “Hadoop Operations”, May 2012, ISBN: 9781449337 10. Maheshwari,
“Big data analytics made accessible, 2017.
3. Jeffrey Stanton Introduction to data science, Syracuse university,2012
Course Title: Advanced Algorithm Analysis
Course Code: CoSc5221
Credit Hours: 3 (7 ECTS)
Prerequisite Course(s): None
Description of Course
Algorithms are essentially required for solving a wide range of computational problems from a
number of different fields such as Artificial Intelligence, Data Mining, Distributed Systems and
Computer Networks. This is a graduate level course on the topic of algorithms and
computational complexity and covers several advanced topics not studied in typical introductory
courses on algorithms. It is especially designed for students interested in pursuing careers in the
field of applied computer science where they will be required to design and implement new
algorithms. Course contents include the study of algorithm analysis techniques and algorithm
design strategies that are currently used in a variety of application domains.
Learning Outcomes
 Application of different algorithm design techniques to use advanced algorithms
appropriate to specific situations.
 Understanding of current research results in one or more areas of mathematical concepts
used in describing the complexity of advanced algorithms.
 At the end of this course, students should be able to design and develop new and efficient
algorithms, analyse existing algorithms and select suitable algorithms for complex
problem solving.
Course Content
1. Heuristic and Randomized Algorithms:
1.1. Use of probabilistic inequalities in analysis
1.2. Amortized analysis
1.3. Competitive analysis and applications
2. Geometric Algorithms:
2.1. Point location
2.2. Convex hulls and Voronoi diagrams
2.3. Arrangements and graph connectivity
2.4. Network flow algorithm
2.5. Internet algorithm
2.6. String matching and document processing algorithms.
3. Approximation Algorithms:
3.1. Use of Linear programming and primal dual
3.2. Local search heuristics
3.3. Parallel algorithms
3.4. Basic techniques for sorting, searching and merging
3.5. List ranking in PRAMs and Interconnection
Teaching Strategy/Method: Lecture and Laboratory
 Lecture and reading assignment
 Presentations and Class discussions
 Laboratory work and Group work
Method of Assessment
 Assignments and Article review
 Project and examination
Text Books and Reading Materials
1. Allan Borodin and Ran El-Yaniv: Online Computation and Competitive Analysis,
Cambridge University Press, 2005
2. Vijay Vazirani: Approximation Algorithms, Springer, 2001.
3. T. Cormen, C. Leiserson, R. Rivest, and C. Stein: Introduction to Algorithms, 2nd
edition, 2001
4. Dorit S. Hochbaum (ed.): Approximation Algorithms for NP-hard Problems, PWS
Publishing, 1997
5. Joseph JáJá: Introduction to Parallel Algorithms 1992.
6. Rajeev Motwani, PrabhakarRaghavan: Randomized Algorithms, Cambridge University
Press, 1995
7. Jiri Matousek & Bernd Gärtner: Understanding and Using Linear Programming, 2006
Course Title: Digital Image Processing and Computer Vision
Course Code: CoSc5231
Credit Hours: 3 (7 ECTS)
Prerequisite Course(s): None
Description of Course
The course provides intermediate and advanced topics in digital image processing including
image descriptors, image sampling, image compression, image enhancement and restoration,
morphological operations on binary images, object tracking and motion estimation, etc.
Learning Outcomes
On successful completion of the course students will be able to:
 Describe different modalities and current techniques in image acquisition
 Describe how digital images are represented and stored efficiently depending on the
desired quality, colour depth, dynamics
 Use the mathematical principles of digital image enhancement and restoration
 Describe and apply the concepts of feature detection and contour finding algorithms
 Analyse the constraints in image processing when dealing with larger data sets
Course Content
1. Introduction
1.1. Overview and Image Format
1.2. Challenges and Research Issues
2. Image Scanning
2.1. Why Scanning
2.2. Imaging Tools
2.3. Converting Analogue to Digital Image
3. Image Descriptors and Image Sampling
4. Image Compression
4.1. Overview
4.2. Huffman Encoding
4.3. Entropy Encoding
5. Digital Image Processing (DIP)
5.1. Preprocessing: Noise removal and Binarization, Thinning and Normalization
5.2. Analysis: Segmentation, Recognition (Feature extraction and Classification)
5.3. Computer Vision: Representation and description of objects
6. Basic Operations on Images
6.1. Image Restoration and Image Enhancement
6.2. Discrete Fourier Transform
6.3. Morphological Operations on Binary Images
7. Object Tracking and Motion Estimation
8. Application
8.1. Content-Based Image Retrieval
8.2. Preprocessing, Segmentation, Feature Extraction, Classification and Recognition
Teaching Strategy/Method: Lecture and Laboratory
 Lecture and reading assignment
 Presentations and discussions of specific assignments
 Laboratory work and Group work
Method of Assessment
 Assignments and Article review
 Project and examination
Text Books and Reading Materials
1. R. C. Gonzalez and R. E. Woods, Digital Image Processing, Addison-Wesley Pub. Co.,
New York, 2002
2. Anil. K. Jain, Fundamentals of Digital Image Processing, Prentice-Hall, 1989
3. Burge and Burger, Principles of digital image processing, 2010
4. Chris Solomon & Toby Breckon Fundamentals of Digital Image Processing, A Practical
Approach with Examples in MATLAB, Wiley-Blackwell 2010: Text book website:
http://www.imageprocessingbook.com/
5. Michael Seul, et al., Practical Algorithms for Image Analysis with CD-ROM:
Description, Examples, and Code. Edition, Cambridge University Press, 2000
Course Title: Semantic Web Technologies
Course Code: CoSc5252
Credit Hours: 3 (7 ECTS)
Prerequisite Course(s): None
Description of Course
This course aims to provide the basic overview of the Semantic Web in particular, and data
semantics in general, and how they can be applied to enhance data integration and knowledge
inference. It mainly contains three parts: Web Data Semantic, Ontology Modeling and querying.
Learning Outcomes
On successful completion of the course students will be able to:
 Explain the features, rationale, and advantages of Semantic Web technology
 Describe the XML
 Explain how to validate XML documents using DTDs
 Explain the concepts of graph-based RDF model and XML syntax-based RDF model
 Analyze the requirements and features of web ontology language (OWL)
 Define properties and restrictions, and Boolean combinations of the OWL classes
 Describe rule-based reasoner to implement both RDFS and OWL reasoners
 Analyze application cases in data integration, data exchange and knowledge
 Discuss the methodologies in ontology engineering and semantic modeling
Course Content
1. Introduction
1.1 XML, DTD
1.2 Introduction to Semantic Web
1.3 Semantic Web applications
1.4 Ontology Engineering
1.5 Text Information Retrieval
1.6 Ontology Modeling Framework
2. Web Data Semantic
2.1 Semantic Web
2.2 Semantic Modeling
2.3 Resource Description Framework RDF
2.4 Web Ontology Language OWL
2.5 Logic Reasoning for the Semantic Web
Semantic Annotation and Information
3. Ontology Modeling Framework
3.1 Ontology Graph
3.2 Implementation of Ontology Graph
3.3 Ontology Learning
4. Graph Database
4.1 Graph Databases
4.2 Querying
Teaching Strategy/Method: Lecture and Laboratory
 Lecture and reading assignment
 Presentations and Class discussions
 Laboratory work and Group work
Method of Assessment
 Assignments and Article review
 Project and examination
Text Books and Reading Materials
1. Grigoris Antoniou and Frank van Harmelen, A Semantic Web Primer, 2nd Edition,
2008 The Massachusetts Institute of Technology
2. Edward H.Y. Lim, James N.K. Liu, and Raymond S.T. Lee, Knowledge Seeker
Ontology Modeling for Information Search and Management, 2011
3. Gómez-Pérez, A. Fernández-López, M. Corcho, O. Ontological Engineering.
Springer Verlag 2003
Title: Wireless Communication and Mobile Computing
Course Code: CoSc5262
Credit Hours: 3 (7 ECTS)
Prerequisite Course(s): None
Description of Course
This course is an introduction to the concepts of mobile and wireless systems. It first gives a
background on networking concepts and then explains the wireless communications at all layers
of networking protocol stack. These concepts include but not limited to different protocols for
Wireless Networks and Wireless LAN, Mobile IP, Routing and MAC Protocols for Mobile Ad
hoc and Sensor Networks. The course also includes ands-on labs to practice protocols for real
sensors called motes. The material in the course, drawn mainly from the research literature, will
be presented in a bottom-up fashion.
Learning Outcomes
On successful completion of the course students will be able to:
 To provide the students with the knowledge required to understand (a) emerging
communications networks, (b) their computational demands, (c) the classes of distributed
applications and services enabled by these networks, and (d) the computational resources
required to create the new networks and the new applications;
 To provide the students with the practical skills required to develop services and
applications for new integrated networks;
 To enable the students to identify the relationships between the global, pervasive,
computation environment and the communications infrastructure.
 apply advanced data communicating methods and networking protocols for wireless and
mobile environments
 utilize and employ application frameworks for developing mobile applications including
under disconnected and weakly connected environment
 create web sites suitable for mobile environments
 select components and networks for particular application
 creatively analyze mobile and wireless networks
 Critically analyze security issues of mobile and wireless computing systems.
Course Contents
1. Introduction
 History of mobile Communication
 Simplified Reference Model
 Market for Mobile Computing
 Wireless Transmissions (Multiplexing, Spread Spectrum and Cellular Systems)
 Media Access Control
2. Handoff in wireless mobile networks
 Introduction
 Types of Handoff
 Handoff schemes
3. Location management in cellular networks
 Introduction
 Cellular Networks
 Location Management
 Common Assumptions for Performance Evaluation
 Location Management Schemes
4. Mobile computing environment
 Mobile Computing architecture
 Design considerations of mobile computing
 Mobile Network Layer
 Developing mobile Computing Applications
 Making Existing Applications mobile-enabled
 Security in mobile computing
5. Telecommunication System Standards
 GSM system
 UMTS and IMT-2000
 Satellite Systems
 Wireless LANs
 Mobile Network Protocols/Mobile IP
 WiMAX: Broadband Wireless Access
 ETSI – HIPERLAN
 Bluetooth
 Wireless Application Protocol (WAP)
 Emerging Technologies (Wi-Fi , WiFi, 3G ,WATM)
6. Mobile Ad Hoc Networks (MANETs)
 Layered Architecture of Mobile Ad Hoc Networks
 MAC Layer
 Mobile Ad Hoc Networks and the Internet
 Routing in Self-Organized Networks
 People-Based Networks
 Unicast and broadcast Protocols for MANETs
 Routing Protocols for MANETs
7. Wireless Sensor Networks (WSNs)
 Introduction to wireless sensor networks
 Types of Wireless Sensor Networks
 Applications of Sensor Networks
 Characteristics and challenges
 Data dissemination and routing protocols
 Data gathering
 Locationing and coverage
 Security in wireless sensor networks
8. Pervasive Computing
 Principles of Pervasive Computing
 Evolution & Related Fields
 Problem space
 Architecture for pervasive computing
 Pervasive Computing Applications
 Open Protocols

Teaching Strategy/method:
Course offering is through lectures, presentations, class discussions, laboratory work and Group
project work. Then students present their assignments, and get feedbacks.
Method of Assessment
Course assessment includes project and examination with percentage contributions:
 Written Examination
 Practical Project
Text Book and Reading Materials
There is no single text book for the course, thus its recommended that students read appropriate
chapters from the following given reading materials in addition to their own reading materials.
1. Dharma P. Agrawal, Introduction to Wireless and Mobile Systems, Cengage Learning,
3rdEdn, 2011
2. Frank Adelstein , Sandeep KS Gupta, Golden Richard III, Loren Schwiebert,
Fundamentals of Mobile and Pervasive Computing, McGraw-Hill, 2005
3. Jochen H. Schiller, Mobile Communications, Pearson, 2ndEdn., 2003
4. William Stallings, Wireless Communications and Networks, Pearsons, 2ndEdn. 2005

You might also like