Software Engineering
Software Engineering
Modular Curriculum
for
Degree of Bachelor of Science in Software Engineering and Computing
Technology (Software Engineering, Cyber Security Engineering,
Information Technology, Artificial Intelligence Streams)
2020/21 G.C
Imprint
First Revision - September 2010
Second Revision - May 2018
Introduction 1
General Objective 5
Specific Objectives 5
Program Outcomes 6
Graduate Profile 6
Cognitive knowledge 6
Practical skills 7
Professional Profile 7
EDUCATIONAL PROCESS 8
Graduation Requirement 8
Degree Nomenclature 9
Course Coding 10
Modularization 10
Modules 11
Non-Engineering Electives 21
Engineering Electives 21
Assessment Methods 23
Grading Scheme 23
Quality Assurance 24
Visiting Professors 27
Technical Assistants 28
Engineering Drawing 45
Engineering Professions * 48
Applied Mathematics I 50
SEM II 54
Linear Algebra 65
Applied Math II 69
SEM III 73
Fundamentals of Database 73
Discrete Mathematics 84
Fundamental of Networking 91
SEM IV 95
System Programming 95
SEM V 114
4
Mobile Application Development 118
SEM VI 132
Fundamental of AI 136
HCI 140
SEM IX 176
Project I 188
SEM X 189
5
Technology Entrepreneurship 189
Project II 199
SEM IX 224
Project I, 233
SEM X 234
Project II 234
6
SEM VII 235
SEM IX 249
SEM X 262
Project II 270
SEM IX 281
7
Non Engineering Elective II 281
Project I 281
Electives 292
8
Acronyms
AC Academic Council
AI Artificial Intelligence
The Association for Computing Machinery (ACM) states Computer Science, Information
Technology, Cyber Security, Software Engineering, and Information Science as sub disciplines
of Computing. Similarly, this stream based curriculum (SECT) encloses the aforementioned
soft computing sub disciplines namely: Software Engineering, Information Technology, Cyber
Security Engineering (engineering aspects), and Artificial Intelligence in turn which
incorporates the aforementioned sub disciplines of computing.
However, it is common to observe many standards being attached to these disciplines. Some
organizations diminish the body of knowledge and others misinterpreting them in a way one
could not plot clear boundary among them. Therefore, this document gives a clear
interpretation of all the above sub disciplines under software engineering and computing
technology program.
Hence, in this document software engineering as a discipline is defined as the systematic
application of scientific and technological knowledge, methods, and experience to the design,
implementation, testing, documentation and maintenance of software system. This definition is
derived from various reputable institutions, scholars, and their articles written on specification
of the software engineering as a discipline such as:
"Software engineering is that form of engineering that applies the principles of
computer science and mathematics to achieving cost-effective solutions to software
problems." [CMU/SEI-90-TR-003]
"Software engineering is the application of a systematic, disciplined, quantifiable
approach to the development, operation, and maintenance of software." [IEEE 1990]
"The establishment and use of sound engineering principles (methods) in order to
obtain economically software that is reliable and works on real machines." [Bauer
1972]
1
As it is stated in the above standardization, software engineering is about creating high-quality
software in a systematic, controlled, and efficient manner. It also gives a strong emphasis to
analysis and specification, design, implementation, and management of the evolution of a
software product.
The other sub discipline that has been misinterpreted as software engineering since its existence
is Information Technology. This document defines Information Technology as an academic
discipline which is concerned with issues related to advocating for users and meeting their
needs within an organizational and societal context through the selection, creation, application,
integration and administration of computing technologies [ACM, 2018]. Hence, Information
Technology refers to a program that prepares students to meet the computer technology needs
of business, government, healthcare, schools, and other kinds of organizations. Rather than
Information system programs which emphasize on the information, the major emphasis in IT is
on the technology itself. Hence, IT and most of its specialization are market oriented and are
supposed to fill the technology gaps observed in institutions. Similarly, AAiT will also use this
program to equip students who can address specific demands of stakeholders.
Cyber Security Engineering is also one of the multidisciplinary streams of the SECT
curriculum. Its definition is standardized as a computing-based discipline involving technology,
people, information, and processes to analyze create, and test secured computer systems.
[ACM, 2017] It is an interdisciplinary course of study, including aspects of law, policy, human
factors, ethics, and risk management. Cyber Security Engineering draws from the foundational
fields of information security and information assurance; and began with more narrowly
focused field of computer security. Hence, this program is in general more to Information
Technology as it focuses on the technologies to secure systems and Software Engineering as it
intends to create secure computing system in a strategic manner.
Artificial Intelligence is also one of the latest computing disciplines that came out to solve
exponentially growing problems of the world. Artificial Intelligence is “The science and
engineering of making intelligent machines, especially intelligent computer programs”. It is
accomplished by studying how human brain thinks and how humans learn, decide, and work while
trying to solve a problem, and then using the outcomes of this study as a basis of developing
intelligent software systems. Today, it is known as narrow AI or weak AI, in that it is designed to
perform narrow tasks like facial recognition or internet searches and etc. However, the long-term
goal of many researchers is to create Artificial General Intelligence (AGI).
2
Generally, the program entitled Software Engineering and Computing Technology produces
students with the ability to develop and efficiently utilize high quality, secured, and autonomic
computing systems. Launching such problem solving programs contributes a lot to developing
countries who intend to grow its economy by using equipped ICT infrastructures. Ethiopia is a
good example for this. Hence, Software Engineering and Computing Technology offices are
considered as an enabler of socio-economic transformation. It is believed to facilitate and
transform Ethiopia’s predominantly subsistence-agriculture economy and society into an
information-and knowledge-based economy and society, effectively integrated into the global
economy.
3
Intelligence, Cyber Security Engineering, Software Engineering and Information Technology with
strong computing and engineering background.
4
Admission
1st semester
Pre-Engineering
Stream
Semester 7th -10th
(including Internship)
Cyber
Software Information Artificial
Security
Engineering Technology Intelligence
Engineering
Specific Objectives
The following list of salient activities will be undertaken to achieve the general objective of the
program:
● To train students to be effective team members, aware of cultural diversity, who conduct
themselves ethically and professionally?
● To enhance students communication and technical skills to assure production of quality
computer system, on time and within budget.
● Teach students build upon and adapt knowledge of science, mathematics, engineering, and
new computing technologies to take on more expansive tasks that require an increased
5
level of self-reliance, technical expertise, and leadership.
● Equip students with the necessary methodologies, skill, and tools to develop and deploy
high standard computer systems.
● Teach students to design, develop, test, document and maintain computer systems of an
industrial standard for private, non-governmental and governmental clients.
● Train students to conduct research in computing domain such as High Performance
Computing, Natural Language Processing, Computer Vision, Dialogue Systems, OCR,
Learning Systems, digital forensics, Security policy and risk analysis principles,
technologies emerging every day for socio economical social problems and etc.
● Train students with entrepreneurship mindset in technology so that they can create new
jobs, or expand existing business.
● Engage students in global online competition so that their understanding meets the global
scale.
Program Outcomes
Graduate Profile
The graduate will have the following knowledge, skill and attitude at the end of the program.
Cognitive knowledge
The graduate will:
a) Have an understanding of professional, ethical, legal, security and social issues and
responsibilities.
b) Have ability to apply knowledge of computing and mathematics to resolve on-hand and
upcoming problems.
c) Have recognition of the need for, and an ability to engage in, continuing professional
development and the knowledge and skills to act as research assistants or lecturers in
higher education institutions
d) Use current techniques, skills, and tools necessary for software development, testing and
maintenance.
e) Have the knowledge and innovative skills to plan, set up and run computer related
businesses.
6
Practical skills
The graduates will be able to demonstrate an understanding of and apply appropriate theories,
models, and techniques that provide a basis for problem identification and analysis, design,
development, implementation, verification, and documentation of computer systems.
Attitude (Transferable skill)
The graduate will:
a) Function effectively on teams to accomplish a common goal and work under stressed
situation.
b) Communicate effectively with a range of audiences and give clear, good quality verbal
presentations on scientific topics
c) Have the knowledge and innovative skills to plan, set up and run computer related
businesses.
d) Demonstrate an understanding and appreciation of the importance of negotiation, effective
work habits, leadership, and good communication with stakeholders in a typical software
development environment.
e) Learn new models, techniques, and technologies as they emerge and appreciate the
necessity of such continuing professional development.
Professional Profile
Software Engineers and Computing Technologists must have
● A high-level understanding of systems as a whole. This understanding must go beyond the
implementation details of the various components to encompass an appreciation for the
structure of computer systems and the processes involved in their construction and
analysis.
● Thorough understanding of the balance between theory and practice and the essential link
between them not only the theoretical underpinnings of the discipline but also how that
theory influences practice
● A solid foundation that allows and encourages them to maintain their skills as the field
evolves.
7
EDUCATIONAL PROCESS
Entry and Admission Requirements
Admission requirements would be similar to the general higher education entry requirement based
on higher education of Ethiopia policies and procedures. That is, the student should complete
preparatory level education and the entry point is determined accordingly by the Ministry of
Education of Ethiopia for the regular students whereas the admission criteria for distance and
continuing education program are as per the University’s requirement.
Furthermore, a student who has successfully completed the first semester of the pre-engineering
program from any of the AAiT departments can opt for Software Engineering and Computing
Technology program, subject to further screening and selection.
Graduation Requirement
No Grade “F” in any of the courses and the grade point average (GPA) should be.
● Grade point average requirement
I/ Cumulative GPA: 2.00
II/ Major GPA: 2.00
● At least C grades for Industrial Project I and II and Maximum of 310 ECTS throughout the
course of the program.
8
Degree Nomenclature
After successful completion of all the requirements, a student graduating from the Center of
Information Technology and Scientific Computing will be entitled to earn a degree with one of the
following nomenclatures:
“Bachelor of Science
In
Software Engineering and Computing Technology
(Software Engineering Stream)”
“Bachelor of Science
In
Software Engineering and Computing Technology
(Information Technology Stream)”
“Bachelor of Science
In
Software Engineering and Computing Technology
(Artificial Intelligence Stream)”
“Bachelor of Science
In
Software Engineering and Computing Technology
(Cyber Security Engineering Stream)”
9
Course Coding
All courses at Software Engineering and Computing Technology program should be categorized
into Common, Supportive and Core. Designation is possibly applied using two to four letter
abbreviations and four figures. The letters (two - four) show the discipline to which the course
belongs. Consequently, all supportive and compulsory courses of the software engineering and
computing technology program shall be designated by SITE, as an abbreviation for Information
Technology and Scientific Computing. However, common courses shall be named according to
their belongingness to specific discipline.
The first of the four digits indicates the year in which the course will normally be offered while
the second and third digits indicate the module to which the course belongs to. The fourth digit is
used to denote the course sequence in its module.
Moreover, the Modules are coded using Four digit number and prefixed with module home base
and the letter M. Module that belong to SITE are prefixed with “SITE” and the number coding
succeeds the letter “-M” stating that it’s module. The first number in the module code states the
year the module starts. The second and third digits state the module number in the curriculum. The
last digit states the type of the module; 1 is used to denote Core modules, 2 are used to denote
supportive and common courses are denoted by 3.
Modularization
Modularization is provided by collecting and grouping courses that can help to attain specific
competence to accomplish a certain task at intermediate level after its completion. It is
implemented as an alternative after piloting it with a few selected courses. The following Table
shows list of modules and courses under each module.
10
Modules
Common and Supportive Modules - Year I
Category Module Number Module Name Module Code Module ECTS Course No. Course Code Module Courses
1 EnLa-1011 Communicative English Skill
01 Basic English Skills EnLa-M11013 10
2 EnLa-1012 Basic Writing Skills
1
02 Civics and Ethical Education CESt-M11023 5 CESt-1023 Civics and Ethical Education
1
03 Reasoning Skill PHIL-M11033 5 PHIL- 1031 Introduction to Logic
11
Core Modules - Year I, II, and III
Category Module Module Name Module Code Module Course Course Module Courses
Number ECTS No. Code
Computer Systems and SITE- 1 SITE-1071 Fundamental of Computer Systems
Programming M1071
07 17 2 SITE-2072 System Programming
3 SITE-3073 Operating Systems
3 Discrete Mathematics
08 28 SITE-2083
5 Design Patterns
SITE-3085
12
3 SITE-2103 Fundamentals of Software Engineering
Computer Architecture and Design SITE- 1 SITE-2111 Fundamental of Electrical circuits and
M2111 Electronics
13
Core Modules - Year IV and V
Software Engineering Stream
Category Module Module Name Module Code Module Course Course Module Courses
Number ECTS No. Code
System Modeling SITE- 1 SITE-4151 Software Requirement Engineering
15
M4151 10
2 SITE-4152 Software Architecture and Design
14
Core Modules - Year IV and V
Information Technology Stream
Category Module Module Name Module Code Module Course Course Module Courses
Number ECTS No. Code
Enterprise Systems Security SITE- 1 SITE-4211 Enterprise Systems and Network
M4211 Security
21 12
2 SITE-5212 Web Security
1
SITE-4221 Internet of Things
SITE-
22 Cloud Computing and IOT 8
M5221 2
SITE-5222 Cloud Computing and Security
15
Core Modules - Year IV and V
Artificial Intelligence Stream
Category Module Module Name Module Code Module Course Course Module Courses
Number ECTS No. Code
SITE- 1 SITE-5261 Machine Intelligence
Perception and NLP
M5261
2 SITE-5262 Computer Vision
26 22
3 SITE-5263 Introduction to Robotics
4 SITE-5264 Natural Language Processing
SITE- 1
27 Selected Topics in AI 4 SITE-5271 Selected Topics in AI
M5271
1 Numerical Optimization and
SITE-4281
ODE
16
6 SITE - 5296 Computational Genomics
17
Core Modules - Year IV and V
Cyber Security Engineering Stream
Category Module Module Name Module Module Course Course Module Courses
Number Code ECTS No. Code
Security and Risk SITE- 1 SITE-5301 Information Systems Security, Audit and
Management M5301 Compliance
2 SITE-5342 IT Governance, Risk & Information Security
Management
30 25 3 SITE-5303 Mobile Application Security
SITE- 1
32 Cryptography 5 SITE-4321 Cryptographic Concepts and Applications
M4321
1 SITE-5331 Ethical Hacking and Penetration Testing
2 SITE-5332 Incident Response (Disaster
SITE- Recovery/Business Continuity)
33 Security Engineering 25 3 SITE-5333
M5331 Information Security Policy Analysis and
Implementation
4 SITE-5332 Information Assurance Architectures
18
Security Analysis and SITE- 1 SITE-4341 System and Network Security Administration
Administration M4341
19
Common Modules for Year IV and V
Category Module Number Module Name Module Code Module ECTS Course No. Course Code Module Courses
1 SITE-4351 Software Project management
35 Project Management SITE-M5351
1 SITE - 4191 Fundamentals of Parallel Computing
20
Non-Engineering Electives
Category Module Module name Module Module Course Module courses (clustered under the ECTS
No. code ECTS code module)
Engineering Electives
Category Module No. Module Name Module Code Course Code Module Courses (Clustered under the module)
24 System and Database Administration SITE-M4241 SITE - 5243 Website Administration
28 Computational Analysis and Optimization SITE-M4281 SITE - 5283 Statistical Methods and Data Analysis
29 Adaptive Computation and Machine Learning SITE-M4291 SITE - 5295 Information Retrieval
SITE - 5296 Computational Genomics
SITE - 5297 Introduction to Cognitive Science
26 Perception and NLP SITE-M5261 SITE-5264 Natural Language Processing
SITE-5263 Introduction to Robotics
30 SITE-5303 Mobile Application Security
SITE-5304 Wireless Security
Security Risk Management SITE-M5301
SITE-5305 Firewall and Perimeter Security
34 SITE-5342 IT Governance, Risk & Information Security Management
SITE-5342 Malware Analysis
Security Analysis and Administration SITE-M4341
SITE-5343 Reverse Engineering
SITE-5344 Data Analytics for Cyber Security
33 Security Engineering SITE-M5331 SITE-5332 Information Assurance Architectures
Electives
21
Teaching-Learning Methods and Materials
Learning should not be closed to one specific techniques or method; it should be integrative in
nature which will allow teachers the freedom and learners the options to go through individually
suited learning style that goes with the personality of the learner. So, for this Program suitable to
use the integrated approach which include Student Center Learning, Parallel Curriculum Model
(PCM), Accelerated Learning (AL) and Brain Target Teaching Model (BTT).
To implement the above hybrid teaching methodology the following teaching techniques will be
employed:
● Course Lecture (Enhanced with active learning techniques such as think-pair-share, one
minute paper)
● Brainstorming
● Case studies
● Presentations
● Debates
● Demonstrations
● Discussions/Panels
● Films/Video/TV Presentations
● Games/puzzles
● Mind mapping
● Role playing/Skits
22
● Interviews with IT professionals and/or job shadowing
● Thesis
Assessment Methods
This program emphasizes on implementing continuous assessment during the teaching learning
process. The following methods will be used to assess students knowledge and ability. The
instructor can extend his/her way of evaluating students while having the basic mechanisms in
place.
● Tests
● Assignments
● Projects
● Laboratory exams
● Final Exams
Grading Scheme
Raw Mark
Corresponding Fixed Corresponding Status
Interval Class Description
Number Grade Letter Grade Description
[100%]
23
[68, 75) 3.0 B Distinction
Unsatisfactor
[45, 50) 1.75 C- Lower Class
y
Quality Assurance
Quality assurance can be used as an instrument to improve the system continuously, install
accountability and enable compatibility with other higher education systems. The quality of the
program is assessed in terms of the instruction performance and impact of program on the quality
of graduates looking for a job or further studies. The following factors help to ensure the quality
of the education:
● In order to maintain the level of courses, course description are prepared in detail
containing course objectives, learning outcome, course outline, textbooks, references and
laboratory tasks.
● With regard to instruction performance, in line with the University policy, student
evaluations are taken into account. The feedbacks from the students are used to improve
the quality of instruction.
● Examinations are assessed by Departmental Examination Committee to verify the level
of the courses instruction.
● Industry feedback will be an integral part of the process of quality assurance. The quality
of graduates is measured with the feedback obtained from the employers and stakeholders
who are the immediate beneficiary of the program and also the graduates who are able to
24
rate their own confidence in meeting the challenges they encounter after graduation.
25
Permanent Staff - Lecturers
15 Computer Engineering/
Mr. Yoseph Abate Lecturer
Software Engineering
26
Permanent Staff - Assistant Lecturers
No. Name Specialization Level
Visiting Professors
No. Name Specialization Level
27
Technical Assistants
No. Name Specialization Level
Technical Assistant
1 Mr. Eliyas Dessie Electronics Technician
III
Technical Assistant
2 Mr. Seifesillase Hailu Computer Science
III
Technical Assistant
3 Mr. Adane Tegegne Computer Science
III
28
Appendix 1A: Course Schedule
Software Engineering and Computing Technology Program
Year I: Semester I
Year I: Semester II
29
Second Year - Semester I
Course Code Course Title ECTS Lec. Tut. Lab Home
Study
MEng-1062 Engineering Drawing 5 32 16 48
GEng-106 Engineering Professions 5 32 48 0
CENG-1001 Engineering Mechanics (Statics) 5 32 48 0
SECE Probability and Statistics 5 32 48 0
Math-1041 Applied Engineering Mathematics 7 48 48 0
Elective (I, II, II) 5/3 32 16
Elective (I, II, II) 5/3 32 16
35/33
30
Year III: Semester I
34
Total 30
1
177 ects credits
31
Software Engineering Stream
Year IV: Semester I
SITE-4382 Entrepreneurship 5 32 16 0
Total 35
Total 34
32
Year V: Semester I
Total 33
Year V: Semester II
Total 20
33
Summary of SE Stream ECTS2
2
117 ects credits
34
Information Technology Stream
SITE-4382 Entrepreneurship 5 32 16 0
Total 35
Total 30
35
Year V: Semester I
Total 30
Year V: Semester II
36
Summary of Information Technology Stream ECTS3
3
118 ects credits
37
Artificial Intelligence Stream
Year IV: Semester I
Total 32
SITE-4382 Entrepreneurship 5 32 16 0
Total 35
38
Year V: Semester
Year V: Semester II
Total 21
39
Summary of Artificial Intelligence Stream ECTS4
4
115 ects credits
40
Cyber Security Engineering Stream
Year IV: Semester I
SITE-4382 Entrepreneurship 5 32 16 0
Total 35
41
Year V: Semester I
Total 29
Year V: Semester II
Total 26
42
Summary of Cyber Security Engineering Stream ECTS5
5
120 ects credits
43
Appendix 1B-Software Engineering and Computing
Technology Syllabuses
SEM I
Communication Skill (English)
Course Description
The aim of this course is to develop students’ basic communication skills in the context that
they will most need those skills: graduate school. Within the context of going abroad to
present a paper on their graduate research, students will learn skills needed for traveling (e.g.
asking for/giving directions, making reservations), negotiations, survey taking, and problem
solving, as well as be introduced to skills involved in making a presentation at a conference.
Additionally, students will learn to start and continue a conversation naturally, using a number
of communication strategies such as asking follow-up questions and giving extended answers.
They will also learn about turn taking and how to control the flow of a conversation by adding
information. Finally, writing skills will be practiced with a short essay using the Online
Homework Submission and Evaluation System.
Course Objectives
The course prepares the inexperienced writer for college level reading and academic writing
by focusing on critical thinking, reading, writing, and study skills necessary to succeed at the
academic level
Learning Outcomes
The program provides a knowledge and understanding of the following:
44
After completing this course students will:
○ understand and use different skills and strategies to read
○ understand the meaning of what is read
○ read different materials for a variety of purposes
○ write clearly and effectively
○ understand and use the steps of the writing process
○ analyze and evaluate the effectiveness of written work
○ analyze and evaluate the effectiveness of formal and informal communication
○ communicate ideas clearly and effectively
Prerequisites:
Student Workload
Lecture:32 hrs. Tutorial: 32 hrs Home Study: 61 hrs. Laboratory:
Teaching Methods
The teaching methods that shall be employed for this course are lecturing, demonstration, Lab
exercises, classroom discussion and classroom action research and assignments and
homework.
Assessment Method
● Continuous Assessment with Assignment, Tests and Projects (50%),
● Final examination (50%)
Course Policies
❏ Attendance: It is compulsory to attend class in time and every time. Missing more
than three classes during the term causes readmission for that course.
❏ Assignments: No Late Assignment will be accepted
❏ Test/Quizzes: Rarely reexamination schedules will be arranged for those who missed
the exam by accidental or uncontrollable situation.
❏ Cheating/Plagiarism: No second Chance or excuses.
References
References:
● Writing with Contemporary Readings by Baker, Barbara and Catherine Baker
● Text & Thought: An Integrated Approach to College Reading and Writing by Lester, Lanny, and
Judith Resnick
● The Writer's Response: A Reading-Based Approach to College Writing by McDonald, Stephen,
and William Salomone
Engineering Drawing
Module ECTS: 10
Course Title: Engineering Drawing Course Code: MEng-1062
Course ECTS: 5
Course Duration: 16 weeks
45
Instructor’s Contact Information: Course Information:
Name: Academic Year: 2016
Office: Semester: I/II
Phone: Meeting day:
Email: Meeting time:
Office Hours: Meeting location:
Course Description
Students are introduced to fundamental knowledge and skills such as line work, lettering, scale
use, and sketching, multiview drawings, sectional views, with the basics of manual drafting
techniques and the use of drafting equipment, auxiliary views, descriptive geometry, patterns
and developments
Course Objectives
At the end of the course, students shall master:
● Different types of projection techniques.
● Sketching multiview drawings.
● Pictorial drawings of given multi-view drawings.
● Sketching auxiliary and sectional views.
● Finding intersection lines of different geometries & development of surfaces.
● Theory of projections.
● Multi-view drawings.
● Pictorial drawings.
● Auxiliary views.
● Sectional views.
● Intersection and development.
Learning Outcomes
The program provides a knowledge and understanding of the following:
Knowledge on the fundamentals of Engineering drawing; ability to develop and/or
comprehend a simple engineering drawing in both First and Third angle orthographic
projections, international standards in engineering drawing practice and engineering graphics.
A fundamental knowledge on computer aided graphics. Ability of freehand sketching.
Developing cognitive and psychomotor skills; visualization of images and their dimensions.
Prerequisites:
Student Workload
Lecture:32 hrs. Tutorial: 32 hrs Home Study: 61 hrs. Laboratory:
Teaching Methods
The teaching methods that shall be employed for this course are lecturing, demonstration, Lab
exercises, classroom discussion and classroom action research and assignments and
homework.
Assessment Method
46
● Continuous Assessment with Assignment, Tests and Projects (50%),
● Final examination (50%)
Course Policies
❏ Attendance: It is compulsory to attend class in time and every time. Missing more
than three classes during the term causes readmission for that course.
❏ Assignments: No Late Assignment will be accepted
❏ Test/Quizzes: Rarely reexamination schedules will be arranged for those who missed
the exam by accidental or uncontrollable situation.
❏ Cheating/Plagiarism: No second Chance or excuses.
References
David A. Madsen and David P. Madsen, Engineering Drawing and Design (MindTap Course List), 6th Ed.
47
Engineering Professions *
Module ECTS: 10
Course Title: Introduction to Course Code: GENG-1061
Engineering Profession Course ECTS: 5
Course Duration: 16 weeks
Course Description
■ Interrelations and distinction among engineering, science and technology - R&D in
engineering;
■ Technical professional levels, qualifications and duties & responsibilities of technicians,
technologists and engineers (carrier structures and levels);
■ Engineers in academics and in industrial professions - B.Sc. and B.Eng., M.Sc. and M.Eng.
■ Engineering disciplines - civil, mechanical, chemical, industrial, manufacturing, electrical,
computer, biomedical, aeronautics and space;
■ Specific roles of electrical engineers in the engineering profession;
■ Engineering professional ethics and moral issues - engineering for civil and military
applications;
■ Normative interaction of engineers with other professionals as well as art and business;
■ Engineers as leaders and managers;
■ Engineering professional associations
Course Objectives
To enable students to understand the constructive interrelation of natural & social sciences as well as
business and art to engineering and their positive impact on the socio economic aspect of a society.
Content
Prerequisites:
Student Workload
Lecture:32 hrs. Tutorial: 32 hrs Home Study: 61 hrs. Laboratory:
Teaching Methods
48
The teaching methods that shall be employed for this course are lecturing, demonstration, Lab
exercises, classroom discussion and classroom action research and assignments and
homework.
Assessment Method
● Continuous Assessment with Assignment, Tests and Projects (50%),
● Final examination (50%)
Course Policies
❏ Attendance: It is compulsory to attend class in time and every time. Missing more
than three classes during the term causes readmission for that course.
❏ Assignments: No Late Assignment will be accepted
❏ Test/Quizzes: Rarely reexamination schedules will be arranged for those who missed
the exam by accidental or uncontrollable situation.
❏ Cheating/Plagiarism: No second Chance or excuses.
6
Refer the common course document
49
Applied Mathematics I
Module ECTS: 24
Course Title: Applied Mathematics I Course Code: Math-1041
Course ECTS: 7
Course Duration: 16 weeks
Course Description
Algebra and trigonometry, including algebraic fractions, systems of linear equations, quadratic
equations, literal equations, word problems and their solutions, right triangles, and vectors.
Applications will be stressed. Prerequisite: High School Algebra II.
Course Objectives
Students shall understand the principles of vector and scalars, definition and operation of
matrices & determinants, basics of limit and continuity, basic rules of derivatives & their
applications, integrals, integration techniques and their application in volume, arc length, and
surface area determination.
Learning Outcomes
The program provides a knowledge and understanding of the following:
1. Apply mathematical concepts and principles to perform computations
2. Apply mathematics to solve problems
3. Create, use and analyze graphical representations of mathematical relationships
4. Communicate mathematical knowledge and understanding
5. Apply technology tools to solve problems
6. Perform abstract mathematical reasoning
7. Learn independently
7
1 ECTS credit is equivalent to 27 working hours
50
The teaching methods that shall be employed for this course are lecturing, demonstration,
classroom discussion and classroom action research.
Assessment Method
The mark breakdown is as follows
● Exam – 70%
● Assignments – 30%
Course Policies
❏ Attendance: It is compulsory to attend class in time and every time. Missing more
than three classes during the term causes readmission for that course.
❏ Assignments: No Late Assignment will be accepted
❏ Test/Quizzes: Rarely reexamination schedules will be arranged for those who missed
the exam by accidental or uncontrollable situation.
❏ Cheating/Plagiarism: No second Chance or excuses.
References
● R. Ellis: Calculus with Analytic Geometry
● S.Lang: Linear Algebra
● Demissu Gemeda: An Introduction to Linear ALGEBRA
● E.W. Swokowski: Calculus
● J. Stewart, Calculus
51
Civics and Ethical Education
Module ECTS: 5
Course Tile: Civics and Ethical Course Code: CESt-1023
Education Course ECTS: 5
Course Duration: 16 Weeks
Course Description
This course attempts to introduce the fundamental concepts of
● State, Government and Citizenship
● Learning about Constitutions
● Constitutional experience in Ethiopia
● Morality, Ethics and Civic virtues
Course Objectives
Students shall learn about:
● Essence and origins of the state and Government
● The concept of citizens and citizenship
● Origins, essence and forms of constitution
● The ideas of Morality, Ethics and Civic virtues
Prerequisites: None
Assessment Method:
52
Assessment type
Labs (20 %)
Course Policies
❏ Attendance: It is compulsory to attend class in time and every time. Missing more than
three classes during the term causes readmission for that course.
❏ Assignments: No Late Assignment will be accepted
❏ Test/Quizzes: Rarely reexamination schedules will be arranged for those who missed the
exam by accidental or uncontrollable situation.
❏ Cheating/Plagiarism: No second Chance or excuses.
References
● What Is Democracy? by Touraine, Alain
● Globalizing Democracy: Power, Legitimacy, and the Interpretation of Democratic Ideas
by Fierlbeck, Katherine
53
SEM II
Course Description
The course is the first introduction to computer systems as such; it introduces students to the
world of information technology and computing. Students will be able to understand history of
computing and their evolution through time. They will see the role of hardware and software in a
computer system and how this components work together in order to provide a service for the
user.
The course describes how the computers represents, store and processes data. It explains the
problem solving process as well as how to implement those solutions using a computer. It also
describes basic concepts of operating systems, information systems and networking as well as
social and ethical issues related with computer systems and limitations of such systems.
Course Objectives
Student Workload
Lecture: 16 Tutorial: Home Study Laboratory
Course Content
Part 1: Introduction
o Introduction
o History of computing and Generations of computers.
o Types of computers.
o Classification of computer systems:
● Hardware: input, output, processing, memory and storage
● Software: system and application software
55
▪ Combinational circuits
▪ Integrated circuits
▪ CISC and RISC computers
o Computer architecture and computing components
● Stored program concept
● Von Neumann architecture
▪ CPU: ALU, Control unit and registers
▪ Memory: RAM / ROM
▪ I/O devices and operations
● Fetch decode execute cycle
56
o Current networking technologies
o The internet
● History of the internet
● World wide web
● Web pages and web development
● HTML, CSS and JavaScript
o Network security
Schedule8
Week Topics and Sub Topics
Week 1 - Week 4
Week 5 - Week 8
Week 9 - Week 12
Week 13 - Week 16
Assessment Method:
Assessment type
Labs (20 %)
Course Policies
❏ Attendance: It is compulsory to attend class in time and every time. Missing more than
three classes during the term causes readmission for that course.
❏ Assignments: No Late Assignment will be accepted
❏ Test/Quizzes: Rarely reexamination schedules will be arranged for those who missed the
exam by accidental or uncontrollable situation.
❏ Cheating/Plagiarism: No second Chance or excuses.
References
8
Detail plan shall be written by course instructors.
57
1. Computer science illuminated, Neil Dale & John Lewis, Jones and Bartlett Publishers,
Inc. 2015.
4. Computer science made simple, V. Anton Spraul, Broadway (April 12, 2005)
5. Filho, Wladston. Computer science distilled : learn the art of solving computational
problems. Las Vegas, Nevada: Code Energy LLC, 2018. Print.
58
Fundamental of Computer Science
Program: Software Engineering and Computing Technology
Module Title: Computer Science Module Code: SITE-M1081
Module ECTS: 28
Course Title: Fundamentals of Course Code: SITE-1081
Computer Science Course ECTS: 7
Course Duration: 16 weeks
Course Description
This course is an introduction to the fundamentals of computer programming, which is
the foundation of Computer Science. Students design, write, and debug computer
programs. No prior knowledge of programming is assumed.
Course Objectives
By the end of the semester, you will be:
Learning Outcomes
59
Upon successful completion of this course, the student will be able to:
1. Describe the major components of computer architecture
2. Analyze and demonstrate conversion of data encoding techniques
3. Explain the concept of data storage and named memory locations.
4. Apply decision and repetition structures in program design.
5. Implement methods and functions to improve readability of programs
6. Demonstrate the use of Python lists and dictionaries
7. Describe and apply object-oriented programming methodology.
8. Apply top-down concepts in algorithm design.
9. Write Python programs to illustrate concise and efficient algorithms.
Contents
Chapter 1: Introduction
● What is computation?
● History of computing and programming
● Formal and Natural languages
Chapter 3: Functions
Chapter 4: Conditionals
● User-Defined Functions
● Fruitful and void functions
● Return vs Print
● Function Scope
● Decomposition and Abstractions
Chapter 5: Iteration
● Looping Basics
● The while loop
● Break and Continue
● For Loops, Nested Loops
● Nested Lists & Looping
Chapter 6: Strings
● String as a sequence
60
● Indexing
● Mutability and Immutability
● Searching
● String Comparison
Chapter 8: Persistence
● File
● Reading and Writing
● Common file formats
● Pickling
Prerequisites:
Student Workload
Lecture:32 hrs. Tutorial: 32 hrs Home Study: 61 hrs. Laboratory:
Teaching Methods
The teaching methods that shall be employed for this course are lecturing, demonstration, Lab
exercises, classroom discussion and classroom action research and assignments and homework.
Assessment Method
● Assessment
o Lab: 20%
o Projects: 15%
o Assessments: 20%
Course Policies
❏ Attendance: It is compulsory to attend class in time and every time. Missing more than
three classes during the term causes readmission for that course.
❏ Assignments: No Late Assignment will be accepted
❏ Test/Quizzes: Rarely reexamination schedules will be arranged for those who missed the
exam by accidental or uncontrollable situation.
❏ Cheating/Plagiarism: No second Chance or excuses.
References
1. Zelle, John M. Python programming : an introduction to computer science. Portland,
Oregon: Franklin, Beedle & Associates Inc, 2017. Print.
2. Matthes, Eric. Python crash course : a hands-on, project-based introduction to
programming. San Francisco: No Starch Press, 2016. Print.
61
3. How to Think Like a Computer Scientist
4. https://books.trinket.io/pfe/index.html
62
Basic Writing Skills
Module ECTS: 10
Course Title: Basic Writing Skills Course Code: EnLa-1012
Course ECTS: 5
Course Duration: 16 weeks
Course Description
The course prepares the inexperienced writer for college level reading and academic writing
by focusing on critical thinking, reading, writing, and study skills necessary to succeed at the
academic level.
Course Objectives
After completing this course students will:
● understand and use different skills and strategies to write
● understand the meaning of what is written
● read different materials for a variety of purposes
● write clearly and effectively
● understand and use the steps of the writing process
● analyze and evaluate the effectiveness of written work
● analyze and evaluate the effectiveness of formal and informal communication
● communicate ideas clearly and effectively
Learning Outcomes
The program provides a knowledge and understanding of the following:
Prerequisites:
Student Workload
Lecture:32 hrs. Tutorial: 32 hrs Home Study: 61 hrs. Laboratory:
Teaching Methods
The teaching methods that shall be employed for this course are lecturing, demonstration, Lab
63
exercises, classroom discussion and classroom action research and assignments and
homework.
Assessment Method
● Continuous Assessment with Assignment, Tests and Projects (50%),
● Final examination (50%)
Course Policies
❏ Attendance: It is compulsory to attend class in time and every time. Missing more
than three classes during the term causes readmission for that course.
❏ Assignments: No Late Assignment will be accepted
❏ Test/Quizzes: Rarely reexamination schedules will be arranged for those who missed
the exam by accidental or uncontrollable situation.
❏ Cheating/Plagiarism: No second Chance or excuses.
References
References:
● Writing with Contemporary Readings by Baker, Barbara and Catherine Baker
● Text & Thought: An Integrated Approach to College Reading and Writing by Lester, Lanny, and
Judith Resnick
● The Writers Response: A Reading-Based Approach to College Writing by McDonald, Stephen,
and William Salomone
64
Linear Algebra
Module ECTS: 24
Course Title: Linear Algebra Course Code: Math-1042
Course ECTS: 5
Course Duration: 16 weeks
Course Description
This course covers matrix theory and linear algebra, emphasizing topics useful in other
disciplines, especially in Computer Science. Linear algebra is a branch of mathematics that
studies systems of linear equations, the properties of matrices and application of matrices. The
concepts of linear algebra are extremely useful in computer science, physics, economics and
social sciences, natural sciences, and engineering. Due to its broad range of applications, linear
algebra is one of the most widely taught subjects in college-level mathematics. Specifically, in
computer science it is applied in Numerical Optimization, Computer Vision, Natural Language
Processing and many other Machine Learning and AI related fields.
Course Objectives
The goal of the course is to create an understanding of various theories of vector and matrix
manipulation and apply those theories using computer programming to solve several problems
in computing fields.
Learning Outcomes
The program provides a knowledge and understanding of the following:
Practical Skills
- Solving System of Linear Equations
- Manipulation of Vectors and Matrices in Vector Spaces
- Decomposition of matrices using different techniques for different purposes
- Transformation of Vectors and Matrices to different basis Vector
- Application of Linear Algebra to different numerical optimization methods
- Implementation of Linear Algebra topics using a computer programming language
- Applying computer program to solve problems
- Students will have knowledge of Linear algebra that can be applied to wide variety of
engineering fields
- Student will acquire practical knowledge of application number crunching for
applications like Machine Learning, Computer Graphics
Prerequisites:
65
Student Workload
Lecture:32 hrs. Tutorial: 32 hrs Home Study: 39 hrs. Laboratory: 32 hrs
Course Content
Chapter 1 – System of Linear Equations
● Vectors and Matrices
● Gaussian Elimination
● Matrix Inverse
● Diagonal, Triangular and Symmetric Matrices
Chapter 2 – Vector Spaces and Subspaces
● Spaces of Vector
● Linear Independence
● Coordinate Basis
● Change of Basis
● Rank and Nullity
Chapter 3 – Determinant
● Determinant by Cofactor
● Row Reduction
● Crammers Rules
Chapter 4 –Transformation
● Linear Transformation
● Scaling
● Shear
● Rotation
● Affine Transformation
Chapter 5 – Eigenvalues and Eigenvectors
● Eigenvalues and Eigenvectors
● Diagonalization
● Complex Vector Spaces
Chapter 6 – Inner Product Spaces
● Inner Products
● Angle and Orthogonality
● Gram-Schmidt Process & QR-Decomposition
Chapter 7 – Diagonalization and Quadratic Forms
● Orthogonal Matrices
● Orthogonal Diagonalization
● Quadratic Forms and their applications
Chapter 8 – Numerical Methods
● LU Decomposition
● The Power Methods
● Singular Value Decomposition
Chapter 9 – Application of Linear Algebra
● Curves, Splines and Surfaces
● Linear Regression
66
Schedule
Weeks Topics and Subtopics
Lecture Laboratory Assessment
Week 1 Chapter 1 Vector and Matrices Practical Assignment I –
Gaussian Elimination
Week 2 Chapter 2 Coordinate Systems
Course Policies
❏ Attendance: It is compulsory to attend class in time and every time. Missing more
than three classes during the term causes readmission for that course.
❏ Assignments: No Late Assignment will be accepted
❏ Test/Quizzes: Rarely reexamination schedules will be arranged for those who missed
67
the exam by accidental or uncontrollable situation.
❏ Cheating/Plagiarism: No second Chance or excuses.
References
● Introduction to Linear Algebra, 5th Edition by Gilbert Strang
● Elementary Linear Algebra, 11th Edition by Howard Anton and Chris Rorris
68
Applied Math II
Program: Software Engineering and Computing Technology
Module Title: Applied Mathematics Module Code: Math-M1043
Module ECTS: 24
Course Title: Applied Mathematics II Course Code: Math-1043
Course ECTS: 7
Course Duration: 16 weeks
Course Description
The student is assumed to be capable in the standard Calculus I topics of taking limits,
continuity, taking derivatives of fairly complicated functions, using derivatives, calculating the
definite integral for basic functions, integration by substitution and the standard applications of
the definite integral. Students who are not fully prepared for this course should review the
chain rule, the basic integral formulas and integration by substitution, trigonometric equations
and polar coordinates.
Course Objectives
This is the second course in the calculus series for science and engineering students. This
course helps you know integration techniques as well as applications of integrals, parametric
curves in a plane, as well as infinite sequences and series.
Learning Outcomes
The program provides a knowledge and understanding of the following:
Practical Skills
Set up and evaluate integrals to calculate
● Volume of a solid of known cross sections
● Length of a plane curve
● Area of a surface of revolution
● Work done by a variable force
● Moments and center of mass of a plane lamina, centroid of a plane region.
Techniques of Integration
● Carry out integration by parts and apply it to evaluate integrals.
● Use partial fractions to evaluate integrals of rational functions.
● Given an improper integral, determine whether it converges or diverges, and evaluate it if it
converges.
Infinite Series
● Apply limit rules, including L'Hôpital's Rule, to calculate limits of sequences. Apply the concept of
boundedness to identify convergent monotonic sequences.
● Use the concept of partial sum to distinguish between convergent and divergent series and to define
the sum of a convergent series.
● Recognize geometric series and collapsing series and calculate their sums when convergent.
69
● Determine radius of convergence and convergence set of a power series.
● Expand a function in a Taylor series. Recall and use the Taylor series of elementary functions.
● Use the remainder in Taylor's formula to estimate the approximation error in a Taylor polynomial.
Plane Parametric Curves, Polar Coordinates
● Derive parametric representations for plane curves described ``mechanically'' (for example, the
cycliod.)
● Find tangents and compute length for parametric curves.
● Use polar coordinates, and convert between polar and rectangular coordinates.
● Identify the polar equations for lines, circles and conics.
● Compute the area of regions whose boundaries are defined by equations in polar coordinates.
Apply techniques Integrals, Series and Polar Coordinates in Machine Learning, Computer
Vision, Modeling motion of machines, Computer Graphics, Physics Engine and many other.
9
1 ECTS credit is equivalent to 27 working hours
70
● How Fast Does a Tank Drain?
● Which Is Faster, Going Up or Coming Down?
● Models for Population Growth
● Linear Equations
● Predator-Prey Systems
Chapter 4 - Parametric Equations, Polar Coordinates and Conic Sections
● Parametric Equations
● Calculus with Parametric Curves:
● Polar Coordinates
● Areas and Lengths in Polar Coordinates
● Conic Sections
Chapter 5 - Partial Derivatives
● Limits
● Partial Derivatives
● Interpretations of Partial Derivatives
● Higher Order Partial Derivatives
● Differentials
● Chain Rule
● Directional Derivatives
Schedule
Weeks Topics and Subtopics
Lecture Laboratory Assessment
Week 1 - Week 2 Chapter 1
Week 3 - Week 5 Chapter 2
Week 6 - Week 8 Chapter 3
Week 9 Exam
Week 10 - Week Chapter 4
11
Week 12 - Week Chapter 5
13
Week 14 Exam
Teaching Methods
The teaching methods that shall be employed for this course are lecturing, demonstration,
classroom discussion and classroom action research.
Assessment Method
The mark breakdown is as follows
● Exam – 70%
● Assignments – 30%
Course Policies
71
❏ Attendance: It is compulsory to attend class in time and every time. Missing more
than three classes during the term causes readmission for that course.
❏ Assignments: No Late Assignment will be accepted
❏ Test/Quizzes: Rarely reexamination schedules will be arranged for those who missed
the exam by accidental or uncontrollable situation.
❏ Cheating/Plagiarism: No second Chance or excuses.
References
● Thomas’ Calculus, 14th Edition by George B. Thomas, JR.
● Calculus: Early transcendentals, 8th Edition by James Stewart
● Calculus, 10th Edition by Howard Anton and Irl Bivens Davidson College and Stephen
Davis Davidson College
72
SEM III
Fundamentals of Database
School: School of Information Technology and Engineering
Module Title: Full Stack Development Module Code: SITE-M2101
Fundamentals
Module ECTS: 29
Course Title: Fundamentals of Course Code: SITE-2101
Database System
Course ECTS: 7
Course Duration: 16 weeks
Course Description
This course covers fundamentals of Database system includes extensive coverage of the Database
System Concepts and Architecture Data Modeling and Database Design, Relational Data Model and
SQL, Database Design Theory and Normalization, Query Processing and Optimization, Transaction
Processing, Concurrency Control, and Recovery. Many additional key database topics from the design
and application-building perspective are also covered, including indexes, views, and integrity
constraints.
Course Objectives
Students successfully completing this course should be able to:
● To understand the different issues involved in the design and implementation of a database
system.
● To study the physical and logical database designs, database modeling relational,
hierarchical, and network models.
● To understand and use data manipulation language to query, update and manage a
database.
● To design and build a single database system and demonstrate competence with
fundamental tasks involved with modeling, designing and implementing a DBMS.
● To understand database query processing, optimization transaction processing,
concurrency control, and recovery
Learning Outcomes
The Course provides a knowledge and understanding of the following:
73
● Differentiate database systems from file systems by enumerating the features provided by
database systems and describe each in both function and benefit.
● Define the terminology, features, classifications, and characteristics embodied in database
systems.
● Analyze an information storage problem and derive an information model expressed in the
form of an entity relation diagram and other optional analysis forms, such as a data
dictionary.
● Demonstrate an understanding of the relational data model.
● Transform an information model into a relational database schema and to use a data
definition language and/or utilities to implement the schema using a DBMS.
● Formulate, using relational algebra, solutions to a broad range of query problems.
● Formulate, using SQL, solutions to a broad range of query and data update problems.
● Demonstrate an understanding of normalization theory and apply such knowledge to the
normalization of a database.
● Use an SQL interface of a multi-user relational DBMS package to create, secure, populate,
maintain, and query a database.
● Demonstrate an understanding of query processing, optimization transaction processing,
concurrency control, and recovery
Prerequisites:
No-prerequisite
Student Workload
Lecture:32 hrs Tutorial: 32 hrs Home Study:65 hrs Laboratory: 48hrs
Course Content
Basic Definitions
● Types of Databases and Database Applications
● Typical DBMS Functionality
● Example of a Database (UNIVERSITY)
● Database Users
● When Not to Use Databases
Part Two: Filing System and Database Design Methodology
● Manual File Handling Systems and Limitation
File Based Approach and Limitation
● Database Approach
● Main Characteristics of the Database Approach
● Advantages of Using the Database Approach
● Levels of Abstraction
● Database Design Methodology
Part-Three: Database System Concepts and Architecture
74
CHAPTER 2: CONCEPTUAL DATA MODELING AND DATABASE DESIGN
Part One: Data Modeling Using the Entity-Relationship (ER) Model
● Overview of Database Design Process
● Example Database Application (COMPANY)
● ER Model Concepts
● ER Diagrams - Notation
● ER Diagram for COMPANY Schema
● Alternative Notations – UML class diagrams, others
75
CHAPTER 4: DATABASE DESIGN THEORY AND NORMALIZATION
Part One: Functional Dependencies And Normalization For Relational Databases
● Functional Dependencies (FDs)
● Normal Forms Based on Primary Keys
● General Normal Form Definitions (For Multiple Keys)
● BCNF (Boyce-Codd Normal Form)
● Part Two: Relational Database Design Algorithms and Further Dependencies
● Further Topics in Functional Dependencies: Inference Rules, Equivalence, and
Minimal Cover
● Properties of Relational Decompositions
● Algorithms for Relational Database Schema Design
● About Nulls, Dangling Tuples, and Alternative Relational Designs
● Further Discussion of Multivalued Dependencies and 4NF
76
● Transaction and System Concepts
● Desirable Properties of Transactions
● Characterizing Schedules Based on Recoverability
● Characterizing Schedules Based on Serializability
● Transaction Support in SQL
Part Two: Concurrency Control Techniques
Teaching Methods
● The format of the course will be lecture, class discussion and presentation, lab exercise,
assignments and Project.
● Students will work on MySQL/Oracle/SQL Server and modeling tools
77
Assessment Method
● Quiz#1 – 5%
● Quiz#1 – 5%
● Assignments#1 – 5%
● Assignments#1 – 5%
● Mid Exam – 15%
● Each Lab and Final Lab exam – 20%
● Final Project - 20%
● Final Exam – 25%
Course Policies
❏ Attendance: It is compulsory to attend class in time and every time. Missing more
than three classes during the term causes readmission for that course.
❏ Assignments: No Late Assignment will be accepted
❏ Test/Quizzes: Rarely re examination schedules will be arranged for those who missed
the exam by accidental or uncontrollable situation.
❏ Cheating/Plagiarism: No second Chance or excuses.
❏ Project: The project consists of report and presentation on a topic of your choice that is
relevant to the course. It is group-based
References
1. Elmasri, Ramez, and Sham Navathe. Fundamentals of database systems. Hoboken, NJ:
Pearson, 2016.( Text Book)
2. Hernandez, Michael J. Database design for mere mortals : a hands-on guide to relational
database design. Upper Saddle River, NJ: Addison-Wesley, 2013
3. Ullman, Jeffrey D., and Jennifer Widom. A first course in database systems. Upper Saddle
River, NJ: Pearson/Prentice Hall, 2008
78
Probability and Statistics
Module ECTS: 24
Course Title: Probability and Statistics Course Code: Math-2044
Course ECTS: 5
Course Duration: 16 weeks
Course Description
Probability theory is the branch of mathematics that deals with modelling uncertainty. It is
important because of its direct application in areas such as genetics, finance and
telecommunications. It also forms the fundamental basis for many other areas in the
mathematical sciences including statistics, modern optimization methods and risk modelling.
This course provides an introduction to probability theory, random variables and Markov
processes. Topics covered are: probability axioms, conditional probability; Bayes' theorem;
discrete random variables, moments, bounding probabilities, probability generating functions,
standard discrete distributions; continuous random variables, uniform, normal, Cauchy,
exponential, gamma and chi-square distributions, transformations, the Poisson process;
bivariate distributions, marginal and conditional distributions, independence, covariance and
correlation, linear combinations of two random variables, bivariate normal distribution;
sequences of independent random variables, the weak law of large numbers, the central limit
theorem; definition and properties of a Markov chain and probability transition matrices;
methods for solving equilibrium equations, absorbing Markov chains.
Course Objectives
Students will learn fundamental rules of Probability, discrete and continuous distributions
most commonly used in Computer Science and Software Engineering. They will be introduced
to stochastic processes, Markov chains, statistical inference, and Monte Carlo methods and
will apply the theory and methods to the evaluation of queuing systems and computation of
their vital characteristics. The student will be exposed to R statistical programming tool in the
laboratory session
Learning Outcomes
The program provides a knowledge and understanding of the following:
79
● Distinguish between quantitative and categorical data and know which graphical and
tabular techniques to apply to each.
● Produce and interpret graphical displays for simple data sets.
● Identify when correlation and regression analyses are appropriate.
● Set up a basic simulation model.
● Calculate probabilities using Venn diagrams, tree diagrams, and the Addition and
Multiplication rules.
● Describe the concepts of mutually exclusive events, conditional probability, dependent
and independent events.
● Calculate probabilities using the Binomial distribution.
● Discuss the concept of a sampling distribution.
● Describe what is meant by the central limit theorem, and understand its relevance to
statistical inference.
● Calculate and interpret confidence intervals for estimating population proportions and
means.
● Conduct hypothesis tests for population proportions and means.
● Explain the meaning of P-values in hypothesis testing.
● Identify when and how to use the t-distribution.
● Determine appropriate sample sizes for estimating an unknown population proportion
or mean.
● Conduct a Chi-Square test of independence.
● Learn how to use R programming language to perform different statistical operations
● Apply theories in Probability and Statistics in Machine Learning, Data Mining,
Artificial Intelligence and other related fields
Prerequisites:
Applied Mathematics II
Introduction to Computer Science
Student Workload
Lecture:32 hrs. Tutorial: 32 hrs Home Study:39 hrs. Laboratory: 32 hrs
Course Content
Chapter 1 – Introduction to Probability
● Events and Their Probability
● Rules of Probability
● Combinatorics
● Conditional Probability and Independence
Chapter 2 – Discrete Random Variable and Their Distribution
● Distribution of random variables
● Distribution of random vector
● Expectation and variance
● Families of discrete distributions
Chapter 3 - Continuous Distributions
● Probability density
● Families of continuous distributions
80
● Central Limit Theorem
Chapter 4 - Computer Simulations and Monte Carlo Methods
● Simulation of random variables
● Solving problems by Monte Carlo methods
Chapter 5 - Stochastic Processes
● Markov processes and Markov chains
● Counting processes
● Simulation of stochastic processes
Chapter 6 - Queuing Systems
● Main components of a queuing system
● The Little’s Law
● Bernoulli single-server queuing process
● M/M/1 system
● Multi Server queuing systems
● Simulation of queuing systems
Chapter 7 - Introduction to Statistics
● Population and sample, parameters and statistics
● Simple descriptive statistics
● Graphical statistics
Chapter 8 - Statistical Inference I
● Parameter estimation
● Confidence intervals
● Unknown standard deviation
● Hypothesis testing
● Inference about variances
Chapter 9 - Statistical Inference II
● Chi-square tests
● Nonparametric statistics
● Bootstrap
● Bayesian inference
Chapter 10 – Regression
● Least squares estimation
● Analysis of variance, prediction, and further inference
● Multivariate regression
● Model building
Schedule
Weeks Topics and Subtopics
Lecture Laboratory Assessment
Week 1 Chapter 1 Lab 1 – Basic
Probability
Programming
Week 2 Chapter 2 Lab 2 – Random Assignment 1
Variables
81
Week 3 Chapter 3 Lab 3 - Distributions Assignment 2
Week 4 Chapter 4 Lab 4 – Applying
Monet Carlo Methods
Week 5 – Week 7 Chapter 5 Lab 5 – Markov Assignment 3
Chains and Processes
Week 7 Chapter 6 Assignment 4
Week 8 Exam
Week 9 Chapter 7 Lab 6 – Implementing
Descriptive Statistics
– Mean, Median …
Week 10 – Week 11 Chapter 8 Lab 7 – Correlation, Assignment 5
Covariance,
Parameter Estimation
Week 12 – Week 13 Chapter 9 Lab 8 – Bayesian
Inference
Week 14 Chapter 10 Lab 9 – Application Assignment 6
of Probability and
Statistics -
Regressions
Week 15 Exam
Teaching Methods
The teaching methods that shall be employed for this course are lecturing, demonstration,
classroom discussion and classroom action research.
Assessment Method
The mark breakdown is as follows
● Exams – 60%
● Labs – 15%
● Assignments – 25%
Course Policies
❏ Attendance: It is compulsory to attend class in time and every time. Missing more
than three classes during the term causes readmission for that course.
❏ Assignments: No Late Assignment will be accepted
❏ Test/Quizzes: Rarely reexamination schedules will be arranged for those who missed
the exam by accidental or uncontrollable situation.
❏ Cheating/Plagiarism: No second Chance or excuses.
References
● Probability and Statistics for Computer Scientists, 2nd Edition by Michael Baron
● Larsen, Richard J., and Morris L. Marx. An introduction to mathematical statistics and
its applications. Boston: Pearson, 2018
● Nik, Hossein. Introduction to probability, statistics, and random processes. Blue Bell,
PA: Kappa Research, LLC, 2014
● Fischetti, Tony. Data analysis with R : load, wrangle, and analyze your data using the
world's most powerful statistical programming language. Birmingham, UK: Packt
82
Publishing, 2015
83
Discrete Mathematics
Module ECTS: 28
Course Title: Discrete Mathematics Course Code: SITE-2083
Course ECTS: 5
Course Duration: 16 weeks
Course Description
The purpose of this course is to understand and use (abstract) discrete structures that are
backbones of computer science. In particular, this class is meant to introduce logic, proofs,
sets, relations, functions, counting, and probability, with an emphasis on applications in
computer science.
Course Objectives
● The fundamental concepts of discrete mathematics.
● The role of formal definitions, formal and informal mathematical proofs, and
underlying algorithmic thinking, and be able to apply them in problem solving.
● The role of discrete mathematics in applications in computer science.
Learning Outcomes
The programme provides a knowledge and understanding of the following:
Upon completion of this course students should be able to do the following:
● Discuss definitions and diagram strategies for potential proofs in logical sequential
order without mathematical symbols (plain English).
● Construct mathematical arguments using logical connectives and quantifiers.
● Verify the correctness of an argument using symbolic logic and truth tables.
● Construct proofs using direct proof, proof by contradiction, and proof by cases, or
mathematical induction.
● Solve problems using counting techniques and combinatorics.
● Perform operations on discrete structures such as sets, functions, relations or
sequences.
● Solve problems involving recurrence relations and generating functions.
● Construct functions and apply counting techniques on sets in the context of discrete
probability.
● Apply algorithms and use definitions to solve problems to proof statements in
elementary number theory.
84
Prerequisites:
Fundamentals of computer science
Student Workload
Lecture:32 Tutorial: 16hr Home Study: Laboratory: 48hr
hrs
Course Content
1. The Foundations: Logic and Proofs
1.1 Propositional Logic
1.2 Applications of Propositional Logic
1.3 Propositional Equivalences
1.4 Predicates and Quantifiers
1.5 Nested Quantifiers
1.6 Rules of Inference
1.7 Introduction to Proofs
1.8 Proof Methods and Strategy
3 Algorithms
3.1 Algorithms
3.2 The Growth of Functions
3.3 Complexity of Algorithms
7 Discrete Probability
7.1 An Introduction to Discrete Probability
7.2 Probability Theory
7.3 Bayes’ Theorem
7.4 Expected Value and Variance
10 Graphs
10.1 Graphs and Graph Models
10.2 Graph Terminology and Special Types of Graphs
10.3 Representing Graphs and Graph Isomorphism
10.4 Connectivity
10.5 Euler and Hamilton Paths
10.6 Shortest-Path Problems
10.7 Planar Graphs
10.8 Graph Coloring
11 Boolean Algebra
11.1 Boolean Functions
11.2 Representing Boolean Functions
11.3 Logic Gates
11.4 Minimization of Circuits
Schedule
Week 1 -4
Week 5 - 8
Week 9 - 12
Week 13 - 16
Teaching Methods
The teaching methods that shall be employed for this course are lecturing, demonstration,
classroom discussion and classroom action research.
Assessment Method
The mark breakdown is as follows
❏ Mid Exam 15%
❏ Lab Exam I (practical) 10%
❏ Lab Exam II(practical) 10%
❏ Assignment I 10%
❏ Project 30%
❏ Final Exam 30%
Course Policies
86
❏ Attendance: It is compulsory to attend class in time and every time. Missing more
than three classes during the term causes readmission for that course.
❏ Assignments: No Late Assignment will be accepted
❏ Test/Quizzes: Rarely re examination schedules will be arranged for those who missed
the exam by accidental or uncontrollable situation.
❏ Cheating/Plagiarism: No second Chance or excuses.
References
87
Fundamentals of Data structures
Module ECTS: 28
Course Title: Fundamentals of Data Course Code: SITE-2082
Structures
Course ECTS: 5
Course Duration: 16 weeks
Course Description
This course covers the design, analysis, and implementation of basic data structures in C++. Algorithms
operating on the data structures are also covered. It is fundamentally a course about data structures, not
about C++. However, as we will implement some of the data structures in C++, basic aspects of C++ and
(very little) object oriented programming in C++ are also covered. We will start with a brief discussion of
the C++ programming language. Then, we survey fundamental data structures (array, vector, lists, queue,
stack, hash map, trees, and possibly graphs) and how we can make use of them in C++. Then, we delve
deeper into the design, analysis and implementation of such data structures. Asymptotic analysis of
algorithms and data structures is also discussed.
Course Objectives
● To introduce algorithmic analysis, fundamental data structures, problem solving
paradigms
● To study the representation, implementation and application of basic data structures.
● To introduce algorithmic strategies and time complexity analysis of problems.
● To study applications of Data Structure in solving real life problems
Learning Outcomes:
● Able to understand the concepts of data structure, data type and array data structure.
● Able to understand and apply various data structure such as linked list, stacks, queues,
trees and graphs to solve various computing problems using C++ programming
language
● Able to analyze algorithms and determine their time complexity.
● Able to effectively choose the data structure that efficiently model the information in a
problem
88
Student Workload
Lecture:32 hrs Tutorial: 16hr Home Study: Laboratory: 48hr
Course Content
Chapter One:
Introduction to data structures: Concept of data, Data types, Data Object, Data structure,
Abstract, Data types (ADT), linear data structures using sequential organization: Concept of
sequential organization, Concept of Linear data structures, arrays as ADT, Multidimensional
arrays, Storage representations (row major and column major and their address calculation).
Polynomial representation
Chapter Two:
Concept of linked organization, singly linked list, doubly linked list, circular linked list and
operations on above data structure. Application of linked list for Representation and
manipulations of polynomials
Chapter Three:
Concept of stack and queues as ADT, Implementation of stacks using sequential and linked
organization, linear queue, circular queue using sequential and linked organization, Priority
Queue, Application of stack for expression conversion, evaluation, processing of function calls,
and recursion, Application of queue in job scheduling.
Chapter Four:
Non-linear Data Structures: Trees and binary trees-concept and terminology, Sequential &
Linked representation of binary trees, Algorithm for tree traversals, Conversion of general tree
to binary tree, Binary search trees, Applications of binary tree : expression tree, decision tree.
Graph: Representation of graph -Adjacency matrix and Adjacency list, Graph traversals,
application of graph: connected components, Spanning tree, Minimum cost spanning tree, and
shortest path computation.
Chapter Five:
Searching and Sorting: Sequential, binary and Fibonacci search. General concepts: sort order,
sort stability, efficiency and passes, Internal and external sorting, Bubble sort, Quick and Merge
sort. Files: Organization of files: sequential and direct access file and simple index file, hashing
function and its characteristics, collision resolution, linear probing, chaining with and without
replacement, rehashing
Schedule
Weeks Topics and Subtopics
Lecure Assessment
Laboratory
Week 1 - Week 4 Chapter 1 - Chapter 3 ] Lab Exam I
Week 5 - Week 8 Chapter 4 - Chapter 5] Mid Exam
Lab Exam I
Week 9 - Week 12 Chapter 6 - Chapter 7] Assignment I
and Lab Exam II
Week 12 - Week Project and Final
16 Exam
Teaching Methods
The teaching methods that shall be employed for this course are lecturing, demonstration,
classroom discussion and classroom action research.
89
Assessment Method
The mark breakdown is as follows
❏ Mid Exam 15%
❏ Lab Exam I (practical) 10%
❏ Lab Exam II(practical) 10%
❏ Assignment I 10%
❏ Project 30%
❏ Final Exam 30%
Course Policies
❏ Attendance: It is compulsory to attend class in time and every time. Missing more than
three classes during the term causes readmission for that course.
❏ Assignments: No Late Assignment will be accepted
❏ Test/Quizzes: Rarely re examination schedules will be arranged for those who missed
the exam by accidental or uncontrollable situation.
❏ Cheating/Plagiarism: No second Chance or excuses.
References
1. Data Abstraction & Problem Solving with C++, 6th Ed. Carrano & Henry, Pearson, 2013
2. Data Structures and Algorithms in C++, Cengage India; 4TH, INTERNATIONAL
ECONOMY EDITION edition (2013)
90
Fundamental of Networking
Course Description
Data Communication and Computer Networking is a course which deals about the basic
concepts of ways of communication, types of communications, basic types of networking
devices, how devices are communicating each other using the TCP/IP and OSI reference
model, designing a small LAN network using peer to peer connection, basic types of LAN and
WAN protocols, the Wireless Network and identifying the protocols which are working at the
Application and Transport layers.
Course Objectives
General Objective
After completing the course the students are going to evaluate the application of Computer Networking
in today’s global communities who are linked by common goals and technologies.
Specific Objective
1. Analyze the principles of data communication, computer networks and inter-networking.
2. Describe the trends of the rapidly evolving communication and networking technologies.
3. Categorize the functions and design of different types of computer networks from LANs to WANs.
91
On successful completion of this unit, students should be able to:
a. Explain the principles of networking protocols and standards;
b. Identify reference models and layered architectures in networking;
c. Recognize network topologies, media types and network components;
d. Identify the network (OSI) layers at which various network devices operate;
e. Use some basic tools/utilities for network analysis;
f. Employ basic cabling and network design techniques to connect devices.
Student Workload
Lecture:32 hrs Tutorial: 32 hrs Home Study:65 hrs Laboratory: 48hrs
Course Content
Chapter 1: Introduction to Data Communications and computer networks
Teaching Methods
The teaching methods that shall be employed for this course are lecturing, demonstration,
classroom discussion and classroom action research.
Assessment Method
Type Mark
Quiz Exam 5
Assignments 10
Lab Exam 20
Final Project 20
Mid Exam 20
Final Exam 25
TOTAL 100%
Course Policies
● Attendance Policy: Regular and punctual attendance is required. A maximum of 2
unexcused absences is allowed for a four-credit course. If a student absent more than 2
days, he/she will not sit on the mid / final exam.
● Assignments: No Late Assignment will be accepted
● Test/Quizzes: Rarely re-examination schedules will be arranged for those who missed
93
the exam by accidental or uncontrollable situation.
● Cheating/Plagiarism: No second Chance or excuses.
References
1. Kurose, James F., and Keith W. Ross. Computer networking : a top-down approach. Boston:
Pearson, 2017
2. A. S. Tanenbaum, Computer Networks, 5th ed, Prentice Hall, 2010
3. W. Stallings, Data and Computer Communications, 10th ed. Prentice Hall, USA, 2014
94
SEM IV
System Programming
Module ECTS: 17
Course Tile: Systems Programming Course Code: SITE-2072
Course ECTS: 5
Course Duration: 16 Weeks
Course Description
A computer needs an operating system to manage its resources and provide support for common
functions such as accessing peripherals like keyboard, screen, mouse, printers, hard disk, or
network. The operating system also provides useful abstractions such as processes (for
multiprogramming), threads (for multitasking), semaphores (for coordination), scheduling policy,
and memory management. System programming refers to writing code that takes advantage of
operating system support for programmers.
This course is designed to introduce students to system programming. By the end of this course,
students should be proficient at writing programs that take full advantage of operating system
support. Students will be able to build, debug and test system programs. The course stresses
learning how to use tools such as debuggers. The course also stresses the understanding of how
programs execute on today’s computers. Programming will be in C on Unix/Linux based systems
to introduce students to a new programming eco system, as well as enable the mapping of high-
level language constructs to the underlying machine.
Course Objectives
Demonstrate mastery of the internal operation of UNIX system software.
By the end of the course students should be able to accomplish the following:
✓ Understand the basic principles in system programming and identify different tools
that are used to develop system programs.
95
✓ Become acquainted with the basic tools used to develop software on the UNIX
platform.
✓ Write, compile, debug, and execute C programs that correctly use basic C language
constructs, arrays, pointers, functions, structures and system interfaces.
✓ Understand program translation and execution steps involved in building C
programs.
✓ Understand machine level representation of programs.
✓ Understand different machine level operations and how high level programs are
translated into their machine level counterparts.
✓ List UNIX system calls, and invoke them correctly from within C programs.
✓ Write, compile, debug, and execute C programs that create, manage and terminate
processes.
✓ Define UNIX signals and signal handlers, and describe their use.
✓ Write, compile, debug, and execute C programs that use files and I/O on UNIX.
✓ Describe the protocols (such as TCP and IP) and interfaces (such as sockets) used
for communication among different computers.
Learning Outcomes
The course provides an introduction to programming using the C language, and an introduction to
Unix systems programming.
Upon completion of this course you will be able to:
1. Write and debug programs in the C programming language;
2. Explain how the Unix command shell processes commands;
3. Write simple shell scripts;
4. Explain how the Unix file system stores information;
5. Explain how concurrent processes are used in Unix;
6. Explain how asynchronous I/O and signals operate;
7. Apply the above knowledge to solve programming problems.
Student Workload:
Lecture: 32 Tutorial: 32 Home Study: Laboratory: 48
Course Content
Part 1: System programming overview
- General overview of systems and a computer system, application and system software and
programming.
- Introduction to system programming and differences and similarities between system and
application programming.
- The role of operating system in system programming.
- Introduction to UNIX / LINUX operating system and C programming language.
96
- General structure of C programs, steps of C program development.
- Basic language constructs: data types, operator, control structures and libraries.
- Arrays and Pointers
- Functions
- Types, Structures and Unions
- Dynamic memory allocation
- Programming with GNU C and C tools: debugger, make facility, de-compilers and
assemblers
Session 2: C Basics
- Implementing c programs, compiling and executing c programs, performing program
translation steps separately (preprocessing, compiling, assembling, linking and loading),
implementing simple C programs.
Session 5: Pointers
- Implementing C programs using pointers. Implementing different string processing
functions.
Schedule – optional
Week Topics and Sub Topics
Week 1 - Week 4
Week 5 - Week 6
Week 7 - Week 12
Week 13 - Week 16
Assessment Method:
98
Assessment Type
Labs (10 %)
Course Policies
❏ Attendance: It is compulsory to attend class in time and every time. Missing more than
three classes during the term causes readmission for that course.
❏ Assignments: No Late Assignment will be accepted
❏ Test/Quizzes: Rarely reexamination schedules will be arranged for those who missed the
exam by accidental or uncontrollable situation.
❏ Cheating/Plagiarism: No second Chance or excuses.
References
TEXTBOOKS:
1. Kernighan, Brian W., and Dennis M. Ritchie. The C programming language. Englewood
Cliffs, N.J: Prentice Hall, 1988
2. C Programming: A Modern Approach (Second Edition), K. N. King, Norton & Co. 2008.
.
REFERENCES:
3. The Practice of Programming, Brian W. Kernighan and Rob Pike, Addison-Wesley 1999.
The UNIX Programming Environment, B. Kernighan & R. Pike Prentice-Hall, 1984.
99
Fundamental of Electrical Circuits and Electronics
Course Description
This course introduces the fundamentals of the lumped circuit abstraction. Topics
covered include: resistive elements and networks; independent and dependent
sources; switches and MOS transistors; digital abstraction; amplifiers; energy storage
elements; dynamics of first- and second-order networks; design in the time and
frequency domains; and analog and digital circuits and applications. Design and lab
exercises are also significant components of the course
Course Objectives
After studying this course students will be able to
● Understand the basic electrical engineering principles and abstractions on which the design of
electronic systems is based. These include lumped circuit models, digital circuits, and
operational amplifiers.
● Use these engineering abstractions to analyze and design simple electronic circuits.
● Formulate and solve differential equations describing the time behavior of circuits containing
energy storage elements.
● Use intuition to describe the approximate time and frequency behavior of circuits containing
energy storage elements.
● Understand the concepts of employing simple models to represent non-linear and active
elements-such as the MOSFET-in circuits.
● Build circuits and take measurements of circuit variables using tools such as oscilloscopes,
multimeters, and signal generators. Compare the measurements with the behavior predicted by
mathematic models and explain the discrepancies.
● Understand the relationship between the mathematical representation of circuit behavior and
100
corresponding real-life effects.
● Appreciate the practical significance of the systems developed in the course.
Learning Outcomes
The programme provides a knowledge and understanding of the following:
● Employ simple lumped circuit models for resistors, sources, inductors, capacitors, and transistors
in circuits.
● Analyze circuits made up of linear lumped elements. Specifically, analyze circuits containing
resistors and independent sources using techniques such as the node method, superposition and
the Thevenin method.
● Employ Boolean algebra to describe the function of logic circuits.
● Design circuits which represent digital logic expressions. Specifically, design a gate-level digital
circuit to implement a given Boolean function.
● Check static discipline constraints in circuits. For example, determine if the circuit representing a
gate provides adequate noise margins.
● Determine the output produced by a circuit for a given set of inputs using the switch resistor
model of a MOSFET.
● Perform a small-signal analysis of an amplifier using small signal models for the circuit elements.
● Calculate the time behavior of first order and second order circuits containing resistors, capacitors
and inductors.
● Calculate the frequency response of circuits containing resistors, capacitors and inductors.
● Construct simple gates, amplifiers, or filters in the laboratory.
● Determine in the laboratory the time-domain and frequency-domain behavior of an RLC circuit.
● Use operational amplifier models in circuits which employ negative feedback.
● Use complex impedances to determine the frequency response of circuits.
● Determine the power dissipation in digital gates and employ CMOS technology to reduce static
power losses.
● Predict how a given circuit will affect an audio signal in the laboratory given the frequency
response of the circuit.
● Design, build and test an audio playback system which includes both analog and digital
components.
Prerequisites:
Fundamentals of computer science
Student Workload
Lecture:32 hrs Tutorial: 16hr Home Study: Laboratory: 48hr
Schedule
Week 1 -4
Week 5 - 8
Week 9 - 12
Week 13 - 16
Teaching Methods
The teaching methods that shall be employed for this course are lecturing, demonstration,
classroom discussion and classroom action research.
Assessment Method
101
The mark breakdown is as follows
❏ Mid Exam 15%
❏ Lab Exam I (practical) 10%
❏ Lab Exam II(practical) 10%
❏ Assignment I 10%
❏ Project 30%
❏ Final Exam 30%
Course Policies
❏ Attendance: It is compulsory to attend class in time and every time. Missing more
than three classes during the term causes readmission for that course.
❏ Assignments: No Late Assignment will be accepted
❏ Test/Quizzes: Rarely re examination schedules will be arranged for those who missed
the exam by accidental or uncontrollable situation.
❏ Cheating/Plagiarism: No second Chance or excuses.
References
● Agarwal, Anant, and Jeffrey H. Lang. Foundations of Analog and Digital Electronic
Circuits. San Mateo, CA: Morgan Kaufmann Publishers, Elsevier, July 2005
102
Fundamental of Web Design and Programming
Course Description
Although the World-Wide Web was initially conceived as a vehicle for delivering documents,
it is now being used as a platform for sophisticated interactive applications, displacing the
traditional mechanism of installable binaries. Web-based applications offer numerous
advantages, such as instant access, automatic upgrades, and opportunities for collaboration on
a massive scale. However, creating Web applications requires different approaches than
traditional applications and involves the integration of numerous technologies. This class will
introduce students to the Web technologies and give you experience creating Web
applications. In the process students will learn about markup languages, scripting languages,
network protocols, interactive graphics, event-driven programming, and databases, and see
how they all work together to deliver exciting applications.
Consequently, the course will not hard coded content as the web development is very
dynamic. The instructor at the time should follow the trends at the time of the course by
considering properties of varies frameworks, new developments and other known universities
syllabuses in accordance with the Practical skill mentioned.
The assessment method, books and other materials must be chosen by the instructors at the
time. However, Mozilla and w3school are listed in the references section as these institutions
drive the technology.
Course Objectives
The objective of this course to introduce students with the current state of the art web
application technologies and integration of these technologies to create a robust, world class
web application.
Learning Outcomes
The program provides a knowledge and understanding of the following:
103
Practical Skills
- Build websites, web frameworks using basic HTML, CSS and JavaScript
- Build client-side application that responsive
- Build web application that consist AJAX and Server-Side
- Build Web APIs that are read for many client-side applications
- Build applications with database and ORM/ODM integrations
- Build fully integrated enterprise application
Prerequisites:
Fundamentals of Computer Science
Fundamentals of Database
Fundamentals of Networking
Student Workload
Lecture:32 hrs. Tutorial: 32 hrs Home Study:65 hrs. Laboratory: 48hrs
Course Content
Part I – Basics of Front-end Development
● Chapter 1 –Hypertext Markup Language (HTML)
● Chapter 2 – Cascading Style Sheets (CSS) and CSS Preprocessors
● Chapter 3 – Basic JavaScript Programming
● Chapter 4 – Advanced JavaScript Programming
● Chapter 5 – DOM Events
Part II – Server-Side Programming
● Chapter 6 – Client-Server Architecture and Hypertext Transfer Protocol
● Chapter 7 - Basics of Server-Side Framework
● Chapter 7 - Advanced of Server-Side Framework
● Chapter 8 – Storage Tier
Part III – Useful Front-end Frameworks
● Chapter 9 – Basic of “Front-end Framework”
● Chapter 10 – Advanced I of “Front-end Framework”
● Chapter 11 – Advanced I of “Front-end Framework”
● Other Important Topics in Web
Schedule
Weeks Topics and Subtopics
Lecture Laboratory Assessment
Week 1 - Week 6 Part I
Week 7 – Week 10 Part II
Week 11 – Week 14 Part III
Teaching Methods
The teaching methods that shall be employed for this course are lecturing, demonstration,
classroom discussion and classroom action research.
Assessment Method
104
Assessment Type
Labs (10 %)
Projects (40 %)
Mid exam (20 %)
Final exam (30 %)
Course Policies
❏ Attendance: It is compulsory to attend class in time and every time. Missing more
than three classes during the term causes readmission for that course.
❏ Assignments: No Late Assignment will be accepted
❏ Test/Quizzes: Rarely reexamination schedules will be arranged for those who missed
the exam by accidental or uncontrollable situation.
❏ Cheating/Plagiarism: No second Chance or excuses.
References
● Duckett, Jon. JavaScript & jQuery ; HTML & CSS. Indianapolis, Ind: John Wiley & Sons,
2014
● Duckett, Jon. HTML & CSS : design and build websites. Indianapolis, IN: John Wiley & Sons
Inc, 2014
● Myers, Mark. A smarter way to learn HTML & CSS : learn it faster, remember it longer. North
Charleston, South Carolina: CreateSpace Independent Publishing Platform, 2015
● Myers, Mark. A smarter way to learn Javascript. Charleston, SC: ASmarterWayToLearn.com,
2014.
● Duckett, Jon, Gilles Ruppert, and Jack Moore. JavaScript & jQuery : interactive front-end web
development. Indianapolis, IN: Wiley, 2014
● Ullman, Larry E. PHP and MySQL for dynamic web sites. Berkeley, California: Peachpit
Press, 2018.
● Welling, Luke, and Laura Thomson. PHP and MySQL web development. Hoboken, NJ:
Addison-Wesley, 2017
● STAUFFER, MATT. LARAVEL : up and running. S.l: O'REILLY MEDIA, 2018
● https://developer.mozilla.org/en-US/
● https://expressjs.com/en/starter/installing.html
● https://www.w3schools.com/
105
Object Oriented Programming
Module ECTS: 11
Course Title: Object Oriented Course Code:SITE-2091
Programing
Course ECTS: 7
Course Duration: 16 weeks
Course Description
This course is an in-depth look at object oriented paradigm using the popular programming
language Java. It is not intended for first time programmers. After some preliminaries devoted
to basic syntax and program structure, classes, composition, inheritance and polymorphism are
examined. The Java collection classes are studied in some detail, as is the rather complex set
of I/O classes. Additional topics include exception handling, building GUIs with JavaFX, and
multi-threading. Throughout the second half of the course, a series of homework problems
develops a non-toy application, illustrating by example how larger object-oriented programs
are organized.
Course Objectives
Understand the basic principles of object oriented approach in order to solve different types of
problems.
Learning Outcomes
The program provides a knowledge and understanding of the following:
Practical Skills
- Implement the oop principle using java
106
- A hand on experience on java technologies
Student Workload
Lecture: 48 Tutorial: 32 Lab:48 Home: 61
Course Content
Topic 1. Introduction to Object Oriented Programing
107
● Dealing with the behavior object in depth
● Separation of objects on the model, view and controller
Schedule
Weeks Topics and Subtopics
Lecure Laboratory Assessment
Week 1- Week 4 Topic 1 ,2 Intro to Java Assignment 1
● Data types and Variable Assignment 2
● Input and output Mid Exam
● Control structure
● Basic class and working
with the main Method
● Arrays ,Array List ,Hash
Map
More on OOP
● Object lifetime and
constructers
● Using object
● Abstract vs concrete class
● Inheritance
● Overloading vs overriding
Week 5- Week 8 Topic 3 Advanced Programing Assignment 3
● File input output Project 1
● Exception handling
● Gui with swing/JavaFX
Week 9- Week 13 Topic 4 ● Working with thread Assignment 4
● Working with socket Project 2
Week 14- Week Topic 5 - Assignment 5
16
Teaching Methods
The teaching methods that shall be employed for this course are lecturing, demonstration,
classroom discussion and classroom action research.
Assessment Method
The mark breakdown is as follows
❏ Mid Exam 30%
❏ Assignment 10%
❏ Lab assessment 10%
❏ Project I and II 30%
❏ Final Exam 25%
Course Policies
108
❏ Attendance: It is compulsory to attend class in time and every time. Missing more
than three classes during the term causes readmission for that course.
❏ Assignments: No Late Assignment will be accepted
❏ Test/Quizzes: Rarely re examination schedules will be arranged for those who missed
the exam by accidental or uncontrollable situation.
❏ Cheating/Plagiarism: No second Chance or excuses.
References
1. HORSTMANN, CAY S. CORE JAVA - FUNDAMENTALS. S.l: PRENTICE HALL, 2018
2. Eckel, Bruce. Thinking in Java. Upper Saddle River, NJ: Prentice Hall, 2006
109
Fundamental of Software Engineering
Course Description
As soon as computers were invented, the ability to tell them what to do made programming an
awesome task. Programmers used a technique called "code and fix” write some code, and fix it
when it breaks. But things started getting too compacted too soon. Writing bigger software
through the so-called "code and fix" mechanism had its problems. The inability to assess
progress, quality, or risks, the difficulty to accommodate changes without a major design
overhaul, and the unclear delivery features, timing, and support made "code and fix" strategy
is difficult to use in larger projects.
Therefore, software engineering emerged as a discipline to manage software projects. The
activities in software engineering include defining what the software should do (software
requirements), describing the solution specified in the requirements on paper (design), writing
software that meets the solution using a programming language (implementation), making sure
that the implementation meets the design and requirements (testing), and progressively
modifying the software (maintenance and evolution). But software engineering is not just a
prerequisite to coding. It also defines the way we communicate and keep stream of our tasks, it
is the way we collaborate too.
The key idea that software engineering introduced in projects is traceability. The things
written in the requirements must have a corresponding solution described in the design
document, and a piece of code that implements a certain artifact on the design.
This course introduces software engineering though a project based delivery strategy and you
are expected to apply what you studied in classes on your projects
Course Objectives
Understand the basic principles of Software Engineering that helps to understand a problem,
perform requirement analysis and work on the solution. Students must write requirements
specification documents, Design a system, component, or process to meet desired needs.
Learning Outcomes
The program provides a knowledge and understanding of the following:
110
Practical Skills Transferable Skills
- Perform a requirement analysis on - Students will be able to work with
different area of problem different platforms and have a handy
- Perform an object-oriented design experience on working on documentation
- Prepare different types of skills
documents. (requirement, design - Effective communication skill acquired
and testing) during group work
- Verify and validate a Software - A hand on experience on proposal
system writing and different collaborative tools
Prerequisites:
Object Oriented Programing
Student Workload
Lecture: Tutorial: Lab: Home:
Course Content
Topic one: Introduction to Software Engineering
Schedule
Weeks Topics and Subtopics
Lecture Laboratory Assessment
Week 1- Week 4 Topic 1 ,2 collaboration tools Proposal (Doc)
[trelo, slack]
Week 5- Week 8 Topic 3 Edrawe mx for Mid Exam
developing use case SRS(Doc)
Mockup tools [for UI]
Week 9- Week 13 Topic 4 Edrawe mx for SDS (Doc)
developing Component,
Deployment, Class,
Sequence and sate chart
diagram
112
1. Sommerville, Ian. Software engineering. Boston: Pearson, 2016
2. Fowler, Martin. UML distilled : a brief guide to the standard object modeling language.
Boston: Addison-Wesley, 2004
3. Pressman, Roger S. Software engineering : a practitioner's approach. New York, NY:
McGraw-Hill Education, 2015
4. Software engineering, Ivan Marsic
5. Bourque, Pierre, and R. E. Fairley. Guide to the software engineering body of knowledge. Los
Alamitos, Calif: IEEE Computer Society, 2014
6. Hunt, Andrew, and David Thomas. The pragmatic programmer : from journeyman to master.
Reading, Mass: Addison-Wesley, 2000
7. Jalote, Pankaj. An integrated approach to software engineering. New York: Springer, 2005
8. Object-Oriented Software Engineering: Using UML, Patterns and Java, 3e
9. Dennis, Alan, et al. Systems analysis and design. Hoboken, NJ: Wiley, 2014
10. Booch, Grady. Object-oriented analysis and design with applications. Upper Saddle River, NJ:
Addison-Wesley, 2007
113
SEM V
Algorithm Analysis
Module ECTS: 28
Course Title: Algorithmic Analysis Course Code: SITE-3084
Course ECTS: 7
Course Duration: 16 weeks
Course Description
Algorithm design and analysis is a fundamental and important part of computer science. This
course introduces students to advanced techniques for the design and analysis of algorithms,
and explores a variety of applications.
Course Objectives
● Understanding of the design and analysis on algorithms for a variety of problems
● Develop skills to reason about and prove properties of algorithms such as their correctness and
running time.
● Understand how data structures can provide space-efficient ways to quickly answer queries
about data, and understand how these data structures can be used to build efficient algorithms.
● Understand analysis techniques such as amortized analysis, probabilistic analysis, and minimax
optimality.
● Understand how and why randomness can be used to provide efficient solutions to some
problems.
● Learn to implement advanced algorithms efficiently.
● Use the concept of approximation to find efficient algorithms for hard problems.
● Use the theory of NP-completeness and other lower bounding techniques to argue for the
difficulty of some problems.
Learning Outcomes
The programme provides a knowledge and understanding of the following:
114
Students who complete the course will have demonstrated the ability to do the following:
● Argue the correctness of algorithms using inductive proofs and invariants.
● Analyze worst-case running times of algorithms using asymptotic analysis.
● Describe the divide-and-conquer paradigm and explain when an algorithmic design
situation calls for it. Recite algorithms that employ this paradigm. Synthesize
divide-and-conquer algorithms. Derive and solve recurrences describing the
performance of divide-and-conquer algorithms.
● Describe the dynamic-programming paradigm and explain when an algorithmic
design situation calls for it. Recite algorithms that employ this paradigm.
Synthesize dynamic-programming algorithms, and analyze them.
● Describe the greedy paradigm and explain when an algorithmic design situation
calls for it. Recite algorithms that employ this paradigm. Synthesize greedy
algorithms, and analyze them.
● Explain the major graph algorithms and their analyses. Employ graphs to model
engineering problems, when appropriate. Synthesize new graph algorithms and
algorithms that employ graph computations as key components, and analyze them.
● Explain the different ways to analyze randomized algorithms (expected running
time, probability of error). Recite algorithms that employ randomization. Explain
the difference between a randomized algorithm and an algorithm with probabilistic
inputs.
● Analyze randomized algorithms. Employ indicator random variables and linearity
of expectation to perform the analyses. Recite analyses of algorithms that employ
this method of analysis.
● Explain what amortized running time is and what it is good for. Describe the
different methods of amortized analysis (aggregate analysis, accounting, potential
method). Perform amortized analysis.
● Explain what competitive analysis is and to which situations it applies. Perform
competitive analysis.
● Compare between different data structures. Pick an appropriate data structure for a
design situation.
● Explain what an approximation algorithm is, and the benefit of using
approximation algorithms. Be familiar with some approximation algorithms,
including algorithms that are PTAS or FPTAS. Analyze the approximation factor
of an algorithm.
Prerequisites:
Fundamental of Data Structures
Student Workload
Lecture:48 Tutorial: 32 Laboratory: 48 Home Study: 61
hrs
Course Content
115
1. Introduction
2. Mathematics for Algorithmic
o Sets
o Functions and Relations
o Vectors and Matrices
o Linear Inequalities and Linear Equations
3. Greedy Algorithms
o Knapsack Problem
▪ O-I Knapsack
▪ Fractional Knapsack
o Activity Selection Problem
o Huffman's Codes
o Minimum Spanning Tree
o Kruskal's Algorithm
o Prim's Algorithm
o Dijkstra's Algorithm
4. Divide & Conquer Algorithms
5. Dynamic Programming
o Matrix-chain Multiplication
o Knapsack Problem DP Solution
o Activity Selection Problem DP Solution
6. Amortized Analysis
o Aggregate Method
o Accounting Method
o Potential Method
o Dynamic Table
7. Hash Table
8. Binary Search Tree
9. Graph Algorithms
o Breadth First Search (BFS)
o Depth First Search (DFS)
o Topological Sort
o Strongly Connected Components
o Euler Tour
o Generic Minimum Spanning Tree
o Kruskal's Algorithm
o Prim's Algorithm
o Single Source Shortest Path
▪ Dijkstra's Algorithm
▪ Bellman-Ford Algorithm
10. String Matching
o Naïve String Matching
o Knuth-Morris-Pratt Algorithm
o Boyer-Moore Algorithm
11. Linear-Time Sorting
o Counting Sort
o Radix Sort
o Bucket Sort
12. Computational Complexity
o Information-Theoretic Argument
o Adversary Argument
o NP-Completeness And Reduction
13. Approximate Algorithms
o Vertex Cover
o The Traveling Salesman Problem
116
14. Linear Programming
Schedule
Week 1 -4
Week 4 - 6
Week 6 - 9
Week 9 - 16
Teaching Methods
The teaching methods that shall be employed for this course are lecturing, demonstration,
classroom discussion and classroom action research.
Assessment Method
The Mark Breakdown is as follows
● Lab –and Assignments 30%
● Exam – 45%
● Project – 25%
Course Policies
❏ Attendance: It is compulsory to attend class in time and every time. Missing more
than three classes during the term causes readmission for that course.
❏ Assignments: No Late Assignment will be accepted
❏ Test/Quizzes: Rarely reexamination schedules will be arranged for those who missed
the exam by accidental or uncontrollable situation.
❏ Cheating/Plagiarism: No second Chance or excuses.
References
1. Thomas Cormen, Charles Leiserson, Ronald Rivest and Clifford Stein, Introduction to
Algorithms, MIT Press, 2009 (third edition).
2. Sedgewick, Robert, and Kevin Wayne. Algorithms. Upper Saddle River, NJ: Addison-
Wesley, 2011
3. The Algorithm Design Manual (05 November 2010) by Steven S. Skiena
4. S. Dasgupta, C.H. Papadimitriou, and U. V. Vazirani, Algorithms, Mcgraw-Hill, 2006.
5. J. Kleinberg and E. Tardos, Algorithm Design, Addison-Wesley, 2006.
117
Mobile Application Development
Course Description
This course introduces mobile application development for the Android platform. Android is a
software stack for mobile devices that includes an operating system, middleware and key
applications. The Android SDK provides the tools and APIs necessary to begin developing
applications on the Android platform using the Java programming language. Students will
learn skills for creating and deploying Android applications, with particular emphasis on
software engineering topics including software architecture, software process, usability, and
deployment.
Course Objectives
Understand the basic principles of mobile application development using android platform
Learning Outcomes
The program provides a knowledge and understanding of the following:
● User-interface design for mobile applications
● Managing application data
● Integrating mobile application with cloud services. Lecture hours: 3.
● Addressing enterprise requirements in mobile applications – performance, scalability,
modifiability,
● availability and security. Lecture hours:
● Testing methodologies for mobile applications.
● Publishing, deployment, maintenance and management of mobile application.
● Effective communication skill acquired during group work
● A hand on experience on mobile technologies
Student Workload
Lecture: Lab: Home: Tutorial:
118
Course Content
Topic 1. Introduction
● Introduction to Android
● Android application structure
● Android UI architecture [application context ,intent ,activity lifecycle]
● UI Components [Text control,]
Topic 2. Notification ,Menus and Dialogs
● Intents with parameter
● Notification with status bar and toast
● Localization
● Context/option menu
● Alert dialog
● Dialog as activity
Topic 3. Location and Map
● How to work with Google Map
● How to work with GPS
Topic 4. Working with Data Storage
● Shared preference
● Working with files
● Working with SQL light
Topic 5. Content Providers
● Introduction to content provider
● Query provider
Topic 6. Network Communication
● Introduction to web service
● HTTP Client
● XML and JSON
Topic 7. Service
● Service Lifecycle
● Foreground Service
Topic 8. Publishing
● How to prepare for publishing
● Publishing to android market
Schedule
Weeks Topics and Subtopics
Lecture Laboratory Assessment
Week 1- Week 4 Topic 1 ,2 – Installation and Assignment 1
configuration Assignment 2
– Basics on android
studio
– UI design
– Notification and
menu
Week 5- Week 8 Topic 3,4 – Configuration of Assignment 3
Google map Project 1
– Working on Google
map
– Working on GPS
Week 9- Week 13 Topic 5,6 – Testing query Assignment 4
providers Project 2
– Using web service
,http client and Json
Week 14- Week Topic 7,8 – -how to work on Assignment 5
16 foreground service Final Exam
– How to publish app
119
Teaching Methods
The teaching methods that shall be employed for this course are lecturing, demonstration,
classroom discussion and classroom action research.
Assessment Method
The mark breakdown is as follows
❏ Assignment 15%
❏ Lab assessment 15%
❏ Project I and II 40%
❏ Final Exam 30%
Course Policies
❏ Attendance: It is compulsory to attend class in time and every time. Missing more
than three classes during the term causes readmission for that course.
❏ Assignments: No Late Assignment will be accepted
❏ Test/Quizzes: Rarely re examination schedules will be arranged for those who missed
the exam by accidental or uncontrollable situation.
❏ Cheating/Plagiarism: No second Chance or excuses.
References
1. Ramnath, Rajiv, Roger Crawfis, and Paolo Sivilotti. Android 3 SDK programming for dummies.
Hoboken, N.J. Chichester: Wiley John Wiley distributor, 2011
Phillips, Bill, Chris Stewart, and Kristin Marsicano. Android programming : the Big Nerd Ranch guide.
Atlanta, GA: Big Nerd Ranch, 2017
2. 4. Tomasz Nurkiewicz and Ben Christensen, Reactive Programming with RxJava, O’ReillyMedia,
2016.
3. Brian Fling, Mobile Design and Development, O’Reilly Media, Inc., 2009.
Maximiliano Firtman, Programming the Mobile Web, O’Reilly Media, Inc., 2nd ed., 2013.Cristian
Crumlish and Erin Malone, Designing Social Interfaces, 2nd ed., O’Reilly Media, Inc., 2014.
4. Benjamin Muschko, Gradle in Action, Manning Publications, 2014.
5. Craig Larman, Applying UML and Patterns: A Guide to Object-Oriented Analysis and Design and
Iterative Development, 3rd ed., Prentice Hall, 2004.
120
Operating Systems
Module ECTS: 17
Course Tile: Operating Systems Course Code:SITE - 3073
Course ECTS: 7
Course Duration: 16 Weeks
Course Description
The Operating System is the name given to the pieces of software separating your application
code from the details of the bare hardware. The function of an Operating System is to abstract
away as many hardware details as possible and to present users and application programmers
with a consistent interface to the computer system. Specific details about memory, hard disks,
network cards, video hardware, etc. are all abstracted away so that a programmer need only
think about abstractions like files and network sockets. However, to be effective, the operating
system must do all this as transparently, fairly, and as efficiently as possible. These requirements
are what make OS design and implementation a serious engineering challenge.
This course will serve as an introduction to Operating Systems and System Programming in
general. The course will cover the basics of OS design including: file systems, processes,
threads, and virtual memory. Lectures will cover both theoretical issues as well as
implementation.
Course Objectives
Student Workload
Lecture: 32 Tutorial: 16 Home Study Laboratory: 64
Course Content
122
Part 4: Storage Management
- Mass storage structure: disk structure, disk scheduling, disk management
- File systems: file system interface, files and directories, access methods, file sharing, file
system mounting, file system structure and implementation, allocation methods, free space
management
- I/O systems: I/O hardware, application I/O interface, kernel I/O subsystem.
Session 2: Threads.
- Implementing threads in Linux OS using POSIX Thread.
Session 4: Synchronization I.
- Investigating Linux OS synchronization mechanisms including locks and mutexes.
Schedule
Week Topics and Sub Topics
123
Week 1 - Week 4
Week 5 - Week 8
Week 9 - Week 12
Week 13 - Week
16
Assessment Method:
Labs (10 %)
Projects (40 %)
Course Policies
❏ Attendance: It is compulsory to attend class in time and every time. Missing more than
three classes during the term causes readmission for that course.
❏ Assignments: No Late Assignment will be accepted
❏ Test/Quizzes: Rarely reexamination schedules will be arranged for those who missed the
exam by accidental or uncontrollable situation.
❏ Cheating/Plagiarism: No second Chance or excuses.
References
Textbook:
1. Operating System Concepts (10th ed.) Abraham Silberschatz, Peter Baer Galvin, Greg
Gagne.
Reference Books:
2. Modern Operating Systems (3rd edition), Andrew S. Tanenbaum, Prentice Hall, 2008.
3. Operating Systems Design and Implementation (3rd edition), Andrew S. Tanenbaum and
Albert S,
124
Digital Logic Design
Course Description
An introduction to digital hardware systems design with an emphasis on practical design
techniques and circuit implementations. Topics include: Data representation in digital systems;
Boolean algebra; the analysis, design, optimization and implementation of combinational and
sequential circuits; modern digital circuit technologies; use of Hardware Description
Languages (HDLs) and Computer Aided Design (CAD) tools in digital systems design.
Course Objectives
This is the first course in computer hardware design, which covers the fundamentals of digital
logic design and switching theory. During the course, the student is expected to learn about the
following:
Learning Outcomes
125
Upon successful completion of this course, students should:
Student Workload
Lecture:32 hrs Tutorial: 32hrs Home Study:65 hrs Laboratory: 48hrs
Course Content
References
1. Fundamentals of Digital Logic with Verilog Design, Stephen Brown and Zvonko Vranesic,
3rd Edition
2. Digital Design, Morris Mano, 5th Edition
3. Digital Design: Principles and Practices and Applications, John F. Wakerly, 4th Edtion,
Prentice Hall.
4. Digital Design and Computer Architecture, Second Edition, David Harris, Sarah
Harris, 2nd Edition
127
Computer Graphics
Module ECTS: 9
Course Title: Computer Graphics Course Code:SITE-3121
Course ECTS: 5
Course Duration: 16 weeks
Course Description
This course offers an in-depth exploration of fundamental concepts in 2D and 3D computer
graphics. The course provides introduction to computer graphics algorithms, software and
hardware. Topics include: ray tracing, the graphics pipeline, transformations, texture mapping,
shadows, sampling, global illumination, splines, animation and color. The course will assume
a good background in programming in C or C++ and a background in mathematics including
familiarity with the theory and use of coordinate geometry and of linear algebra such as matrix
multiplication. Students will use the standards based on OpenGL library in several
programming projects illustrating the theory and practice of programming computer graphics
applications.
Course Objectives
The objective the course is to introduce students to the basic mechanics of drawing vectors
images of 2D and 3D using the latest OpenGL and the Graphics Pipeline.
Learning Outcomes
The program provides a knowledge and understanding of the following:
Practical Skills
- Understand the structure of modern computer graphics systems
- Understand the basic principles of implementing computer graphics primitives
- Familiarity with key algorithms for modelling and rendering graphical data
- Develop design and problem-solving skills with application to computer graphics
- Gain experience in constructing interactive computer graphics programs using
OpenGL
- Students will be able to work on projects that contain simulations and visualizations in
different fields like Biology, Physics
128
Prerequisites: Linear Algebra, Applied Math I
Student Workload
Lecture:32 hrs. Tutorial: 32 hrs Home Study:39 hrs. Laboratory: 32
hrs
Course Content
Chapter 1 – Introduction to Computer Graphics
● What’s is Computer Graphics?
● History of Computer Graphics
● Application of Computer Graphics
Chapter 2 – OpenGL and Shaders
● OpenGL and it’s Architecture
● Shaders Language
● Data in OpenGL Buffers
Chapter 3 – Vector Geometry
● Lines and Planes
● Distances
● Angles
● Intersections
● Homogeneous Coordinates
Chapter 4 – Transformations
● Linear Transformations
● Three Dimensions
● Affine Transformations
Chapter 5 – Viewing
● Camera Model
● View Transformation and Shaders
● Clipping
Chapter 6 – Curve, Splines and Surfaces
● Curves Descriptions
● Bezier Curves
● B-Splines
● Nurbs
● Surfaces
Chapter 7 – Textures and Materials
● Texture Mapping
● Creating and Initializing Textures
● Specifying texture Data in OpenGL
● Complex Texture Types
● Filtering
● Rendering to Textures
Chapter 8 – Lighting and Shadow
● Basic Lighting
● Materials
129
● Lighting Maps
● Shadows
● HDR
Chapter 9 – Raytracing
● Shadows
● Reflection
● Refraction
Schedule
Weeks Topics and Subtopics
Lecture Laboratory Assessment
Week 1 Chapter 1
Week 2 Chapter 2 Lab 1 – Hello OpenGL
Week 3 Chapter 3 Lab 2 – OpenGL Assignment I
Drawing Shapes
Week 4 Chapter 4 Lab 3 – Applying
Transformations
Week 5 Exam
Week 6 Chapter 5 Lab 4 – Applying Assignment II
Camera
Week 7 – Week 8 Chapter 6 Lab 5 – Drawing curved
surfaces
Week 9 – Week Chapter 7 Lab 6 – Applying Assignment III
10 Texture and Material
Week 11 Exam
Week 12 Chapter 8 Lab 7 – Applying Assignment IV
different kinds of
lighting
Week 13 – Week Chapter 9 Lab 8 – Implementing Assignment V
14 Simple Graphics
Rendering Engine
Week 15 Exam
Teaching Methods
The teaching methods that shall be employed for this course are lecturing, demonstration,
classroom discussion and classroom action research.
Assessment Method
The mark breakdown is as follows
● Lab – 20%
● Exam – 60%
● Project – 20%
Course Policies
130
❏ Attendance: It is compulsory to attend class in time and every time. Missing more
than three classes during the term causes readmission for that course.
❏ Assignments: No Late Assignment will be accepted
❏ Test/Quizzes: Rarely reexamination schedules will be arranged for those who missed
the exam by accidental or uncontrollable situation.
❏ Cheating/Plagiarism: No second Chance or excuses.
References
● Janke, Steven J. Mathematical structures for computer graphics. Hoboken, New Jersey:
Wiley, 2015
● Computer Graphics: Principles and Practice 3rd Edition 3rd Edition by John F.
Hughes, Andries van Dam, Morgan McGuire, David F. Sklar, James D. Foley, Steven K.
Feiner , Kurt Akeley
● Kessenich, John M., Dave Shreiner, and Graham Sellers. OpenGL programming guide :
the official guide to learning OpenGL, version 4.5 with SPIR-V. Boston: Addison-Wesley,
2017
● Lengyel, Eric. Mathematics for 3D game programming and computer graphics. Boston:
Course Technology PTR, 2012
131
SEM VI
Fundamental of IT security
Module ECTS: 5
Course Title: Fundamentals of IT Course Code: SITE-3131
Security
Course ECTS: 5
Course Duration: 16 weeks
Course Description
This course provides a one-semester overview of information security. It is designed to help
students with prior computer and programming knowledge — both undergraduate and
graduate — understand this important priority in society today. The technical content of the
course gives a broad overview of essential concepts and methods for providing and evaluating
security in information processing systems (operating systems and applications, networks,
protocols, and so on). In addition to its technical content, the course touches on the importance
of management and administration, the place information security holds in overall business
risk, social issues such as individual privacy, and the role of public policy.
Course Objectives
Students successfully completing this course should be able to:
● Provide fundamental concepts in IT systems security
● Enable students to understand threats to security of IT systems
● Introduce students to the principles of secure system design
● Introduce students to the fundamentals of cryptography
● Introduce students to the security issues and defense techniques in operating systems,
networks, web applications, database and mobile devices
● Introduce students to the state-of-the-art techniques for vulnerability analysis,
prevention, and defense
Learning Outcomes
The Course provides a knowledge and understanding of the following:
132
● Be familiar with security issues and defense mechanisms in operating systems,
networks, web applications, and mobile devices
● Be conversant with automated analysis of security threats, design and implementation
of countermeasures
● Possess solid understanding of principles and practices of computer systems security
● Be able to recognize, explain, and act-on threats to confidentiality, integrity, and
availability of a computer system
● Apply formalisms and technologies to defend computer systems from security threats
Prerequisites:
No-prerequisite
Student Workload
Lecture:32 hrs Tutorial: 32 hrs Home Study:65 hrs Laboratory: 48hrs
Course Content
Schedule
Weeks Topics and Subtopics
Lecture Laboratory Assessment
Week 1 – week 2 Chapter One Assignment #1. Lab#1,
Lab#2
Project Title Approval
Week 3 – week 4 Chapter Two Lab#3, Lab#4
Quiz #1
Project Proposal
Week 5 – week 8 Chapter Three Lab#4, Lab#5
Mid_exam
Project Progress Report
Week 9 – week 10 Chapter Four Lab#6, Lab#7
134
Teaching Methods
● The format of the course will be lecture, class discussion and presentation, lab exercise,
assignments and Project.
● Students will work on Windows/Linux and multiple security tools
Assessment Method
● Quiz#1 – 5%
● Quiz#1 – 5%
● Assignments#1 – 5%
● Assignments#1 – 5%
● Mid Exam – 15%
● Each Lab and Final Lab exam – 20%
● Final Project - 20%
● Final Exam – 25%
Course Policies
❏ Attendance: It is compulsory to attend class in time and every time. Missing more
than three classes during the term causes readmission for that course.
❏ Assignments: No Late Assignment will be accepted
❏ Test/Quizzes: Rarely re examination schedules will be arranged for those who missed
the exam by accidental or uncontrollable situation.
❏ Cheating/Plagiarism: No second Chance or excuses.
❏ Project: The project consists of report and presentation on a topic of your choice that
is relevant to the course. It is group-based
References
1. Neil Daswani, Christoph Kern, and Anita Kesavan. Foundations of Security: What
Every Programmer Needs to Know. Apress, 2007
2. Matt Bishop. Introduction to Computer Security. Addison-Wesley, 2004
3. Charles P. Pfleeger and Shari L. Pfleeger. Security in Computing (4th Edition).
Prentice-Hall, 2006
4. Dieter Gollmann. Computer Security (2nd Edition). Wiley, 2006
5. John Viega, Gary McGraw. Building Secure Software: How to Avoid the Security
Problems the Right Way. Addison-Wesley, 2002
6. William Stallings. Cryptography and Network Security: Principles and Practice (6th
Edition). Prentice-Hall, 1998
7. R. Baloch, Ethical Hacking and Penetration Testing Guide, 6000 Broken Sound
Parkway NW, Suite 300: CRC press, 2015.
8. Hacking exposed 7th edition
9. Hacking – The art of exploitation 2nd edition
10. Computer Security: Art and Science (Crypto)
135
Fundamental of AI
Module ECTS: 5
Course Title: Fundamentals of AI Course Code: SITE-3141
Course ECTS: 5
Course Duration: 16 weeks
Course Description
Artificial intelligence (AI) is a research field that studies how to realize the intelligent human
behaviors on a computer. The ultimate goal of AI is to make a computer that can learn, plan,
and solve problems autonomously. Although AI has been studied for more than half a century,
we still cannot make a computer that is as intelligent as a human in all aspects. However, we
do have many successful applications. In some cases, the computer equipped with AI
technology can be even more intelligent than us. The Deep Blue system which defeated the
world chess champion is a well-know example.
The main research topics in AI include: problem solving, reasoning, planning, natural
language understanding, computer vision, automatic programming, machine learning, and so
on. Of course, these topics are closely related with each other. For example, the knowledge
acquired through learning can be used both for problem solving and for reasoning. In fact, the
skill for problem solving itself should be acquired through learning. Also, methods for
problem solving are useful both for reasoning and planning. Further, both natural language
understanding and computer vision can be solved using methods developed in the field of
pattern recognition.
Course Objectives
The primary objective of this course is to provide an introduction to the basic principles and
applications of Artificial Intelligence. Programming assignments are used to help clarify basic
concepts. The emphasis of the course is on teaching the fundamentals, and not on providing a
mastery of specific commercially available software tools or programming environments. In
short, this is course is about the design and implementation of intelligent agents---software or
hardware entities that perform useful tasks with some degree of autonomy. Upon successful
completion of the course, students will have an understanding of the basic areas of artificial
intelligence including problem solving, knowledge representation, reasoning, decision making,
planning, perception and action, and learning -- and their applications (e.g., big data analytics,
data mining, computational discovery, information retrieval).
Learning Outcomes
136
The program provides a knowledge and understanding of the following:
Practical Skills
● Find appropriate idealizations for converting real world problems into AI search
problems formulated using the appropriate search algorithm.
● Given a search problem, analyze and formalize the problem (as a state space, graph,
etc.), select the appropriate search method, and write the algorithm for it.
● Explain important search concepts, such as the difference between informed and
uninformed search, the definitions of admissible and consistent heuristics and
completeness and optimality. Give the time and space complexities for standard search
algorithms.
● Implement A* and iterative deepening search. Derive heuristic functions for A* search
that are appropriate for a given problem.
● For constraint satisfaction problems, implement backtracking search with conflict
directed backjumping, arc consistency, and the Minimum Remaining Values and Least
Constraining Value heuristics. Implement local search with the mi conflicts heuristic.
● Implement and execute by hand alpha-beta search. Design good evaluation functions
and strategies for game playing.
● Carry out proofs in first order and propositional logic using techniques such as
resolution, unification, backward and forward chaining.
● Explain the difference between plan space and state space. Describe and implement
several of the major approaches to classical planning, including planning graphs, POP,
and propositionalization.
● Design appropriate Bayes Nets corresponding to the causal relationships and
conditional independence of a real-world situation. Derive the conditional
independence of variables given a Bayes Net.
● Given a real world supervised learning problem, choose and implement appropriate
learning algorithms such as decision trees, support vector machines, and boosting.
Prerequisites:
Probability and Statistics
Linear Algebra
Math I
Student Workload
Lecture:32 hrs. Tutorial: 32 hrs Home Study:65 hrs. Laboratory: 48hrs
Course Content
Chapter 1. Artificial Intelligence
a. Introduction
b. Intelligent Agents
Chapter 2. Problem-solving
a. Solving Problems by Searching
b. Beyond Classical Search
c. Adversarial Search
d. Constraint Satisfaction Problems
Chapter 3. Knowledge, reasoning, and planning
a. Logical Agents
137
b. First-Order Logic
c. Inference in First-Order Logic
d. Classical Planning
e. Planning and Acting in the Real World
f. Knowledge Representation
Chapter 4. Uncertain knowledge and reasoning
a. Quantifying Uncertainty
b. Probabilistic Reasoning
c. Probabilistic Reasoning over Time
d. Making Simple Decisions
e. Making Complex Decisions
Chapter 5. Learning
a. Learning from Examples
b. Knowledge in Learning
c. Learning Probabilistic Models
d. Reinforcement Learning
Chapter 6. Communicating, perceiving, and acting
a. Natural Language Processing
b. Natural Language for Communication
c. Perception
d. Robotics
Schedule
Weeks Topics and Subtopics
Lecture Laboratory Assessment
Week 1 – Week 2 Chapter 1 Lab 1
Week 3 – Week 4 Chapter 2 Lab 2 Assignment I
138
The mark breakdown is as follows
● 4 Assignments – 20%
● 6 Labs – 10%
● 1 Project – 20%
● 2 Exams – 60%
Course Policies
❏ Attendance: It is compulsory to attend class in time and every time. Missing more
than three classes during the term causes readmission for that course.
❏ Assignments: No Late Assignment will be accepted
❏ Test/Quizzes: Rarely reexamination schedules will be arranged for those who missed
the exam by accidental or uncontrollable situation.
❏ Cheating/Plagiarism: No second Chance or excuses.
References
● Artificial Intelligence: A Modern Approach (3rd Edition) 3rd Edition by Stuart
Russell, Peter Norvig.
● Introduction to Linear Algebra, 5th Edition by Gilbert Strang
139
HCI
Module ECTS: 9
Course Title: Human Computer Course Code: SITE-3122
Interaction(HCI)
Course ECTS: 4
Course Duration: 16 weeks
Course Description
* Background--the development and scope of HCI. Practical goals.
* HCI relevant issues in human perception, memory and thinking processes.
* Approaches to designing information appliances--software objects and physical things.
* Design methodologies and notations--levels of interface design. Task analysis, grammars,
state charts.
* Techniques and technologies--dialogue styles, information presentation, protocols for
human-to-machine and machine-to-machine interactions; mobile computing, distributed
wireless computation, wireless sensors.
* The design process--user involvement, iterative design, prototyping.
* Evaluation--methodologies, formative and summative. Performance analysis.
* Specific issues in HCI: the internet of things; novel interfaces.
Course Objectives
After completing this course you will be able to understand and make use of
The human components functions
The computer components functions
The interaction between the human and computer components
Paradigms
Interaction design basics
HCI in the software process
Design rules
Implementation Supports
Evaluation Techniques
Learning Outcomes
1 - Demonstrate, in writing, knowledge of the issues and problems in HCI.
140
2 - Demonstrate an understanding of human perception and behaviour in analysing their
interactions with technology in their everyday lives.
3 - Use established design principles and methodologies to solve HCI problems.
4 - Acquire confidence in handling different disciplinary perspectives on HCI and the ability to
apply them to design problems.
5 - The ability to devise, plan and execute task analysis and system evaluation studies from an
HCI perspective, and present findings in a clear and effective manner.
6 - Demonstrate awareness of current areas of research by locating and summarising examples
of recent progress.
Prerequisites: None
Student Workload
Lecture:32 hrs Tutorial: 32 hrs Home Study:65 hrs Laboratory: 48hrs
Course Content
Chapter 1: Introduction
❏ Introduction To User Interface
❏ Importance Of User Interface
❏ Definition Of User Interface
❏ Importance Of Good Design
❏ The Benefits Of Good Design
❏ A Brief History Of The Human-computer Interface
❏ A Brief History Of Screen Design
❏ Introduction
❏ Human Interaction With Computers
❏ Importance Of Human Characteristics
❏ Human Considerations In Design
❏ Human Interaction Speeds
❏ Understanding Business Functions
Chapter 5: Windows
❏ New And Navigation Schemes
❏ Selection Of Window
❏ Selection Of Devices Based Controls
❏ Selection Of Screen Based Controls
Chapter 6: Components
❏ Text And Messages
❏ Icons And Images
❏ Multimedia
❏ Colours Uses And Problems
❏ Choosing Colours
142
Week 9- Week 13 Chapter 5 - Chapter 6 Assignment II
(practical)
Week 14- Week Chapter 7 Assignment III
16 Final Exam
Teaching Methods
The teaching methods that shall be employed for this course are lecturing, demonstration,
classroom discussion and classroom action research.
Assessment Method
The mark breakdown is as follows
❏ Tests 48%
❏ Assignments 12%
❏ Final Exam 40%
Course Policies
❏ Attendance: It is compulsory to attend class in time and every time. Missing more
than three classes during the term causes readmission for that course.
❏ Assignments: No Late Assignment will be accepted
❏ Test/Quizzes: Rarely re examination schedules will be arranged for those who missed
the exam by accidental or uncontrollable situation.
❏ Cheating/Plagiarism: No second Chance or excuses.
References
143
Design Patterns
Program: Software Engineering and Computing Technology
Module Title: Computer Science Module Code: SITE-M1081
Module ECTS: 28
Course Tile: Design Pattern Course Code: SITE-3085
Course ECTS: 4
Course Duration: 16 Weeks
Course Description
This course is designed for students with Java background. The course objective is to familiarize
the student with techniques for designing reusable combinations of Java classes and organizing
their cooperation to produce modular and maintainable Java programs
Course Objectives
Upon completion of the course, the student will be able to understand most important design patterns and
apply object-oriented techniques for designing reusable, maintainable and modifiable software
Student Workload
Lecture: Tutorial Home Study Laboratory
Course Content
144
Unit 1
Course introduction. Review of the software development context in relation to design patterns.
Advantages of using classes.
The uses of inheritance in software design. Principles of strong typing and substitution.
Polymorphism with abstract classes and interfaces.
Unit 2
Design techniques for modifiability. The Strategy Pattern
Unit 3
The Observer Pattern
Unit 4
The Decorator Pattern, the Simple Factory Pattern
Unit 5
The Factory Methods, the Abstract Factory Patterns
Unit 6
The Singleton Pattern, the Command Pattern
Unit 7
The Adapter and Facade Patterns
Unit 8
The Template Method Pattern
Unit 9
The Iterator and Composite Patterns
Unit 10
The State Pattern
Unit 11
The Proxy Pattern
Unit 12
Compound Patterns
Assessment Method:
● Assignments = 15%
● Projects = 25%
● Midterm = 25%
● Final Exam = 35%
Course Policies
145
Academic Honesty: Academic dishonesty including cheating, fabrication and plagiarism will
not be tolerated in this course. It is expected that all work handed in by the student is their own.
You will be reported to concerned bodies automatically including the center’s academic council.
The center deals with such academic dishonesty severely.
While we expect you to work individually, that doesn’t mean that you cannot share ideas with
other students or us. But you can only share ideas. No code or written work should be shared
amongst you. And such an activity is considered academic dishonesty.
You are expected to attend at least 85% of the classes according to the university senate
legislation. We will not allow you to sit for the final if you don’t meet the criteria.
References
● Eric Freeman, Elisabeth Freeman, Kathy Sierra, Bert Bates Head First Design Patterns,
2004
● Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides Design Patterns: Elements
of Reusable Object-oriented Software Addison-Wesley, 1995
146
Computer Organizations and Architecture
Course Description
Computer architecture is the science and art of selecting and interconnecting hardware
components and designing the hardware/software interface to create a computer that meets
functional, performance, energy consumption, cost, and other specific goals. This course
introduces the basic hardware structure of a modern programmable computer, including the
basic laws underlying performance evaluation. Topics include, Overview of computer
technologies, instruction set architecture (ISA), ISA design considerations, RISC vs. CISC,
assembly and machine language, translation and program start-up. Computer arithmetic,
arithmetic logic unit, floating-point numbers and their arithmetic implementations. Processor
design, data path and control implementation, pipelining, hazards, pipelined processor design,
hazard detection and forwarding, branch prediction and exception handling. Memory
hierarchy, principles, structure, and performance of caches, virtual memory, segmentation and
paging. I/O devices, I/O performance, interfacing I/O. Introduction to multiprocessors,
multicores, and cluster computing.
Course Objectives
● Discuss the basic concepts and structure of computers.
● Understand concepts of register transfer logic and arithmetic operations.
● Explain different types of addressing modes and memory organization.
● Learn the different types of serial communication techniques.
● Summarize the Instruction execution stages.
Learning Outcomes
147
After having completed the course the student will be able to:
Student Workload
Lecture:32 hrs Tutorial: 32 hrs Home Study:65 hrs Laboratory: 48hrs
Course Content
149
Programming Paradigms
Course Description
This course will introduce students with the fundamental ideas surrounding the design and
implementation of high level programming languages. The course stress on underlying
theoretical concepts as well as significant practical sessions. Students will gain experience with
different programming languages and their basic structures. It also introduces language theory
and grammars.
Course Objectives
▪ Be aware of some of the wide variety of concepts available in various programming
languages.
▪ Understand basic representation of languages
▪ Be aware of some of the many trade-offs in programming language design and
implementation
▪ Understand the different phases of a compiler
▪ Understand the internal working principles of a compiler
Prerequisites: Data Structures, Programming
Student Workload
Course Content
150
Chapter 1: Introduction to programming languages
▪ Definitions of programming languages
▪ The lexical and syntactic structure of a language
▪ Evolution of Programming Languages
▪ High-level programming languages
▪ Elements of Programming languages: Data elements, Data structures, Operators,
Assignment, Statements, Program units, Data environments, Parameter transmission,
Storage management.
151
Chapter 6: Symbol Tables and Errors
▪ The contents of a symbol table, Data structures for symbol tables, Representing scope
information
▪ Symbol tables: Implementation of a simple stack allocation scheme, Implementation of
block-structured languages, Storage allocation in block-structured languages
▪ Error detection and recovery: Errors, Lexical-phase errors, Syntactic-phase errors,
Semantic errors
Assessment Method:
● Assignments = 15%
● Projects = 25%
● Midterm = 25%
● Final Exam = 35%
Course Policies
Academic Honesty: Academic dishonesty including cheating, fabrication and plagiarism will
not be tolerated in this course. It is expected that all work handed in by the student is their own.
You will be reported to concerned bodies automatically including the center’s academic council.
The center deals with such academic dishonesty severely.
While we expect you to work individually, that doesn’t mean that you cannot share ideas with
other students or us. But you can only share ideas. No code or written work should be shared
amongst you. And such an activity is considered academic dishonesty.
You are expected to attend at least 85% of the classes according to the university senate
legislation. We will not allow you to sit for the final if you don’t meet the criteria.
References
152
Textbook:
1. Compilers: Principles, techniques and tools, 2nd Edition (Aho, Ullman)
2. Programming language design concepts, John willy and sons (David A Watt)
153
Appendix 1C- Syllabuses per Stream
SEM VII
SEM VIII
Software Requirement Engineering
Program: Software Engineering and Computing Technology
Module Title: System Modeling Module Code: SITE-M4151
Module ECTS: 10
Course Title: Software Requirement Course Code:SITE -4151
Engineering
Course ECTS: 5
Course Duration: 16 weeks
Course Description
Prerequisites: None
Student Workload
Lecture Lab Tutorial Home Study
32 48 32
Course Content
Topic 1 Software Requirements Basics
● Introduction to requirement engineering (what, why, how to do)
● Definitions of a software requirement
● Product and process requirements
● Functional and non-functional requirements
● Emergent properties
● Quantifiable requirements
● System and software requirements
● Level and Importance of Requirement
● Project Failure Issues
o Incomplete requirements
155
o Lack of user involvement
o Requirements defects
o Requirements churn
o Wasted resources
o Gold plating
o Inaccurate estimates
o Requirements and the life cycle
● Standards and models related to requirements
o SEI CMM® and CMMI SM
o SEI CMM® and CMMI SM
o Requirements management process area
o Requirements development process area
o Generic practices
o IEEE software engineering standards
o ISO 9000:2000 on requirements
● Requirements engineering process
o Requirements engineering process
o Incremental requirements development
o Requirements engineering context
Topic 2 Requirements Elicitation
● Requirements modeling
o Requirements modeling
o Benefits and Types of models
156
● Object oriented models
o Use cases
o Activity network
● Structured analysis models
o Data flow diagram
o Entity relationship diagram
o State transition diagram
o State transition table
● Other models
o Process flow diagram
o Decision tree
o Event/response table
● Identifying product requirements
o Levels of requirements information
o Functional requirements and Nonfunctional requirements
o Quality attributes
o Usability requirements
● Prototyping
o Prototype
o Prototyping suggestions
o Prioritizing requirements
o Benefits of prioritizing requirements
o Prioritization considerations
Topic 4 Requirements Specification
● Concept of operations
o Documenting user level requirements
o Concept of operations document
● Software requirements specification
o System requirements
o System vs. software requirements
o Software requirements specification
o Writing "good" requirements
● Data dictionary
o Data dictionary
o Data dictionary notation
Topic 5 Requirements Validation
● Requirements review
o Reviews defined
o Cost of rework
o Hold many peer reviews
o Inspection process
o Inspection meeting
o Who should inspect requirements
o Requirements completeness
o Requirements checklist
o Requirements checklist
o Ambiguity
o Peer review
● Requirements test planning
o Testability
o Writing test cases
o Test matrix
Topic 6 Practical Considerations
● Iterative nature of the requirements process
● Change management
● Requirements attributes
● Requirements tracing
● Measuring requirements
157
Schedule
Weeks Topics and Subtopics
Lecture Laboratory Assessment
Week 1 Topic 1 ● Assignment
Teaching Methods
The teaching methods that shall be employed for this course are lecturing, demonstration,
classroom discussion and classroom action research.
Assessment Method
The mark breakdown is as follows
Assignment 15%
Paper Review 15
Project 20%
Class Activity 5%
Mid 15%
Final 30%
Course Policies
❏ Attendance: It is compulsory to attend class in time and every time. Missing more than
three classes during the term causes readmission for that course.
❏ Assignments: No Late Assignment will be accepted
❏ Test/Quizzes: Rarely reexamination schedules will be arranged for those who missed the
exam by accidental or uncontrollable situation.
❏ Cheating/Plagiarism: No second Chance or excuses.
References
158
▪ System Requirements Engineering, P. Loucopoulos and V. Karakostas, McGraw-Hill:
Requirements Engineering: From System Goals to UML Models to Software
Specifications, Axel van Lamsweerde, John Wiley Sons
▪ Managing Software Requirements: A Use Case Approach, 2nd edition, Dean Leffingwell,
Don Widrig, Addison Wesley: Boston
▪ Software Requirements: Objects, Functions, & States, A. M. Davis, Prentice Hall:
Englewood Cliffs, 1993.
▪ System and Software Requirements Engineering: Tutorial, R. H. Thayer and
M. Dortman (Editors),
IEEE Computer Society Press
▪ Problem Frames: Analyzing and Structuring Software Development Problems, M.
Jackson, Addison-Wesley Professional; 1st edition (December 15, 2000)
▪ Requirements Engineering: Processes and Techniques, G. Kotonya and I. Sommerville,
John Wiley Sons
▪ Requirements Engineering - A Good Practice Guide, I. Sommerville and P. Sawyer, Wiley
▪ Scenarios, Stories, Use Cases Through the Systems Development Life-Cycle, I. Alexander
and N. Maiden (eds.), John Wiley & Sons, 2004.
▪ Requirements Engineering: Frameworks for Understanding, R. Wieringa, Wiley, 1997
▪ Requirements Engineering: Social and Technical Issues, J. Goguen, and
M. Jirotka (Eds.), Academic Press, 1994.
▪ Requirements Engineering, L. Macaulay, Springer Verlag, 1996
▪ User-Centered Requirements Analysis, C. F. Martin, Prentice-Hall, 1994
▪ Information System Requirements: Determination and Analysis, D. Flynn, McGraw-Hill,
1992
▪ Are Your Lights On?: How to Figure Out What the Problem Really Is, D. C. Gause and G.
M. Weinberg, Dorset House, 1990.
▪ Exploring Requirements, D. Gause and G. Weinberg, Dorset House, 1989
▪ Managing Systems Requirements: Methods, Tools, and Cases, S. J. Andriole, McGraw-
Hill, 1996.
▪ System Requirements Analysis, J. O. Grady, McGraw Hill, 1993.
▪ Systems Engineering: Coping with Complexity, R. Stevens, K. Jackson, P. Brook, and S.
Arnold, Prentice Hall 1998.
▪ Requirements Engineering and Rapid Development: A Rigorous, Object-Oriented
Approach, I. S. Graham, Addison-Wesley, 1998.
159
▪ Practical Software Requirements; A Manual Of Content And Style, B. L. Kovitz, Manning
Publications, 1998
▪ User-Centered Requirements: The Scenario-Based Engineering Process, K. L. McGraw
and K. Harbison, Lawrence Erlbaum Associates, 1997.
▪ The Complete Systems Analysis, J. Robertson and S. Robertson, Dorset House, 1998.
▪ Applying Use Cases: A Practical Guide, G. Schneider and J. P. Winters, Addison-Wesley,
1998.
▪ Object-Oriented Analysis and Design, with Applications, G. Booch, Benjamin-Cummings,
1994
▪ Object-Oriented Methods: A Foundation, J. Martin and J. Odell, Prentice-Hall, 1995
▪ The Unified Modeling Language Reference Manual, J. Rumbaugh, I. Jacobson and
G. Booch, Addison-Wesley, 1998
▪ The Unified Modeling Language User Manual, G. Booch, J. Rumbaugh and I. Jacobson,
Addison-Wesley, 1998.
160
Software Architecture and Design
Module ECTS: 10
Course Title: Software Architecture and Course Code: SITE -4152
Design
Course ECTS: 5
Course Duration: 16 weeks
Course Description
At the heart of every well-engineered software system is its software architecture. Software
architecture deals with the high-level building blocks that represent an underlying software system.
These building blocks are the components (units of computation in a system), the connectors (models
of the interactions between software components), and the configurations (arrangements of software
components and connectors, and the rules that guide their composition). Software architectures that are
found particularly useful for families of systems are often codified into architectural styles. The course
will add treatment of software architecture, its foundation, principles, and elements, including those
described above. The Course will also introduce software architecture research, future trends and state-
of-the-practice.
Course Objectives
After completion of the course the student must be able to: Knowledge and understanding
161
● Understanding the role of software architecture in the software lifecycle
● Defining viewpoints
● Describe architectural styles
● Select and use appropriate architectural styles
● Describing an architecture using several views
● Evaluating an architecture using both review-based and scenario-based methods
● Applying architectural patterns
● Identifying concurrency problems and their solution
● Understanding the role of components and services
● Define architectural design decisions
● Evaluate the coming attractions in software architecture research and practice
Prerequisites:
Student Workload
Lecture: Lab: Tutorial: Home Study:
Course Content
Topic 1: Introduction to the fundamentals of software architecture
● What is software architecture?
● Definitions of software architecture
● Architecture addresses non-functional requirements
● Architectures and technologies
Topic 3: Fundamental principles and guidelines for software architecture design and
architectural styles
● Architectural Design
Choosing the architecture framework
Allocate Components
● Architectural Styles
General structure
Distributed systems
Interactive systems
Others
Topic 4: Architectural patterns and frameworks.
● Architectural patterns
Creational patterns
Behavioral patterns
Structural patterns
162
Topic 5: Methods, techniques, and tools for describing software architecture and
documenting design rationale.
● What to document
● UML
● Architecture views
● Component diagrams
Topic 8: Approaches and tools for designing and evaluating software architectures for
the state-of- the-art technologies
● cloud-computing
● service-orientation
● mobile computing
Topic 9: Future challenges and emerging trends in software architecture discipline.
Schedule
Weeks Topics and Subtopics
Lecture Laboratory Assessment
Week 1
Week 2- Week 8
Week 9- Week 15
Week 16
Teaching Methods
The teaching methods that shall be employed for this course are lecturing, demonstration,
classroom discussion and classroom action research.
Assessment Method
163
The mark breakdown is as follows
Assignment 15%
Paper Review 15
Project 20%
Class Activity 5%
Mid 15%
Final 30%
Course Policies
❏ Attendance: It is compulsory to attend class in time and every time. Missing more than
three classes during the term causes readmission for that course.
❏ Assignments: No Late Assignment will be accepted
❏ Test/Quizzes: Rarely reexamination schedules will be arranged for those who missed the
exam by accidental or uncontrollable situation.
❏ Cheating/Plagiarism: No second Chance or excuses.
References
▪ Software Architecture: Foundations, Theory, and Practice, Taylor et al., John Wiley, 2010.
▪ Gorton, I., Essential Software Architecture, 2nd edition (2011), Springer.
▪ Chen, L., Ali Babar, M., Nuseibeh, B., Characterizing Architecturally Significant Requirements,
IEEE Software 30(2): 38-45 (2013)
▪ Jane Cleland-Huang, Adam Czauderna, Ed Keenan: A Persona-Based Approach for Exploring
Architecturally Significant Requirements in Agile Projects. REFSQ 2013:18-33.
▪ Hofmeister, C., et al., A general model of software architecture design derived from five industrial
approaches, Journal of Systems and Software (JSS), 2006.
▪ Fielding, R., Taylor, R., Principled Design of the Modern Web Architectures by Roy Fielding and
Richard Taylor, ICSE, 2000.
▪ Singh, M., and Huhns, M., Service-Oriented Computing: Key Concepts and Principles, IEEE
Internet Computing: 9(1): 75-81 (2005).
▪ Clements, P., Kazman, R. and Klein, M., Evaluating Software Architectures: Methods and Case
Studies, 2002, Addison-Wesley.
▪ Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P., Stal, M., Pattern-Oriented Software
Architecture: A System of Patterns, 1996, Wiley.
▪ Model Driven Architecture: A Perspective by Singh and Sood, 2009
164
Course Tile: Fundamentals of Parallel Course Code: SITE - 4191
Computing
Course ECTS: 5
Course Duration:16 Weeks
Course Description
This course will cover many aspects of parallel systems development. Starting initially by
looking at different types of computer architecture and hardware capabilities for parallel
programs as well as software. It will also investigate different performance measures for parallel
programs.
The course will discusses different parallel processing models include theoretical approaches
(Flynn taxonomy), as well as practical aspects (programming for shared memory machines,
message passing paradigm). Lectures present technologies and related standards of parallel and
concurrent computing: Pthreads, OpenMP, MPI. The subject of design and analysis (especially
concerning correctness and efficiency) of concurrent and parallel programs is also covered.
Students will also be able to implement some parallel algorithms using the technologies
presented.
Course Objectives
By the end of the course students should be able to accomplish the following:
✓ Understand the need for parallel computing and different hardware and software
used for parallel processing.
✓ Critically evaluate approaches to concurrent and parallel systems development
✓ Compare and contrast the use of different parallel systems techniques to solve
particular problem types.
✓ Design and construct parallel algorithms to solve particular problem types
✓ Analyze the performance of parallel systems undertaking particular work types
Learning Outcomes
This course introduces critical methods and techniques related to parallel computing.
Particularly, the course focuses on hardware, algorithm, and programming of
parallel systems, providing students a complete picture to understand pervasive
parallelcomputing.
165
Through this course, the students will have a deep understanding of how parallel
systems are designed and what are the fundamental methods to program and
analyze them.
By the end of this course, students will be able to:
Student Workload
Lecture: Tutorial Home Study Laboratory
Course Content
Chapter 1: Introduction:
● Introduction: parallel, concurrent and distributed systems, the need for parallelism.
● Parallel Hardware: Flynn’s taxonomy of computer architecture, Parallelism in
sequential machines, Abstract model of parallel computer, Multiprocessor architecture,
Pipelining, Array processors.
● Parallel Software: Overview, Operating system support, Types of operating systems,
parallel programming models, Processes and threads, shared memory, distributed
memory, hybrid systems, Software tools.
● Performance: Speedup and efficiency, Scalability, Amdahl’s law, Gustafson-Barsis’s
law.
● Parallel Programming languages: Fortran90, nCUBE C, Occam, C-Linda
166
Chapter 5: Message Passing Programming:
● Introduction, Model, Interface, Introducing collective, benchmarking parallel performance.
Message passing programming using MPI.
Chapter 6: Debugging Parallel Programs:
● Debugging techniques, debugging message passing parallel programs, Debugging shared
memory parallel programs.
Assessment Method:
● Assignments = 15%
● Projects = 25%
● Midterm = 25%
● Final Exam = 35%
Course Policies
Academic Honesty: Academic dishonesty including cheating, fabrication and plagiarism will
not be tolerated in this course. It is expected that all work handed in by the student is their own.
You will be reported to concerned bodies automatically including the center’s academic council.
The center deals with such academic dishonesty severely.
While we expect you to work individually, that doesn’t mean that you cannot share ideas with
other students or us. But you can only share ideas. No code or written work should be shared
amongst you. And such an activity is considered academic dishonesty.
You are expected to attend at least 85% of the classes according to the university senate
legislation. We will not allow you to sit for the final if you don’t meet the criteria.
References
1. Advanced computer architecture and parallel processing, John willy and sons inc
publishing (Hesham El-Rewini Mostafa Abd-El-Barr)
2. An introduction to parallel programming (Peter pacheco)
3. Parallel Programming: For Multicore and Cluster Systems, Springer (Thomas Rauber ·
Gudula Ru n
̈ ger)
167
Advanced Computer Networking
Course ECTS: 7
Course Duration: 16 Weeks
Course Description
This course introduces the student to the world of internetworking. There are in-depth discussions
about routing protocols and how quality of service is delivered in an IP network. Multi-Protocol Label
Switching is an emerging standard and is covered an introductory topic. The course wraps up with a
case study, which the students work in groups to discuss, design and present their solutions
Course Objectives
Upon completion of this course the student will be able to:
✓ Identify the components of an Internetwork
✓ Describe the functionality of internetworking components
✓ Articulate how the Internet Protocol is implemented in a network
✓ • Describe how routers and routing protocols operate
Learning Outcomes
Having successfully completed this course, students will be able to demonstrate knowledge and
understanding of:
✓ Operation of Switched Networks
168
✓ A range of network architectures and protocols
✓ Emerging topics in computer networks
✓ Design and critically analyses networking protocols for a range of technologies and scenarios
Prerequisites: Fundamental of Computer Networking
170
1. W. Stallings, Foundations of Modern Networking: SDN, NFV, QoE, IOT, and Cloud,
Addison-Wesley Professional, 2016.
1. M. Meyers, CompTIA Network+ Certification Exam N10-006, 6 ed., McGraw-Hill Education,
Sydney, Australia, 2015.
2. T. Lammle, CCNA Routing and Switching Complete Deluxe Study Guide, 2nd ed., John Wiley
& Sons, Indianapolis, Indiana, 2016
3. Routing and Switching Essentials Companion Guide, Cisco Systems, USA, 2015
4. J. S. Beasley, P. Nilkaew, Practical Guide to Advanced Networking, 3rd Edition, Pearson IT
Certification, 2013
171
Enterprise Application Development
Module ECTS: 17
Course ECTS: 7
Course Description
This course will cover the issues in designing and engineering large enterprise software systems. Such
systems are typically distributed and require increasingly complex inter-enterprise as well as intra-
enterprise coordination. Technologies such as Web Services and cloud computing provide platforms
for building such systems, and architectures such as service-oriented architecture, event driven
architecture and REST are idioms for structuring such systems. This course will focus on analysis and
design of enterprise software systems, with particular emphasis on the architectures recommended for
such systems. Some background in Web Services is also covered. The course is largely vendor-neutral,
with short reviews in one or two places of technological solutions
Course Objectives
172
The objective of this course is to make engineering students familiar with design and implementation
of scalable enterprise applications and introduce problem solving design patterns. It gives idea about
development of service oriented solutions & design and implantation of Rich Internet Applications
Learning Outcomes
The program provides a knowledge and understanding of the following:
Practical Skills
- The process for developing large scale enterprise applications
- Build MVC Applications
- Build rich internet applications
- Talking enterprise level problems
- How to hone their critical thinking and presentation skills by developing the business plan
and presenting their work to a professional audience
Prerequisites:
Fundamentals of Computer Science
Fundamentals of Database
Fundamentals of Networking
Course Content
173
1. Introduction
1. Enterprise Applications trends and Challenges
2. Application Architecture
3. Multi-tier Architecture
4. MVC Architecture
2. Database Concepts
1. Database Design
2. Enterprise Database (Oracle/DB2/MSSQL)
3. Database Connectivity (JDBC/ODBC)
4. Connection Pool
3. Service-Oriented Architecture
1. SOA Concepts and principles
2. XML/SOAP
3. REST
4. Web services
4. Platform for Enterprise Solutions: Java EE5: (9 hours)
1. Java EE Platform Overview
2. Web Core Technologies: Servlets and JSP
5. Enterprise Java Bean (6 hours)
1. Enterprise JavaBean architecture
2. Developing EJB3.0
3. Session and message-driven EJBs
6. Advanced Web Technology (12 hours)
1. Web2.0 Introduction and Concepts
2. Rich Internet Application Development
3. AJAX
4. AJAX Frameworks(Prototype Library, DWR Java Ajax Framework)
Schedule
174
Week 7 – Topic 3,4 Web service Project 1
Week 10 Servlet and JSP Mid
Lab Assignment
Teaching Methods
The teaching methods that shall be employed for this course are lecturing, demonstration,
classroom discussion and classroom action research.
Assessment Method
Project - 30 %
Lab - 20%
Mid - 20%
Final - 30%
Course Policies
References
175
SEM IX
Advanced Database Systems
Module ECTS:17
Course ECTS: 7
Course Description
This course addresses topics at the intersection of database system, operating system, and
distributed computing research and development. It mainly focuses on different database
systems, their architecture, and application areas. Specifically, Distributed and relational
database systems, object database systems, and overview of graph database will be covered in
this course.
Course Objectives
The objectives of this course are
● To introduce database distribution and ways to resolve complications related to
distribution.
● To give students in depth information about system implementation techniques, data
storage, representing data elements, database system architecture, the system catalog, query
processing and optimization, transaction processing concepts, concurrency control
techniques, database recovery techniques, database security and authorization, enhanced
data models for advanced applications, temporal databases, deductive databases, database
technology for decision support systems, distributed databases and client server
architecture, advanced database concepts, and emerging technologies and applications.
● To provide an in depth skill on object databases
● To equip students with an indepth understanding of graph databases.
176
Learning Outcomes
The programme provides a knowledge and understanding of the following:
Practical Skills
Upon successful completion of this course, students will be able to:
- Implement and evaluate complex, scalable database systems, with emphasis on providing
experimental evidence for design decisions.
- Apply and customize state-of-the-art implementation techniques for multi-node database
management systems following modern coding practices.
- Interpret and comparatively criticize state-of-the-art research talks and papers, with
emphasis on constructive improvements.
- Ability to compare and select systems to store and manipulate big data
- Apply database optimization techniques to resolve system performance issues in general
- Know how to effectively use and customize tools that may interact with database systems
- Apply object oriented database system concepts to design application layers
- Model graph and hypergraph based data for any domain of knowledge
Prerequisite/s: Fundamentals of Database Systems
Student Workload
Lecture:32 hrs Tutorial: 32 hrs Laboratory:48 hrs Home Study: 65 hrs
Course Content
Part I: Introduction to Database Systems
Chapter 1: Object and Object Relational Database Systems
Object Oriented Conceptual Model
Static Aspects of OOCM
Objects and Classes
Object Relationships
Complex Objects
Dynamic Aspects of OOCM
Encapsulation
Generic and User Defined Methods
Static and Dynamic Polymorphism
Object Relational Approaches
Chapter 2: Overview NOSQL and Graph Database Systems
179
Week 15 - Week 16 Course Project and Final Exam and defenses
Seminar
Teaching Methods
The teaching methods that shall be employed for this course are lecturing, demonstration, and
classroom action research.
Assessment Method
The mark breakdown is as follows
❏ Mid Exam 20%
❏ Assignment I, II, III, IV and other assessments) 40%
❏ Final Exam 40%
Course Policies
❏ Attendance: It is compulsory to attend class in time and every time. Missing more than
three classes during the term causes readmission for that course.
❏ Assignments: No Late Assignment will be accepted
❏ Test/Quizzes: Rarely re examination schedules will be arranged for those who missed the
exam by accidental or uncontrollable situation.
❏ Cheating/Plagiarism: No second Chance or excuses.
References
Text Book
1. Özsu, M.T., Valduriez, P.: Principles of Distributed Database Systems. Springer, New
York (2011). https://doi.org/10.1007/978-1-4419-8834-8Google Scholar
10
Refer to Electives Section
180
Software Project Management
Program: Software Engineering and Computing Technology
Module Title: Project Management Module Code: SITE-M5351
Module ECTS:
Course Title: Software Project management Course Code: SITE - 5351
Course ECTS: 4
Course Duration: 16 Weeks
Course Description
This course is mainly designed to prepare IT project managers, novice or experienced, with
project management skills needed to better manage IT projects. Built along the IT project
management lifecycle, this course covers detailed topics of the basic concepts of IT project
management, including initiating, planning, controlling, executing, and closing projects. The
course also shows how IT projects should be managed, from inception to post implementation
review. The audience who take this course will likely improve their management skills and
abilities to define the project scope, create a workable project plan, and manage within the
budget and schedule.
Course Objectives
After completion of the subject the student will understands the problematics of design,
planning and processing of project with software package Microsoft Project and acquires
theoretical knowledge and practical skills and techniques from the field. From practical aspect
is student able to develop a project (the allocation of work, material, cost resource and their
optimization), process visual output of project. From advanced techniques is student able to
work in server environment by processing multiple projects simultaneously, as well as the
basic techniques of analysis and economic interpretation of output project
Learning Outcomes
The program provides a knowledge and understanding of the following:
181
- Build a performing organization and project team
- Develop Work Breakdown Structures (WBS)
- Establish project estimates and project schedules
- Create project plans
- Manage overall change control
- Control project execution processes
- Terminate a project with a close-out strategy
- Build up the baseline knowledge for further career in IT project management fields.
- Understand the job roles of an IT project manager
- Recognize the key issues during the IT project management procedures
- Describe the best practices in IT project management processes
Prerequisites: None
Student Workload
Course Content
Topic I Overview
● Software Development processes
● Project Management Fundamentals
● Project Management Vs Portfolio
● Project Maturity
● Software project management tasks
Topic 2 Software Project Planning
● Software Project Management Plan
Topic 3 WBS and Schedule
● Work Breakdown Structure
● WBS Techniques
● Scheduling Overview
o Scheduling Techniques (Network Diagrams, PERT, CPM, GERT, Bar Charts,
Milestone Chart, and Gantt Chart)
Topic 4 Software Project Estimation
● Introduction
● Estimation Problem
● Estimation Approaches
o Ad hoc approaches
o Analogy approach
o Expert judgment approaches
o Empirical models
Topic 5 Risk and Change Management
● Software Risks
● Risk Management [identification , Analysis]
● Risk Prioritization and Control
● Risk Resolution and Monitoring
Topic 6 Change Control management
● Overview
● Control Activates
● Progress Monitoring and Report
● Project Metrics Earned Value Analysis
Topic 7 Software Quality Assurance
● Introduction
182
● Process and Product Quality
● QA Management
● Quality Control Tools and Techniques
● Quality Assurance and Standards
Topic 8 Team Management
● Motivation Theories
● Leadership and Teamwork
● Team Management
● Responsibility Assignment Matrix
Schedule
Weeks Topics and Subtopics
Lecture Laboratory Assessment
Week 1 ,2 Topic 1.2 Introduction to Ms Project
Creating Task
Resource Assignment with
task
Teaching Methods
The teaching methods that shall be employed for this course are lecturing, demonstration,
classroom discussion and classroom action research.
Assessment Method
Course Policies
183
❏ Attendance: It is compulsory to attend class in time and every time. Missing more than
three classes during the term causes readmission for that course.
❏ Assignments: No Late Assignment will be accepted
❏ Test/Quizzes: Rarely reexamination schedules will be arranged for those who missed the
exam by accidental or uncontrollable situation.
❏ Cheating/Plagiarism: No second Chance or excuses.
References
• Steve McConnell, Software Project – Survival Guide, Microsoft Press.
• Walker Royce, Software Project Management, Pearson.
• Robert K. Wysocki, Effective Software Project Management, Wiley.
• http://www.epmbook.com/
• http://w3-3.ibm.com/transform/project/
• http://www.pmi.org
• http://www.maxwideman.com/pmglossary/index.htm
• http://www.gantthead.com/article.cfm?ID=94587
• https://castlelearning.com/
184
Fundamentals of Distributed Systems
Program: Software Engineering and Computing Technology
Module Title: High Performance Module Code: SITE-M4191
Computing
Module ECTS: 12
Course Tile: Fundamentals of Course Code: SITE - 5192
Distributed systems
Course ECTS: 7
Course Duration: 16 Weeks
Course Description
Distributed systems aim at creating systems that are distributed over a network that can work
autonomously, providing the required services as well as cooperating and collaborating to
provide a general goal or service. Distributed systems appear to the user as a single, consistent
and coherent system while in practice are distributed over the network providing or supporting all
or some part of the services provided by the system.
This course covers the foundations of distributed systems including models of computing,
communication, logical clocks and synchronization, distributed indexing, concurrency,
consistency, failures, reliability and security. The course examines popular applications of
distributed computing; analyze how the foundations manifest themselves in different ways
depending on real-world constraints. Such applications include distributed file systems, peer-to-
peer systems, distributed transactions, and web services.
Course Objectives
By the end of the course students should be able to accomplish the following:
✓ Understand the basic concepts of distributed systems and their difference with
centralized systems.
✓ List the hardware and software environments of distributed systems and understand
the architectures of distributed systems.
✓ List different distributed systems and their characteristics.
✓ Understand how communication takes place in distributed systems, and implement
some applications, which perform communication between two systems.
✓ Define code migration and its importance in distributed systems. Describe how code
migration can be performed in distributed systems.
✓ Describe the role of software agents in distributed systems and list characteristics of
different types of software agents.
185
✓ Describe how different entities of a distributed system can be identified and located
using names, identifiers and addresses. Describe how name resolution is performed
and how unreferenced entities can be removed.
✓ Understand and describe the importance of synchronization in distributed systems
and how it can be implemented.
✓ Understand the importance of mutual exclusion and election are in distributed
systems, understand different methods and algorithms for mutual exclusion and
election and implement them using a computer program.
✓ Describe how distributed transactions are carried out.
✓ List how we can ensure the consistency of distributed systems. Describe consistency
and distribution protocols.
✓ Describe different cases in which a fault can arise in distributed system and discuss
how distributed systems can be made fault tolerant and how a distributed system
can recover from faults.
✓ Describe distributed system security.
Learning Outcomes
The primary learning outcome of the course is two-fold:
1. Students will identify the core concepts of distributed systems: the way in which several
machines orchestrate to correctly solve problems in an efficient, reliable and scalable way.
2. Students will examine how existing systems have applied the concepts of distributed
systems in designing large systems, and will additionally apply these concepts to develop
sample systems.
Prerequisites: Fundamentals of Computer Networks
Student Workload
Lecture: Tutorial Home Study Laboratory
Course Content
Chapter 1: Introduction to Distributed System:
▪ Introduction to Distributed systems
▪ Goals and distribution transparency
▪ Hardware concepts: Multiprocessors, Homogeneous and heterogeneous Multi-
computers
▪ Software concepts: Distributed and network Operating systems, Middleware
▪ System architectures: System architectures, Client server Model
Chapter 2: Communication:
▪ Layered protocols
▪ Remote procedures call: Basic RPC operations, Parameter passing, Extended RPC
Models
▪ Remote object invocation: Distributed Objects, Binding, Dynamic vs. static RMI and
Parameter passing.
▪ Message-oriented communication: Persistence and synchronicity in
Communication, Message-oriented transient and persistent communication
▪ Web Services:
186
Chapter 3: Processes:
▪ Threads, Clients and Servers
▪ Code Migration and Software agents: Approaches, Migration and local resources,
Software Agents
Chapter 4: Naming:
▪ Naming entities and name resolution: Names, Identifiers and Addresses, Name space
and resolution.
▪ Locating mobile entities: Naming vs. locating entities, Solutions for locating entities
▪ Removing un-referenced entities: Problem of un-referenced and unreachable objects
and the solutions
Chapter 5: Synchronization:
▪ Clock synchronization: Physical clocks, Clock synchronization algorithms, Logical
clocks and global state
▪ Election algorithms
▪ Mutual exclusion
▪ Distributed transactions: Models, Classification and implementation of transactions,
Concurrency control.
Course Policies
187
Academic Honesty: Academic dishonesty including cheating, fabrication and plagiarism will not
be tolerated in this course. It is expected that all work handed in by the student is their own. You
will be reported to concerned bodies automatically including the center’s academic council. The
center deals with such academic dishonesty severely.
While we expect you to work individually, that doesn’t mean that you cannot share ideas with
other students or us. But you can only share ideas. No code or written work should be shared
amongst you. And such an activity is considered academic dishonesty.
You are expected to attend at least 85% of the classes according to the university senate
legislation. We will not allow you to sit for the final if you don’t meet the criteria.
References
Textbook:
– Distributed Systems: Concepts and Design, 5th Edition (Coulouris, Dollimore, Kindberg,
Blair)
– Distributed Systems: Principles and Paradigms, 2nd Edition, (Tanenbaum, Van Steen)
Project I11
11
Refer to Project Management guideline
188
SEM X
Technology Entrepreneurship12
Module ECTS: 5
Course Title: Ethics and Professionalism Course Code: SITE- 5171
Course ECTS: 4
Course Duration: 16 weeks
Course Description
We can notice that the general public awareness on ethical aspects of technology is increasing.
The high level of media attention given to computer related disasters in technical systems such
as the explosion of Ariane V in 1996 and the Therac-25 computerized radiation machine
overdoses has increased interest in Computer Ethics.
The aim of this paper is to shed light upon the significance of social, ethical and professional
issues in the field of Computing. It argues that ethics education should be incorporated into
computing curricula.
Engineering has a direct and vital impact on the quality of life of people. Accordingly, the
services provided by engineers must be dedicated to the protection of the public safety, health
and welfare.
A code of professional ethics appears when an occupation organizes itself into a profession. It
is central to advising individual professionals how to conduct themselves, to judging their
conduct, and to understanding of a profession. Most engineering takes place within profit-
12
Refer to IT section
189
making organizations that are embedded in a complex structure of societal and regulatory
constraints. Engineering Ethics is therefore relevant for the majority of people within
Computing. Research Ethics or Educational Ethics apply to those professionals in Computing
who are active within those fields. Many other branches of Ethics may as well apply such as
Healthcare Ethics and similar for some of Computing professionals.
Course Objectives
This course is intended to give students a chance to reflect on the humanitarian, social, and
professional impact of computer technology by focusing on ethical issues faced by and
brought about by computing professionals, including those related to networking and the
internet, intellectual property, privacy, security, reliability, and liability. We will also focus on
issues raised by the possible emergence in the future of highly intelligent machines.
Learning Outcomes
The program provides a knowledge and understanding of the following:
Practical Skills
Student Workload
190
Lecture: Tutorial: Home Study: Laboratory:
Course Content
Topic I Course overview
● Engineering as Social Experimentation
● What Is Ethics (Normative ethics, Meta Ethics, Applied Ethics, Descriptive Ethics)?
● Ethics Contexts
● Why Study Professional Ethics?
● Computer Ethics
● Ethical Decision Making
● IT Workers as Professionals
● Relationships Between IT Professionals and Employers
● Legal Overview
● The Ethical Behavior of IT Professionals
● Professional Codes of Ethics
● Professional Organizations, Certification and Government Licensing
● Common Ethical Issues for IT Users
Schedule
191
Weeks Topics and Subtopics
Lecture Laboratory Assessment
Week 1 Part I - Assignment 1
Teaching Methods
The teaching methods that shall be employed for this course are lecturing, demonstration,
classroom discussion and classroom action research.
Assessment Method
Mid Exam – 20
Final Exam – 30
Assignment – 15
Paper Review - 25
Course Policies
❏ Attendance: It is compulsory to attend class in time and every time. Missing more than
three classes during the term causes readmission for that course.
❏ Assignments: No Late Assignment will be accepted
❏ Test/Quizzes: Rarely reexamination schedules will be arranged for those who missed the
exam by accidental or uncontrollable situation.
❏ Cheating/Plagiarism: No second Chance or excuses.
References
192
● Case Studies in Information and Computer Ethics ,1st by Prentice Hall PTR Upper Saddle River,
NJ, USA ©1996
● http://www.onlineethics.org/
● http://www.iep.utm.edu/ethics/
193
Software Testing, Verification and Quality Assurance
Module ECTS: 5
Course ECTS: 5
Course Duration: 16 weeks
Course Description
This course stresses on uncovering the approaches and techniques to software Testing.
Students will be introduced to various testing strategies, types and tools.
The course mainly bases on foundations given on software engineering I. Students are
required to undertake two software development projects as a way to exploit what they got in
prerequisites. Moreover, the interim as well as the final deliverables of the aforementioned
projects will be used as a playground for Unit Testing, Integration Testing, and System
Testing.
Course Objectives
At the end of this course attendees will be able to:
● Understand quality management processes
● Distinguish between the various activities of quality assurance, quality planning and
quality control.
● Understand the importance of standards in the quality management process and their
impact on the final product.
Learning Outcomes
194
The program provides a knowledge and understanding of the following:
Upon completion of this course each student will be able to:
· Understand the processes, principles and techniques of software testing, software
verification and validation
· Develop software testing plans and models
· Generate test cases according to various testing criteria
· Apply different types of testing approaches
· Develop and apply continuous verification methods
· Conduct test reviews and formalize documentation
· Efficiently use software verification and validation tools
Prerequisites: Fundamentals of Computer Systems
Student Workload
Lecture: Tutorial: Home Study: Laboratory:
Course Content
Chapter One: Architectural Styles, Design Patterns, and Objects: Preliminaries
Architectural Design
Architectural Design Decisions
Architectural Views
Architectural Patterns
Layered Architecture
Repository architecture
Client–server architecture
Pipe and filter architecture
Application architectures
Object Oriented Design
Object - Oriented Design Using the UML
Design Patterns
Assignment 1.1: Software Requirement and Design Specification Document
195
Test-Case Design [4]
Concept of Complete Testing
When to Stop Testing
Notion of Software Reliability
Assignment II: Software Testing; Seminar I
Domain Testing
196
Testing for Domain Error
Sources and types of domain error
Test Selection Criterion
Assignment 5.1: Literature Review
Assignment 5.2: Software Test Plan
Chapter Six – System Integration Testing
Concept of Integration Testing
Interfaces and Interface Errors
System Integration Techniques
Software and Hardware Integration Testing
Off-the-Shelf Component Integration Testing
Schedule
Weeks Topics and Subtopics
197
Lecture Laboratory Assessment
Week 1 Part I - Assignment 1
Teaching Methods
The teaching methods that shall be employed for this course are lecturing, demonstration,
classroom discussion and classroom action research.
Assessment Method
Students will be evaluated through continuous assessment which includes
Assessments
Requirement Specification, System Design Document and Implementation 10%
Static Unit Testing (Requirement Validation) - 5%
Literature Review - 5%
Mid Exam - 15%
Practical Exam - 10%
Project - 25%
Software Test Plan
Implementing Built-in Tests
Final Exam - 30%
Course Policies
❏ Attendance: It is compulsory to attend class in time and every time. Missing more than
three classes during the term causes readmission for that course.
❏ Assignments: No Late Assignment will be accepted
198
❏ Test/Quizzes: Rarely reexamination schedules will be arranged for those who missed the
exam by accidental or uncontrollable situation.
❏ Cheating/Plagiarism: No second Chance or excuses.
References
● Jeff Tian, “Software Quality Engineering - Testing, Quality Assurance, and
Quantifiable Improvement”, Southern Methodist University - Department of
Computer Science and Engineering, 2005.
● Ian Sommerville, “Software Engineering”, Pearson Education, Ed. 9, 2011.
● Kshirasagar Naik and Priyadarshi Tripathy, “Software Testing and Quality Assurance -
Theory and Practice”, University of Waterloo, 2008.
● Glenford J. Myers, “The Art of Software Testing”, John Wiley & Sons, Inc., 2nd Ed.,
2004.
Project II14
13
This course is dynamic and may change from year to year.
14
Project management guideline
199
Information Technology Stream
SEM VII
Industry Internship Guideline
SEM VIII
Database Administration and Security
Program: Software Engineering and Computing Technology
Module Title: System and Database Module Code: SITE-M4241
Administration
Module ECTS:
Course Title: Database Course Code:SITE - 4241
Administration and Security
Course ECTS:5
Course Duration: 16 weeks
Course Description
Database Architecture, Database Installation, Creating Database Using DBCA, Database
Instances, ASM Instances, Network Environment, Storage Structures, User Security,
Concurrency Control Mechanisms, Database Auditing and Maintenance, Performance
Management, Backup and Recovery Concepts, Moving Data, Database Restart.
The course provides a strong foundation in database security and auditing. This course utilizes
Different scenarios and step-by‐step examples. The course is covered: security, profiles,
password policies, privileges and roles, Virtual Private Databases, and auditing. The course
also covers advanced topics such as SQL injection, database management security issues such
as securing the DBMS, enforcing access controls, and related issues.
Course Objectives
200
At the end of this course, students should be able to:
▪ Installing Database Software
▪ Creating an Database Using DBCA
▪ Managing Database instances and ASM instances
▪ Managing and controlling database network environment
▪ Define and devise transaction management, concurrency control, crash recovery
components
▪ Managing storage structures
▪ Controlling user security
▪ Designing Database backup and recovery procedures
▪ Take Decisions related with Database Maintenance
▪ Understand the fundamentals of security, and how it relates to information systems
▪ Identify assets in your organization and their values
▪ Identify risks and vulnerabilities in operating systems from a database perspective
▪ Learn good password policies, and techniques to secure passwords in your organization
▪ Learn and implement administration policies for users
▪ Create policies, profiles and roles
▪ Understand the various database security models and their advantages or disadvantages
▪ Learn how to implement a Virtual Private Database using views, roles, and application
context
▪ Gain an overview of auditing fundamentals, and create your own auditing model
▪ Learn the purpose and use of data dictionaries, encryption and SQL injection
▪ Explore an interesting research topic of your choice related to database security
Learning Outcomes
The Course provides a knowledge and understanding of the following:
● Design, model and install any database management systems by using Oracle database
as sample.
● Plan, design, construct, control and manage database instances, database network
environment, storage structures, user security, database backup and recovery, database
maintenance
● Define and devise transaction management, concurrency control, crash recovery
components
● Examine and perform database administration roles and operations by using Oracle
database system as a sample.
● Compare and contrast by examining the database systems and new trends in data
storage, data retrieval and maintenance techniques.
● Understand the various database security models and their advantages or disadvantages
● Explain the various access control models and their advantages or disadvantages
● Understand the replication models used to increase availability and understand their
advantages and disadvantages
● Understand common attacks used against database confidentiality and explain how to
defend against the attack
● Use common integrity constraints to guarantee information correctness
Prerequisites:
Fundamental of Networking
Student Workload
Lecture:32 hrs Tutorial: 32 hrs Home Study:65 hrs Laboratory: 48hrs
201
Course Content
Part I: Database Administration
▪ Exploring the Database Architecture
▪ Transactions
▪ Concurrency control
▪ Crash Recovery Components.
▪ Deadlocks
▪ Managing the Database instance
▪ Managing the ASM instance
▪ Configuring the Oracle Network environment
▪ Managing Database Storage Structures
▪ Administering User security
▪ Managing Data Concurrency
▪ Implementing Database Auditing
▪ Database Maintenance
▪ Performance Management
▪ Backup and Recovery Concepts
▪ Performing Database Backups
▪ Performing Database Recovery
▪ Moving Data
Part II: Database Security
▪ Database Access Controls
▪ Database Intrusion Detection
▪ Database Obscurity
▪ SQL Injection
▪ Database Security Testing
▪ Database Vulnerabilities, Threats & Physical Security
▪ Database Security Lifecycle
▪ Security Regulation
Schedule
Weeks Topics and Subtopics
Lecture Laboratory Assessment
Week 1 – week ▪ Exploring the ▪ Lab 1: Installing Database Assignment #1.
2 Database Software Lab#1,
Architecture Project Title Approval
✓ Database administrator
▪ Transactions (DBA) role and typical tasks
▪ Concurrency and tools
control ✓ Database software
▪ Crash Recovery installation
Components. ✓ Database Grid
▪ Deadlocks Infrastructure installation
▪ Managing the for a standalone server
Database instance Lab 2: Creating a Database
▪ Managing the Lab#2 Lab#3, Lab#4
Using DBCA
202
ASM instance ✓ Database software
Installation Creating a
Database using DBCA (Data
Base Configuration
Assistant)
✓ Database creation scripts
with the DBCA
✓ Database design templates
management with the DBCA
✓ Additional tasks with the
DBCA
▪ Lab 3:
✓ Understanding the
COMMIT/ROLLBACK/LOCKI
NG
▪ Lab4:
✓ Starting and stopping
Database control (Start and
stop the Oracle database
and components)
✓ Oracle Enterprise Manager
✓ Database Home page
✓ Using SQL*Plus
✓ View Parameters
✓ Database Startup and
Shutdown credentials
Viewing Alert Log
Week 3 – week ▪ Configuring the ▪ LAB 5: Lab#5 Lab#6 Lab#7
4 Oracle Network ✓ Manage ASM users Quiz #1
environment Project Proposal
(Enterprise Manager)
▪ Managing ✓ Start/Stop ASM instance
Database Storage (SQL *Plus)
Structures ✓ Start/Stop ASM instance
▪ Administering (srvctl)
User security ✓ Start/Stop ASM instance
▪ Managing Data (asmcmd)
Concurrency ✓ Create and drop disk groups
▪ Implementing ✓ Adding disk to disk groups
Database Auditing ✓ ASM Management Using
▪ Database Enterprise Manager
Maintenance
✓ Disk Group Attributes
▪
✓ Retrieving ASM Meta data
Lab 6:
✓ Administering Users
✓ Creating a user
✓ Authenticating user
Lock/unlock accounts, Reset
203
password
✓ Grand/revoke privileges
✓ Create and manage roles
✓ User profiles İmplementing
password security
features/create password
profile
✓ Password verification
function
✓ Assigning quotas to users
Lab 7:
✓ Detecting Lock conflicts
✓ Resolving Lock conflicts
✓ Managing Undo segments
✓ Changing Undo Tablespace
to fixed size
✓ General Undo Information
✓ Using Undo advisor
✓ Viewing Systems Activity
Lab 9:
✓ Configuring Audit Trail
✓ Specify audit Options
✓ Default Auditing
✓ Enterprise Manager Audit
204
Page
✓ Using and maintaining audit
page/information
✓ Value-Based Auditing
✓ Proactive Maintenance
✓ Viewing Alert History
✓ Using Manager Optimizer
Statistics Page
✓ Enterprise Manager and
AWR
✓ Managing AWR
✓ ADDM
Findings/Recommendations
✓ EM and Advisors
✓ Automated Maintenance
Tasks
✓ Setting thresholds
✓ Creating and testing Alert
✓ Alert notifications
Lab 10:
✓ Performance Management
✓ Backup & Recovery
Lab 11:
✓ Performing Backups
✓ Performing DB Recovery
Lab 12:
✓ Moving Data
206
5. Databases and Transaction Processing, Lewis, Bernstein, Kifer, Addison Wesley, 2001
6. Concepts of Data Base Management, Pratt/Adamski, Thomson Course Technology
7. Database Management Systems, Ramakrishnan/Gehrke, McGraw-Hill
8. Basta A, Zgola, M, DATABASE SECURITY, 1 st Edition, 2012, Course Technology Cengage
Learning, Boston, MA, USA, ISBN-13: 978-1-4354-5390-6 ISBN-10:1-4354-5390-5
9. Oracle Technology Network1 : http://otn.oracle.com Complete list of Oracle 12C
reference books http://www.oracle.com/pls/db112/homepage SQL Server Books on-line
http://technet.microsoft.com/en-us//library/ms130214(SQL.105).aspx
207
E-business Strategy and Development
Program: Software Engineering and Computing Technology
Module Title: eBusiness Module Code: SITE-M4251
Module ECTS:
Course Tile: “E-business Strategy and Course Code:SITE-4251
Development” Course ECTS: 4
Course Duration: 16 Weeks
Course Description
Electronic business or e-business has been dramatically changing the way today’s businesses
operate and compete in the global marketplace. Nevertheless, most people including the
businessmen are focusing on how to utilize the e-Business system as a tool to effectively
implement traditional business strategies, few cares about the engineering construction of
those systems. This course provides an overview of e-business engineering from an
architectural perspective, and introduces the fundamental concepts and frameworks for e-
business with which to examine the existing e-business models, the prevalent enabling
technologies, and the strategic issues confronting the legacy firms.
Course Objectives
The objective of this course is to provide a foundation to prepare students, as future IT
engineers, system architects, or project managers, to play leading roles in the application and
management of e-business system construction. Upon successful completion of the course,
students will be able to:
● Understand the current status of e-business concepts and follow its development;
● Recognize the key implementation issues along with the e-business system design;
● Design the e-business engineering solution using the e-Business patterns;
● Describe the best practices in e-business engineering system development;
208
● Catch the enterprise data storage technology and management issues for e-Business
systems;
● Evaluate the existing e-business system with an architectural vision and performance
perspective;
● Appreciate the criticalness of performance, service-level-agreement, and latest IT
technology to e-business solutions;
Build up baseline knowledge for further study and research in Electronic Business and
Information Technology fields
Learning Outcomes
Knowledge and Understanding
Having successfully completed this module, you will be able to demonstrate knowledge
and understanding of:
Describe the principles of strategic management
Describe systems architecture and technologies for systems integration
Subject Specific Intellectual and Research Skills
Having successfully completed this module you will be able to:
Define and quantify the benefits, costs, risks and time-scales associated with new
strategic e business or IT initiatives
Compare and evaluate alternative e-business strategies and technologies
Justify and promote strategic initiatives, such as adopting a new e-business system or
technology
Student Workload
Lecture: Tutorial Home Study Laboratory
Course Content
Chapter 1:
● Introduction to e-business and e-commerce
○ Introduction
○ Difference between E-commerce and E-business
○ E-business Opportunities
○ E-business risks and barriers
○ Management responses to e-commerce and e-business
Chapter 2:
● E-Commerce Fundamentals
○ Introduction
209
○ The e-commerce environment
○ Location of trading in the marketplace
○ Business models for e-commerce
○ Focus on auction business models
○ Focus on Internet startup companies
Chapter 3:
● E-Business Infrastructure
○ Introduction
○ Internet technology
○ Web technology
○ Internet-access software applications
○ How does it work? Internet Standards?
○ Managing e-business infrastructure
Chapter 4:
● Digital Marketing Channels for E-business
○ Introduction
○ Digital Marketing Channels
○ E-business Models: B2B and B2C
○ E-business Marketing Trends
Chapter 5:
● E-environment
○ Introduction
○ Social and Legal factors
○ Environmental and green issues related to internet usage
○ E-government
Chapter 6:
● E-Business Strategy
○ Introduction
○ Strategic Analysis
○ Strategic Objectives
○ Strategy definition
○ Strategy implementation
Chapter 7:
● Supply Chain Management for E-business
○ Introduction
○ What is supply chain management?
○ Options for restructuring the supply chain?
○ Using e-business to restructure the supply chain
○ Supply chain management implementation
Chapter 8: Selected Topics in E-Business
Assessment Method:
210
First exam: 30 marks
Reports, research projects, cases: 30 marks
Final exam: 40 marks
Course Policies
● No make-up exam (except documented medical or family emergencies) will be
offered nor will there be any changes made to the final exam schedule.
● It is your responsibility to submit assignments on or before due date. Assignments
submitted after the due date will not be evaluated.
● Attendance is mandatory. Missing classes without valid reason may result in
disqualification from the course.
● General principles of academic honesty include the concept of respect for the
intellectual property of others, the expectation that individual work will be submitted
unless otherwise allowed by an instructor, and the obligations both to protect one’s
own academic work from misuse by others as well as to avoid using another’s work as
one’s own. All students are expected to understand and abide by these
principles.
References
1. E-BUSINESS AND E-COMMERCE MANAGEMENT STRATEGY, IMPLEMENTATION AND
PRACTICE, Dave Chaffey , 4th edition
2. Managing (E)Business Transformation, Farhoomand, A.
211
Enterprise Systems and Network Administration
Module ECTS: 10
Course Title: Enterprise Systems and Course Code:SITE- 4211
Network Administration Course ECTS: 5
Course Duration: 16 weeks
Course Description
Computer information systems form the backbone of many large organizations, and many
students will be called upon in their careers to help create, manage and maintain these large
systems. This course will give students knowledge and experience working with enterprise level
computer systems including workstation management, file servers, web servers, networking
devices, configuration management, monitoring, and more. We will mainly focus on the
GNU/Linux and Microsoft Windows server software, and much of the learning will take place in
hands-on lab activities working directly with these systems. In addition, students will be
responsible for developing some technical documentation and communicating information about
their systems in a variety of ways. Finally, throughout the course students will be exposed to a
variety of viewpoints and information directly from system administrators across AAU campuses.
Course Objectives
At the end of this course, students should be able to:
▪ Understand the major components of an enterprise level computer network and server
system
▪ Design and implement a simple enterprise level server system and network, as well as
provision workstations on that network quickly and easily
▪ Communicate and articulate information about enterprise systems clearly and effectively to
users of all skill levels and interests
▪ Develop ways to increase efficiency by automating tasks whenever possible using scripting and
configuration management tools
▪ Understand and describe security risks in any enterprise system and any ways that they can be
mitigated
212
▪ Show how to monitor enterprise systems for problems and use that information to locate and
fix any issues within the system
Learning Outcomes
The Course provides a knowledge and understanding of the following:
● Install, configure and manage enterprise systems/networks, including
hardware/software.
● Implement and administer desktop and server operating systems (client/server),
switching and routing devices.
● Implement and configure active directory
● Create user/group accounts and configure server roles.
● Administer permissions for users, files and network resources.
● Use group policies to configure and secure the network.
● Manage desktops and server computers using remote access.
● Install and configure TCP/IP for network and Internet connectivity.
● Configuration Management using Puppet
● Creating Secure Workstations (CIS 225 overview/review)
● Setting up an Enterprise Directory Service & Single Sign On
● Enterprise File Sharing
● Web Servers administration
● Core Networking Services administration
● System Monitoring
● Backup Strategies
● Maintain and troubleshoot enterprise networks and system.
Prerequisites:
Fundamental of Networking
Student Workload
Lecture:32 hrs Tutorial: 32 hrs Home Study:65 hrs Laboratory: 48hrs
Course Content
Chapter 1: Enterprise NAT Operation, Configuration and Troubleshooting for IPv4
o Explain how NAT provides IPv4 address scalability in a small to medium-sized
enterprise network.
o Configure NAT services on the edge router to provide IPv4 address scalability
in a small to medium-sized enterprise network
o Troubleshoot NAT issues in a small to medium-sized enterprise network.
Chapter 2: Enterprise Network Device Discovery, Management, and Maintenance
o Use discovery protocols to map a network topology.
o Configure NTP and Syslog in a small to medium-sized enterprise network
o Maintain router and switch configuration and IOS files.
Chapter 3: Enterprise LAN Redundancy
213
o Spanning Tree Concepts
o Varieties of Spanning Tree Protocols
o Spanning Tree Configuration
o First-Hop Redundancy Protocols
Chapter 4: Wireless LANs
o Wireless LAN Concepts
o Wireless LAN Operations
o Wireless LAN Security
o Wireless LAN Configuration
Chapter 5: Adjust and Troubleshoot Single and Multi-area OSPF
o Advanced Single-Area OSPF Implementations
o Troubleshooting Single-Area OSPF Implementations
o Multi area OSPF
o Configuring Multi area OSPF
Chapter 6: EIGRP Advanced Configurations and Troubleshooting
o Characteristics of EIGRP
o Configuring EIGRP for IPv4
o Operation of EIGRP
o Configuration of EIGRP for IPv6
o Advanced EIGRP Configurations
o Troubleshooting EIGRP
Chapter 7: Enterprise Hierarchical Network Design
o Enterprise Hierarchical Network Design
o Evolving Network Architectures
o Enterprise Network Architecture
Chapter 8: Connecting to Enterprise WAN
o WAN Technologies Overview
o Selecting a WAN Technology
Chapter 9: Enterprise Point-to-Point Connections
o Serial Point-to-Point Overview
o PPP Operation
o Configuring PPP
o Troubleshooting WAN Connectivity
Chapter 10 Frame Relay
214
o Introduction to Frame Relay
o Configuring Frame Relay
o Troubleshooting Connectivity
Chapter 11: Securing Site-to-Site Enterprise Connectivity
o Enterprise VPNs
o Site-to-Site GRE Tunnels
o Introducing IPsec
o Remote Access
Chapter 12: Monitoring Enterprise Network
o Syslog
o SNMP
o NetFlow
Chapter 13: Deploying and Managing Enterprise Server
o Installing Domain Controllers
o Managing Active Directory Domain Services Objects
o Automating AD DS Administration by Using
o Implementing IPv4, DHCP, DNS, IPv6, Local Storage, File and Print Services,
Group Policy
o Increasing Security for Server Resources
o Configuring AppLocker and Windows Firewall
o Implementing Server Virtualization with Hyper-V
Chapter 14 Storage Administration
o Storage Area Networks
o Network Attached Storage
o Storage Virtualization
o Enterprise Backup and Restoration Issues
Schedule
Weeks Topics and Subtopics
Lecture Laboratory Assessment
Week 1 – week 2 Chapter 1 ▪ Enterprise NAT Operation, Assignment #1. Lab#1,
Configuration and Project Title Approval
Troubleshooting for IPv4
Week 3 – week 4 Chapter 2 &3 ▪ Enterprise Network Device Lab#2 Lab#3,
Discovery, Management, and Quiz #1
Maintenance Project Proposal
215
▪ Enterprise LAN Redundancy
Week 5 – week 8 Chapter 4,5,& ▪ Wireless LANs Lab#4 Lab#4, Lab#5
6 ▪ Adjust and Troubleshoot Lab#6
Single and Multi-area OSPF Mid_exam
▪ EIGRP Advanced Project Progress Report
Configurations and
Troubleshooting
Week 9 – week 10 Chapter 7 & 8 ▪ Enterprise Hierarchical Lab#7 Lab#8,
Network Design
▪ Connecting to Enterprise
WAN
Week 11 – week 12 Chapter 9, 10 ▪ Enterprise Point-to-Point Lab#9 Lab#10, Lab#11
& 11 Connections Project Progress Report
▪ Frame Relay Quiz #2
▪ Securing Site-to-Site
Enterprise Connectivity
Week 13 – week 14 Chapter 12, 13 ▪ Monitoring Enterprise Lab#12 Lab#13 Lab#14
& 14 Network Final Project Report
▪ Deploying and Managing Lab exam
Enterprise Server
▪ Storage Administration
Week 15 – week 16 Exam Final Exam
Teaching Methods
● The format of the course will be lecture, class discussion and presentation, lab exercise,
assignments and Project.
Assessment Method
● Quiz#1 – 5%
● Quiz#1 – 5%
● Assignments#1 – 5%
● Assignments#1 – 5%
● Mid Exam – 15%
● Each Lab and Final Lab exam – 20%
● Final Project - 20%
● Final Exam – 25%
Course Policies
❏ Attendance: It is compulsory to attend class in time and every time. Missing more than
three classes during the term causes readmission for that course.
❏ Assignments: No Late Assignment will be accepted
❏ Test/Quizzes: Rarely re examination schedules will be arranged for those who missed
the exam by accidental or uncontrollable situation.
❏ Cheating/Plagiarism: No second Chance or excuses.
❏ Project: The project consists of report and presentation on a topic of your choice that
is relevant to the course. It is group-based
References
216
1. CCNA Routing and Switching Complete Study Guide, 2nd Edition, Todd Lammle, Oct
2016
2. LPI Linux Essentials Certification All-in-One Exam Guide, 3nd Edition, by Robb
Tracy
3. Linux: The Complete Reference, Sixth Edition 6th Edition, by Richard Petersen
4. MCSA Windows Server 2012 R2 Complete Study Guide, by William Panek , Jan 27,
2016
5. Dinesh Chandra Verma, ‘Principles of Computer Systems and Network Management
217
Internet of Things
Program: Software Engineering and Computing Technology
Module Title: Cloud Computing and IOT Module Code: SITE-M5221
Module ECTS: 8
Course Title: Internet of Things Course Code: SITE - 4221
Course ECTS: 4
Course Duration: 16 weeks
Course Description
The Internet of Things (IoT) is a course about the new paradigm of objects interacting with
people, with information systems, and with other objects. The course will focus on creative
thinking and on hands-on project development. The students will learn: – IoT concepts – IoT
technologies – Creative thinking techniques – Co-creation techniques
The course will examine the security and ethical issues of the vast implementation of smart
devices known as the Internet of Things (IoT). The IoT is an environment where smart
devices sense, anticipate, and respond to our needs as we manage them remotely. These
smart devices often act as the gateway between our digital and physical world. The IoT
touches many aspects of life including transportation, health care, safety, environment,
energy, and more. This course will examine and discuss IoT technology and market specific
topics, relevant case studies of IoT security vulnerabilities and attacks, and mitigation
controls. Students will assess the health, safety, privacy, and economic impacts of IoT
security events.
Course Objectives
● Understand the impact of IoT technologies
● Be able to draw the big picture of IoT ecosystem
● Be able to identify the architecture of IoT systems
● Be able to describe the essential components of IoT
● Have the knowledge of the emerging technologies of IoT
● Be able to examine the security and privacy challenges of IoT
218
● Be able to find appropriate security/privacy solutions for IoT
Learning Outcomes
The Course provides a knowledge and understanding of the following:
At the end of this course, students should be able to:
● Explain in a concise manner how the general Internet as well as Internet of Things
work.
● Understand constraints and opportunities of wireless and mobile networks for Internet
of Things.
● Use basic measurement tools to determine the real-time performance of packet based
networks.
● Analyses trade-offs in interconnected wireless embedded sensor networks
● Demonstrate knowledge and understanding of the security and ethical issues of the
Internet of Things
● Conceptually identify vulnerabilities, including recent attacks, involving the Internet of
Things
● Conceptually describe countermeasures for Internet of Things devices
● Analyze the societal impact of IoT security events
● Develop critical thinking skills
● Compare and contrast the threat environment based on industry and/or device type
Prerequisites:
Student Workload
Lecture:32 hrs Tutorial: 32 hrs Home Study:65 hrs Laboratory: 48hrs
Course Content
● Smart City
● Smart Home
● Industrial Control
● Smart Social Networks
● Big Data Analytics
Chapter 6: IoT SYSTEMS ARCHITECTURES
● IoT system components
o IoT Devices
o IoT Gateways
o Cloud Access
o Cloud Components
● Cross connectivity across IoT system components
o Device to Gateway –Short Range Wireless
o Cell Phone as Gateway
o Dedicated Wireless Access Point
o Gateway to Cloud- Long Range connectivity
▪ Wired
▪ Cellular
▪ Satellite
▪ WAN
o Direct Device to Cloud connectivity
Chapter 7: IoT DEVICE POWER CONSTRAINTS
● Powered and Unpowered Sensors
● Power Harvesting
● Energy Storage Technologies
Chapter 8: IoT PHY Connectivity
220
● Background on digital communication techniques up-to-date: wireless, satellite and
wired media, modulation, coding, antennas and MIMO
o MSK (example 802.15.4g)
o OFDM (example 802.11)
o DSSS (example 802.15.4)
o FHSS (Bluetooth)
● Architectures: cellular, star, mesh, ring
● Cellular communication through generations and applicability to IoT
● LTE Advanced for Machine Type Communications (LTE-MTC), an evolution of LTE
communications for connected things by 3GPP.
● NarrowBand IoT, (NB-IOT), standardization effort by 3GPP for a LPWAN used in
cellular networks,
Schedule
Weeks Topics and Subtopics
Lecture Laboratory Assessment
Week 1 – week 2 Chapter 1 & 2 ▪ Introduction To Internet Of Assignment #1. Lab#1,
Project Title Approval
Things (IoT)
▪ Concepts Behind The
Internet Of Things.
Week 3 – week 4 Chapter 3 & 4 ▪ Internet Of Things (Iot) Lab#2 Lab#3,
Quiz #1
Architecture
Project Proposal
▪ IoT Application
Development
Week 5 – week 8 Chapter 5, 6, 7 ▪ IoT Services and Lab#4 Lab#4, Lab#5
&8 Lab#6
Applications
Mid_exam
▪ IoT Systems Architectures Project Progress Report
▪ IoT Device Power
Constraints
▪ IoT PHY Connectivity
Week 9 – week 10 Chapter 9 & 10 ▪ Need Of Internet Of Lab#7 Lab#8,
Things (IoT) Security
▪ Security Classification &
Access Control
Week 11 – week 12 Chapter 11 & ▪ Cryptology Lab#9 Lab#10, Lab#11
12 Project Progress Report
▪ Attack Surface And Threat
Quiz #2
Assessment
Week 13 – week 14 Chapter 13 ▪ IoT Protocol Built-In Lab#12 Lab#13 Lab#14
Final Project Report
Security Features Lab exam
Week 15 – week 16 Exam Final Exam
Teaching Methods
● The format of the course will be lecture, class discussion and presentation, lab exercise,
222
assignments and Project.
Assessment Method
● Quiz#1 – 5%
● Quiz#1 – 5%
● Assignments#1 – 5%
● Assignments#1 – 5%
● Mid Exam – 15%
● Each Lab and Final Lab exam – 20%
● Final Project - 20%
● Final Exam – 25%
Course Policies
❏ Attendance: It is compulsory to attend class in time and every time. Missing more than
three classes during the term causes readmission for that course.
❏ Assignments: No Late Assignment will be accepted
❏ Test/Quizzes: Rarely re examination schedules will be arranged for those who missed
the exam by accidental or uncontrollable situation.
❏ Cheating/Plagiarism: No second Chance or excuses.
❏ Project: The project consists of report and presentation on a topic of your choice that
is relevant to the course. It is group-based
References
1. The Wireless Embedded Internet, Zach Shelby, Carsten Bormann, Wiley
2. Internet of Things: Converging Technologies for Smart Environments and Integrated
Ecosystems, Dr. Ovidiu Vermesan, Dr. Peter Friess, River Publishers
3. Interconnecting Smart Objects with IP: The Next Internet, Jean-Philippe Vasseur, Adam
Dunkels, Morgan Kuffmann
4. The Internet of Things: From RFID to the Next-Generation Pervasive Networked LuYan,
Yan Zhang, Laurence T. Yang, Huansheng Ning
5. Internet of Things (A Hands-on-Approach) , Vijay Madisetti , Arshdeep Bahga
6. Designing the Internet of Things , Adrian McEwen (Author), Hakim Cassimally
7. Practical Internet of Things Security (Kindle Edition) by Brian Russell, Drew Van Duren
8. Securing the Internet of Things Elsevier
9. Security and Privacy in Internet of Things (IoTs): Models, Algorithms,and Implementations
10. Daniel Minoli, “Building the Internet of Things with IPv6 and MIPv6:The Evolving World of
M2M Communications”,
15
Refer to AI section
223
SEM IX
Fundamentals of Distributed Systems
Course Description
Distributed systems aim at creating systems that are distributed over a network that can work
autonomously, providing the required services as well as cooperating and collaborating to
provide a general goal or service. Distributed systems appear to the user as a single, consistent
and coherent system while in practice are distributed over the network providing or supporting
all or some part of the services provided by the system.
This course covers the foundations of distributed systems including models of computing,
communication, logical clocks and synchronization, distributed indexing, concurrency,
consistency, failures, reliability and security. The course examines popular applications of
distributed computing; analyze how the foundations manifest themselves in different ways
depending on real-world constraints. Such applications include distributed file systems, peer-to-
peer systems, distributed transactions, and web services.
Course Objectives
By the end of the course students should be able to accomplish the following:
✓ Understand the basic concepts of distributed systems and their difference with
centralized systems.
✓ List the hardware and software environments of distributed systems and understand
the architectures of distributed systems.
✓ List different distributed systems and their characteristics.
✓ Understand how communication takes place in distributed systems, and implement
some applications, which perform communication between two systems.
✓ Define code migration and its importance in distributed systems. Describe how
224
code migration can be performed in distributed systems.
✓ Describe the role of software agents in distributed systems and list characteristics
of different types of software agents.
✓ Describe how different entities of a distributed system can be identified and located
using names, identifiers and addresses. Describe how name resolution is performed
and how unreferenced entities can be removed.
✓ Understand and describe the importance of synchronization in distributed systems
and how it can be implemented.
✓ Understand the importance of mutual exclusion and election are in distributed
systems, understand different methods and algorithms for mutual exclusion and
election and implement them using a computer program.
✓ Describe how distributed transactions are carried out.
✓ List how we can ensure the consistency of distributed systems. Describe
consistency and distribution protocols.
✓ Describe different cases in which a fault can arise in distributed system and discuss
how distributed systems can be made fault tolerant and how a distributed system
can recover from faults.
✓ Describe distributed system security.
Learning Outcomes
In Distributed Systems this course, you will learn a range of fundamental and applied techniques
in distributed systems. The learning objectives for Distributed Systems are:
1. Apply knowledge of distributed systems techniques and methodologies.
2. Explain the design and development of distributed systems and distributed systems
applications.
3. Use the application of fundamental Computer Science methods and algorithms in the
development of distributed systems and distributed systems applications.
4. Discuss the design and testing of a large software system, and to be able to
communicate that design to others.
Student Workload
Lecture: Tutorial Home Study Laboratory
Course Content
Chapter 1: Introduction to Distributed System:
▪ Introduction to Distributed systems
▪ Goals and distribution transparency
▪ Hardware concepts: Multiprocessors, Homogeneous and heterogeneous Multi-
computers
▪ Software concepts: Distributed and network Operating systems, Middleware
▪ System architectures: System architectures, Client server Model
Chapter 2: Communication:
▪ Layered protocols
▪ Remote procedures call: Basic RPC operations, Parameter passing, Extended RPC
225
Models
▪ Remote object invocation: Distributed Objects, Binding, Dynamic vs. static RMI and
Parameter passing.
▪ Message-oriented communication: Persistence and synchronicity in
Communication, Message-oriented transient and persistent communication
▪ Web Services:
Chapter 3: Processes:
▪ Threads, Clients and Servers
▪ Code Migration and Software agents: Approaches, Migration and local resources,
Software Agents
Chapter 4: Naming:
▪ Naming entities and name resolution: Names, Identifiers and Addresses, Namespace
and resolution.
▪ Locating mobile entities: Naming vs. locating entities, Solutions for locating entities
▪ Removing unreferenced entities: Problem of un-referenced and unreachable objects
and the solutions
Chapter 5: Synchronization:
▪ Clock synchronization: Physical clocks, Clock synchronization algorithms, Logical
clocks and global state
▪ Election algorithms
▪ Mutual exclusion
▪ Distributed transactions: Models, Classification and implementation of transactions,
Concurrency control.
● Assignments = 15%
● Projects = 25%
● Midterm = 25%
● Final Exam = 35%
Course Policies
226
Academic Honesty: Academic dishonesty including cheating, fabrication and plagiarism will
not be tolerated in this course. It is expected that all work handed in by the student is their own.
You will be reported to concerned bodies automatically including the center’s academic council.
The center deals with such academic dishonesty severely.
While we expect you to work individually, that doesn’t mean that you cannot share ideas with
other students or us. But you can only share ideas. No code or written work should be shared
amongst you. And such an activity is considered academic dishonesty.
You are expected to attend at least 85% of the classes according to the university senate
legislation. We will not allow you to sit for the final if you don’t meet the criteria.
References
Textbook:
– Distributed Systems: Concepts and Design, 5th Edition (Coulouris, Dollimore, Kindberg,
Blair)
– Distributed Systems: Principles and Paradigms, 2nd Edition, (Tanenbaum, Van Steen)
227
Cloud Computing and Security
Module ECTS: 10
Course Title: Cloud Computing and Course Code: SITE-5222
Security
Course ECTS: 5
Course Duration: 16 weeks
Course Description
Cloud computing helps organizations realize cost savings and efficiencies without spending
capital resources up front, while modernizing and expanding their IT capabilities. Cloud-based
infrastructure is rapidly scalable, secure, and accessible over the Internet—you pay only for
what you use. So, enterprises worldwide, big and small, are moving toward cloud-computing
solutions for meeting their computing needs, including the use of Infrastructure as a Service
(IaaS) and Platform as a Service (PaaS). We have also seen a fundamental shift from shrink-
wrapped software to Software as a Service (SaaS) in data centers across the globe.
Moreover, providers such as Amazon, Google, and Microsoft have opened their data centers
to third parties by providing low-level services such as storage, computation, and bandwidth.
This trend is creating the need for a new kind of enterprise architect, developer, QA, and
operational professional—someone who understands and can effectively use cloud-
computing technologies and solutions.
The promise of significant cost savings and inherent flexibility of resources are an impetus for
the adoption of cloud computing by many organizations. Cloud computing also introduces
privacy and security risks that are not traditionally present in a siloed data center. This course
focuses on these security concerns and countermeasures for a cloud environment. An
overview of cloud computing and virtualization, the critical technology underpinning cloud
computing, provides the necessary background for these threats. Additional topics vary but
may include access control, identity management, denial of service, account and service
hijacking, secure APIs, malware, forensics, regulatory compliance, trustworthy computing,
228
and secure computing in the cloud. This course follows a seminar-style format where students
are expected to lead class discussions and write a publication-quality paper as part of a
course project.
Course Objectives
▪ Compare and Contrast the various cloud service models, cloud delivery models, key
cloud characteristics, roles and boundaries and important terminology
▪ Demonstrate how various cloud providers such as AWS, Google Compute and
Microsoft Azure implement and offer IaaS, PaaS and SaaS services.
▪ Outline, Classify and categorize how infrastructure components (compute, storage,
network, load balancers, DNS) are delivered as Infrastructure as a Service
▪ Develop, deploy, manage and scale applications running in platforms such as Java,
Python Platform (PaaS).
▪ Consume, integrate and extend software services such as Productivity and business
applications and other services like database services.
▪ Describe how cloud can be used to perform Big Data Analytics using distributed
computing technologies like Hadoop.
▪ Cite cloud security concerns and illustrate how to build implement security across all
layers.
▪ Compare and contrast the various cloud delivery and deployment models, particularly
the security implications of each;
▪ Understand the basics of virtualization technology and current attacks against it;
▪ Distinguish between terms such as "cloud computing" and "big data" and explain their
differences;
▪ Appreciate the challenges that cloud computing introduces for regulatory compliance
and digital forensics.
229
▪ Students will gain an appreciation for ongoing research in the area of cloud computing
security. Students will critically review research papers to articulate their contributions
to the field and the limitations of that work.
Learning Outcomes
The Course provides a knowledge and understanding of the following:
● Develop and deploy cloud application using popular cloud platforms,
● Design and develop highly scalable cloud-based applications by creating and
configuring virtual machines on the cloud and building private cloud.
● Explain and identify the techniques of big data analysis in cloud.
● Compare, contrast, and evaluate the key trade-offs between multiple approaches
to cloud system design, and Identify appropriate design choices when solving real-
world cloud computing problems.
● Write comprehensive case studies analyzing and contrasting different cloud
computing solutions.
● Make recommendations on cloud computing solutions for an enterprise.
● articulate the main concepts, key technologies, strengths, and limitations of cloud
computing and the possible applications for state-of-the-art cloud computing
● Identify the architecture and infrastructure of cloud computing, including SaaS,
PaaS, IaaS, public cloud, private cloud, hybrid cloud, etc.
● Explain the core issues of cloud computing such as security, privacy, and
interoperability.
● Choose the appropriate technologies, algorithms, and approaches for the related
issues.
● Identify problems, and explain, analyze, and evaluate various cloud computing
solutions.
● Provide the appropriate cloud computing solutions and recommendations
according to the applications used.
● Attempt to generate new ideas and innovations in cloud computing.
● Collaboratively research and write a research paper, and present the research
online.
● Effectively communicate course work in writing and oral presentation.
Prerequisites:
Student Workload
Lecture:32 hrs Tutorial: 32 hrs Home Study:65 hrs Laboratory: 48hrs
Course Content
Part I: Cloud Computing
▪ Cloud Computing Overview
▪ DataCenter and Virtualization
▪ IaaS Compute
▪ IaaS Storage
▪ IaaS Networking
▪ Cloud Databases
230
▪ PaaS
▪ SaaS
▪ Big Data and Cloud
▪ Security
▪ DevOps and the Cloud
▪ Miscellaneous Topic in the Cloud
Part II: Cloud Security
▪ Fundamentals of Cloud Security
▪ Virtualization
▪ Trusthworthy computing
▪ Secure Computation
▪ Cloud Management
▪ Data Management
▪ Data Security
▪ Regulatory Compliance
▪ Forensics and Malware
Schedule
Weeks Topics and Subtopics
Lecture Laboratory Assessment
Week 1 – week 2 Part I: Cloud ▪ Data Center and Assignment #1. Lab#1,
Computing Project Title Approval
Virtualization
▪ IaaS Compute
▪ IaaS Storage
▪ IaaS Networking
Week 3 – week 4 ▪ Cloud Databases Lab#2 Lab#3,
Quiz #1
▪ PaaS
Project Proposal
▪ SaaS
▪ Big Data and Cloud
Week 5 – week 8 ▪ DevOps and the Cloud Lab#4 Lab#4, Lab#5
Lab#6
▪ Miscellaneous Topic in the
Mid_exam
Cloud Project Progress Report
Week 9 – week 10 Part II: Cloud ▪ Cloud Security Lab#7 Lab#8,
Security ▪ Virtualization
▪ Trustworthy computing
Week 11 – week 12 ▪ Secure Computation Lab#9 Lab#10, Lab#11
Project Progress Report
▪ Cloud Management
Quiz #2
231
▪ Data Management
Teaching Methods
● The format of the course will be lecture, class discussion and presentation, lab exercise,
assignments and Project.
Assessment Method
● Quiz#1 – 5%
● Quiz#1 – 5%
● Assignments#1 – 5%
● Assignments#1 – 5%
● Mid Exam – 15%
● Each Lab and Final Lab exam – 20%
● Final Project - 20%
● Final Exam – 25%
Course Policies
❏ Attendance: It is compulsory to attend class in time and every time. Missing more than
three classes during the term causes readmission for that course.
❏ Assignments: No Late Assignment will be accepted
❏ Test/Quizzes: Rarely re examination schedules will be arranged for those who missed
the exam by accidental or uncontrollable situation.
❏ Cheating/Plagiarism: No second Chance or excuses.
❏ Project: The project consists of report and presentation on a topic of your choice that
is relevant to the course. It is group-based
References
1. “Cloud Computing: Concepts, Technology and Architecture” by Thomas Erl and Ricardo
Puttini
2. Architecting the Cloud: Design Decisions for Cloud Computing Service Models (SaaS, PaaS,
& IaaS)
3. “Cloud Computing Explained” by John Rhoton
4. “Cloud Computing for Programmers” by Daniele Casal
5. “Cloud Security: A Comprehensive Guide to Secure Cloud Computing” by Ronald L Krutz
and Russell Dean Vines
6. “Cloud Computing: SaaS, PaaS, IaaS, Virtualization, Business Models, Mobile, Security and
More” by Kris Jamsa
7. NIST Cloud Computing Security Reference Architecture: NiST SP 500-299
8. Principles of Security in Cloud Computing, Balamurugan S.,Charanyaa S.
232
Non Engineering Elective II16
Project I, 17
16
Refer to Elective Courses Section
17
Refer to Software Engineering Section
233
SEM X
Ethical Hacking and Penetration Testing18
Project II20
Technology Entrepreneurship22
18
Refer to Cyber Security Engineering Section
19
Refer to Elective Courses Section
20
Refer to Software Engineering Section
21
This course is dynamic course so will be compiled per academic year
22
Refer to IT program
234
Artificial Intelligence Stream
SEM VII
Numerical Optimization and ODE
Course Description
This course studies fundamental concepts of optimization from two viewpoints: theory and algorithms. It
will cover ways to formulate optimization problems (e.g. in the primal and dual domains), study feasibility,
assess optimality conditions for unconstrained and constrained optimization, and describe convergence.
Moreover, it will cover numerical methods for analyzing and solving linear programs (e.g. simplex), general
smooth unconstrained problems (e.g. first-order and second-order methods), quadratic programs (e.g. linear
least squares), general smooth constrained problems (e.g. interior-point methods), as well as, a family of
nonsmooth problems.
Course Objectives
The course gives insight into the mathematical formulation of optimization problems and deals with
advanced methods and algorithms to solve these problems. The knowledge of the possibilities and
shortcomings of these algorithms should lead to a better understanding of their applicability in solving
concrete engineering problems. In the course, an overview of existing software for optimization will also be
235
given, this software will be used in the practical exercise sessions. The student learns to select the
appropriate solving methods and software for a wide range of optimization problems and learns to correctly
interpret the results.
Learning Outcomes
Practical Skills
● Be able to formulate problems in their fields of research as optimization problems by defining the
underlying independent variables, the proper cost function, and the governing constraint functions.
● Be able to transform an optimization problem into its standard form as outlined in the course.
understand how to assess and check the feasibility and optimality of a particular solution to a
general constrained optimization problem.
● Be able to evaluate whether the cost function and the constraints are convex, thus defining a convex
problem with strong guarantees on optimality and convergence.
● Be able to use the optimality conditions to search for a local or global solution from a starting point.
be able to formulate the dual problem of some general optimization types and assess their duality
gap using concepts of strong and weak duality. Understand the computational details behind the
numerical methods discussed in class, when they apply, and what their convergence rates are.
● Be able to implement the numerical methods discussed in class and verify their theoretical
properties in practice.
● Be able to apply the learned techniques and analysis tools to problems arising in their own research.
● Implement different optimization algorithms in machine learning, robotics and other topics in
software engineering fields
Prerequisites:
Student Workload
Course Content
236
● Complexity of Local Optimization
● Optimal Methods for Nonlinear Optimization
Chapter 3 - Introduction to Linear Programming
● Optimality Conditions
● Optimization Problems with a Single Variable
● Algorithmic Strategies for Unconstrained Optimization
● Method of Steepest Descent
● Newton’s Method
● Conjugate Direction Method
● Quasi-Newton Methods
● Rank-one correction formula
● Inexact Line Search
Chapter 7 - Constrained Optimization
● Optimality Conditions
● Duality
● Projected Gradient Methods
● Sequential Unconstrained Minimization
Schedule
Week 1 Chapter 1
237
Week 2 Chapter 2
Week 5 - 7 Chapter 4
Week 9 - 10 Chapter 5
Week 11 - 13 Chapter 6
Week 14 - 15 Chapter 7
Teaching Methods
The teaching methods that shall be employed for this course are lecturing, demonstration, classroom
discussion and classroom action research.
Assessment Method
● Exams – 60%
● Labs – 15%
● Assignments – 25%
Course Policies
❏ Attendance: It is compulsory to attend class in time and every time. Missing more than three
classes during the term causes readmission for that course.
❏ Assignments: No Late Assignment will be accepted
❏ Test/Quizzes: Rarely reexamination schedules will be arranged for those who missed the exam by
accidental or uncontrollable situation.
❏ Cheating/Plagiarism: No second Chance or excuses.
References
238
Social Network Analysis
Department: Software Engineering
Course ECTS: 4
Course Description
Social networks pervade our social and economic lives. They play a central role in the transmission of
information about job opportunities and are critical to the trade of many goods and services. They are
important in determining which products we buy, which languages we speak, how we vote, as well as
whether or not we decide to become criminals, how much education we obtain, and our likelihood of
succeeding professionally. The countless ways in which network structures affect our well-being make it
critical to understand how social network structures impact behavior, which network structures are likely to
emerge in a society, and why we organize ourselves as we do.
Course Objectives
This course provides an overview and synthesis of research on social and economic networks, drawing on
studies by sociologists, economists, computer scientists, physicists, and mathematicians.
The course begins with some empirical background on social and economic networks,
Learning Outcomes
Prerequisites:
239
Algorithm and Data Structure
Linear Algebra
Student Workload
Course Content
● Triadic Closure
● Strength of weak ties
● Tie Strength and Network structure
● Betweenness Measure and Graph partitioning
Chapter 3: Random Network models
● Degree
● closeness, betweenness
● Directed and eigenvector centrality
Chapter 5: Community structure
● Community
● Cliques, k-cores
● Detecting communities
Chapter 6: Small world network models
● Network Games
● Network structure and behavior
● Nash Equilibrium
● Linear quadratic game
240
Chapter 8: Information networks
Teaching Methods
The teaching methods that shall be employed for this course are lecturing, demonstration, Lab exercises,
classroom discussion and classroom action research and assignments and homework.
Assessment Method
Course Policies
❏ Attendance: It is compulsory to attend class in time and every time. Missing more than three
classes during the term causes readmission for that course.
❏ Assignments: No Late Assignment will be accepted
❏ Test/Quizzes: Rarely reexamination schedules will be arranged for those who missed the exam by
accidental or uncontrollable situation.
❏ Cheating/Plagiarism: No second Chance or excuses.
References
23
Refer to Software Engineering section
241
Machine Learning
Department: Software Engineering
Course ECTS: 5
Course Description
This course will introduce the field of Machine Learning, in particular focusing on the core
concepts of supervised and unsupervised learning. In supervised learning we will discuss
algorithms which are trained on input data labelled with a desired output, for instance an
image of a face and the name of the person whose face it is, and learn a function mapping from
the input to the output. Unsupervised learning aims to discover latent structure in an input
signal where no output labels are available, an example of which is grouping web-pages based
on the topics they discuss. Students will learn the algorithms which underpin many popular
Machine Learning techniques, as well as developing an understanding of the theoretical
242
relationships between these algorithms. The practical’s will concern the application of
machine learning to a range of real-world problems.
Course Objectives
The course aims to provide an introduction to the basic principles, techniques, and applications
of Machine Learning. Programming assignments are used to help clarify basic concepts.
The course covers the principles, design and implementation of learning programs that
improve their performance on some set of tasks with experience. Upon successful completion
of the course, students will have a broad understanding of machine learning algorithms and
their use in data-driven knowledge discovery and program synthesis. Students will have
designed and implemented several machine learning algorithms in Python. Students will also
be able to identify, formulate and solve machine learning problems that arise in practical
applications. Students will have a knowledge of the strengths and weaknesses of different
machine learning algorithms (relative to the characteristics of the application domain) and be
able to adapt or combine some of the key elements of existing machine learning algorithms to
design new algorithms as needed. Students will have an understanding of the current state of
the art in machine learning and be able to begin to conduct original research in machine
learning.
Learning Outcomes
Prerequisites:
Student Workload
Course Content
243
1. Introduction to Machine Learning
2. Bayesian Decision Theory
3. Parametric Methods
4. Multivariate Methods
5. Dimensionality Reduction
6. Clustering
7. Nonparametric Methods
8. Decision Trees
9. Linear Discrimination
10. Multilayer Perceptron
11. Kernel Machines
12. Graphical Models
13. Hidden Markov Models
14. Bayesian Estimation
15. Combining Multiple Learners
16. Reinforcement Learning
Schedule
Week 1 Topic 1
Week 3 Topic 3
Week 5 Topic 6
Week 9 Chapter 9
Week 13 Chapter 13
244
Teaching Methods
The teaching methods that shall be employed for this course are lecturing, demonstration, Lab exercises,
classroom discussion and classroom action research and assignments and homework.
Assessment Method
● 4 Assignments – 20%
● 7 Labs – 10%
● 1 Final Project – 20%
● 2 Exams – 50%
Course Policies
❏ Attendance: It is compulsory to attend class in time and every time. Missing more than three
classes during the term causes readmission for that course.
❏ Assignments: No Late Assignment will be accepted
❏ Test/Quizzes: Rarely reexamination schedules will be arranged for those who missed the exam by
accidental or uncontrollable situation.
❏ Cheating/Plagiarism: No second Chance or excuses.
References
245
Fundamentals of Parallel Computing
Department: Software Engineering
Module Title: High performance Computing Module Code: SITE-M4361
Module ECTS: 10
Course Tile: Fundamentals of Parallel Course Code: SITE - 4191
Computing
Course ECTS: 5
Course Duration: 16 Weeks
Course Description
This course will cover many aspects of parallel systems development. Starting initially by
looking at different types of computer architecture and hardware capabilities for parallel
programs as well as software. It will also investigate different performance measures for parallel
programs.
The course will discusses different parallel processing models include theoretical approaches
(Flynn taxonomy), as well as practical aspects (programming for shared memory machines,
message passing paradigm). Lectures present technologies and related standards of parallel and
concurrent computing: Pthreads, OpenMP, MPI. The subject of design and analysis (especially
concerning correctness and efficiency) of concurrent and parallel programs is also covered.
Students will also be able to implement some parallel algorithms using the technologies
presented.
Course Objectives
By the end of the course students should be able to accomplish the following:
✓ Understand the need for parallel computing and different hardware and software
used for parallel processing.
✓ Critically evaluate approaches to concurrent and parallel systems development
✓ Compare and contrast the use of different parallel systems techniques to solve
particular problem types.
✓ Design and construct parallel algorithms to solve particular problem types
✓ Analyze the performance of parallel systems undertaking particular work types
246
Learning Outcomes
Student Workload
Course Content
Chapter 1: Introduction:
● Introduction: parallel, concurrent and distributed systems, the need for parallelism.
● Parallel Hardware: Flynn’s taxonomy of computer architecture, Parallelism in sequential machines,
Abstract model of parallel computer, Multiprocessor architecture, Pipelining, Array processors.
● Parallel Software: Overview, Operating system support, Types of operating systems, parallel
programming models, Processes and threads, shared memory, distributed memory, hybrid systems,
Software tools.
● Performance: Speedup and efficiency, Scalability, Amdahl’s law, Gustafson-Barsis’s law.
● Parallel Programming languages: Fortran90, nCUBE C, Occam, C-Linda
Schedule – optional
247
Assessment Method:
● Assignments = 15%
● Projects = 25%
● Midterm = 25%
Course Policies
Academic Honesty: Academic dishonesty including cheating, fabrication and plagiarism will not be
tolerated in this course. It is expected that all work handed in by the student is their own. You will be
reported to concerned bodies automatically including the center’s academic council. The center deals
with such academic dishonesty severely.
While we expect you to work individually, that doesn’t mean that you cannot share ideas with other
students or us. But you can only share ideas. No code or written work should be shared amongst you.
And such an activity is considered academic dishonesty.
You are expected to attend at least 85% of the classes according to the university senate legislation. We
will not allow you to sit for the final if you don’t meet the criteria.
References
Textbook:
1. Advanced computer architecture and parallel processing, John willy and
sons inc publishing (Hesham El-Rewini Mostafa Abd-El-Barr)
2. An introduction to parallel programming (Peter pacheco)
3. Parallel Programming: For Multicore and Cluster Systems, Springer
(Thomas Rauber · Gudula Ru n ̈ ger)
248
SEM VIII
SEM IX
Non Engineering Elective II 24
Project - I25
Deep Learning
Department: Software Engineering
Course ECTS: 5
Course Description
“Deep Learning” systems, typified by deep neural networks, are increasingly taking over all AI
tasks, ranging from language understanding, and speech and image recognition, to machine
translation, planning, and even game playing and autonomous driving. As a result, expertise in
deep learning is fast changing from an esoteric desirable to a mandatory prerequisite in many
advanced academic settings, and a large advantage in the industrial job market.
Course Objectives
24
Refer to Elective Courses Section
25
Refer to Project Guideline
249
In this course we will learn about the basics of deep neural networks, and their applications to
various AI tasks. By the end of the course, it is expected that students will have significant
familiarity with the subject, and to be able to apply to them to a variety of tasks. They will also be
positioned to understand much of the current literature on the topic and extend their knowledge
through further study.
Learning Outcomes
Practical Skills
● To understand how deep learning algorithms, work and how to train them.
● To review recent state-of-the-art applications of deep learning to problems in computer vision and
machine perception.
● To gain experience using deep learning to solve problems in computer vision and machine
perception.
● Implement major deep learning algorithm from scratch
● Scientifically explain the training process, model complexity, regularization and many crucial
topics in Deep Learning
● Apply deep learning in computer vision for Robotics
● Apply deep learning for image classification in health-related problems like cancer treatment,
pathogen identification
● Apply deep learning on astronomical object classification when studying the object’s properties
Prerequisites: Machine Learning
Student Workload
Course Content
Chapter 7 - Applications
Chapter 9 - Autoencoders
250
Chapter 12 - Monte Carlo Methods
Schedule
Week 1 Chapter 1
Week 3 Chapter 3
Week 10 Chapter 9
Week 15 Chapter 14
Teaching Methods
The teaching methods that shall be employed for this course are lecturing, demonstration, Lab exercises,
classroom discussion and classroom action research and assignments and homework.
Assessment Method
251
The mark breakdown is as follows
● 4 Assignments – 20%
● 3 Homework – 15%
● 3 Exams – 65%
Course Policies
❏ Attendance: It is compulsory to attend class in time and every time. Missing more than three
classes during the term causes readmission for that course.
❏ Assignments: No Late Assignment will be accepted
❏ Test/Quizzes: Rarely reexamination schedules will be arranged for those who missed the exam by
accidental or uncontrollable situation.
❏ Cheating/Plagiarism: No second Chance or excuses.
References
● Deep Learning, by Ian Goodfellow, Yoshua Bengio, Aaron Courville Online book, 2017
● Deep Learning with Python by J. Brownlee
● Deep Learning Step by Step with Python: A Very Gentle Introduction to Deep Neural
Networks for Practical Data Science by N. D. Lewis
252
Data Mining and Analytics
Module ECTS: 33
Course Title: Data Mining and Course Code: SITE-4291
Analytics Course ECTS: 5
Course Duration: 16 weeks
Course Description
In this course we explore key data analysis and management techniques, which is applied to
massive datasets as the cornerstone that enables real-time decision making in distributed
environments, business intelligence in the Web, and scientific discovery at large scale. In
particular, we examine the map-reduce parallel computing paradigm and associated
technologies such as distributed file systems, no-sql databases, and stream computing engines.
Additionally, we review machine learning methods that make possible the efficient analysis of
large volumes of data in near real time. Besides we go through the tools and techniques for
knowledge acquisition, assessment, evaluation, management, organization and dissemination
for managing and tracking organizations Knowledge.
Course Objectives
At the end of this course, the student will become familiar with the fundamental concepts of
Big Data management and analytics; will become competent in recognizing challenges faced
by applications dealing with very large volumes of data as well as in proposing scalable
253
solutions for them; and will be able to understand how Big Data impacts business intelligence,
scientific discovery, and our day-to-day life. The course will also enable you to learn about the
practice in the context of managing the design, development and operation of information
technologies that can facilitate Knowledge management
Learning Outcomes
The program provides a knowledge and understanding of the following:
- Solve organizational knowledge discovery , management and knowledge modeling
issues
- Solving the Big Data problems, Current challenges, and trends
- Applying big data Algorithms for Big Data analysis.
- Apply machine learning approaches to deal with large datasets
- Apply Neural Nets to extract patterns
- Apply Big data analytics like Map-Reduce, Hadoop, Spark..etc to handle big data
- Implementation of big Data Technologies for Big Data management.
- Students will understand what big data and knowledge management means in the
current IT era
- Students will be capable of applying Big data analytics tools, technologies and
approaches in in order to extract knowledge for organization owning big data
- Understand what constitutes organizational knowledge and how to acquire and model
them
Prerequisites: Machine Learning
Student Workload
Lecture:32 hrs. Tutorial: 32hrs Home Study:65 hrs. Laboratory: 48hrs
Course Content
Chapter 1: Introduction
● Meaning of Data Mining
● Essence of Data Mining
● Relationship between Data Mining, Data Base, Data Warehousing and On-line
Analytical Processing
● Issues in Data Mining
● The KDD/DM Process Model; Prediction vs. Description modeling
254
Chapter 3: Data preprocessing
● Why preprocesses the data?
● Major Tasks in Data Preprocessing
● Data Exploration
● Data understanding
● Data cleaning and reduction
● Data Integration and Transformation
● Discretization and concept hierarchy generation
Chapter 4: Handling and Processing Big Data: The MapReduce paradigm & Hadoop and
HDFS overview
● MapReduce
● Mining of Large Datasets
● Introduction to Hadoop
● Installation of Hadoop
● MapReduce Algorithms
● Big Data Analytics using R
● Introduction to Apache Spark With
● Analysis of Streaming and real time Data with Apache Spark 2.0
255
● Web usage mining
Schedule
Weeks Topics and Subtopics
Lecture Laboratory Assessment
Week 1 - 2 Chapter 1
Week 3 - 5 Chapter 2 Lab 1
Week 6 - 7 Chapter 3
Week 8 Exam Lab 2 Assignment I
Week 9 - 10 Topic 6
Week 6 Topic 7 Lab 3
Week 7 Mid Exam Assignment II
Week 8 Chapter 8 Lab 4
Week 9 Chapter 9
Week 10 Chapter 10 Lab 5
Week 11 Chapter 11 Assignment III
Week 12 Chapter 12 Lab 6
Week 13 Chapter 13
Week 14 Chapter 14 Lab 7 Assignment IV
Week 15 Final Exam
Teaching Methods
The teaching methods that shall be employed for this course are lecturing, demonstration, Lab
exercises, classroom discussion and classroom action research and assignments and
homework.
Assessment Method
256
The mark breakdown is as follows
● 4 Assignments – 20%
● 7 Labs – 10%
● 1 Final Project – 20%
● 2 Exams – 50%
Course Policies
❏ Attendance: It is compulsory to attend class in time and every time. Missing more
than three classes during the term causes readmission for that course.
❏ Assignments: No Late Assignment will be accepted
❏ Test/Quizzes: Rarely reexamination schedules will be arranged for those who missed
the exam by accidental or uncontrollable situation.
❏ Cheating/Plagiarism: No second Chance or excuses.
References
● Pattern Recognition and Machine Learning Book by Christopher Bishop
● Machine Learning: A Probabilistic Perspective Textbook by Kevin R Murphy
257
Machine Intelligence
Department: Software Engineering
Module ECTS: 15
Course ECTS: 5
Course Description
Probabilistic and machine learning techniques are now an essential part of building robots (or embedded
systems) designed to operate in the real world. These systems must contend with uncertainty and adapt to
changes in the environment by learning from experience. Uncertainty arises from many sources: the
limitations inherent in modeling a complex environment, noise and perceptual limitations in sensor
measurements, and the approximate nature of algorithmic solutions. Building intelligent machines also
requires that they adapt to their environment. Few things are more frustrating than machines that repeat the
same mistake over and over again. We will explore modern statistical learning techniques that are effective
at modeling nonlinear systems and learning online (i.e. throughout the robots operation). We will see how
the twin ideas of uncertainty and adaptation are closely tied in both theory and implementation
Course Objectives
By the end of this course, students will understand the basic concepts and theory governing the
programming of robots that perform autonomous tasks such as navigation and manipulation
Learning Outcomes
258
Practical Skills
Student Workload
Course Content
Chapter 1 – Introduction
259
● Markov Decision Processes (MDPs)
● POMDPs, Belief Road Maps
● POMDP slides, BRM slides
● Fast (re-)planning
● Multi-robot mapping
● Gaussian Processes
● Reinforcement Learning
● Inverse RL
● Object recognition
Schedule
Teaching Methods
The teaching methods that shall be employed for this course are lecturing, demonstration, Lab exercises,
classroom discussion and classroom action research and assignments and homework.
Assessment Method
● 3 Assignments – 30%
● 4 Labs – 10%
● 1 Final Project – 20%
● 2 Exams – 40%
Course Policies
❏ Attendance: It is compulsory to attend class in time and every time. Missing more than three
classes during the term causes readmission for that course.
❏ Assignments: No Late Assignment will be accepted
❏ Test/Quizzes: Rarely reexamination schedules will be arranged for those who missed the exam by
accidental or uncontrollable situation.
❏ Cheating/Plagiarism: No second Chance or excuses.
References
260
● Mark W. Spong, Seth Hutchinson, and M. Vidyasagar, Robot Modeling and Control, Wiley, 2006.
● Kevin M. Lynch and Frank C. Park, Modern Robotics: Mechanics, Planning, and Control,
Cambridge University Press, 2017.
● John J. Craig, Introduction to Robotics, Addison-Wesley Publishing, 1989.*
● Alonzo Kelly, Mobile Robotics: Mathematics, Models, and Methods, Cambridge University Press,
2013.*
● Sebastian Thrun, Wolfram Burgard, and Dieter Fox, Probabilistic Robotics, MIT Press, 2005.*
● Bruno Siciliano and Oussama Khatib, eds. Springer Handbook of Robotics, Springer, 2008.
26
This is dynamic course so shall be compiled in each year.
261
SEM X
Computer Vision
Module ECTS: 15
Course ECTS: 5
Course Description
This course provides a comprehensive introduction to computer vision. The areas that the course will cover
are image processing, Statistical Methods, Object Recognition, Tracking and Optimization Functions and
highlights recent research technologies in computer vision.
Course Objectives
To provide students with necessary theory and skills for analysis of digital images, and thereby to construct
representations of physical objects and scenes, and to make useful decisions.
Prerequisites:
Applied Mathematics I
Linear Algebra
262
Student Workload
Course Content
❏ Object Detection
❏ Camshift and Mean Shift based object Tracking
❏ Optical Flow
❏ Background Subtraction Techniques
❏ Face Detection using Haar cascades
Image Classification
K-nearest neighbor
263
Linear classification I
Linear classification II
Backpropagation
Multi-layer Perceptrons
History
CNN Architectures
264
Week 11- Week 12 Part III Assignment III: Mini
Project/ Research
Teaching Methods
The teaching methods that shall be employed for this course are lecturing, demonstration, classroom
discussion and classroom action research.
Assessment Method
Course Policies
❏ Attendance: It is compulsory to attend class in time and every time. Missing more than three
classes during the term causes readmission for that course.
❏ Assignments: No Late Assignment will be accepted
❏ Test/Quizzes: Rarely re examination schedules will be arranged for those who missed the exam by
accidental or uncontrollable situation.
❏ Cheating/Plagiarism: No second Chance or excuses.
265
Reinforcement Learning
Course ECTS: 5
Course Description
Reinforcement learning is a framework for modeling the an autonomous agent’s interaction with an
unknown world. The agent’s objective is to learn the effects of it’s actions, and modify its policy in order to
maximize future reward. The study of Reinforcement learning emphasizes a learning approach to Artificial
Intelligence. Unlike supervised learning, the agent is not explicitly told the correct answers (labels), rather
an RL agent must learn only from reward and trial and error interaction with the world. This general
framework has been used to optimize helicopter flight, schedule elevators, and achieve super-human level
performance in many games (e.g., Backgammon, GO, and Atari). Ideas from reinforcement learning has
also be used to explain learning in animals, and model dopamine activity in the human brain.
Course Objectives
This course provides an introduction to some of the foundational ideas on which modern reinforcement
learning is built, including Markov decision processes, value functions, Monte Carlo estimation, dynamic
programming, temporal difference learning, eligibility traces, and function approximation. This course will
develop an intuitive understanding of these concepts (taking the agent’s perspective), while also focusing on
the mathematical theory of reinforcement learning. Programming assignments and projects will require
implementing and testing complete decision-making systems.
Learning Outcomes
266
The program provides a knowledge and understanding of the following:
Practical Skills
Student Workload
Course Content
Week 1 Topic 1
267
Week 5 Exam
Week 9 Topic 14
Week 10 Topic 15
Week 12 Topic 17
Week 13 Topic 18
Week 14 Topic 19
Week 15 Exam
Week 16
Teaching Methods
The teaching methods that shall be employed for this course are lecturing, demonstration, Lab exercises,
classroom discussion and classroom action research and assignments and homework.
Assessment Method
● 4 Assignments – 20%
● 3 Homework – 15%
● 3 Exams – 65%
Course Policies
❏ Attendance: It is compulsory to attend class in time and every time. Missing more than three
classes during the term causes readmission for that course.
❏ Assignments: No Late Assignment will be accepted
❏ Test/Quizzes: Rarely reexamination schedules will be arranged for those who missed the exam by
accidental or uncontrollable situation.
❏ Cheating/Plagiarism: No second Chance or excuses.
References
268
269
Project II27
Technology Entrepreneurship 29
27
Refer to project management guideline
28
Refer to elective section
29
Refer IT section
270
Cyber Security Engineering
SEM VII
Enterprise Systems and Network Security
Department:
Module Title: Enterprise Systems Module Code: SITE-M4211
Security
Module ECTS: 10
Course Title: Enterprise system and Course Code: SITE - 4211
network security Course ECTS: 5
Course Duration: 16 Weeks
Course Description
This course introduces a series of advanced and current topics in cyber security, many of
which are especially relevant in modern enterprise and infrastructure settings. The basics of
enterprise compliance frameworks are provided with introduction to NIST and PCI. Hybrid
cloud architectures are shown to provide an opportunity to fix many of the security
weaknesses in modern perimeter local area networks. Emerging security issues in blockchain,
blinding algorithms, Internet of Things (IoT), and critical infrastructure protection are also
described in the context of cyber risk. Mobile security and cloud security hyper-resilience
approaches are also introduced. This course completes with some practical advice for learners
on how to plan careers in cyber security.
Course Objectives
After completion of the course the student must be able to know and understanding
● Information and risk models including confidentiality, integrity and availability (CIA)
● Threats, attacks and how to manage them
● Cybersecurity architecture and operations
● Secure systems and products
271
● Cybersecurity management
Learning Outcomes
The program provides a knowledge and understanding of the following:
Prerequisites: None
Student Workload
Lecture: Lab: Tutorial: Home:
Course Content
Topic 1: Introduction
Topic 2: Security Awareness, Compliance, Assessments, and Risk
● Social Engineering
● Phishing
● Security Awareness
● Security Assessment and Audit
● Different Frameworks Overview(NIST)
● Challenges of Compliance versus Security
272
Topic 5: Mobility Security and Deception
● Mobility Security
● IMSI Catching
● IoT Security
● Using Deception and Honey Pots for Security
Schedule
Weeks Topics and Subtopics
Lecture Laboratory Assessment
Week 1 ●
Week 2- Week 8 ●
Week 9- Week 15 ●
Week 16 ●
Teaching Methods Teaching Methods
The teaching methods that shall be employed for this course are lecturing, demonstration, Lab exercises,
classroom discussion and classroom action research and assignments and homework.
Assessment Method
● 4 Assignments – 20%
● 3 Homework – 15%
● 3 Exams – 65%
Course Policies Course Policies
❏ Attendance: It is compulsory to attend class in time and every time. Missing more than three
classes during the term causes readmission for that course.
❏ Assignments: No Late Assignment will be accepted
❏ Test/Quizzes: Rarely reexamination schedules will be arranged for those who missed the exam by
accidental or uncontrollable situation.
❏ Cheating/Plagiarism: No second Chance or excuses.
References
▪ “Framework for Improving Critical Infrastructure Cybersecurity,” Version 1.0, NIST, Feb 12,
2014.
▪ “ Introduction to Cyber Security”, Edward Amoroso and Matthew Amoroso
▪ “Practical Methods for Securing the Cloud,” IEEE, Ed Amoroso, 2014
▪ “Common Threats and Vulnerabilities of Critical Infrastructures,” Robles, Choi, Cho, Kim, Park,
and Lee, Dongseo University, Korea.
▪ “Cyber Security Deception,” Mohammed Almeshekah and Eugene Spafford, Springer.com
273
▪ “Anonymous Connections and Onion Routing,” Michael Reed, Paul Syverson, and David
Goldschlag, onion-router.net.
274
Cryptographic Concepts and Applications *
School: School of Information Technology and Engineering
Module Title: Cryptographic Concepts and Module Code: SITE-M4321
Applications
Module ECTS: 5
Course Tile: Cryptographic Concepts and Course Code: SITE - 4321
Applications Course ECTS: 5
Course Duration: 16 Weeks
Course Description
This course will provide practical knowledge on a wide range of cryptography mechanisms and will explore
their relationship with today’s modern communications and networks. It includes the fundamentals of
cryptography, classic and modern encryption, decryption, public and private key structures, digital signature
and secure hash functions.
Course Objectives
The course provides the student with the mathematical background and the theory of cryptographic
mechanisms and an introduction to their application in networks and communications links. After finishing
this course student will be able to
● explain the importance of Cryptography as the workhorse in cyber security.
● identify and compare the classical encryption techniques and exploit their vulnerabilities.
● design and employ block ciphers such as DES, 3DES, AES and measure their strengths
based on their key size.
● relate the number theory into key generation for asymmetric cryptography and explain RSA.
● Compare symmetric and symmetric encryption mechanisms and select appropriate method
for each application.
● explain the application of encryption in RSA and authentication methods, HASH, MAC,
SHA, and digital signatures.
● implement Suite B algorithms, Data at rest security measure, EC and ID based Crypto
techniques.
Learning Outcomes
In this course, you will progress toward the following Learning Outcomes:
An ability to apply knowledge of computing and mathematics appropriate to the program’s student outcomes
and to the discipline.
Students will use statistical concepts to model and interpret data.
Students will apply discrete mathematics concepts and algorithms.
An ability to design, implement, and evaluate a computer-based system, process, component, or program to
275
meet desired needs.
Students will implement a computer-based system, process, component, or program from a given
specification.
An understanding of professional, ethical, legal, security and social issues and responsibilities.
Students will recognize and describe current issues in security.
An ability to apply mathematical foundations, algorithmic principles, and computer science theory in the
modeling and design of computer-based systems in a way that demonstrates comprehension of the tradeoffs
involved in design choices.
Prerequisites:
Course Content
276
✓ Prime numbers, Factoring
✓ Modular arithmetic
✓ Fermat’s & Euler’s theorems
✓ gcd, Euclid’s algorithm
✓ Discrete logarithm problem
Chapter Seven: Public key encryption
✓ Public key cryptosystems
✓ RSA algorithm
✓ Elliptic Curve cryptography
Chapter Eight: Practical applications
✓ PKI, CA. X509 certificates
✓ SSL/TLS, HTTPS
✓ IPV6 and IPSEC
✓ Proxies and Firewalls
Chapter Nine: Misc. Techniques
✓ Encryption using non-cryptographic tools (vi, zip)
✓ Authentication principles and methods
✓ Passwords, two-factor authentication
✓ Steganography
✓ Hamming
✓ Chaffing and Winnowing
Chapter Ten: Management aspects
✓ System Administration policies
✓ Security audit
✓ Penetration testing and ethical hacking
✓ Mandatory Access control, Discretionary Access Control
✓ Monitoring and logging tools
✓ Legal aspects
Schedule – optional
Assessment Method:
277
● Quiz#1 – 5%
● Quiz#1 – 5%
● Assignments#1 – 5%
● Assignments#1 – 5%
● Mid Exam – 15%
● Each Lab and Final Lab exam – 20%
● Final Project - 20%
● Final Exam – 25%
Course Policies
❏ Attendance: It is compulsory to attend class in time and every time. Missing more than three classes
during the term causes readmission for that course.
❏ Assignments: No Late Assignment will be accepted
❏ Test/Quizzes: Rarely re examination schedules will be arranged for those who missed the exam by
accidental or uncontrollable situation.
❏ Cheating/Plagiarism: No second Chance or excuses.
❏ Project: The project consists of report and presentation on a topic of your choice that is relevant to
the course. It is group-based
References
1. William Stallings, Cryptography and network security, Pearson Education.
2. Alfred J. Menezes, Paul C. van Oorschot and Scott A. Vanstone , Hand-book of Applied
Cryptography, CRC Press.
3. Margaret Cozzens, Steven J Miller, The mathematics of encryption, American Mathematical
Society
4. Bruce Schneier Applied Cryptography, John Wiley and Sons Mark Stamp,
5. Information Security: Principles and Practice, John Wiley and Sons
6. Matt Bishop, Computer Security, Art and Science, Pearson Education
278
Systems and Network Security Administration
Course Description
This course gives students a broad overview of the administration of computing systems with an emphasis
on the security of the systems and networks. Students will study computer security law and ethics, the
development of an organizational computer security program, computer security policy development,
computer security planning, contingency planning, risk management, and the certification and accreditation
of computing systems.
Course Objectives
279
Schedule – optional
Assessment Method:
● Quiz#1 – 5%
● Quiz#1 – 5%
● Assignments#1 – 5%
● Assignments#1 – 5%
● Mid Exam – 15%
● Each Lab and Final Lab exam – 20%
● Final Project - 20%
● Final Exam – 25%
Course Policies
❏ Attendance: It is compulsory to attend class in time and every time. Missing more than three classes
during the term causes readmission for that course.
❏ Assignments: No Late Assignment will be accepted
❏ Test/Quizzes: Rarely re examination schedules will be arranged for those who missed the exam by
accidental or uncontrollable situation.
❏ Cheating/Plagiarism: No second Chance or excuses.
❏ Project: The project consists of report and presentation on a topic of your choice that is relevant to
the course. It is group-based
Machine Learning30
30
Refer to AI I section
31
Refer to software Engineering Section
280
SEM VIII
Refer to Internship guideline
SEM IX
Non Engineering Elective II 32
Project I33
32
Refer to Elective Courses Section
33
Refer to Project guidelines
281
Ethical Hacking and Penetration Testing
School: School of Information Technology and Engineering
Module Title: Security Engineering Module Code: SITE-M5331
Module ECTS:
Course Tile: Ethical Hacking and Penetration Testing Course Code: SITE- 5331
Course ECTS: 5
Course Duration: 16 weeks
Course Description
This course addresses how to evaluate the security stance of an organization IT infrastructures
with intention of improving it. The course shows cases the acts, techniques, and tools used by
attackers to probe security flaws with the permission of the owners of the target system as
security assurance mechanism for improving the target’s security. With the philosophy that to
prevent a thief think like a thief.
Course Objectives
This course teaches students the underlying principles and many of the techniques
associated with the cybersecurity practice known as penetration testing or ethical
hacking. This course enables the students to:
● Understand the basic of information security
● Identify the components of ethical hacking / penetration testing
● Compromise target systems and getting access to information
● Master the skill required to recon, scan, exploit a system/network
● Understand how to write a pen test report for different stakeholders
● Provide a security countermeasure for the flaws found during pen test
● Identify the techniques to maintain access to a compromised system
Prerequisites:
Student Workload
Lecture: 32hrs Tutorial: 32hrs Home Study:65hrs Laboratory:48hrs
Course Content
282
Chapter One: Overview of Computer Network
Chapter Two: Overview of Cyber Security
Chapter Three: What is an Ethical Hacking?
✓ Introduction
✓ Terminologies (Asset, Threat, Vulnerability, Exploit, Risk …)
✓ Why Ethical Hacking? Objectives of Ethical Hacking
✓ Testing Methodologies (Phases of Ethical Hacking)
✓ Categories and Types of Ethical Hacking
✓ Ethical Hacking Process
✓ Determining Scope
✓ Rules of Engagement
✓ Ethical and Legal issues
✓ Report Preparation
Chapter Four: Intelligence Gathering and Reconnaissance
✓ Whois Lookups
✓ Website Searches (email, people, Culture, Metagoofile, SHODAN, maltego…)
✓ DNS Recon (Lookups, Dig…)
✓ Document Metadata Analysis (exiftool, strings)
✓ Search Engines Vuln-Findings (Google Hacking –GHDB)
Chapter Four: Scanning
✓ Introduction
✓ Packet Sniffing (Filtering traffic, MITM, Hijacking Session , ARP Attacks …)
✓ Network Sweeping
✓ Network Tracing
✓ Port Scanning
✓ OS Fingerprinting
✓ Version Scanning
✓ Vulnerability Assessment
✓ Enumeration
✓ Netcat for Ethical Hacking
Chapter Five: Exploitation and Post Exploitation
✓ Introduction
✓ Gaining Access
✓ Remote and Client Side Exploitations
✓ Metasploit Kung fu (shell/bind, reverse listening, meterpreter…)
✓ Post Exploitation (moving files, pilfering from target, pivoting …)
✓ Maintaining Access (Backdoors and Rootkits, Covering the tracks …)
✓ Password Attacks (Guessing, brute force, cracking, sniffing, pass-the-hash …)
✓ Social Engineering (phishing, Web attack vectors…)
Chapter Six: Recommendation
✓ Recommending Countermeasures
Session 1:
Schedule – optional
283
Assessment Method:
● Quiz#1 – 5%
● Quiz#1 – 5%
● Assignments#1 – 5%
● Assignments#1 – 5%
● Mid Exam – 15%
● Each Lab and Final Lab exam – 20%
● Final Project - 20%
● Final Exam – 25%
Course Policies
❏ Attendance: It is compulsory to attend class in time and every time. Missing more than three classes
during the term causes readmission for that course.
❏ Assignments: No Late Assignment will be accepted
❏ Test/Quizzes: Rarely re examination schedules will be arranged for those who missed the exam by
accidental or uncontrollable situation.
❏ Cheating/Plagiarism: No second Chance or excuses.
❏ Project: The project consists of report and presentation on a topic of your choice that is relevant to
the course. It is group-based
References
1. Hacking Exposed Network Security Secrets and Solutions Sixth-Edition, Stuart Mcclure,
Joel Scambray George Kurtz, McGraw-Hill , 2009
2. Penetration Testing: A Hands-On Introduction to Hacking, Georgia Weidman, No
Starch Press, 2014
3. Hands-On Ethical Hacking and Network Defense, Michael T. Simpson, Kent Backman,
and James E. Corley, 2011
4. The Basics of Hacking and Penetration Testing Ethical Hacking and Penetration Testing
Made Easy, Patrick Engebretson, 2011
284
Computer Crime and Digital Forensics
School: School of Information Technology and Engineering
Module Title: Cyber Forensics Module Code: SITE - M5311
Module ECTS: 5
Course Tile: Computer Crime and Digital Course Code:SITE-5311
Forensics
Course ECTS: 5
Course Duration: 16 weeks
Course Description
This course is designed to give students the tools and techniques for investigating crime involving digital
evidence. The Course is designed as an introductory course in computer forensics. Students will first
understand the need for computer forensics. Students will learn best practices for general incidence response.
The course will then focus on the tools and techniques to perform a full computer forensic investigation.
Course Objectives
The course covers both the principles and practice of digital forensics. Societal and legal impact of computer
activity: computer crime, intellectual property, privacy issues, legal codes; risks, vulnerabilities, and
countermeasures; methods and standards for extraction, preservation, and deposition of legal evidence in a
court of law. This course provides hands-on experience in different computer forensics situations that are
applicable to the real world. Students will learn different aspects of digital evidence: ways to uncover illegal or
illicit activities left on disk and recovering files from intentionally damaged media with computer forensics
tools and techniques.
Learning Outcomes
Student Workload
Lecture: 32hrs Tutorial: 32hrs Home Study:65hrs Laboratory:48hrs
285
Course Content
286
✓ Identifying differences
Chapter Eleven: Hash Analysis
✓ Understanding hash algorithms
✓ Hashing files
✓ Hash libraries
Week 1 - Week 4
Week 5 - Week 8
Week 9 - Week 12
Week 13 - Week 16
Assessment Method:
● Quiz#1 – 5%
● Quiz#1 – 5%
● Assignments#1 – 5%
● Assignments#1 – 5%
● Mid Exam – 15%
● Each Lab and Final Lab exam – 20%
● Final Project - 20%
● Final Exam – 25%
Course Policies
❏ Attendance: It is compulsory to attend class in time and every time. Missing more than three classes
during the term causes readmission for that course.
❏ Assignments: No Late Assignment will be accepted
❏ Test/Quizzes: Rarely re examination schedules will be arranged for those who missed the exam by
accidental or uncontrollable situation.
❏ Cheating/Plagiarism: No second Chance or excuses.
❏ Project: The project consists of report and presentation on a topic of your choice that is relevant to
the course. It is group-based
References
287
1. Hacking Exposed: Computer Forensics, Second Edition. Davis, Philipp, and Cowen ISBN:
0071626778
2. Thomas K. Clancy, Cyber Crime and Digital Evidence: Materials and Cases, First Edition
2011, LexisNexis, ISBN: 9781422494080
3. Digital Forensics with Open Source Tools. Cory Altheide and Harlan Carvey, ISBN: 978-1
59749-586-8, Elsevier publication, April 2011
4. 2. Computer Forensics and Cyber Crime: An Introduction (3rd Edition) by Marjie T. Britz,
2013.
5. EnCase Computer Forensics., 2014
6. File System Forensic Analysis. By Brian Carrier. Addison-Wesley Professional, March 27,
2005.
7. Computer Forensics: Hard Disk and Operating Systems, EC Council, September 17, 2009
8. Network Forensics: Tracking Hackers Through Cyberspace, Sherri Davidoff, Jonathan Ham
Prentice Hall, 2012
288
Web Security
School: School of Information Technology and Engineering
Module Title: Enterprise Systems Security Module Code:SITE-M4211
Module ECTS: 9
Course Tile: Web Security Course Code: SITE - 4211
Course ECTS: 4
Course Duration: 16 weeks
Course Description
This course is designed to give students an overview of the most common security vulnerabilities found in
Web Applications. It will cover Web Application Security architecture and the most common vulnerabilities
found in site hosted at web application and how to protect against them.
Course Objectives
The course covers both the principles and practice of web application security. This course enables students
to understand:
● Web Application Data Security Overview
● The Web Server
● Common Threats
● Securing the web server
● TLS and SSL
● Patches and Security Updates
● Firewalls and Port forwarding
Learning Outcomes
Student Workload
Lecture: 32hrs Tutorial: 32hrs Home Study:65hrs Laboratory:48hrs
Course Content
289
Chapter One: Web Application Data Security Overview
✓ How Data is stored in a Web Application
✓ Types of Data that need to be secured
✓ Overview of common security practices
Chapter Two: The Web Server
✓ Overview of IIS
o System Requirements
o Common Security Threats
✓ Overview of Apache
o System Requirements
o Common Security Threats
Chapter Three: Common Threats
List of common threats/security issues in web applications (brief description and common scenarios only)
✓ Rootkits / Bootkits
✓ Cross site scripting
✓ Alternate data streams
✓ Hidden Object(Services/Files/Users)
✓ Web App backdoors (C99.php, etc)
✓ Vulnerability scan
✓ DDOS/Application attack
✓ Profiling OS/Application
✓ Spoofing Dns, SSL, etc
✓ Man in the middle attack
✓ Mirroring server to remote location
✓ Phishing
✓ Key logging
✓ SQL Injection
✓ MAC Spoofing
✓ Mail form exploits
✓ Defacement
✓ Xftping
✓ social engineering
Chapter Four: Securing the web server
✓ Securing IIS
o Unused Services
o Patching
✓ Securing Apache
o Unused Services
o Patching
Chapter Five: TLS/SSL
✓ Transport Layer Security Overview
✓ Secure Socket Layer Overview
✓ SSL Termination
✓ SSL in the hosted environment
✓ Load Balanced SSL
✓ Setting up SSL in a load balanced environment
Chapter Six: Patches and Security Updates
✓ Installing patches and security updates
✓ Recent patches and security updates for IIS/Apache
Chapter Seven: Firewalls and Port forwarding
290
✓ Firewall configuration for Web Application Hosting
✓ Forwarding necessary ports for Web Application Hosting
Schedule – optional
Week 1 -Week 4
Week 5 -Week 8
Week 10 -Week 12
Week 13 -Week 16
Assessment Method:
● Quiz#1 – 5%
● Quiz#1 – 5%
● Assignments#1 – 5%
● Assignments#1 – 5%
● Mid Exam – 15%
● Each Lab and Final Lab exam – 20%
● Final Project - 20%
● Final Exam – 25%
Course Policies
❏ Attendance: It is compulsory to attend class in time and every time. Missing more than three classes
during the term causes readmission for that course.
❏ Assignments: No Late Assignment will be accepted
❏ Test/Quizzes: Rarely re examination schedules will be arranged for those who missed the exam by
accidental or uncontrollable situation.
❏ Cheating/Plagiarism: No second Chance or excuses.
❏ Project: The project consists of report and presentation on a topic of your choice that is relevant to
the course. It is group-based
References
9. Hacking Exposed: Computer Forensics, Second Edition. Davis, Philipp, and Cowen ISBN:
0071626778
10. Harwood, M., Goncalves, M., and Pemble, M. (2010) Security Strategies in Web Applications
and Social Networking (Information Systems Security & Assurance), Sudbury, MA. Jones &
Bartlett Learning. ISBN: 9780763791957
291
Electives
Natural Language Processing
Module ECTS: 22
Course ECTS: 7
Course Description
Natural Language Processing addresses fundamental questions at the intersection of human languages and
computer science. How can computers acquire, comprehend and produce English? How can computational
methods give us insight into observed human language phenomena? How can you get a job at Google? In this
interdisciplinary introductory course, you will learn how computers can do useful things with human languages,
such as translate from French into English, filter junk email, extract social networks from the web, and find the
main topics in the day's news. You will also learn about how computational methods can help linguists explain
language phenomena, including automatic discovery of different word
senses and phrase structure. Over the past decade, natural language processing has been revolutionized by
statistical and probabilistic methods; you will learn about robust approaches to parameter estimation and
inference. Our work will include learning new methods, discussions, and hands-on laboratories.
Prerequisites:
Applied Mathematics I
292
Applied Mathematics II
Linear Algebra
Student Workload
Course Content
Morphological Analysis
Semantic Analysis
Disambiguation
Applications of NLP
Related Fields
Schedule
Week 1 - Week 2
Week 9 - Week 10
Teaching Methods
The teaching methods that shall be employed for this course are lecturing, demonstration, classroom
discussion and classroom action research.
293
Assessment Method
❏ Attendance: It is compulsory to attend class in time and every time. Missing more than three
classes during the term causes readmission for that course.
❏ Assignments: No Late Assignment will be accepted
❏ Test/Quizzes: Rarely re examination schedules will be arranged for those who missed the exam by
accidental or uncontrollable situation.
❏ Cheating/Plagiarism: No second Chance or excuses.
294
Computational Genomics
Module ECTS: 37
Course ECTS: 5
Course Description
Research in biology and medicine is undergoing a revolution due to the availability of high-throughput
technology for probing various aspects of a cell at a genome-wide scale. The next-generation sequencing
technology is allowing researchers to inexpensively generate a large volume of genome sequence data. In
combination with various other high-throughput techniques for epigenome, transcriptome, and proteome,
we have unprecedented opportunities to answer fundamental questions in cell biology and understand the
disease processes with the goal of finding treatments in medicine. The challenge in this new genomic era is
to develop computational methods for integrating different data types and extracting complex patterns
accurately and efficiently from a large volume of data. This course will discuss computational issues arising
from high-throughput techniques recently introduced in biology, and cover very recent developments in
computational genomics and population genetics, including genome structural variant discovery, association
mapping, epigenome analysis, cancer genomics, and transcriptome analysis.
Course Objectives
295
This course aims to present some of the most basic and useful algorithms for sequence analysis, together
with the minimal biological background necessary for a computer science student to appreciate their
application to current genomics research. Sequence alignments, hidden Markov models, multiple alignment
algorithms and heuristics such as Gibbs sampling, and the probabilistic interpretation of alignments will be
covered. Applications of these tools to sequence analysis will be presented: comparing genomes of different
species, gene finding, gene regulation, whole genome sequencing and assembly. Whenever possible,
examples will be drawn from the most current developments in genomics research.
Learning Outcomes
Prerequisites:
Student Workload
296
Course Content
297
- Chapter 9 - Analysis of gene expression
- Chateau Hajji Feruz Tepe
- Monitoring cellular communication
- Microarray technologies
- Case study: the diauxic shift and yeast gene expression
- Bonus case study: cell-cycle regulated genes
- Chapter 10 - Identification of regulatory sequences
- The circadian clock
- Basic mechanisms of gene expression
- Motif-finding strategies
- Case study: the clock again
Schedule
Week 1 Chapter 1
Week 3 Chapter 3
Week 5 Chapter 5
Week 8 Chapter 6
Week 10 Chapter 7
Week 12 Chapter 9
Week 14 Chapter 10
Teaching Methods
The teaching methods that shall be employed for this course are lecturing, demonstration, Lab exercises,
classroom discussion and classroom action research and assignments and homework.
Assessment Method
298
The mark breakdown is as follows
● 4 Assignments – 20%
● 3 Homework – 15%
● 3 Exams – 65%
Course Policies
❏ Attendance: It is compulsory to attend class in time and every time. Missing more than three
classes during the term causes readmission for that course.
❏ Assignments: No Late Assignment will be accepted
❏ Test/Quizzes: Rarely reexamination schedules will be arranged for those who missed the exam by
accidental or uncontrollable situation.
❏ Cheating/Plagiarism: No second Chance or excuses.
References
299
Introduction to Cognitive Science
Module ECTS: 37
Course Description
Cognitive Science is an interdisciplinary field of inquiry that is concerned with the acquisition,
representation, and use of knowledge by individual minds, brains, and machines, as well as groups,
institutions, and other social entities. Because the fundamental purpose of the university, as a social
institution, is the preservation, generation, and transmission of knowledge, cognitive science speaks to the
heart of the university's mission. By engaging faculty from Psychology, Philosophy, Linguistics, Computer
Science, Neuroscience, and Anthropology, Sociology, and other social sciences in common purpose,
Cognitive Science constitutes a microcosm of the university as a whole.
Course Objectives
The objectives of the course are to introduce the basic concepts hypotheses, models, methods, issues, and
debates in cognitive science. The course will cover the main information-processing paradigms in cognitive
science as well as the main critiques of the paradigms.
300
By the end of the course, a student should know enough about cognitive science that the student can take
advanced courses in cognitive science. Further, the knowledge and understanding acquired through this
course should inform student's subsequent work on any application related to cognitive science, including
human-centered computing, information system design, digital media, educational technology, design
computing, human-robot interaction, etc.
Learning Outcomes
Practical Skills
● Understand and critically evaluate research and theory in cognitive psychology, including perception,
attention, learning, memory, reasoning, problem-solving, judgment, and decision-making;
● Understand and critically evaluate research and theory in cognitive linguistics, with special attention
to the relation between language and thought;
● Understand and critically evaluate various approaches to Artificial Intelligence, and the
computational modeling of cognitive processes;
● Understand and critically evaluate the biological bases of cognitive functions, as uncovered by
cognitive neuroscience;
● Understand and critically evaluate classic and contemporary work on the philosophy of mind,
including the mind-body problem, mental causation, freedom of the will, and the nature of
consciousness;
● Understand and critically evaluate the sociocultural context of individual cognition, including the
social construction and organization of knowledge, cultural differences in cognition, the history of
information, etc.
Prerequisites:
Student Workload
Course Content
Chapter 7 - Metaphor
Chapter 8 - Conversation
Chapter 9 - Reasoning
301
Chapter 11 – Evolution of Mind
Schedule
Week 1 Chapter 1
Week 2 Chapter 2
Week 3 Chapter 3
Week 5 Chapter 4
Week 6 Chapter 5
Week 9 Chapter 6
Week 10 Chapter 6
Week 12 Chapter 8
Week 13 Chapter 9
Week 15 Chapter 11
Teaching Methods
The teaching methods that shall be employed for this course are lecturing, demonstration, Lab exercises,
classroom discussion and classroom action research and assignments and homework.
Assessment Method
● 4 Assignments – 20%
● 3 Homework – 15%
● 3 Exams – 65%
302
Course Policies
❏ Attendance: It is compulsory to attend class in time and every time. Missing more than three
classes during the term causes readmission for that course.
❏ Assignments: No Late Assignment will be accepted
❏ Test/Quizzes: Rarely reexamination schedules will be arranged for those who missed the exam by
accidental or uncontrollable situation.
❏ Cheating/Plagiarism: No second Chance or excuses.
References
● https://ocw.mit.edu/courses/brain-and-cognitive-sciences/9-10-cognitive-neuroscience-spring-
2006/readings/
● MIND, An Introduction to Cognitive Science, Paul Thagard, MIT Press,2nd edition, 2005.
● Cambridge Handbook of Intelligence, R. Sternberg & S. Kauffman (editors), Cambridge university
Press, 2011
303
Appendix 1C: Summary of SECT Curricula
304
Artificial Intelligence Stream
Degree Nomenclature “Bachelor of Science in Software Engineering and Computing Technology
(Artificial Intelligence Stream)”
305