Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 143

COMPUTER SCIENCE PROGRAM

NATIONAL LEVEL HARMONIZED MODULAR


CURRICULUM

_____________________________________________________

Prepared By:

Addis Ababa University Wolaita Sodo University

Mizan-Tepi University Mekele University JigjigaUniversity Haramaya University

Jimma University Assosa University Diredawa University Bahirdar University

Debre Birhan Univeristy Arbaminch University Wollega Univeristy Bule Hora Unversity

Aksum University Samara University WolloUniversity Wachemo Univesity

Meda Welabu University Hawassa University Dilla University AAST University

AST Univeristy Adigrat University Gondar University


_________________________________________________________________

COMPUTER SCIENCE PROGRAM CURRICULUM

Study Program
Bachelor of Science (BSc) Degree

in

Computer Science

July 2013, Addis Ababa


COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Imprint

Addis Ababa, Ethiopia

Study Program for the Bachelor of Science (B.Sc) Degree in Computer Science

The study program was developed by the curriculum development committee from different
Universities mentioned below.

Addis Ababa Univeritsy, Mizan-Tepi University, Mekele University, Wolaita Sodo Univeristy,
Jigjiga University, Haramaya University, Jimma University, Assosa University, Dire Dawa
University, Bahirdar University, DebreBirhan Univeristy, Adama Science and Technology
Univeristy, Arbaminch University, Aksum University, Samara University, Wellega
Univeristy, Wollo University, Wachemo Univesity, Hawassa University, Dilla University,
Bule Hora Unversity AAST University, AST Univeristy,,Adigrat University, Gondar University and
Meda Welabu University.

i
`
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Approval Section

This curriculum is approved by

Department Council

Name Signature
1.__________________________ ____________________

Academic Commission

Name Signature
1.__________________________ ____________________

Senate Council

Name Signature
1.__________________________ ____________________

ii
`
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

EXECUTIVE SUMMARY

Name of the degree program: Computer Science

Name of the degree to be awarded: Bachelor of Science Degree in


Computer Science

Degree to be awarded by: [name of the University] University, Subjected to the


Approval of the Senate

Standard period of study: 4 years with 8 semesters

Commencement of the program: Each year in October starting from


2012/13

Fees / charges: Cost-sharing

iii
`
TABLE OF CONTENTS

1. BACKGROUND OF THE PROGRAM IN ETHIOPIA..................................................................2


2. Rationale of the Program..................................................................................................................2
3. OBJECTIVES AND DEMAND FOR THE PROGRAM....................................................................3
3.1 Educational Objectives and Competency Profile...........................................................................3
3.2 Program outcomes..........................................................................................................................3
3.2.1 Professional profile......................................................................................................................3
3.2.2 Graduate Profile...........................................................................................................................4
4. GRADUATION REQUIREMENT......................................................................................................6
4.1 Module Requirements.....................................................................................................................6
5. PROGRAM/EDUCATIONAL PROCESS..........................................................................................9
5.1 Entry and Admission Requirements...............................................................................................9
5.2 Course of Study..............................................................................................................................9
5.3. Mode of Delivery...........................................................................................................................9
5.4. Methods of Teaching.....................................................................................................................9
5.5. Material facilities (Resources).......................................................................................................9
5.6. Grading policies...........................................................................................................................11
5.7. Course Policy...............................................................................................................................11
6. DEGRE NOMENCLATURE.............................................................................................................12
7. ATTAINMENT OF OBJECTIVES...................................................................................................12
8. QUALITY ASSURANCE MEASURES...........................................................................................12
9. ASSESEMENT AND EVALUATION..............................................................................................13
10. ASSIGNMENT OF MODULE AND COURSE CODES................................................................13
11. MODULAR STRUCTURE OF THE PROGRAM.........................................................................14
12. GENERAL TIME TABLE OF THE PROGRAM...........................................................................16
13. LOAD DISTRIBUTION FOR EACH COURSE............................................................................17
14. MODULE HANDBOOK.................................................................................................................20
15. COURSE HANDBOOK...................................................................................................................36
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

1. BACKGROUND OF THE PROGRAM IN ETHIOPIA

Computers play a major role in shaping the information or the knowledge age. They are also becoming
essential in almost all activities of human life. Furthermore, with the decline in the price of computer
hardware, nations, organizations and individuals that couldn't afford to have computers some years
back can now afford to acquire them. However, the acquisition of the hardware is just one step
towards computerization. The most important step is to be able to use them properly.
This necessitates for a high number of skilled computer scientists who will develop the necessary
applications for the computers, who will administer the computer systems and who will decide on
computer system acquisitions of the organizations and all automation processes in general.
Institutions, enterprises, organizations and companies in all sectors, public and private, are directly or
indirectly being affected by the overwhelming information flow around the world. The effect goes
down to small businesses and even to individuals. Every such unit should be equipped with tools that
enable it to survive in such a dynamic world. Ethiopia is no exception and we must get ready to cope
up with the influence of the knowledge age in our day-to-day life.
A curriculum in Computer Science must be designed in such a way that it addresses the current needs
of the country. Currently, the country has no sufficient number of competent computer professionals in
the various fields of Computer Science. Various Governmental and other organizations have the desire
to use modern information technology. However, there is an acute shortage of technical staff.

2. Rationale of the Program


Computer Science is an exciting, challenging and dynamic discipline. Computers form an integral part
of every aspect of society and modern life. New computing technologies are introduced at an
enormous rate and the Computer Science field develops and changes continually and rapidly.
Consequently Computer Science has evolved into a dynamic and challenging field of study.
Students in the course of their degree are exposed to the theoretical foundations in all areas of the
field, gain an understanding of the principles that underlie development of systems, apply their
knowledge on real life projects and acquire the necessary knowledge and skills to cope with the
astonishing rate of change of the specific discipline.
The curriculum is in compliance with the already established standards proposed by international
Computer Societies. Graduates are well equipped to successfully follow fulfilling career paths in many
diverse areas of business and academia.

2
`
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

3. OBJECTIVES AND DEMAND FOR THE PROGRAM

3.1 Educational Objectives and Competency Profile


The primary objective of the program is to produce a high quality graduate with an entrepreneurial and
problem-solving mindset. The specific objectives of the program are:

 Educating and training students for the very dynamic and rapidly changing science and technology
market.

 Educating and training students to become life-long learners by providing them with a sound base
in computer science, basic sciences as well as general education.

 Motivating students to become innovators who can respond very positively to the challenges and
opportunities presented by new ideas and technologies.

 Laying a strong foundation for, and instilling confidence in students who may want to pursue post-
graduate studies later in life.

3.2 Program outcomes

3.2.1 Professional profile


Through document analysis on different research organization websites in the field of computer
science and based on other universities’ computer science programs, it has been found
professionals in the field of computer science do have knowledge and skills in software design and
implementation, devising new ways of to use computers, developing effective ways to solve
computing problems, generating new knowledge through research as in bioinformatics and
intelligent systems, presenting findings clearly ,and using computers for the betterment of society.
Computer science professional must have
 A high-level understanding of computing 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.
3
`
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Areas of Competences Professional Profile

Cognitive Knowledge
 Analyze and demonstrate a high-level understanding of theory and
Skill
principles of Computing systems as a whole
 Conduct research in computing to generate new knowledge
 Apply knowledge and innovative skills to plan, set up and run
businesses.
Practical Skills  Demonstrate, deploy, design and implement computing systems
 Exercise management and administration of computing systems
Attitude (Transferable
 Prepare, present and reporting research findings orally and in writing.
Skills)
 Apply managerial skills

3.2.2 Graduate Profile


The graduate will have the following knowledge, skill and attitude at the end of the program.
a) Cognitive knowledge skill

 Demonstrate knowledge and understanding of essential facts, concepts, principles and theories
relating to computer science.

 Use such knowledge and understanding in the modeling and design of computer-based systems
in a way that demonstrates comprehension of the tradeoffs involved in design choices.

 Identify and analyze criteria and specifications appropriate to specific problems, and plan
strategies for their solution.

 Analyze the extent to which a computer-based system meets the criteria defined for its current
use and future development.

 Deploy appropriate theory, practices, and tools for the specification, design, implementation,
and evaluation of computer-based systems.

4
`
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

 Recognize 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.

b) Practical skills

 Specify, design, and implement computer-based systems.

 Evaluate systems in terms of general quality attributes and possible tradeoffs presented within
the given problem.

 Apply the principles of human-computer interaction to the evaluation and construction of a


wide range of materials including user interfaces, web pages, and multimedia systems.

 Identify any risks or safety aspects that may be involved in the operation of computing
equipment within a given context.

 Deploy effectively the tools used for the construction and documentation of software, with
particular emphasis on understanding the whole process involved in using computers to solve
practical problems.

 Use current techniques, skills, and tools necessary to maintain and administer computer based
systems.

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

c) Attitude (Transferable skill)


 Make succinct presentations to a range of audiences about technical problems and their
solutions.

 Be able to work effectively as a member of a development team.

 Understand and explain the quantitative dimensions of a problem.

 Manage one’s own learning and development, including time management and organizational
skills

5
`
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

 Keep abreast of current developments in the discipline to continue one’s own professional
development.

 Recognize and be guided by the social, professional, and ethical issues involved in the use of
computer technology.

4. GRADUATION REQUIREMENT

4.1 Module Requirements

.
Clusters
Module Course ECTS Total
Code Module Name Code Courses in a Module Credit ECTS
Introduction to Computer Science 3 5 26
CoSc1011
Fundamentals of Programming I 3 5
CoSc1012
Fundamentals of Programming II 3 5
CoSc1014
3 5
Basic Math1012 Linear Algebra
CoSc- Applied Mathematics for 4
Programming 6
M1011 Math1015 Computer Science
Fundamentals of Database 4 6 12
CoSc2071
Database Advanced Database System 4
CoSc-
Systems 6
M2071 CoSc2072
Computer Computer Security 3 5
CoSc-
Security 5
M4171 CoSc4171
Computer Networking & Data 4 16
6
CoSc2061 Communication
CoSc- Wireless Communication and 3
M2061 Mobile Computing 5
CoSc3062
Computer Network and System 3
Networking Administration 5
CoSc3063
Web Internet Programming 4 7
CoSc-
Development 7
M3101 CoSc3101
Numerical Analysis 3 23
5
Advanced Math2081
6
`
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Programming
CoSc-
Object Oriented Programming 4 6
M2081 CoSc2082
Advanced Programming 4 6
CoSc2084
CoSc2083 4 6
Data Structures and Algorithms
Computer organization and 3 16
Computer architecture 5
CoSc2043
Architecture Microprocessor and Assembly
and Operating Language Programming 3 5
CoSc2044
CoSc-
Systems Operating System 4 6
M2041 CoSc2045
Fundamentals of Electricity and 3 10
Basic 5
EEng2041 Electronic Devices
Electronics 3 5
EEng2042 Digital Electronics
Fundamentals of Software 3 10
5
System CoSc3091 Engineering
CoSc- Object Oriented Software 3
Development 5
M3091 CoSc3092 Engineering
10
CoSc- Computer Graphics 3 5
CoSc3121
Computer Graphics and HCI
M3121 Human Computer Interaction 3 5
CoSc3122
Discrete Probability and Statistics 3 5 10
Stat3071
CoSc- Mathematic& Discrete Mathematics and 3
M2051 Statistics Combinatory 5
Math2051
Formal Language and Automata 11
Compiler Theory 3 5
CoSc3111
CoSc-
Development Compiler Design 4 6
M3111 CoSc3112
Algorithms and Analysis of Algorithms 3 5 10
CoSc3131
CoSc-
Complexity Complexity Theory 3 5
M3131 CoSc4132
Introduction to Artificial 4 6 10
Intelligent Intelligence
CoSc4142
CoSc-
Systems Logic in Computer Science 2 4
M3141 CoSc3141
Elective Elective I (one course) 4 6 11
CoSc4151
CoSc-
Modules Elective II (one course) 3 5
M4152 CoSc4152
CoSc- Project CoSc4161 Technical Report Writing in 2 4 17

7
`
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Computer Science
Final Project I 4 6
CoSc4162
Final Project II 4 7
M4161 CoSc4163
Entrepreneurship and Small 5
Mgmt- Business Skill Mgmt310
M3101 Business management 3 5
1
Selected topics in Computer 5
CoSc- Selected Topics
M4181 Science 3 5
CoSc4181
Basic English Communicative English Skills 3 5 10
EnLa1011
EnLa-
Skills Basic Writing Skills 3 5
M1013 EnLa1012
Civics and Ethical Education 3 5 10
Civics and CESt1023
Introduction to Logic (Reasoning
CESt- Logic
Skill) 3 5
M1023 Phil1024
CoSc- Distributed 6
M4191 Systems Int. to Distributed Systems 4 6
CoSc4191
Total 148 240

Elective Courses

Elective I
No. Course CP
1. System Programming 6

2. Introduction to Neural Network 6

3. Multimedia 6

4. Simulation and Modeling 6

5. Computer Vision and Image processing 6

Elective II
No. Course CP

8
`
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

6. Real –time and Embedded Systems 5

7. Int. to Data mining and Warehousing 5

8. Windows Programming 5

9. Industrial Practice 5

5. PROGRAM/EDUCATIONAL PROCESS

5.1 Entry and Admission Requirements


Admission requirements would be similar to the general institutional requirements. That is, the student
should complete preparatory level education and the entry point is determined accordingly by the
Ministry of Education for the regular students whereas the admission criteria for distance and
continuing education program are as per the University’s requirement.

5.2 Course of Study


As revised at national level the course of study of the Computer Science program is four years and in
this four years there are eight semesters i.e. two semesters per academic year.

5.3. Mode of Delivery


This program is mainly a modular based program. The courses in each module are delivered parallel
throughout the semester by keeping the sequence number of the modules.

5.4. Methods of Teaching


The teaching learning process in this program mainly follows the principle of active learning. The
students are engaged in assignments, quizzes, tutorials, laboratories, project demonstrations and
lectures.

5.5. Material facilities (Resources)


The department of computer science needs a total of 20 lecturers and above qualifications, 40
assistants and 8 lab attendants. Each lab working 24 hours.
Staff Profile

9
`
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Qualifications Required Roles


Numbers of
Staffs
MSC in Computer Science or 20 Teaching, advising, research,
related fields coordinating workshop , seminar and
so on
Assistant Lecturer and Graduate 40 Conducting laboratory sessions
Assistants. (BSc in Computer Remark: 1 Lab assistant must
Science or related fields) conduct a maximum of 40 students.
Lab Attendants 8 For one laboratory there are 2
laboratory attendants working 24
hours.
Total 68

Computer Laboratories
The department needs 4 computer laboratories working 24 hours. Each computer laboratories has a
minimum of 40 computers. Additional specialized simulated lab rooms are expected to be organized
in order to meet the requirements due to the introduction of new courses/advancement in technology.
Laboratories Number of Student /lab Minimum number of Computers
Year 1 40 40
Year II 40 40
Year III 40 40
Year IV 40 40
Total No. of 240
Computers

Remark: When the number of students exceeds the above specified number the laboratory also
increase proportionally.

Libraries

10
`
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Every course instructor should make available all the required textbooks and reference materials on
the library. These include both the softcopy and hardcopy materials.

5.6. Grading policies


Student grades will be evaluated as per academic policy.
The final score will be converted to a letter grade using the following scale:

Corresponding Corresponding
Raw Mark
Fixe d Number Status Description
Interval-[100 %] Class Description
Grade Letter Grade
[90,100] 4.0 +
A
First class with
[85, 90) 4.0 A Excellent
[80, 85) 3.75 -
A Great distinction
[75, 80) 3.5 +
B First class with
Very Good
[70, 75) 3.0 B
Distinction

- Good
[65, 70) 2.75 B First class
[60, 65) 2.5 +
C

[50, 60) 2.0 C Satisfactory


Second Class
[45, 50) 1.75 C- Unsatisfactory
Lower Class
[40,45) 1.0 D Very Poor
Lower Class
[30,40) 0 Fx *Fail
Lowest Class
Fail
Lowest Class
[<30) 0 F

5.7. Course Policy

This policy applies for all courses in the module:


 It is mandatory to attend all classes such as lecture class, laboratory sessions, tutorials and
seminars. However, with distinct circumstance up to 80% will be entertained.
 It is mandatory to pass 50% of the lab exam, in order to be eligible for the final. This is applied
for all practical courses.
 Plagiarism will cause not only automatic course dismissal but also academic discipline based
on the rules and regulations of the university.

11
`
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

 If someone is caught while cheating during final examination, his/her grade will automatically
be ‘F’. However, other assessments are evaluated as ‘0’.
 If someone misses any assessments with a valid justification, he/she has a right to sit for
makeup exam.
 Students are not allowed to enter to examination rooms after 30 minutes of examination
commencement.

6. DEGRE NOMENCLATURE

English Bachelor of Science Degree in Computer Science

Amharic የሳይንስ ባችለር ዲግሪ በኮምፒውተር ሳይንስ

7. ATTAINMENT OF OBJECTIVES

Graduates who are cultivated in academic culture, competent in knowledge and skills and who are
internationally competitive.

8. QUALITY ASSURANCE MEASURES

 Comprehensive examinations and colleague assessment of examination papers and teaching


methods;
 Periodical workshops (with stakeholders, teachers and graduates);
 Assessments by using survey project works (researches), internships, and link programs;
 Graduates' evaluation of the program;
 Standardization of course offerings through preparation of general course outlines, exam
contents, and external audit;
 Annual assessment of the program by the teaching staff;
 Establishing Alumni of Graduates as a mechanism to assess their career development;
 Working closely with the relevant professional associations to assess graduates' performance.
 Ensuring lab sessions conduction manner as per the requirements set in the curriculum.

12
`
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

9. ASSESEMENT AND EVALUATION

Cognitive Abilities: Cognitive abilities are assessed by a combination of written examinations and
continuous assessment, including marked essays, class tests and computer programming problems.
Practical Abilities: Practical Abilities are assessed mostly by continuous assessment. Some of
practical abilities are assessed as part of group project module.
Transferable skills: some skills, like the use of software tools and ability to communicate orally and in
written form are directly assessed, in assignments or projects, other skills are not directly assessed but
their effective use will enhance the students overall performance.
Evaluation will be done based on the midterm exam, assignments, laboratory sessions demonstrations,
Project work, final exam and different continues assessments.

10. ASSIGNMENT OF MODULE AND COURSE CODES

The module code contains four digit number preceded by four letters that designate the home base of
the module and a hyphen and an “M” to differentiate it from the course code. The first digit signifies
year that module is offered and the next two digits signify the order of the module in the program and
the last digit signifies either if that module is a core or elective or general/support (1= Core; 2=
Elective; 3=General/support) Example for the Module code: CoSc-M1011 (This is a module of the
Computer Science program offered in the first year and it is the first module in the program and it is a
core module)
The course code will have four alphabets and four digit numbers like CoSc1011. The four alphabets
code indicates the home base of the program with the first and second alphabets in capital letter, For
instance, CoSc indicates abbreviation of the program of Computer Science. The four digits indicates
the year of course offering (the first number, ‘1’, indicates the level of the course in terms of the year it
is offered; accordingly '1' for 1st year, '2' for 2nd year , ‘3’ for 3rd year and ‘4’ for 4th year courses);
the middle numbers, ‘01’, indicates module code number in the program (example 01, 02, 03, 04, 05,
06, 07, 08, 09, 10), the last number, ‘1’, indicates order of the course within the module.

13
`
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

11. MODULAR STRUCTURE OF THE PROGRAM

    Year I Year II Year III Year IV


course S- S- S- S- S- S- S- S-
Module Code module name code course name Ects I II I II I II I II
CoSc1011 Introduction to Computer Science 5 5              
CoSc1013 Fundamentals of Programming I 5 5              
CoSc-M1011 Basic programming CoSc1014 Fundamentals of Programming II 5   5            
Math1012 Linear Algebra 5 5              
Math1015 Applied Mathematics for Computer Science 6   6            
EnLa1011 Communicative English Skills 5 5              
Basic English Skills
EnLa-M1013 EnLa1012 Basic Writing Skills 5   5            
CvEt1021 Civics and Ethical Education 5 5              
CESt-M1023 Civics and Logic
Phil1024 Introduction to Logic (Reasoning Skill) 5   5            
Discrete Mathematics and Statxxxx Probability and Statistics 5   5            
CoSc-M2051
Statistics Mathxxxx Discrete Mathematics and Combinatorics 5     5          
CoSc2041 Computer organization and architecture 5     5          
Computer Architecture and CoSc2042 Operating System 6       6        
CoSc-M2041
Operating Systems Microprocessor and Assembly Language
CoSc2043 Programming 5       5        
Fundamentals of Electricity and Electronic
  Basic Electronics EEng1041 Devices 5 5            
EEng1042 Digital Electronics 5   5            
Data Communication &Computer
CoSc2061 Networking 6       6        
CoSc-M2061 Computer Networking Wireless Communication and Mobile
CoSc3062 Computing 5         5      
CoSc3063 Network and System Administration 5         5      
CoSc2071 Fundamentals of Database 6     6          
CoSc-M2071 Database Systems
CoSc2072 Advanced Database System 6       6        
Entrepreneurship and Small Business
Mgmt-M3103   Mgmt3101 Management 5         5      
14
`
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Math2081 Numerical Analysis 5     5          


CoSc2082 Object Oriented Programming 6     6          
CoSc-M2081 Advanced Programming
CoSc2083 Data Structures and Algorithms 6     6          
CoSc2084 Advanced Programming 6       6        
CoSc3091 Fundamentals of Software Engineering 5         5      
CoSc-M3091 System Development
CoSc3092 Object Oriented Software Engineering 5           5    
CoSc3121 Computer Graphics 5           5    
CoSc-M3121 Computer Graphics and HCI
CoSc3122 Human Computer Interaction 5           5    
CoSc3101 Internet Programming I 5         7      
Web Development
CoSc-M3101 CoSc3102 Internet Programming II 5
CoSc3131 Analysis of Algorithms 5           5    
CoSc-M3131 Algorithms and Complexity
CoSc4132 Complexity Theory 5             5  
CoSc3111 Formal Language and Automata Theory 5         5      
CoSc-M3111 Compiler Development
CoSc3112 Compiler Design 6           6    
CoSc3141 Logic in Computer Science 4           4    
CoSc-M3141 Intelligent Systems
CoSc4142 Introduction to Artificial Intelligence 6             6  
CoSc-M4171 Computer Security CoSc4171 Computer Security 5               5
CoSc-M4191 Distributed Systems CoSc4191 Introduction to Distributed Systems 6               6
CoSc4151 Elective I (one course) 6             6
CoSc-M4152 Elective
CoSc4152 Elective II (one course) 5               5
Technical Report Writing in Computer
CoSc4161 Science 4             4  
CoSc-M4161 Project
CoSc4162 Final Project I 6             6  
CoSc4163 Final Project II 7               7
CoSc-M4181 Selected topics CoSc4181 Selected topics in Computer Science 5               5
Semester Total   30 31 33 29 32 30 27 28
61 62 62   55
Total ECTS 240

15
`
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

12. GENERAL TIME TABLE OF THE PROGRAM

Year I Sem I Year I Sem II


Course Code Course Title ECTS Course Code Course Title ECTS
CoSc1011 Introduction to Computer Science 5 CoSc1014 Fundamentals of Programming II 5
CoSc1013 Fundamentals of Programming I 5 Math1015 Applied Mathematics for Computer Science 6
Math1012 Linear Algebra 5 EnLa1012 Basic Writing Skills 5
EnLa1011 Communicative English Skills 5 Phil1024 Introduction to Logic (Reasoning Skill) 5
CvEt1021 Civics and Ethical Education 5 Statxxxx Probability and Statistics 5
EEng1041 Fundamentals of Electricity and Electronic Devices 5 EEng1042 Digital Electronics 5
Total 30 Total 31

Year II Sem I Year II Sem II


Course Code Course Title ECTS Course Code Course Title ECTS
Mathxxxx Discrete Mathematics and Combinatorics 5 CoSc2042 Operating System 6
CoSc2041 Computer organization and architecture 5 CoSc2043 Microprocessor and Assembly Language Programming 5
CoSc2071 Fundamentals of Database 6 CoSc2061 Data Communication & Computer Networking 6
Math2081 Numerical Analysis 5 CoSc2072 Advanced Database System 6
CoSc2082 Object Oriented Programming 6 CoSc2084 Advanced Programming 6
CoSc2083 Data Structures and Algorithms 6 Total 29
Total 33

Year III Sem I Year III Sem II


Course Code Course Title ECTS Course Code Course Title ECTS
CoSc3062 Wireless Communication and Mobile Computing 5 CoSc3092 Object Oriented Software Engineering 5
CoSc3063 Network and System Administration 5 CoSc3121 Computer Graphics 5
Mgmt3101 Entrepreneurship and Small Business Management 5 CoSc3122 Human Computer Interaction 5
CoSc3091 Fundamentals of Software Engineering 5 CoSc3131 Analysis of Algorithms 5
CoSc3101 Internet Programming 7 CoSc3112 Compiler Design 6
CoSc3111 Formal Language and Automata Theory 5 CoSc3141 Logic in Computer Science 4
Total 32 Total 30

Year IV Sem I Year IV Sem II


Course Code Course Title ECTS Course Code Course Title ECTS
CoSc4132 Complexity Theory 5 CoSc4171 Computer Security 5
CoSc4142 Introduction to Artificial Intelligence 6 CoSc4191 Introduction to Distributed Systems 6
CoScxxxx Elective I (one course) 6 CoScxxxx Elective II (one course) 5
CoSc4161 Technical Report Writing in Computer Science 4 CoSc4163 Final Project II 7
CoSc4162 Final Project I 6 CoSc4181 Selected topics in Computer Science 5
Total 28
Total 27

16
`
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

13. LOAD DISTRIBUTION FOR EACH COURSE

Year I Sem I
Course Code Course Title Lec Lab Tut HS ECTS Delivery
CoSc1011 Introduction to Computer Science 32 48 0 55 5 Parallel
CoSc1013 Fundamentals of Programming I 32 48 16 39 5 Parallel
Math1012 Linear Algebra 48 0 16 71 5 Parallel
EnLa1011 Communicative English Skills 48 0 0 87 5 Parallel
CvEt1021 Civics and Ethical Education 48 0 0 87 5 Parallel
EEng1041 Fundamentals of Electricity and Electronic Devices 32 48 16 39 5 Parallel
  240 144 48 378 30  
Year I Sem II
Course Code Course Title Lec Lab Tut HS ECTS Delivery
CoSc1014 Fundamentals of Programming II 32 48 16 39 5 Parallel
Math1015 Applied Mathematics for Computer Science 64 0 32 93 6 Parallel
EnLa1012 Basic Writing Skills 48 0 0 87 5 Parallel
CoSc3101 Internet Programming I 32 48 16 39 5 Parallel
Statxxxx Probability and Statistics 48 0 32 55 5 Parallel
EEng1042 Digital Electronics 32 48 0 55 5 Parallel
  272 96 80 416 31  
Year II Sem I
Course Code Course Title Lec Lab Tut HS ECTS Delivery
Mathxxxx Discrete Mathematics and Combinatorics 48 0 32 55 5 Parallel
CoSc2041 Computer organization and architecture 48 0 32 55 5 Parallel
CoSc2071 Fundamentals of Database 48 48 16 50 6 Parallel
Math2081 Numerical Analysis 32 48 0 55 5 Parallel
CoSc2082 Object Oriented Programming 48 48 16 50 6 Parallel
CoSc2083 Data Structures and Algorithms 48 48 16 50 6 Parallel
  272 192 112 315 33  
Year II Sem II
Course Code Course Title Lec Lab Tut HS ECTS Delivery

17
`
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

CoSc2042 Operating System 48 48 16 50 6 Parallel


CoSc2043 Microprocessor and Assembly Language Programming 32 48 16 39 5 Parallel
CoSc2061 Data Communication & Computer Networking 48 48 16 50 6 Parallel
CoSc2072 Advanced Database System 48 48 16 50 6 Parallel
CoSc2084 Advanced Programming 48 48 16 50 6 Parallel
Phil1024 Introduction to Logic (Reasoning Skill) 48 0 0 87 5 Parallel
  272 240 80 326 34  

Year III Sem I


Course Code Course Title Lec Lab Tut HS ECTS Delivery
CoSc3062 Wireless Communication and Mobile Computing 32 48 16 39 5 Parallel
CoSc3063 Network and System Administration 32 48 16 39 5 Parallel
Mgmt3101 Entrepreneurship and Small Business Management 48 0 0 87 5 Parallel
CoSc3091 Fundamentals of Software Engineering 48 0 32 55 5 Parallel
CoSc3102 Internet Programming II 32 48 16 39 5 Parallel
CoSc3111 Formal Language and Automata Theory 48 0 0 87 5 Parallel
    240 144 80 346 30  
Year III Sem II
Course Code Course Title Lec Lab Tut HS ECTS Delivery
CoSc3092 Object Oriented Software Engineering 48 0 16 71 5 Parallel
CoSc3121 Computer Graphics 32 48 16 39 5 Parallel
CoSc3122 Human Computer Interaction 48 0 16 71 5 Parallel
CoSc3131 Analysis of Algorithms 48 0 16 71 5 Parallel
CoSc3112 Compiler Design 48 48 16 50 6 Parallel
CoSc3141 Logic in Computer Science 16 48 0 44 4 Parallel
  240 144 80 346 30  

Year IV Sem I

18
`
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Course Code Course Title Lec Lab Tut HS ECTS Delivery


CoSc4132 Complexity Theory 48 0 0 87 5 Parallel
CoSc4142 Introduction to Artificial Intelligence 48 48 16 71 6 Parallel
CoScxxxx Elective I (one course) 48 48 16 50 6 Parallel
CoSc4161 Technical Report Writing in Computer Science 32 0 0 76 4 Parallel
CoSc4162 Final Project I 0 0 0 162 6 Parallel
  176 96 32 446 27  

Year IV Sem II
Course Code Course Title Lec Lab Tut HS ECTS Delivery
CoSc4171 Computer Security 48 0 0 87 5 Parallel
CoSc4191 Introduction to Distributed Systems 48 48 16 50 6 Parallel
CoScxxxx Elective II (one course) 32 48 16 39 5 Parallel
CoSc4163 Final Project II 0 0 0 182 7 Parallel
CoSc4181 Selected topics in Computer Science 48 0 0 87 5 Parallel
  176 96 32 445 28  
  1872 1152 528 2969 240  

NOTE: 1 Laboratory hour is equivalent with 1 Lecture hour. [1 Lab Hr.=1 Lect Hr.]

19
`
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

14. MODULE HANDBOOK

[Name of University]
Department of Computer Science
Module Code CoSc-M1011
Module Name Basic Programming
Module Category Core
Module Number 01
Module ECTS 26
Mode of Delivery Parallel
Module Competences At the end of this module students will:
Have clear understanding of the field computer science
Be able to design, code, debug and document large programs using
procedural programming style.
Be able to use the concepts related to Data Structures and
Algorithms to solve real world problems
Apply the principle of mathematical knowledge to prove statements
and solve problems in computing science.

Module Description and This module is designed to:


Objectives Give understanding of the field computer science
Enable students design, code, debug and document large programs
using procedural programming style.
Allow students to use the concepts related to Data Structures and
Algorithms to solve real world problems
Apply the principle of mathematical knowledge to prove statements
and solve problems in computing science.
Courses in the Module
Course Number Course Name ECTS
CoSc1011 Introduction to Computer Science 5
CoSc1013 Fundamentals of Programming I 5
CoSc1014 Fundamentals of Programming II 5
Math1012 Linear Algebra 5
Math1015 Applied Mathematics for Computer Science 6
Total Study Hours in the Module
Lecture Laboratory Tutorial Home Study Total
208 144 80 297 702
Tests
Quiz
Assessment Methods Assignment
Project
Final Exam

20
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

[Name of University]
Department of Computer Science
Module Code CoSc- M1023
Module Name Civics and Logic
Module Category General
Module Number 02
Module ECTS 10
Mode of Delivery Parallel
Module Competences

Module Objectives

Courses in the Module


Course Number Course Name ECTS
CESt1023 Civics and Ethical Education 5
Phil1024 Introduction to Logic (Reasoning Skill) 5
Total Study Hours in the Module
Lecture Laboratory Tutorial Home Study Total
96 0 0 174 270
Tests
Quiz
Assessment Methods
Assignment
Final Exam

[Name of University]
Department of Computer Science
Module Code EnLa-M1013
Module Name Basic English Skills
Module ECTS 10
Mode of Delivery Parallel
Module Competences At the end of this module students will:

Module Objectives This module is designed to:

Courses in the Module


Course Number Course Name ECTS
EnLa1011 Communicative English Skills 5

21
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

EnLa1012 Basic Writing Skills 5


Total Study Hours in the Module
Lecture Laboratory Tutorial Home Study Total
96 0 0 174 270
Tests
Quiz
Assessment Methods
Assignment
Final Exam

[Name of University]
Department of Computer Science
Module Code CoSc-M2041
Module Name Computer Architecture and Operating System
Module Category Core
Module Number 04
Module ECTS 16
Mode of Delivery Parallel
Module Competences At the end of this module students will be able to:
Describe the basic structure and operation of a digital
computer
Explain in detail the operation of the arithmetic unit including the
algorithms & implementation of fixed-point and floating-point
addition, subtraction, multiplication & division.
Identify different ways of communicating with I/O devices and
standard I/O interfaces.
Explain the objectives and functions of modern operating systems
Describe the functions of a contemporary operating system with
respect to convenience, efficiency, and the ability to evolve.
Explain the different states that a task may pass through and the
data structures needed to support the management of many tasks.
Explain conditions that lead to deadlock.
Compare and contrast the common algorithms used for both
preemptive and non-preemptive scheduling of tasks in operating
systems, such as priority, performance comparison, and fair-share
schemes.
Explain the concept of virtual memory and how it is realized in
hardware and software
Become familiar with the basic components of 8086 instruction set
architecture
Inspect and modify 8086 processor registers and memory.
Use assembler to develop and run assembly language programs.
Write code to process exceptions and interrupts
Module Description and This module should train the students in basic knowledge and skills
Objectives of the main hardware Components of a Computer – their
construction & operation; how they function to achieve main tasks
of computer operation a practical reference to all programming and

22
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Interfacing aspects of the popular Intel family of Microprocessors


and Identify some devices an operating system would manage.

Courses in the Module


Course Number Course Name ECTS
CoSc2041 Computer Organization and Architecture 5
CoSc2042 Operating System 6
CoSc2043 Microprocessor and Assembly Language Programming 5
Total Study Hours in the Module
Lecture Laboratory Tutorial Home Study Total
128 96 64 144 297
Tests
Quiz
Assessment Methods
Assignment
Final Exam

University Name
College/Institute/Faculty
Department of Computer Science
Module Name Computer Networking
Module Category Core
Module Code CoSc-M2061
Module Number 06
Module ECTS 16
Mode of Delivery Parallel
Module Competences At the end of this module students will:
Acquire the basic concepts and principles in computer networking.
Be able to design, install/configure, manage and troubleshoot small
and medium size computer networks.

Module Description and This module teaches the basic concepts, principles and practices
Objectives associated network and system administration and develop the
student’s ability to understand, analyze, and design and to
implement simple network computer systems. It provides the
knowledge and skills for students to manage modern system
administration issues.

The aim of this module is :


To familiarize students with the fundamental concepts and
terminology of data communication and computer networks
To familiarize students with the concepts and principles related to
mobile computing
To familiarize students with network protocols and standards
To familiarize students with basic networking devices like cables,
hubs, switches, access points, routers, and network tools.
23
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

To enable students build a small to medium networks


To enable students develop small mobile applications
To enable students manage/administer small to medium computer
networks
Courses in the Module
Course Number Course Name ECTS
CoSc2061 Computer Networking & Data Communication 6
CoSc2062 Wireless Communication and Mobile Computing 5
CoSc2063 Network and System Administration 5
Total Study Hours in the Module
Lecture Laboratory Tutorial Home Study Total
272 192 96 358 432
Module Learning Lecture
teaching methods Lab
Tutorial
Tests
Quiz
Assessment Methods Assignment
Project
Final Exam

University Name
Institute of Technology
Department of Computer Science
Module Code CoSc-M2071
Module Name Database Systems
Module Category Core
Module Number 07
Module ECTS 12
Mode of Delivery Parallel
Module Competences By the end of this module students will be:
Explain the overview, design and implementation of database
systems.
Describe the general overview and purpose of the database system,
storage devices, and its difference with the traditional file processing
system.
Extend concepts of different issues in advanced database
management systems and advanced database systems
Learn the methodology for building applications on top of database
management system
Define the fundamental terminology used in the relational data
model.
Categorize data models based on the types of concepts that they
provide to describe the database structure—that is, conceptual data
model, physical data model, and representational data model
Describe the modeling concepts and notation of widely used
24
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

modeling notation (e.g., ERD notation, and UML), including their


use in data modeling
Apply the principles and basics of transaction management,
concurrency control and query processing and optimization.
Understand database security and recovery
Module Description and This module is designed to:
Objectives Understand what database is, database system and DBMS
Differentiate database system from file system
Identify the pros and cons of manual approach, file based approach
and database approach
Understand the basic principles of database design systems using
different database models
Appreciate the use of database system in the real world.
Design different types of databases
Understand database normalization & functional dependency
Understand the principles of relational database management
systems and their languages
Understand relational algebra and relational calculus
Understand and develop object oriented and object relational
database system
Understand the database query processing and optimization
Know the basics of transaction management and concurrency
control
Understand database security
Use different recovery methods when there is a database failure
Design a distributed database system in homogenous and
heterogeneous environments

Courses in the Module


Course Number Course Name ECTS
CoSc2071 Fundamentals of Database Systems 6
CoSc2072 Advanced Database Systems 6
Total Study Hours in the Module
Lecture Laboratory Tutorial Home Study Total
96 96 32 100 324
Tests
Quiz
Assessment Methods Assignment
Project
Final Exam

University Name
College/Institute/Faculty
Department of Computer Science
Module Code CoSc-M2081

25
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Module Name Advanced Programming


Module Category Core
Module Number 08
Module ECTS 23
Mode of Delivery Parallel
Module Competences At the end of this module students will:
Have knowledge of algorithmic analysis methods and analyze
known algorithms to test their efficiency
Have a high level knowledge of object oriented programming
language
Be able to design, code, debug and document large programs
using object oriented programming style
Be able to know the basic algorithms of numerical computations
and their theoretical foundation
Have the basic knowledge of common data structures and their
implementations.
Be able to use network programming, multithreading, JDBC, and
servlet.
Module Description and This module is designed to:
Objectives Give students knowledge of algorithmic analysis methods and
analyze known algorithms to test their efficiency
Provide a high level knowledge of object oriented programming
language
Enable students to design, code, debug and document large
programs using object oriented programming style
Enable students to know the basic algorithms of numerical
computations and their theoretical foundation
Provide students the basic knowledge of common data structures
and their implementations.
Enable students to use network programming, multithreading,
JDBC, and servlet.
Courses in the Module
Course Number Course Name ECTS
Math2081 Numerical Analysis 5
CoSc2082 Object Oriented Programming 6
CoSc2083 Data Structures and Algorithms 6
CoSc2084 Advanced Programming 6
Total Study Hours in the Module
Lecture Laboratory Tutorial Home Study Total
176 192 48 205 621
Assessment Methods Tests
Quiz
Assignment
Project

26
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Final Exam

University Name
College/Institute/Faculty
Department of Computer Science
Module Code CoSc -M3091
Module Name System Development
Module Category Core
Module Number 09
Module ECTS 10
Mode of Delivery Parallel
Module Competences At the end of this module students will:
Understand the basic principles of software engineering
Able to elicit, analyze, specify, validate and produce complete and
consistent requirement document and manage requirement
changes.
Describe the object-oriented software development process,
including object-oriented methodologies and workflows
Understand the issues involved in software project management
and manage software projects

Module Description and The module helps the students to deal with complexity through
Objectives modeling, by introducing the students to the software
development steps: requirement gathering, analysis, design,
implementation, testing and maintenance.
It helps the students to understand several software
methodologies and equips them with the skills to perform system
Requirement analysis, Software specification, Design methods,
Software testing, Software project management techniques;
Software project planning, Risk management; Software Quality
Assurance; Software reuse; and Computer aided software
engineering: with both the structured as well as OO approach.
Basic aims of the module
To build many different models of a system and of the application
domain
Identify system development steps or problem solving steps:
analysis, design, implementation, testing
Describe the methods to deal with system development steps for
developing applications
Identify the different problems related to software development
and techniques of handling them
Courses in the Module
Course Number Course Name ECTS
CoSc3091 Fundamental of 5
27
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Software Engineering
Object Oriented
CoSc3092 Software Engineering 5
Total Study Hours in the Module
Lecture Laboratory Tutorial Home Study Total
96 0 48 126 270
Tests
Quiz
Assessment Methods Assignment
Project
Final Exam

University Name
College/Institute/Faculty
Department of Computer Science
Module Name Web Development
Module Delivery Parallel
Module Code CoSc-M3101
Module Category Core
Module Number 10
Module Weight in ECTS 7 ECTS

Module Description Client-server Architecture: Web page Design and development;


information Architecture & visualization; static & dynamic pages,
client side programming using scripting languages (JavaScript),
OOP programming using PHP, File manipulation and
Management using PHP.
Multimedia web programming, dynamic web content creation;
session tracking; Internet protocols, PHP Web controls, connecting
web page to data base, loading and manipulating XML documents,
web security; cryptography theory.
Module Description and The objective of this module is to familiarize students: the
Objectives concepts, principles and methods in programming for web and
Internet environment and the services and technologies available
and used on Internet.
Specifically, at the completion of this module the student is able
to
Provide fundamental concepts and skills for the understanding and
development of web-based applications.
Construct Web sites using HTML and Server Side scripting
Languages.
Implement client-side interactivity
use CSS to manage Web site presentation and maintenance
Select and customize existing technologies to set up and maintain

28
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

web servers
Specify, build and manage form and content of information-rich
web sites
Design, implement and evaluate client-server systems following
specific protocol specifications, taking into account concurrency
issue.

Module Competency At the end of this module the students will be able to have
Practical use of client based programming
Knowledge about XML markup language and be familiar with a
number of extended markup languages based on XML
A practical knowledge of Internet protocols, web security and
cryptography theory
Practical use of Server based programming
Practical use of MYSQL database management system
Module mode of delivery Parallel
Module Learning and The learning–teaching methodology will be student-centered with
Teaching Method appropriate guidance of instructor/s during the students’ activities.
This includes:
Lecture
Lab work and projects
Tutorials
Assignments
Presentation and Group Discussions
Module Assessment Tests
Technique Quiz
Assignment
Project
Final Exam

Courses in the Module


Course code Course Name ECTS

CoSc3101 Internet programming 7 ECTS


Total Study Hours in the Module
Lecture Laboratory Tutorial Home Study Total
48 48 32 61 189

University Name
College/Institute/Faculty
Department of Computer Science
Module Name Compiler Development
Module Category Core
Module Code CoSc-M3111
Module Number 11

29
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Module Weight in ECTS 11 ECTS

Module Description and The objectives of the module are:


Objectives prepare students to work in the software development industries by
providing insights into the mathematical theory of formal languages
To give the students a knowledge of number of areas in theoretical
computer science and their hierarchical interconnections.
Introduce concepts in automata theory, identify different formal
language classes and their relationships and design grammars and
recognizers for different formal languages
Introduce the basic concepts and principles of compiler design.
expose students to the design and implementation of compilers
Module Competency At the end of this module students will:
-Able to understand the principle of compiler design.
-Able to understand the basic concepts, principles and practices of
Formal language theory.
Able to understand the basic techniques and tools required to
construct compiler.

Module mode of delivery Parallel


Module Learning and The learning–teaching methodology will be student-centered with
Teaching Method appropriate guidance of instructor/s during the students’ activities.
This includes:
Lecture
Presentation
Tutorials
Assignments
Presentation and Group Discussions
Module Assessment Tests
Technique Quiz
Assignment
Presentation
Final Exam

Courses in the Module


Course code Course Name ECTS

CoSc3111 Formal Language Theory 5 ECTS


CoSc3112 Compiler Design 6 ECTS
Total Study Hours in the Module
Lecture Laboratory Tutorial Home Study Total
96 48 16 137 297
University Name
College/Institute/Faculty
Department of Computer Science
Module Code CoSc-M3121

30
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Module Name Computer Graphics and Human Computer Interaction


Module ECTS 10
Mode of Delivery Parallel
Module Competences At the end of this module students will:
Understand the basic concepts of computer graphics and raster
based methods
Explore the necessary theoretical background for computer
graphics and demonstrates the application of computer science to
graphics
Explore facilities provided by a standard graphics API for modeling
and rendering
Construct 3D models from simple primitives and create 2D images
from these models
Understand the basic techniques to generate a simple animation
Describe the relationship between the cognitive principles and
their application to interfaces and products.
Explain the conceptual terms for analyzing human interaction with
products such as affordance, conceptual model, and feedback.
Analyze different user populations with regard to their abilities
and characteristics for using both software and hardware
products.
Describe the connection between the development of a user
interface and the user’s knowledge of an application domain.
List several of the emerging alternative I/O devices for computers
Module Description and The Module introduces general purpose graphics systems and
Objectives their use. It gives an in depth knowledge of computer graphics and
graphical user interfaces, principles of user interface development,
focusing on design, implementation and evaluation.
Courses in the Module
Course Number Course Name ECTS
CoSc5142 Computer Graphics 5
Human Computer 5
CoSc5141 Interaction
Total Study Hours in the Module
Lecture Laboratory Tutorial Home Study Total
80 48 16 168 270
Tests
Quiz
Assessment Methods Assignment
Project
Final Exam
University Name
College/Institute/Faculty
Department of Computer Science
Module Name Algorithms and Complexity

31
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Module Category Core


Module Code CoSc-M3131
Module Number 13
Module Weight in ECTS 10 ECTS

Module Description and The objectives of the module are:


Objectives

Module Competency At the end of this module students will:


to select and use the most appropriate algorithms to solve problems
to estimate the performance characteristics of their chosen solution
Acquire full understanding and mentality of Complexity theory

Module mode of delivery Parallel


Module Learning and The learning–teaching methodology will be student-centered with
Teaching Method appropriate guidance of instructor/s during the students’ activities.
This includes:
Lecture
Presentation
Tutorials
Assignments
Presentation and Group Discussions
Module Assessment Tests
Technique Quiz
Assignment
Presentation
Final Exam

Courses in the Module


Course code Course Name ECTS

CoSc3131 Analysis of Algorithms 5 ECTS


CoSc4132 Complexity Theory 5 ECTS
Total Study Hours in the Module
Lecture Laboratory Tutorial Home Study Total
96 0 16 158 270

University Name
College/Institute/Faculty
Department of Computer Science
Module Code CoSc-M3141
Module Name Intelligent Systems
Module Category Core

32
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Module Number 14
Module ECTS 10
Mode of Delivery Parallel
Module Competences At the end of this module students will:
Understand reasoning, knowledge representation and learning
techniques of artificial intelligence
Evaluate the strengths and weaknesses of these techniques and
their applicability to different tasks
Assess the role of AI in gaining insight into intelligence and
perception
know classical examples of artificial intelligence
know characteristics of programs that can be considered
"intelligent"
understand the use of heuristics in search problems and games
know a variety of ways to represent and retrieve knowledge and
information
know the fundamentals of artificial intelligence programming
techniques in a modern programming language
consider ideas and issues associated with social technical, and
ethical uses of machines that involve artificial intelligence

Module Description and The objectives of the module are:


Objectives To provide an introduction to the basic principles and applications
of Artificial Intelligence.
To understand, define, design and analyze expert and knowledge
based systems
To study mathematical analysis of networks, on methods of
training them and on their application to practical engineering
problems
Courses in the Module
CoSc3141 Logic in Computer Science 4
CoSc4142 Artificial Intelligence 6
Total Study Hours in the Module
Lecture Laboratory Tutorial Home Study Total
60 96 16 125 270
Tests
Quiz
Assessment Methods Assignment
Project
Final Exam

University Name
College/Institute/Faculty
Department of Computer Science
Module Name Computer Security

33
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Module Category Core


Module Code CoSc-M4171
Module Number 17
Module ECTS 6
Mode of Delivery Parallel
Module Competences At the end of this module students will:
To familiarize students with the security issues and technologies
involved in modern information systems, including computer
systems and networks and the various ways in which information
systems can be attacked and tradeoffs in protecting networks.

Module Description and This module teaches the basic concepts, principles and practices
Objectives associated computer security and aware students with the security
threats, vulnerabilities and security mechanisms.
The aim of this module is :
State the basic concepts in information security, including security
attacks, security vulnerabilities, security policies, security models,
and security mechanisms.
Explain concepts related to applied cryptography, including plain-
text, cipher-text, techniques for crypto-analysis, symmetric
cryptography, asymmetric cryptography, digital signature, message
authentication code, hash functions, and modes of encryption
operations.
Discuses about the basic concepts, principles and practices
associated with database security, program security, Operating
system security and network and Internet security.
Explain and compare security mechanisms for conventional
operating systems, including memory, time, file, object protection
requirements and techniques and protection in contemporary
operating systems.
Describe threats to networks, and explain techniques for ensuring
network security, including encryption, authentication, firewalls,
and intrusion detection.
Explain the requirements and techniques for security management,
including security policies, risk analysis, and physical threats and
controls.

Courses in the Module


Course Number Course Name ECTS
CoSc4171 Computer Security 5
Total Study Hours in the Module
Lecture Laboratory Tutorial Home Study Total
48 0 0 87 135
Module Learning Lecture
teaching methods Tutorial
Presentation
Assessment Methods Tests

34
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Quiz
Assignment
Project
Final Exam

University Name
College/Institute/Faculty
Department of Computer Science
Module Name Distributed Systems
Module Category Core
Module Code CoSc-M4191
Module Number 19
Module ECTS 6
Mode of Delivery Parallel
Module Competences At the end of this module students will:
Acquire the basic concepts and principles in distributed systems.
Be able to develop small distributed applications.

Module Description and This module teaches the basic concepts, principles and practices
Objectives associated distributed systems and aware students with the
challenges in the design and implementation of distributed systems.
The aim of this module is :
To familiarize students with the basic principles and concepts of
distributed systems
To familiarize students with the current distributed technologies
To enable students develop small distributed applications

Courses in the Module


Course Number Course Name ECTS
CoSc4191 Introduction to Distributed Systems 6
Total Study Hours in the Module
Lecture Laboratory Tutorial Home Study Total
48 48 16 50 162
Module Learning Lecture
teaching methods Lab
Tutorial
Tests
Quiz
Assessment Methods Assignment
Project
Final Exam

35
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

15. COURSE HANDBOOK

Name of Institute
[name of the University] [Department/college/school
[Logo]
UNIVERSITY Name]

Department: Computer Science


Module Title: Basic Programming Module Code: CoSc-M1011

Module ECTS: 26
Course Title: Introduction to Computer Course Code: CoSc1011
Science

Instructor Name: -------------------- Course ECTS: 5

Instructor’s Contact Information: Course Information:


Office Academic Year: One
Phone: Semester: I
Email: Meeting day:---
Office Hours: Meeting time:---
Meeting location:-----

Course Description:
An overview of Computer Science; historical development of computers; logical organization of
a computer system; software ,data representation inside computers; computer arithmetic;
computer system architecture(Boolean algebra and logic circuits); overview of computer
networks & Computer security, Lab Introducing the use of PC in an MS DOS, MS Windows
environment; Introduction to main MS application packages in that context – MS Excel, MS
Word, MS access, MS power point, Introduction to using Internet;
Course Goals or Learning Outcome:
Up on the completion of this course, students will be able to:
Find out what computer science is about and explore its applications and impact in other
disciplines
Explain how the computer understands words, numbers, and how data and instructions are
stored, retrieved and processed
Describe basic characteristics of components of a computer system, Illustrate and analyze basics
of Computer architecture
Demonstrate basics of networking. Explain what the Internet is, browse and use the Internet for
information and communication purpose,
Discuss and explain importance of securing computer-based resources (including hardware,
software, and information)
Perquisite: None
Required Texts:

36
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Ref 1: Fikire Sitota and Belay Tedla: fundamentals of information technology; AA, mega
publishing enterprise, 2002
Ref 2: ITL ESL, Introduction to computer science, Pearson edition, 2004
Ref 3: Kenneth C Laudon, Carol Guercio Traver, Jane Price laudon : information
technology and society, second edition, 1996
Ref 4: Dida Midekso, information technology: Addis Ababa University Printing Press, revised
press, 2006.
Ref 5 : William Stallings: Computer Organization and Architecture, 5/E, 6/E, Prentice Hall,
2003
Ref 6: Donald H. Sandar computer concepts and applications; USA; Von Hoffman press, 1987
Ref 7: http://newdata.box.sk/bx/c/
Expectations:
Students are expected to attend all lectures and laboratory sessions with serious discipline and
complete the required assessments. Thus, intensive reading of course texts and frequent practice
of laboratory activities are expected from students.
Students are strongly encouraged to collaborate with one another in studying the textbook and
the lecture material, while they are not permitted to collaborate on exams.
Summary of Assessment Methods:
Assessment methods:
Continuous Assessments (50%):
Lab works
Quizzes
Assignment
Tests
Final exam-50%

Student Workload:
Student workload will be as follows:
Activity Hours
Lecture 32
Tutorials and discussion 0
Labs 48
Home study 55
Total 135
ECTS 5
Schedule
The following is an outline of the order in which syllabus contents will be covered. The exact
dates and due dates for assignments and exams can be found on the class calendar and are
subject to change with notice.

Date Topics to be discussed Reading

37
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Week 1 Chapter 1 - Overview of Computer Science


1.1 Introduction to Information and Communication Technology
1.2 Definition of Computer and Computer Science
1.3 Characteristics of computers
- Speed, accuracy, capacity, versatility, durability and reliability
1.4 Types of computers
- Analog, digital, special purpose, general purpose
- Super computers, mainframe computers, minicomputers, microcomputers
(desktop,
laptop or notebook, PDA or palmtop, handheld)
1.5 Applications of computers (2 hours)
- Learning aid
- Entertainment
- Commercial and business applications
- Information utility
- Engineering and research applications
- Public service

Week 2-3 Chapter 2 - Development of computers


2.1. History of computing
- Abacus
- Pascal’s Calculator
- The difference engine and the analytical engine
- Herman Hollerith’s tabulating machine
- Mark I
- ENIAC - Electronic Numerical Integrator And Computer
- The Von Neumann Machine
- Commercial computers
2.2. Generations of computers
- First, second, third, and fourth generations
- Current Trends

Week 4-6 Chapter 3 - Organization of a computer system


3.1. Introduction to Computer Systems
3.2. Computer hardware
- The Central Processing Unit (CPU)
- Purposes of the Central Processing Unit
- Control Unit
- Arithmetic and Logic Unit (ALU)
- RAM and ROM
- The bus system (address bus, data bus, and control bus)
- Input/output units
- Input units (pointing devices, game controllers, keyboard, scanner,
camera,
microphone)
- Output units (monitor, printer, speaker)
- Storage units
- Sequential access media ( tape)
- Random access media (magnetic disk, optical storage media, flash
memory cards)
3.3. Computer software
- System software
- Operating systems
- What is an operating system?
- Functions of an operating system (controlling operations, input/output
management, command processing)

38
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

- Types of operating systems (single/multi tasking, single/multi user, real-


time,
command driven vs. GUI-based)
- Example operating systems (Windows, UNIX, Solaris, MacOS)
- Language software
- Translators (assemblers, compilers, interpreters), and editors
- Applications software
- Word processing
- Spreadsheet
- Database management systems
- Graphics
- Software suites
- Enterprise application software
Week 9-10 Chapter 4 - Data representation in computers
4.1. Units of data representation
- Bit, Byte, Word
4.2. Concept of number systems and binary arithmetic
- Binary, Octal, and Hexadecimal number systems
- Conversion from one number system to another
- Binary arithmetic
4.3 Coding method
- EBCDIC (Extended Binary Coded Decimal Interchange Code)
- BCD 4 and 6 (Binary Coded Decimal)
- ASCII 7 and 8 (American Standard Code for Information Interchange)
- UNICODE
4.4 Representation of negative numbers and arithmetic
- Signed magnitude, One’s complement, Two’s complement
4.5 Floating-point representation

Week 6-8 Chapter 5 - Computer System architecture


5.1 Hierarchical structure of computer system architecture
5.2 Logic elements and Boolean algebra
- Logic gates and Boolean algebra
5.3 Implementation of Boolean algebra
- Boolean functions and truth tables
- Construction of logic circuits
5.4 Types of circuits
- Combinational and sequential circuits

Week 9-11 Chapter 6 - Computer networks and communications


6.1 Introduction to computer networking and its applications
6.2 Types of networks
- LANs (Local Area Networks) and WANs (Wide Area Networks)
6.3 Introduction to the Internet
- Services of the Internet (e-mail, World Wide Web, file transfer/access,
remote login/
execution, video conferencing)

12-14 Chapter 7 - Computer security


- Introduction to computer security
- Encryption
- Backup
- Viruses and worms

39
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

COURSE HANDBOOK

Name of Institute
[name of the University] [Department/college/school
[Logo]
UNIVERSITY Name]

Department: Computer Science


Module Title: computer organization and Module Code:
Operating systems
Module ECTS: 5
Course Tile: Computer organization and Course Code: CoSc 2041
Architecture
Instructor Name: Course ECTS: 5

Instructor’s Contact Information: Course Information:


Office Academic Year:
Phone: Semester:
Email: Meeting day:
Office Hours: Meeting time:
Meeting location:

Course Description:
This course introduces students to basic computer organization and architecture concepts. It
covers: number systems, Boolean algebra, digital logic circuits and their design, simple machine
architecture, genealogy of microprocessors, von Neumann architecture, the system bus model,
data representation and manipulation, organization of instruction sets and program execution,
microprocessor organization, memory organization, organization of input and output subsystem,
I/O interface; instruction set design philosophies, parallel processing, symmetric multiprocessing
and clustering; case study of at least two microprocessor families and other components of
computing system..
Course Goals or Learning Outcomes:
By the end of this course, students will be able to:
Describe the basic structure and operation of a digital computer
Explain in detail the operation of the arithmetic unit including the algorithms & implementation
of fixed-point and floating-point addition, subtraction, multiplication & division.
Identify different ways of communicating with I/O devices and standard I/O interfaces.
Describe different performance enhancement of computer architecture
Explain the basic structure of computer hardware & software
Identify the processes involved in the basic operations of CPU
Understand basic concepts of circuits and their design

Prerequisites:
None
Required Texts:
Text book: William Stalling, Computer Organization and Architecture: Designing for
Performance, 7th Edition, Prentice Hall, 2006
40
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Reference books:
Andrew S. Tannenbaum, Structured Computer Organization, 4th Edition, Prentice Hall, 1999
Mano M, Morris, Computer System Architecture, 3rd Edition, 1993
B. Ram, Computer Fundamentals, Architecture and Organization, 2007
5. Summary of Teaching Learning Methods:
The learning–teaching methodology will be student-centered with appropriate guidance of
instructor/s during the students’ activities .There will be Lecture, Demonstrations, Tutorials,
Reading assignments and Group Discussions
Summary of Assessment Methods:
The course will be assessed using the different assessment methods like: Quizzes, Reading
assessments, Assignments, and Final exam

Policies on incomplete grade and late assignments:


Homework and project deadlines will be strict. Late homework will be accepted with a 10%
reduction in grade for each class period they are late by. However, once a homework assignment
is discussed in class or the solution is posted, submissions will no longer be accepted. All
assignments must be turned in before the start of class on the due date.

Assignments:
There will be two assignments which will be scrutinized meticulously and graded. Further detail
as to content, process and timing will be provided in due course. Your grade will be based on
satisfactory completion of each of the assignments in a timely manner, and the quality of work
represented by those assignments. A checklist is provided for each assignment. Assignments
must be submitted on the due date given for a particular assignment If not the student will be
penalized 10% of the total mark of the assignment. Assignments for the course will be 2 main
types:
Basic Concept Assignments - These may consist of handouts given by the instructor, discussion
forums, or selected questions out of your textbook.  

Assignments - These consist of activities for directly applying and integrating the concepts
presented in the course. In some cases, you will be given a case scenario to use in the
development of the assignment. These assignments will require you to use critical thinking skills,
logical analysis, and creativity. They may be individual or group assignments.
Student Workload: Taking into consideration that 1ECTS accounts for 27 hours of student
work, the course COMPUTER SECURITY has 5*27hr=135 hrs the split up is as shown
below:-:
Lecture 48
Discussion 0
Tutorials 32
Project 0
Lab work 0
Private study 30
Assessment 15
Total 135
Polices:

41
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Grading policies
Student grade and performance will be evaluated as the whole activities (tests(%)
+Assignment(%)+tests/final exam(%))=total(100%).
Considering activities grading:
The final score will be converted to a letter grade using the following scale:
[Grade scale to be referred....]
Schedule:
The following is an outline of the order in which syllabus contents will be covered. The exact
dates and due dates for assignments and exams can be found on the class calendar and are
subject to change with notice.
Week/Date TOPIC TO BE DISCUSSED Additional Reference for
the topics other than the
text book cited above

Week 1 Introduction
Logic gates
Boolean Algebra
Combinational circuit
Flip Flops
Sequential circuits
Week 2 Number Systems and Codes
Data types
Complements
Fixed point representation
Floating point representation
Codes
Week 3 Common Digital Components
Integrated Circuits
Decoders, multiplexers and registers
Binary counters
Memory units
QUIZ-1
Week 4 Register Transfer Language and Micro Operations
Register Transfer Language
Bus and Memory Transfer
ASSIGNMENT -1
Week 5 Register Transfer Language and Micro Operations
Arithmetic and Logic Operations
Shift Micro operations
TEST # 1

Week 6 Basic Computer Organization and Design


Instructional Code
Computer Registers
Computer Instructions
Timing and Control

42
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Week 7 Basic Computer Organization and Design


Memory Reference Instructions
Design of Basic Computer
Design of accumulator Logic
QUIZ -2

Week 8 Central Processing Unit


General Register Organization
Stack Organization
Instruction Formats

Week 9 Central Processing Unit


Addressing modes
Data Transfer and Manipulation
Program Control
Characteristics of RISC and CISC
ASSIGNMENT -2
Week 10 Memory Organization
Memory Hierarchy
Main Memory
Cache memory
Mapping Functions
Direct Mapping
Associative Mapping
Set Associative Mapping

Week 11 Memory Organization


External Memory
Magnetic Disks
RAID Technology
Optical disks
Magnetic Tape
TEST # 2
Week 12 Input-Output Organization
Peripheral Devices
Input-Output Interface
Asynchronous Data Transfer
Mode of Transfers

Week 13 Input-Output Organization


Priority Interrupts
Direct Memory Access(DMA)
Input-Output Processor(IOC)
Serial Communication

43
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Week 14 Pipeline and Vector Processing


Parallel Processing
Pipelining

Week 15 Pipeline and Vector Processing


Vector Processing
Multiprocessors

Week 16 FINAL EXAM

Assessment Arrangements:
List the assessment methods along with weight distribution.
Test #1 15%
Test # 2 15%
Final examination 35%
Assignments (two) 20%
Quizzes, reading assessment and tutorial contributions 15%
Total 100%

COURSE HANDBOOK

Name of Institute
[name of the University] [Department/college/school
[Logo]
UNIVERSITY Name]

Department: Computer Science


Module Title: Computer Security Module Code:

Module ECTS: 5
Course Tile: Computer Security Course Code: CoSc 2043

Instructor Name: Course ECTS: 5

Instructor’s Contact Information: Course Information:


44
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Office Academic Year:


Phone: Semester:
Email: Meeting day:
Office Hours: Meeting time:
Meeting location:

Course Description:
What is an Operating System, history of operating system, operating system zoo; process
concept, process scheduling, inter-process communication; threads; CPU scheduling, basic
concepts, scheduling criteria, scheduling algorithms; process synchronization, the critical section
problem, semaphores, monitors, classical synchronization problems; deadlocks, avoidance,
prevention, detection; memory management, physical and virtual memory, swapping, allocation,
paging, segmentation; file systems, access methods, directory structure, file sharing and
protection; security, authentication, intrusion detection, encryption.
Course Goals or Learning Outcomes:
By the end of this course, students will be able to:
Explain the objectives and functions of modern operating systems
Describe the functions of a contemporary operating system with respect to convenience,
efficiency, and the ability to evolve.
Explain the different states that a task may pass through and the data structures needed to support
the management of many tasks.
Explain conditions that lead to deadlock.
Compare and contrast the common algorithms used for both preemptive and non-preemptive
scheduling of tasks in operating systems, such as priority, performance comparison, and fair-
share schemes.
Explain the concept of virtual memory and how it is realized in hardware and software
Prerequisites:
Computer Organization and Architecture
Required Texts:
Text book: Andrew Tanenbaum, Modern Operating Systems, 2nd Edition, USA,
Prentice-
Hall, 2001
Reference books:
William Stallings, operating Systems: Internals and Design Principles, 5th Edition, Prentice-Hall,
2005
Abraham Silberschatz, P.B. Galvin and G. Gagne, Operating Systems Concepts, 6th Edition,
John Wiley &Sons ,2006

Summary of Teaching Learning Methods:


The learning–teaching methodology will be student-centered with appropriate guidance of
instructor/s during the students’ activities .There will be Lecture, Demonstrations, Lab work
Tutorials, Reading assignments and Group Discussions
Summary of Assessment Methods:
The course will be assessed using the different assessment methods like: Quizzes, Reading
assessments, Assignments, Project, Lab exam and Final exam

Policies on incomplete grade and late assignments:


Homework and project deadlines will be strict. Late homework will be accepted with a 10%
reduction in grade for each class period they are late by. However, once a homework assignment

45
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

is discussed in class or the solution is posted, submissions will no longer be accepted. All
assignments must be turned in before the start of class on the due date.

Assignments:
There will be two assignments which will be scrutinized meticulously and graded. Further detail
as to content, process and timing will be provided in due course. Your grade will be based on
satisfactory completion of each of the assignments in a timely manner, and the quality of work
represented by those assignments. A checklist is provided for each assignment. Assignments
must be submitted on the due date given for a particular assignment If not the student will be
penalized 10% of the total mark of the assignment. Assignments for the course will be 2 main
types:
Basic Concept Assignments - These may consist of handouts given by the instructor, discussion
forums, or selected questions out of your textbook.  

Laboratory Assignments - These consist of activities for directly applying and integrating the
concepts presented in the course. In some cases, you will be given a case scenario to use in the
development of the assignment. These lab assignments will require you to use critical thinking
skills, logical analysis, and creativity. They may be individual or group assignments.

Student Workload: Taking into consideration that 1ECTS accounts for 27 hours of student
work, the course COMPUTER SECURITY has 5*27hr=135 hrs the split up is as shown
below:-:
Lecture 32
Discussion 10
Tutorials 0
Project 0
Lab work 48
Private study 30
Assessment 15
Total 135
Polices:
Grading policies
Student grade and performance will be evaluated as the whole activities (tests(%)+lab exam(%)
+project(%)+tests/final exam(%))=total(100%).
Considering activities grading:
The final score will be converted to a letter grade using the following scale:
[Grade scale to be referred....]
Schedule:
The following is an outline of the order in which syllabus contents will be covered. The exact
dates and due dates for assignments and exams can be found on the class calendar and are
subject to change with notice.
Week/Date TOPIC TO BE DISCUSSED Additional Reference for
the topics other than the
text book cited above

46
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Week 1 Overview
Role and purpose of operating systems
History of operating system development
Types of operating systems

Week 2 Processes and process management


The process concept
The threads concept
Multithreading and thread usage (why do we need
threads?)

Week 3 Processes and process management (Cont)

Inter-process communication
IPC and the race condition
Critical sections (or regions) and mutual exclusion

QUIZ-1
Week 4 Processes and process management
Process scheduling
Preemptive and non preemptive scheduling
Scheduling policies
ASSIGNMENT -1
Week 5 Processes and process management

Deadlock
Detection
Prevention
Avoidance
TEST # 1
Week 6 Memory management
Review of physical memory and memory management
hardware
Overlays, swapping, and partitions

Week 7 Memory management


Paging and segmentation
Page placement and replacement policies
QUIZ -2

Week 8 Memory management


Working sets and thrashing
Caching

47
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Week 9 Device management .


Characteristics of serial and parallel devices
Abstracting device differences
ASSIGNMENT -2
Week 10
Device management
Buffering strategies
Direct memory access
Recovery from failures

Week 11 File systems


Fundamental concepts (data, metadata, operations,
organization, buffering, sequential vs. non sequential
files)
Content and structure of directories
TEST # 2
Week12 File systems
File system techniques (partitioning, mounting and
unmounting, virtual file systems)
Memory-mapped files

Week 13 File systems


Special-purpose file systems
Naming, searching, and access
Backup strategies,
PROJECT
Week 14 Security and protection
Overview of system security
Policy/mechanism separation
Security methods and devices
Week 15 Security and protection
Protection, access, and authentication
Models of protection
Memory protection
Encryption
Recovery management
Week 16 FINAL EXAM
LAB EXAMINATION

Assessment Arrangements:
List the assessment methods along with weight distribution.
Test #1 10%
Test # 2 10%
Final examination 35%

48
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Assignments (two) 20%


Quizzes, reading assessment and tutorial contributions 15%
Lab Examination 10%
Total 100%

COURSE HANDBOOK

Name of Institute
[name of the University] [Department/college/school
[Logo]
UNIVERSITY Name]

Department: Computer Science


Module Title: Computer Architecture Module Code: Cosc-M2041
and Operating System
Module ECTS: 5
Course Tile: Microprocessor & Course Code: CoSc 2043
Assembly Language
Instructor Name: Course ECTS: 5

Instructor’s Contact Information: Course Information:


Office Academic Year:
Phone: Semester:
Email: Meeting day:
Office Hours: Meeting time:
Meeting location:

Course Description:
Microprocessor architecture; memory organization; assembly language programming;
microprocessor assemblers; use of microprocessor boards; memory and I/O interfaces;
programming peripherals; interrupt system programming; microprocessor system design and
applications.

Course Goals or Learning Outcomes:


By the end of this course, students will be able to:
Become familiar with the basic components of 8086 instruction set architecture
Inspect and modify 8086 processor registers and memory.
Use assembler to develop and run assembly language programs.
Identify registry, memory allocation, memory reference techniques, File processing, modular
programming etc
Identify how to interface serial and parallel I/O devices with a microprocessor
Write code to process exceptions and interrupts,

49
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Prerequisites:
Computer Organization & Architecture

Required Texts:
Text book: The Intel Microprocessors 8086/8088, 80186/80188, 80286, 80486, Pentium and
Pentium processor – Architecture, Programming and Interfacing by Barry B Brey. 4th Edition,
prentice Hall – India – 2002

Reference books:
Ouglas v. Hall 'Microprocessors and Interfacing', Tata McGraw hill
Uffenbeck 'Microcomputers and Interfacing', prentice hall
Ram 'Fundamentals of Microprocessors and Microcomputers', Dhanpat Rai
Ompkins 'PC interfacing', prentice hall
Richard Trooper, Assembly Language Programming the IBM PC, McGraw Hill, 1994
Vlad Pirogov, the Assembly Programming Master Book, 2006
Peter Abel, IBM PC Assembly Language and Programming, 5h Edition, 2001.
Summary of Teaching Learning Methods:
The learning–teaching methodology will be student-centered with appropriate guidance of
instructor/s during the students’ activities .There will be Lecture, Demonstrations, Lab work
Tutorials, Reading assignments and Group Discussions
Summary of Assessment Methods:
The course will be assessed using the different assessment methods like: Quizzes, Reading
assessments, Assignments, lab exam and Final exam

Policies on incomplete grade and late assignments:


Homework and assignments deadlines will be strict. Late homework will be accepted with a 10%
reduction in grade for each class period they are late by. However, once a homework assignment
is discussed in class or the solution is posted, submissions will no longer be accepted. All
assignments must be turned in before the start of class on the due date.

Assignments:
There will be two assignments which will be scrutinized meticulously and graded. Further detail
as to content, process and timing will be provided in due course. Your grade will be based on
satisfactory completion of each of the assignments in a timely manner, and the quality of work
represented by those assignments. A checklist is provided for each assignment. Assignments
must be submitted on the due date given for a particular assignment If not the student will be
penalized 10% of the total mark of the assignment. Assignments for the course will be 2 main
types:
Basic Concept Assignments - These may consist of handouts given by the instructor, discussion
forums, or selected questions out of your textbook.  

Laboratory Assignments - These consist of activities for directly applying and integrating the
concepts presented in the course. In some cases, you will be given a case scenario to use in the
development of the assignment. These lab assignments will require you to use critical thinking
skills, logical analysis, and creativity. They may be individual or group assignments.

50
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Student Workload: Taking into consideration that 1ECTS accounts for 27 hours of
student work, the course COMPUTER SECURITY has 5*27hr=125 hrs the split up is as
shown below:-:
Lecture 32
Discussion 10
Tutorials 0
Project 0
Lab work 48
Private study 30
Assessment 15
Total 135
Polices:
Grading policies
Student grade and performance will be evaluated as the whole activities (tests(%)+lab exam(%)
+tests/final exam(%))=total(100%).
Considering activities grading:
The final score will be converted to a letter grade using the following scale:
[Grade scale to be referred....]
Schedule:
The following is an outline of the order in which syllabus contents will be covered. The exact
dates and due dates for assignments and exams can be found on the class calendar and are
subject to change with notice.
Week/Date TOPIC TO BE DISCUSSED Additional Reference for
the topics other than the
text book cited above

Week 1 Introduction to the Microprocessor and computer


The Microprocessor and its Architecture
Addressing Modes
Week 2 The Microprocessor and its Architecture
Addressing Modes

Week 3 Data Movement Instruction.


Arithmetic and Logic Instruction.
Program Control Instruction
QUIZ-1

Week 4 Programming the Microprocessor.


8086/8088 Hardware Specification.
ASSIGNMENT -1

51
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Week 5 The Arithmetic Coprocessor


Memory Interface.
Basic I/O Interface
Bus Interface

TEST # 1
Week 6 Computer organization
Memory
CPU
Week 7 Computer organization
The 80x86 family of CPUs
Interrupts
Registers
QUIZ -2
Week 8 Assembly Languages
Machine language
Assembly languages
Week 9 Assembly Languages
Instruction operands
Basic instructions
Directives
ASSIGNMENT -2
Week 10 Creating a program
First program
Compiler dependencies
Assembling the code

Week 11 Basic Assembly Language


Control structures
Comparisons
Branch Instructions
Week 12 Control structures
The loop instructions

Week 13 Procedure and Functions


Procedures
Functions
saving the state of the machine
parameters

Week 14 Instructions Types


stack instructions
integral ALU instructions

52
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Week 15 Instructions Types


Floating point instructions
Data manipulation instructions

Week 16 FINAL EXAM


LAB EXAMINATION

Assessment Arrangements:
List the assessment methods along with weight distribution.
Test #1 10%
Test # 2 10%
Final examination 35%
Assignments (two) 20%
Quizzes, reading assessment and tutorial contributions 15%
Lab Examination 10%
Total 100%

COURSE HANDBOOK

Name of Institute
[name of the University] [Department/college/school
[Logo]
UNIVERSITY Name]

Department: Computer Science


Module Title: Database Systems Module Code: CoSc-M2071
Module ECTS: 12
Course Tile: Fundamentals of Database Course Code: CoSc2071
Systems
Instructor Name: Course ECTS: 6

Instructor’s Contact Information: Course Information:


Office Academic Year:
Phone: Year :II
Email: Semester: I
Office Hours: Meeting day:
Meeting time:
Meeting location:

Course Description:

53
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

This course is assumed to be the first course in database management systems. It starts by
introducing what database is and database systems, and how it differs with the traditional file
processing system. It then deals with data models, ER diagrams, database design methods,
normalization, relational algebra and calculus, file organizations and storage management, index
structure for files, and SQL statements. The course mainly emphasizes on basics of database
systems how to retrieve and modify data. It also deals different database environments.
Course Goals or Learning Outcomes:
By the end of this course, students will be able to:
Understand what database is, database system and DBMS
Differentiate database system from file system
Identify the pros and cons of manual approach, file based approach and database approach
Understand the basic principles of database design systems using different database models
Appreciate the use of database system in the real world.
Design different types of databases
Understand database normalization & functional dependency
Understand the principles of relational database management systems and their languages
Understand file organizations and storage management, and index structure for files
Demonstrate queries in the relational algebra.
Demonstrate queries in the tuple relational calculus.
Create a relational database schema in SQL that incorporates key, entity integrity, and referential
integrity constraints.
Prerequisites: Introduction to Computer Science (CoSc1011)

Reference
Text book:
Ramez Elmasri and Shamkant B. Navathe (2000) Fundamentals of Database Systems, 3rd
edition.
Reference books:
Massachusetts Addison Wesley C. J. Date (2000) an Introduction to Database Systems.
Massachusetts: Addison Wesley
Ramakrishna, Raghu & Johannes Gehrke (2000) Database Management Systems, 2nd edition.
McGraw Hill
Shepherd John C. (1990) Database Management: Theory and Practice. Boston:
IRWIN
Database Management Systems, 2nd edition Ramakrishna & Johannes Gherkin , McGraw Hail,
1998.
Database System Concepts 3/e. Abraham Sibcrschatz H e r i y F Korth & S. Sudarshan, McGraw-
Hill, 1997.
A First Course in Database Systems, Jeffrey Ullman & Jennifer Widom, Prentice-Hall, 1997.
Database System Implementation, Hector Garcia-Molina, Jeffrey Ullman & Jennifer Widom,
Prentice-Hall, 2000.
Readings in Database Systems, Michael Stonebraker & Joe Hellerstein, Eds, Morgan-
Kaufmann, 1998

Summary of Teaching Learning Methods:


The learning–teaching methodology will be student-centered with appropriate guidance of
instructor/s during the students’ activities .There will be Lecture, Demonstrations, Lab work
Tutorials, Reading assignments and Group Discussions.
Summary of Assessment Methods:

54
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

The course will be assessed using the different assessment methods like: Quizzes, Reading
assessments, Assignments, Project, Mid exam and Final exam
Assignments:
There will be two assignments which will be scrutinized meticulously and graded. Further detail
as to content, process and timing will be provided in due course. Your grade will be based on
satisfactory completion of each of the assignments in a timely manner, and the quality of work
represented by those assignments. A checklist is provided for each assignment. Assignments
must be submitted on the due date given for a particular assignment, if not the student will be
penalized 10% of the total mark of the assignment. Assignments for the course will be 2 main
types:
Basic Concept Assignments - These may consist of handouts given by the instructor, discussion
forums, or selected questions out of your textbook.  
Projects - These consist of activities for directly applying and integrating the concepts presented
in the course. In some cases, you will be given a case scenario to use in the development of the
project. These projects will require you to use critical thinking skills, logical analysis, and
creativity. They may be individual or group projects.

8. Student Workload: Taking into consideration that 1ECTS accounts for 27 hours of
student work, the course Fundamentals of Database Systems has 6*27hr=162 hrs the split
up is as shown below:-:
Lecture 48
Tutorials 16
Lab work 48
Home study 50
Total 162
9. Polices:
Grading policies
Student grade and performance will be evaluated as the whole activities (tests(%)+lab exam(%)
+project(%)+tests/final exam(%))=total(100%).
Considering activities grading:
The final score will be converted to a letter grade using the following scale:
[Grade scale to be referred....]

Schedule
The following is an outline of the order in which syllabus contents will be covered. The exact
dates and due dates for assignments and exams can be found on the class calendar and are
subject to change with notice.

Date Topics to be discussed Reading

Week 1 Introduction to Database Systems Ref-1 Chapter 1


Introduction to database system Ref-2 chapter 1
Ref-1 Chapter 1
Database system and File System
Characteristics of the Database Approach
Actors on the Scene
Week 1-2 Database System Concepts and Architecture
55
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Data Models, Schema and Instances Ref-1 Chapter 2


DBMS Architecture and Data Independence
Database Language and Interface
The Database System Environment
Classification of DBMS
Week 3-4 Database Modeling
Introduction to ODL Ref-3 Part1 Chapter 2
E/R Model
Design principles, Network and hierarchical

Week 5-6 Data Modelling using Entity Relationship Model


Using High level Data Models for Database Design
Entity types and Sets, Attributes and Keys Ref-1 Chapter 3
Relationships, Roles and Structural Constraints
Weak Entity Types
Database Abstraction
E/R Diagram naming conventions, and Design issues

Week 7 Record Storage and Primary File Organization


Introduction Ref-1 Chapter 13
Operations on Files
Files of Unordered Records (Heap Files)
Files of Ordered Records (Sorted Files)
Hashing Techniques

Week 8 Index Structure for Files


Types of Single level Ordered Index Ref-1 Chapter 14
Dynamic Multilevel indexes using B-Trees and B+ Trees
Indexes on Multiple Indexes

Week 9-10 Relational algebra and Relational calculus Ref-1 Chapter 6


Introduction
Week 10-11 Database Design
Introduction Ref-3 Part2 Chapter 6
Functional Dependency and Ref-1 part3
Normalization chapter 10

Week 12 Structured Query Language(SQL) Ref-1 Chapter 10


SQL Statements And Ref-3 part 3
SQL Query chapter 7
Data Manipulation Language

56
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Constraints and Triggers

11. Assessment Arrangements:


List the assessment methods along with weight distribution.
Test #1 5%
Test # 2 5%
Final examination 40%
Assignments (two) 15%
Quizzes, reading assessment and tutorial contributions 10%
Lab Examination 10%
Project 15%
Total 100%

Department: Computer Science


Module Title: Database Systems Module Code: CoSc-M2061
Module ECTS: 12
Course Tile: Advanced Database systems Course Code: CoSc2072

Instructor Name: Course ECTS: 6

Instructor’s Contact Information: Course Information:


Office Academic Year:
Phone: Year :II
Email: Semester: I
Office Hours: Meeting day:
Meeting time:
Meeting location:

Course Description:
This course deals with, query optimization, transaction management, recovery, and concurrency
control, database authorization and security. Additional topics including, object oriented and
object relational database system, distributed databases, databases, and integration may also be
covered. A major component of the course is a database implementation project using current
database languages and systems.
Course Goals or Learning Outcomes:
By the end of this course, students will be able to:
Describe the main concepts of the OO model such as object identity, type constructors,
encapsulation inheritance, polymorphism, and versioning
Evaluate a set of query processing strategies and select the optimal strategy. Know the basics of
transaction management and concurrency control
Understand database security
57
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Use different recovery methods when there is a database failure


Design a distributed database system in homogenous and heterogeneous environments
Prerequisites: Fundamentals of Database Systems (CoSc2071)

Reference
Text book:
Ramez Elmasri and Shamkant B. Navathe (2000) Fundamentals of Database Systems, 3rd
edition.
Reference books:
Massachusetts Addison Wesley C. J. Date (2000) an Introduction to Database Systems.
Massachusetts: Addison Wesley
Ramakrishna, Raghu & Johannes Gehrke (2000) Database Management Systems, 2nd edition.
McGraw Hill
Shepherd John C. (1990) Database Management: Theory and Practice. Boston:
IRWIN
Database Management Systems, 2/e. Raghu Ramakrishna & Johannes Gehrke , McGraw Hill,
1998.
Database System Concepts 3/e. Abraham Sibcrschatz H e r i y F Korth & S. Sudarshan, McGraw-
Hill, 1997.
A First Course in Database Systems, Jeffrey Ullman & Jennifer Widom, Prentice-Hall, 1997.
Database System Implementation, Hector Garcia-Molina, Jeffrey Ullman & Jennifer Widom,
Prentice-Hall, 2000.
Readings in Database Systems, Michael Stonebraker & Joe Hellerstein, Eds, Morgan-
Kaufmann, 1998

Summary of Teaching Learning Methods:


The learning–teaching methodology will be student-centered with appropriate guidance of
instructor/s during the students’ activities .There will be Lecture, Demonstrations, Lab work
Tutorials, Reading assignments and Group Discussions
Summary of Assessment Methods:
The course will be assessed using the different assessment methods like: Quizzes, Reading
assessments, Assignments, Project, Mid exam and Final exam

Assignments:
There will be two assignments which will be scrutinized meticulously and graded. Further
detail as to content, process and timing will be provided in due course. Your grade will be based
on satisfactory completion of each of the assignments in a timely manner, and the quality of
work represented by those assignments. A checklist is provided for each assignment.
Assignments must be submitted on the due date given for a particular assignment If not the
student will be penalized 10% of the total mark of the assignment. Assignments for the course
will be 2 main types:
Basic Concept Assignments - These may consist of handouts given by the instructor, discussion
forums, or selected questions out of your textbook.  
Projects - These consist of activities for directly applying and integrating the concepts presented
in the course. In some cases, you will be given a case scenario to use in the development of the
project. These projects will require you to use critical thinking skills, logical analysis, and
creativity. They may be individual or group projects.

58
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

8. Student Workload: Taking into consideration that 1ECTS accounts for 27 hours of
student work, the course Fundamentals of Database Systems has 6*27hr=162 hrs the split
up is as shown below:-:
Lecture 48
Tutorials 16
Lab work 48
Home study 50
Total 162
9. Polices:
Grading policies
Student grade and performance will be evaluated as the whole activities (tests(%)+lab exam(%)
+project(%)+tests/final exam(%))=total(100%).
Considering activities grading:
The final score will be converted to a letter grade using the following scale:
[Grade scale to be referred....]
Schedule:
The following is an outline of the order in which syllabus contents will be covered. The exact
dates and due dates for assignments and exams can be found on the class calendar and are
subject to change with notice.
Date Topic Subtopic Reading
Week 1-2 Concepts for Object-Oriented Databases Ref-1 part 3
Overview of Object-Oriented Concepts Chapter 11
Object Identity, Object Structure, and Type Constructors
Encapsulation of Operations, Methods, and Persistence
Type Hierarchies and Inheritance

Week 3-4 Query processing and Optimization


Translating SQL Queries into Relational Algebra
Basic Algorithms for Executing Query Operations Ref-1 part 4
Using Heuristic in Query Optimization Chapter 15
Using Selectivity and Cost Estimates in Query Optimization
Semantic Query Optimization

Week 5-6 Transaction Processing Concepts


Introduction Ref-1 part 5
Transaction and System Concepts
Properties of Transaction Chapter 17
Schedules and Recoverability
Serializability of Schedules
Transaction Support in SQL

59
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Week 7-8 Concurrency Control Techniques


Locking Techniques for Concurrency Control
Concurrency Control Based ON Timestamp Ordering
Multi version Concurrency Control Techniques
Validation (Optimistic) Concurrency Control Technique
Granularity of Data Items and Multiple Granularity Locking Ref-1 part 5
Using Locks for Concurrency Control in Indexes Chapter 18

Week 9-10 Database Recovery Techniques


Recovery Concepts
Recovery Concepts Based on Deferred Update Ref-1 part 5
Recovery Concepts Based on Immediate Update Chapter 19
Shadow Paging
The ARIES Recovery Algorithm
Recovery in Multi database Systems

Week 11 Database Security and Authorization


Introduction to DB Security Issues Ref-1 part 7
Discretionary Access Control Based on Granting /Revoking of Chapter 23
Privileges
Mandatory Access Control for Multilevel Security
Statistical DB Security

Week 12 Distributed Database System


Distributed Database Concepts Ref-1 part 7
Data Fragmentation, Replication, and Allocation Techniques Chapter 24
for Distributed database Design
Types of Distributed Database Systems
Query Processing in Distributed Databases

11. Assessment Arrangements:


List the assessment methods along with weight distribution.
Test #1 5%
Test # 2 5%
Final examination 40%
Assignments 15%

60
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Quizzes, reading assessment and tutorial contributions 10%


Lab Examination 10%
Project 15%
Total 100%

COURSE HANDBOOK

Name of Institute
[name of the University] [Department/college/school
[Logo]
UNIVERSITY Name]

Department: Computer Science


Module Title: Computer Networking Module Code: CoSc-M2061

Module ECTS: 16
Course Tile: Data Communication and Course Code: CoSc2061
Computer Networks
Instructor Name: Course ECTS: 6

Instructor’s Contact Information: Course Information:


Office Academic Year:
Phone: Semester: I
Email: Meeting day:
Office Hours: Meeting time:
Meeting location:

Course Description:
This course will explore the various types of the data communication systems, networks and
their applications. Concept & terminologies like computer networks, layer architecture (OSI &
TCP/IP), network hardware, network software, standardization, network medium, and IP
addressing will be explored. The practical aspect will deal with building small to medium level
networks including Cabling, Configuring TCP/IP, Peer to Peer Networking, Sharing resources,
Client Server Networking.

Course Goals or Learning Outcomes:


By the end of this course, students will be able to:
Understand the concepts and principles of data communications and computer networks
Understand data transmission and transmission media
Understand Protocols and various networking components
Understand TCP/IP & OSI Reference Model
Understand AN and WAN technologies
Understand and implement IP addressing.
Build small to medium level Computer networks

61
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Prerequisites:
Introduction to Computer Science ()
Required Texts:
Text book: Data Communications and Networking, 4th Edition, Behrouz A. Forouzan
Reference books:
Computer Networks Prentice Hall of India Publication, an S Tannenbaum, 2003
Data and Computer Communication, 8th edition Pearson Prentice Hall, William Stallings, 2007
Computer Networking. Kurose & Ross. Addison Wesley
, Computer Networks and Internet, Pearson Edu.Inc, Douglas E. comer, 2002
Computer Networking, Pearson Edition. Inc., James F. Kurose, 2003
Any Cisco Material (CCNA Module1) will be helpful
Summary of Teaching- Learning Methods:
The teaching-learning methodology will be student-centered with appropriate guidance of
instructor/s during the students’ activities .There will be Lecture, Demonstrations, Lab work
Tutorials, Reading assignments and Group Discussions
Lectures – Each chapter will be preceded by lectures to give the students a touch of the contents.
Tutorials – Tutorial classes on some difficult topics will be offered wherein students will have
the opportunity to ask questions and answer questions posed by the instructor and/or other
students.
Lab Works – Students will have lab practices on most of the topics covered.
Projects – Students will be required to work on a design/implementation of a small to medium
level networks for different organizations.

Summary of Assessment Methods:


The course will be assessed using different assessment methods like: Tests/Quizzes
Assignments, Project, Practical exam and Final exam
Lab works – students performing the lab works successfully in the allocated time will earn full
marks; those who have done the work but not in the specified time and those who have attempted
but not successfully will earn proportional marks; those who do not attempt or do not appear in
the lab session will earn zero marks.
Two Quizzes/Tests – to be distributed evenly through the semester.
One project works – project work assessment will be similar to that of lab work assessment.
Final exam
Two assignments – to be distributed evenly through the semester.

Policies on incomplete grade and late assignments:


Two assignments will be given, while the course is being offered, which will be scrutinized
meticulously and weighted. Further detail as to content, process and timing will be provided in
due course. Your grade will be based on satisfactory completion of each of the assignments in a
timely manner, and the quality of work represented by those assignments. A checklist is provided
for each assignment. Assignments must be submitted on the due date given for a particular
assignment If not the student will be penalized 10% of the total mark of the assignment.

7. Student Workload: Taking into consideration that 1ECTS accounts for 27 hours of
student work, this course has 6*27hr=162 hrs the split up is as shown below:-:
Lecture 48
Discussion 10
Tutorials 16

62
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Project 10
Lab work 48
Private study 20
Assessment 10
Total 162
8. Polices:
Schedule:
The following is an outline of the order in which syllabus contents will be covered. The exact
dates and due dates for assignments and exams can be found on the class calendar and are
subject to change with notice.
Additional Reference for
the topics other than the
Week/Date TOPIC TO BE DISCUSSED
text book cited above

Week 1 Data Communication Basics : Data and Computer


Communication Basics Communication, 8th
Data Representation techniques edition, William –Ch, Ch3
Digital Data Transmission formats and Ch8
Transmission Impairments
Modes of Data transmission
Multiplexing
Week 2 Signal Encoding Techniques Data and Computer
Data Transmission Error Detection and Correction Communication, 8th
ASSIGNMENT -1 edition, William –Ch3&
ch5
Week 3 Introduction to Computer Networks:
Computer Network and its Applications
Computer Network Types
Computer Network Topologies
Computer Network Components
Computer Network Models
Week 4 Data Communication and Transmission Medias Computer Networks
Guided Media Types: Twisted Pair cable, Coaxial Prentice Hall of India
Cable and Fiber Optic Cable Publication, A S
Unguided Media Types: Wireless Media, Wireless Tannenbaum, 2003—Ch1
LAN, Terrestrial Microwave and Satellite
communication
QUIZ-1

Week 5 Layered Models Computer Networks


Communication and Layer Architecture Prentice Hall of India
The Need for Layer Architecture Publication, A S
Open System Interconnection (OSI) Model Tannenbaum, 2003—
The Seven Layers of an OSI Model Ch1
Peer-to-peer Processes
Encapsulation

63
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Physical Layer and its responsibilities


Data-link and its responsibilities: Error Detection and
Correction, Data Link Control, Data Link layer
Protocols
Week 6 Network Layer and Routing Computer Networks
Introduction Prentice Hall of India
Network layer and its services Publication, A S
The Internet Protocol Tannenbaum, 2003—
Internet Control Message Protocol Ch1
Routing
Routing in the Internet
Week 7 Internet Protocol and IP addressing Computer Networks
Introduction to Addressing: Physical addressing, Prentice Hall of India
Logical addressing, Port Addressing and Specific Publication, A S
Addresses Tannenbaum, 200
IP as a Routed Protocol
Packet Propagation
IP Addressing Scheme
Class full addressing Scheme and Subnet masking
Week 8 Classless IP addressing Scheme and Subnet masking Computer Networks
Subnetting Prentice Hall of India
IPv6: structure, Address space Publication, A S
Tannenbaum, 2003

Week 9 Address Mapping, Error Reporting and Multicasting Computer Networks


Address Mapping: Prentice Hall of India
Logical to Physical Address Mapping –ARP Publication, A S
Physical to Logical Address Mapping -RARP Tannenbaum, 2003
ICMP: Types of Messages, Message Format, Error
Reporting and Query
IGMP: Group Management, IGMP Messages, Message
Format, IGMP Operation, Encapsulation, Netstat
ICMPv6
Week 10 Transport Layer and its services Computer Networks
Multiplexing/Demultiplexing Prentice Hall of India
Connectionless Transport: UDP Publication, A S
Reliable Data Transfer: TCP Tannenbaum, 2003
Congestion Control
Week 11 Application Layers: Session, Presentation, and Computer Networks
Application Layers Prentice Hall of India
The TCP/IP Model Publication, A S
Tannenbaum, 2003

Week 12 LAN Technologies Computer Networks


LAN Devices: Repeaters, Hubs, Bridges and Switches Prentice Hall of India
LAN Technology Options Publication, A S
Tannenbaum, 2003

64
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Week 13 WAN Technologies Computer Networks


WAN Devices: Routers, Layer 3 Switches and Prentice Hall of India
Gateways Publication, A S
WAN Technology Options Tannenbaum, 2003
Week 14 Computer Network Security Basics Computer Networks
The importance of Network Security Prentice Hall of India
Techniques of Network Security, Encryption and Publication, A S
Decryption Techniques, Access Control and Firewalls, Tannenbaum, 2003
Attacks and Countermeasures

Week 15 Revision Week


Week 16 FINAL EXAM
LAB EXAMINATION
PROJECT EVALUATION

9. Assessment Arrangements:
List the assessment methods along with weight distribution.
Test #1 10%
Test # 2 10%
Final examination 40%
Assignments (two) 10%
Lab Assessment/Examination 15%
Project 15%
Total 100%
10. Module and course evaluation:
Peer review, questionnaire-based opinion survey, analysis of assessment results.

COURSE HANDBOOK

Name of Institute
[name of the University] [Department/college/school
[Logo]
UNIVERSITY Name]

Department: Computer Science


Module Title: Computer Networking Module Code: CoSc-M2061

Module ECTS: 16
Course Tile: System and Network Course Code: CoSc3063
Administration
Instructor Name: Course ECTS: 5

65
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Instructor’s Contact Information: Course Information:


Office Academic Year:
Phone: Semester: I
Email: Meeting day:
Office Hours: Meeting time:
Meeting location:

Course Description:
This course deals with the concepts and techniques of systems and network administration. The
course mainly covers a wide range like host management, network management, host and
network security to automating system administration. In this course students will install,
manage and configure various popular network based services in a Linux environment.

Course Goals or Learning Outcomes:


By the end of this course, students will be able to:
Understand the concepts, principles, and roles of system and network administration.
Understand how to install/configure Linux operating system
Understand how to build network services to users
Understand how to design/implement small to medium level network administration
Understand how to identify security policies and troubleshooting
Understand how to apply scripting for system administration

Prerequisites:
CoSc2061– Data Communication and Computer Networks
Required Texts:
References:
“Principles of Network and System Administration” (2nod Edition), John Wiley and Sons Ltd,
Mark Burgess, 2004.
“TCP/IP Network Administration” (3rd Edition), O’Reilly and Associates Inc., Craig Hunt,
2002.
“Running Linux”, (5th Edition), O’Reilly and Associates Inc., Matthias Kalle Dalheimer and
Matt Welsh, 2007.
“Essential System Administration”, 3rd Edition, O’Reilly and Associates Inc., Len Frisch, 2003.
http://en.wikipedia.org/wiki/System_administrator
http://www.ibm.com/developerworks/linux/library/l-linuxboot/
http://www.gnu.org
http://www.ahinc.com/linux101/users.htm
http://www.doc.ic.ac.uk/csg/all-OS/quota.html
http://www.yolinux.com/TUTORIALS/Postfix.html
http://wiki.squid-cache.org/SquidFaq/ConfiguringSquid
http://en.wikipedia.org/wiki/Manual_page_(Unix)
http://en.wikipedia.org/wiki/Wireless_LAN
http://en.wikipedia.org/wiki/Dial-up
http://en.wikipedia.org/wiki/Broadband_Internet_access
http://pentangle.net/python/report.pdf
Summary of Teaching- Learning Methods:
The teaching- learning methodology will be student-centered with appropriate guidance of
instructor/s during the students’ activities. In doing this, Lecture, Demonstrations, Lab work
Tutorials, Reading assignments and Group Discussions will be given.
66
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Lectures – Each chapter will be preceded by lectures to give the students a touch of the contents.
Tutorials – Tutorial classes on some difficult topics will be offered wherein students will have
the opportunity to ask questions and/or answer questions posed by the instructor and/or other
students.
Lab/practical Works – Students will be required to have lab practices on the relevant topics.
Projects – Students will be required to work on a design/implementation of a small to medium
level system and network administration for different organizations.

Summary of Assessment Methods:


The course will be evaluated using different assessment methods like: Tests/Quizzes
Assignments, Project, Practical exam and Final exam
Lab works – students performing the lab works successfully in the allocated time will earn full
marks; those who have done the work but not in the specified time and those who have attempted
but not successfully will earn proportional marks; those who do not attempt or do not appear in
the lab session will earn zero marks.
Two Quizzes/Tests – to be distributed evenly throughout the semester.
One project works – project work assessment will be similar to that of lab work assessment.
Final exam
Two assignments – to be distributed evenly throughout the semester.

Policies on incomplete grade and late assignments:


Two assignments will be given, while the course is being offered, which will be scrutinized
meticulously and weighted. Further detail as to content, process and timing will be provided in
due course. Your grade will be based on satisfactory completion of each of the assignments in a
timely manner, and the quality of work represented by those assignments. A checklist is provided
for each assignment. Assignments must be submitted on the due date given for a particular
assignment. If not the student will be penalized 10% of the total mark of the assignment.

Student Workload: Taking into consideration that 1ECTS accounts for 27 hours of student
work, this course has 5*27hr=135 hrs the split up is as shown below:-:

Lecture 32
Discussion 5
Tutorials 16
Project 5
Lab work 48
Private study 24
Assessment 5
Total 135
Polices:
Grading policies
Student grade and performance will be evaluated as the whole activities (tests(%)+lab exam(%)
+project(%)+tests/final exam(%))=total(100%).
Considering activities grading:
The final score will be converted to a letter grade using the following scale:
67
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Corresponding Corresponding
Raw Mark
Fixe d Number Status Description
Interval-[100 %] Class Description
Grade Letter Grade
[90,100] 4.0 +
A
[85, 90) 4.0 A First class with
Excellent
[80, 85) 3.75 -
A
Great distinction
[75, 80) 3.5 +
B First class with
Very Good
[70, 75) 3.0 B
Distinction

[65, 70) 2.75 -


B Good First class
[60, 65) 2.5 +
C
[50, 60) 2.0 C Satisfactory
Second Class
-
[45, 50) 1.75 C Unsatisfactory
Lower Class
[40,45) 1.0 D Very Poor
Lower Class
[30,40) 0 Fx *Fail
Lowest Class
Fail
Lowest Class
[<30) 0 F
Schedule:
The following is an outline of the order in which syllabus contents will be covered. The exact
dates and due dates for assignments and exams can be found on the class calendar and are
subject to change with notice.
Additional Reference for the
Week/
TOPIC TO BE DISCUSSED topics other than the text book
Date cited above
Week 1 Introduction to System & Network Administration : “Principles of Network and
Scope, goals and duties System Administration” (2nd
Ethics Edition), John Wiley and Sons
Operating Systems: Windows and Unix Variants Ltd, Mark Burgess, 2004.
ASSIGNMENT -1
http://en.wikipedia.org/wi
ki/System_administrator
“Essential System
Administration”, 3rd Edition,
O’Reilly and Associates Inc.,
Ǽleen Frisch, 2003.

Week 2-4 Host Management : “Principles of Network and


Booting and Shutting Down of an Operating System System Administration” (2nd
Installation and configuration of Software Edition), John Wiley and Sons
Installation and configuration of devices and drivers Ltd, Mark Burgess, 2004.
Super user/Administrator Privileges “Essential System
User Management Administration”, 3rd Edition,
Process Management and Monitoring
68
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Maintaining Log Files O’Reilly and Associates Inc.,


File System Repair, Backup and Restoration Ǽleen Frisch, 2003.
Handling Man Pages/ Help System “Principles of Network and
TEST #1 System Administration” (2nd
Edition), John Wiley and Sons
Ltd, Mark Burgess, 2004.
“Essential System
Administration”, 3rd Edition,
O’Reilly and Associates Inc.,
Ǽleen Frisch, 2003.
http://www.ahinc.com/
linux101/users.htm
http://www.doc.ic.ac.uk/
csg/all-OS/quota.html
Week 5 “Principles of Network and
Kernel Customization System Administration” (2nd
Managing Heterogeneous Systems Edition), John Wiley and Sons
Systems Performance Tuning Ltd, Mark Burgess, 2004.
“Essential System
Administration”, 3rd Edition,
O’Reilly and Associates Inc.,
Ǽleen Frisch, 2003.
http://en.wikipedia.org/
wiki/Manual_page_(Unix)
Week 6-7 Network Management : “Principles of Network and
Introduction to Network Administration Approaches System Administration” (2nd
TCP/IP Networking Basics Edition), John Wiley and Sons
Configuring a Linux Box for Networking Ltd, Mark Burgess, 2004.
PROJECT
Week 8-9 Configuring a Linux Box as a Router “TCP/IP Network
Configuring a Web Server (Apache) Administration” (3rd Edition),
Configuring a DNS Server (BIND) O’Reilly and Associates Inc.,
TEST # 2 Craig Hunt, 2002.

Week 10-11 Configuring Mail Transfer Agents (Postfix) http://www.yolinux.com/


Configuring a Proxy Caches (Squid) TUTORIALS/Postfix.html
TCP/IP Troubleshooting: ping, traceroute, ifconfig, netstat,
ipconfig
http://wiki.squid-
ASSIGNMENT -2 cache.org/SquidFaq/
ConfiguringSquid
http://en.wikipedia.org/
wiki/
Broadband_Internet_acces
s
Week 12-13 Host and Network Security : “Principles of Network and
Security Planning & System Audits System Administration” (2nd
Security standards and Levels (ISO 15408 standard)] Edition), John Wiley and Sons
Password Security Ltd, Mark Burgess, 2004.
Access Control and Monitoring: Wrappers “TCP/IP Network
Firewalls Administration” (3rd Edition),
O’Reilly and Associates Inc.,
Craig Hunt, 2002.
Week 14- Automating System Administration : “Principles of Network and

69
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Use of Scripting tools System Administration” (2nd


Edition), John Wiley and Sons
Ltd, Mark Burgess, 2004.
http://pentangle.net/python/
report.pdf

Week 15-16 FINAL EXAM


LAB EXAMINATION
PROJECT EVALUATION

Assessment Arrangements:
List the assessment methods along with weight distribution.
Test #1 10%

Test # 2 10%

Final examination 45.00%

Assignments (two) 10.00%

Lab Examination 10.00%

Project 15%

Total 100%

COURSE HANDBOOK

Name of Institute
[name of the University] [Department/college/school
[Logo]
UNIVERSITY Name]

Department: Computer Science


Module Title: Web Development Module Code: CoSc-M3101

Module ECTS: 7
Course Title: Internet Programming Course Code: CoSc3101

70
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Instructor Name: -------------------- Course ECTS: 7

Instructor’s Contact Information: Course Information:


Office:------------------------ Academic Year: Three
Phone: ----------------------- Semester: II
Email: ----------------------- Meeting day:---
Office Hours:--------------- Meeting time:---
Meeting location:-----

Course Description:
Client-server Architecture: Web page Design and development; information Architecture &
visualization; static & dynamic pages, client side programming using scripting languages
(JavaScript), OOP programming using PHP, File manipulation and Management using PHP.
Multimedia web programming, dynamic web content creation; session tracking; Internet
protocols, PHP Web controls, connecting web page to data base, loading and manipulating XML
documents, web security; cryptography theory.
Course Goals or Learning Outcomes:
By the end of this course, students will be able to:
The objective of this module is to familiarize students: the concepts, principles and
methods in programming for web and Internet environment and the services and
technologies available and used on Internet.
Specifically, at the completion of this module the student is able to
Provide fundamental concepts and skills for the understanding and development of web-
based applications.
Construct Web sites using HTML and Server Side scripting Languages.
Implement client-side interactivity
Use CSS to manage Web site presentation and maintenance
Select and customize existing technologies to set up and maintain web servers
Specify, build and manage form and content of information-rich web sites
Design, implement and evaluate client-server systems following specific protocol
specifications, taking into account concurrency issue.
Prerequisites:
Computer Networking and Data communication
Required Texts:
Summary of Teaching Learning Methods:
The learning–teaching methodology will be student-centered with appropriate guidance of
instructor/s during the students’ activities .There will be
Lecture,
Projects and Presentation
Lab work Tutorials,
Reading assignments and Group Discussions
Summary of Assessment Methods:
The course will be assessed using the different assessment methods like:
Quizzes,
Reading assessments,
Assignments,
Project,
Mid exam and Final exam

71
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Policies on incomplete grade and late assignments:


Homework and project deadlines will be hard. Late homework will be accepted with a 10%
reduction in grade for each class period they are late by. However, once a homework assignment
is discussed in class or the solution is posted, submissions will no longer be accepted. All
assignments must be turned in before the start of class on the due date.

Assignments:
There will be two assignments which will be scrutinized meticulously and graded. Further
detail as to content, process and timing will be provided in due course. Your grade will be based
on satisfactory completion of each of the assignments in a timely manner, and the quality of
work represented by those assignments. A checklist is provided for each assignment.
Assignments must be submitted on the due date given for a particular assignment If not the
student will be penalized 10% of the total mark of the assignment. Assignments for the course
will be 2 main types:
Basic Concept Assignments - These may consist of handouts given by the instructor, discussion
forums, or selected questions out of your textbook.  
Projects - These consist of activities for directly applying and integrating the concepts presented
in the course. In some cases, you will be given a case scenario to use in the development of the
project. These projects will require you to use critical thinking skills, logical analysis, and
creativity. They may be individual or group projects.

9. Student Workload: Taking into consideration that 1ECTS accounts for 27 hours of student
work, the course Internet Programming has 7*27hr=189 hrs the split up is as shown below:-:
Work load Hour
Lectures 48
Laboratory 48
Tutorials 32
Home Study 61
Total 189

10. Polices:
Grading policies
Student grade and performance will be evaluated as the whole activities (tests (quiz) (20%) +lab
exam (20%) +project (20%) +final exam (40%)) =total (100%).
The final score will be converted to a letter grade using the following scale:

Raw mark interval [100%] Corresponding Corresponding Fixed Remark


Letter Grade Number grade
[90,100] A+ 4.00
[85,90) A 4.00
[80,85) A- 3.75
[75,80) B+ 3.50
[70,75) B 3.00
[65,70) B- 2.75
[60-65) C+ 2.50
[50,60) C 2.00
[45,50) C- 1.75

72
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

[40,45) D 1.00
[30,40) FX 0.00
[<30) F 0.00

Schedule:
The following is an outline of the order in which syllabus contents will be covered. The exact
dates and due dates for assignments and exams can be found on the class calendar and are
subject to change with notice.
Week/Date Content Additional Reference
Chapter 1:introduction Donna Baker, “HTML Complete Course”, Hungry
Designing a good website Minds Inc. USA.
Types of web pages (static vs. Internets & World Wide Web How To Program, Third
dynamic), Ed., Author: Deitel, Deitel, and Goldberg, Publisher:
Web page design tools Pearson Education, 2004.
Client Side Scripting HTML, CSS, L.A. Ulrich. Web Design Virtual Classroom.
JavaScript (DOM, DHTML), Applet Osborn.2001
Server Side Scripting PHP Raj Kamal. Internet and web technologies. Tata
McGraw-Hill. 2002
HTML, Black Book, by Holzner
Week 1,2,3,4 Chapter 2: Web page Development L.A. Ulrich. Web Design Virtual Classroom.
using HTML Osborn.2001
What is HTML? Raj Kamal. Internet and web technologies. Tata
HTML tags McGraw-Hill. 2002
creating HTML documents HTML, Black Book, by Holzner
Breaking pages into paragraphs and JavaScript Bible 6th edition by Danny Goodman and
other breaks Michael Morrison
HTML style tag JavaScript for the World Wide Web by Tom Negrino
Lists (ordered and unordered) and and Dori Smith
definition lists Computer Networking with Internet Protocols and
Linking between pages Technology by William Stallings
Uniform resource locator
Linking to a local files (graphical file
or another HTML file)
Linking to the world: Internet sites
Linking to section of a page
Hyper graphics
Address footer and E-mail
Fonts Colors and Colorful and
Textured Backgrounds
Working with tables
Forms And Frames
Cascading Style Sheets (CSS)
CSS Basics
Style Sheet Rules
CSS selectors
Style Properties
Font and Text properties
Foreground and Background properties
Layout and Positioning Properties
73
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Type of CSS Styles


Inline
Embedded
External
Imported
Style Inheritance
Style Rules Precedence
Style Sheet Layers
Measurement units
Introduction to XML

Week 5,6 Chapter 3: Client-Side Scripting HTML, Black Book, by Holzner


Language JavaScript Bible 6th edition by Danny Goodman and
Introduction Michael Morrison
Client-Side Scripting Using JavaScript JavaScript for the World Wide Web by Tom Negrino
Introduction to JavaScript and Dori Smith
JavaScript Basics Computer Networking with Internet Protocols and
Variables ,Expression ,Control Technology by William Stallings
Structure ,Array , Functions
Handling Events and Exception
Handling
User Inputs : Form Processing
Java script Functions
Cookies and Hidden Fields

Week 7,8,9 Chapter 4: Basics of PHP Head First PHP and MySQL, Lynn Beighley and
What is PHP? Michael Morrison, 2009 O’Reilly Media, Inc.
Features of PHP PHP and MySQL Web Development, Luke Welling
Setting up PHP with apache and Laura Thomson, 2008 Addison-Wesley
Basic PHP syntax Professional
4.4.1 PHP comments PHP & MySQL Web development by Luke Welling
4.4.2 Predefined and user and Laura Thomson
variables PHP5 and MySQL Bible by Tim Converse and Joyce
Variable types in PHP Park with Clark Morgan
Retrieve data from html forms
Displaying errors
Using numbers and strings in PHP
Control structures
Conditional and loop statements
Introducing References
References and arrays
Functions
passing arguments by Reference
Functions : returning by Reference
Week 10,11 Chapter 5: Sessions and Cookies Internets & World Wide Web How To Program, Third
management in PHP Ed., Author: Deitel, Deitel, and Goldberg, Publisher:
What are cookies? Pearson Education, 2004.
Create and use cookies. L.A. Ulrich. Web Design Virtual Classroom.
What are sessions? Osborn.2001

74
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Create and use sessions Raj Kamal. Internet and web technologies. Tata
McGraw-Hill. 2002
HTML, Black Book, by Holzner
Chapter 6: Files and Directories Internets & World Wide Web How To Program, Third
Opening files Writing to a file Ed., Author: Deitel, Deitel, and Goldberg, Publisher:
Locking a file Reading a file content Pearson Education, 2004.
Handling file upload L.A. Ulrich. Web Design Virtual Classroom.
Working with directories Osborn.2001
Raj Kamal. Internet and web technologies. Tata
McGraw-Hill. 2002
HTML, Black Book, by Holzner
Week Chapter 7: Data Base manipulation Practical PHP and MySQL, Jono Bacon, 2007 Pearson
12,13,14 using PHP Education, Inc.
Understanding the MySQL Privilege PHP & MySQL Web development by Luke Welling
System in Detail and Laura Thomson
Locking and concurrency PHP5 and MySQL Bible by Tim Converse and Joyce
Speeding up database queries with Park with Clark Morgan
indexes
General optimization tips
Different table types
Loading data from a file· Making your
database more secure
Web security and cryptography theory
Week 15,16 Chapter 8: Object oriented programming The Internet and Its Protocols : A Comparative
in PHP Approach (The Morgan Kaufmann Series in
Creating a class Networking) by Adrian Farrel
Creating an object Inheritance
What is PEAR? Installation of PEAR
Installation of a PEAR package
Using a PEAR package

9. Assessment Arrangements:
List the assessment methods along with weight distribution. (Tests (quiz) (20%) +lab
exam (20%) +project (20%) +final exam (40%)) =total (100%).
Tests, Quizzes, reading assessment and tutorial contributions 20%
Lab Examination 20%
Project 20%
Final Examination 40%
Total 100%
10. Module and course evaluation:
Peer review, questionnaire-based opinion survey, analysis of assessment results.

Name of Institute
[name of the University]
[Logo] [Department/college/school Name]
UNIVERSITY

75
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Department: Computer Science


Module Title: Advanced Programming Module Code: CoSc-M2081

Module ECTS: 23
Course Tile: Object Oriented Course Code: CoSc2082
Programming
Instructor Name: Course ECTS: 6

Instructor’s Contact Information: Course Information:


Office Academic Year:
Phone: Semester:
Email: Meeting day:
Office Hours: Meeting time:
Meeting location:

Course Description:
This programming course emphasizes the methodology of programming from an object-oriented
perspective and software engineering principles. It allows students to develop the ability to
analyses programming problems and design and document suitable solutions and to implement
reliable and robust software using contemporary program design methods. Topics to be dealt
with are: classes: data abstraction, information hiding, overloading; inheritance; polymorphism;
exceptions handling.
Course Goals or Learning Outcome:
Upon successful completion of the course, students will be able to:
Explain the basic object oriented concepts
Successfully code, debug and run programs with appropriate development environment
Work on more advanced programs written in Java
Have clear differentiation between structural and object oriented programming paradigms

Prerequisites:
Fundamentals of Programming II
Required Texts:
Text book:
Deitel & Deitel, Java How to Program. 8th ed. Prentice Hall
Eckel, Bruce. Thinking in Java. 4th Ed. New Jersey: Prentice Hall
Summary of Teaching Learning Methods:
The learning–teaching methodology will be student-centered with appropriate guidance of
instructor/s during the students’ activities .There will be Lecture, Demonstrations, Lab work
Tutorials, Reading assignments and Group Discussions.
The course will follow a rigorous schedule of assignments. Each assignment corresponds to a
section of the course content and textbook. Failure to keep up with the assignments will result in
your failing the course. Each session builds on the prior session and is a required building block
for the following section. It is very difficult for you to be successful in the course if you miss any
class sessions.
Summary of Assessment Methods:
% of Final
Assessment Grade
Quizzes 10

76
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Assignments 15
Lab Assessment 20
Tests 25
Final Exam 30

Student Workload: Taking into consideration that 1ECTS accounts for 27 hours of student
work, the course Object Oriented Programming has 6*27hr=162 hrs the split up is as
shown below:-:
Lecture 48
Tutorials 16
Lab work 48
Private study 50
Total 162

Policies:
Grading policies
Grading scale will be based on the university legislation.
Policies on incomplete grade and late assignments:
Homework and project deadlines will be hard. Late homework will be accepted with a 10%
reduction in grade for each class period they are late by. However, once a homework assignment
is discussed in class or the solution is posted, submissions will no longer be accepted. All
assignments must be turned in before the start of class on the due date.
Schedule:
The following is an outline of the order in which syllabus contents will be covered. The exact
dates and due dates for assignments and exams can be found on the class calendar and are
subject to change with notice.
Week
Topics Reading Assignment
Week 1 Introduction to Object-Oriented
Programming Text # 1: Section 1.9;
Types of programming paradigm Section 1.13; Section
Overview of OO principles 2.2
Overview of Java Programming and types of
Java Program
Definition of Java Application, Java Applets
Editing, Compiling and Interpreting
Week 2 & Basics in Java Programming
3 Variable types and identifiers
Number types, strings, constants
Operators and operator precedence
Type Conversion/ Casting
Week 4 & Decision and Repetition Statements
5 Overview of Java statements
If statement
Switch statement
For loop
While, Do while loop
77
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Week 6 & Objects and Classes


7 Object variables
Defining a class
Instantiating and using objects
Instance fields, Construction and methods
Week 8-11 OOP Concepts
Encapsulation
Inheritance, Method overloading and
overriding
Polymorphism
Abstract classes and Interfaces
Week 12 & Exception Handling
13 Exception handling overview
Syntax
Week 14 Java Applets
&15 Overview of Java Applets
Java Applets Vs Java Application  
Week 16 Final Exam

Module and course evaluation:


Peer review, questionnaire-based opinion survey, analysis of assessment results.

Name of Institute
[name of the University]
[Logo] [Department/college/school Name]
UNIVERSITY
Department: Computer Science
Module Title: Advanced Programming Module Code: CoSc-M2081

Module ECTS: 23
Course Tile: Data Structures and Algorithms Course Code: CoSc2083

Instructor Name: Course ECTS: 6

Instructor’s Contact Information: Course Information:


Office Academic Year:
Phone: Semester: I
Email: Meeting day:
Office Hours: Meeting time:
Meeting location:

Course Description:
This course focuses on the study of data structures, algorithms and program efficiency. Topics
include: analysis of time and space requirements of algorithms; program efficiency improving
techniques, abstract data types such as linked lists, stacks, queues, trees (traversal,
implementations); simple searching algorithms (linear search, binary search, … ), simple sorting

78
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

algorithms (bubble sort, insertion sort, selection sort, … ), advanced sorting algorithms (merge
sort, quick sort, heap sort … )
Course Goals or Learning Outcome:
The course aims:
To introduce the most common data structures like stack, queue, linked list
To give alternate methods of data organization and representation
To enable students use the concepts related to Data Structures and Algorithms to solve real world
problems
To practice Recursion, Sorting, and searching on the different data structures
To implement the data structures with a chosen programming language
Prerequisites:
Fundamentals of Programming II
Required Texts:
Text book:
E. Horowitz, S.Sahni and Dinesh Mehta. Fundamentals of data structures in C++, W.H Freeman
and Company (1995
Sanjay Pahuja, A practical approach to data structures and algorithms, New age International
publishers, 2008
Weiss, Mark. Data structures and algorithm analysis in C, Benjamin Cummings Publishing
(1997)
The Design and Analysis of Computer Algorithms. Aho, Hopcroft, and Ullman
Summary of Teaching Learning Methods:
The learning–teaching methodology will be student-centered with appropriate guidance of
instructor/s during the students’ activities .There will be Lecture, Demonstrations, Lab work
Tutorials, Reading assignments and Group Discussions.
The course will follow a rigorous schedule of assignments. Each assignment corresponds to a
section of the course content and textbook. Failure to keep up with the assignments will result in
your failing the course. Each session builds on the prior session and is a required building block
for the following section. It is very difficult for you to be successful in the course if you miss any
class sessions.

Summary of Assessment Methods:


% of Final
Assessment Grade
Quizzes 10
Assignments 15
Project 20
Tests 25
Final Exam 30
Student Workload: Taking into consideration that 1ECTS accounts for 27 hours of student
work, the course Object Oriented Programming has 6*27hr=162 hrs the split up is as
shown below:-:
Lecture 48
Tutorials 16
Lab work 48
Private study 50

79
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Total 162

Policies:
Grading policies
Grading scale will be based on the university legislation.
Policies on incomplete grade and late assignments:
Homework and project deadlines will be hard. Late homework will be accepted with a 10%
reduction in grade for each class period they are late by. However, once a homework assignment
is discussed in class or the solution is posted, submissions will no longer be accepted. All
assignments must be turned in before the start of class on the due date.
Schedule:
The following is an outline of the order in which syllabus contents will be covered. The exact
dates and due dates for assignments and exams can be found on the class calendar and are
subject to change with notice.
Week
Topics Reading Assignment
Week Chapter 1: Introduction to Data Structures
1(Half) Introduction
Abstract Data Type and Abstraction
Week 1 & Chapter 2 – Algorithm and Algorithm
2 Analysis
Properties of Algorithm
Analysis of Algorithm
Week 3 & Chapter 3: Simple Sorting and Searching
4 Algorithms
Sorting
Selection Sort
Bubble Sort
Insertion Sort
Pointer Sort
Searching
Linear/Sequential Searching
Binary Searching

Week 5-7 Chapter 4: Linked Lists


Review on Pointer, Dynamic Memory
allocation and De-allocation
Singly Linked Lists
Doubly Linked Lists
Implementation of Linked Lists
Week 8 & Chapter 5: Stacks and Queues
9 Basic Stack Operations
Basic Queue Operations
Implementation of Stacks and queues
Week 10 - Chapter 6: Tree Structures
12 Binary Trees and Binary Search Trees
Basic Tree Operations
Traversing in a Binary Tree

80
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

General Trees and Their Implementations


Week 13 Chapter 7: Graphs
Introduction
Describing graphs
Directed Graphs
Traversing a graph
Week 14 & Chapter 8: Advanced Sorting and Searching
15 Sorting
Heap Sort
Quick Sort
Merge Sort
Shell Sort
Advanced Searching
Hashing
Week 16 Final Exam

Module and course evaluation:


Peer review, questionnaire-based opinion survey, analysis of assessment results.

Name of Institute
[name of the University]
[Logo] [Department/college/school Name]
UNIVERSITY
Department: Computer Science
Module Title: Advanced Programming Module Code: CoSc-M2081

Module ECTS: 23
Course Tile: Advanced Programming Course Code: CoSc2084

Instructor Name: Course ECTS: 6

Instructor’s Contact Information: Course Information:


Office Academic Year:
Phone: Semester: I
Email: Meeting day:
Office Hours: Meeting time:
Meeting location:

Course Description:
This course covers topics on Java which includes: AWT and Swing, I/O Streams,
Multithreading, Network Programming, Java database connectivity (JDBC), RMI, and
Introduction to Servlets.
Course Goals or Learning Outcome:

81
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

At the end of this course, students should be able to:


Carry out design and development of complex elements, such as user interfaces, multiprocessing,
and fault-tolerant components;
Write TCP/IP Client Server applications using Sockets;
Write Java applications using the JDBC to make database independent queries; and
Call methods remotely.
Prerequisites:
Object Oriented Programming
Required Texts:
S. Horstmann and Gary Cornell, Core Java 2 – Volume II- Advanced Features, Sun
Microsystems Press
Harvey M. Deitel and Paul J. Deitel, Java How to Program, Deitel & Associates Inc.
java.sun.com/docs/books/tutorial

Summary of Teaching Learning Methods:


The learning–teaching methodology will be student-centered with appropriate guidance of
instructor/s during the students’ activities .There will be Lecture, Demonstrations, Lab work
Tutorials, Reading assignments and Group Discussions.
The course will follow a rigorous schedule of assignments. Each assignment corresponds to a
section of the course content and textbook. Failure to keep up with the assignments will result in
your failing the course. Each session builds on the prior session and is a required building block
for the following section. It is very difficult for you to be successful in the course if you miss any
class sessions.
Summary of Assessment Methods:
Assessment % of Final Grade
Lab assignments 30
Project 20
Tests 20
Final Exam 30

Student Workload: Taking into consideration that 1ECTS accounts for 27 hours of student
work, the course Object Oriented Programming has 6*27hr=162 hrs the split up is as
shown below:-:
Lecture 48
Tutorials 16
Lab work 48
Private study 50
Total 162

Policies:
Grading policies
Grading scale will be based on the university legislation.
Policies on incomplete grade and late assignments:
Homework and project deadlines will be hard. Late homework will be accepted with a 10%
reduction in grade for each class period they are late by. However, once a homework assignment
is discussed in class or the solution is posted, submissions will no longer be accepted. All
assignments must be turned in before the start of class on the due date.
82
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Schedule:
The following is an outline of the order in which syllabus contents will be covered. The exact
dates and due dates for assignments and exams can be found on the class calendar and are
subject to change with notice.
Week
Topics Reading Assignment
Week 1 -3 Chapter 1 - AWT and Swing
Concepts of AWT and Swing
Frame, label, Button, Text Field, Combo Box
JFrame, JLabel, JButton, JtextField,
JComboBox,…
Event Handling
Sources
Listeners
Week 4 & Chapter 2 – Streams and File I/O
5 Streams
Various Stream classes
Using Streams
Object Streams
File Management
Week 6 & Chapter 3 – Multi threading Concept
7 Threads Vs process
Multiple threads
Thread priorities
Synchronization
Week 8 & Chapter 4 – Networking in Java
9 Connecting to a server
Implementing Servers in Java
Sockets, ports, URIs
Week 10 & Chapter 5 – Remote Method Invocation
11 Overview of RMI
The RMI Registry
The Remote Interface
Implementing RMI
Week 12 & Chapter 6 – Java Database Connectivity
13 Database Systems – an Introduction
Structured Query Language
Installing and setting up JDBC
Basic JDBC Programming concepts
Populating a database
Executing Queries
Scrollable and Updateable Result Sets
Week 14 & Chapter 7 – Servlets
15 Servlet Overview and Architecture
Handling HTTP get Request
Handling HTTP get Requests Containing Data
Handling HTTP post request
Redirecting Requests to Other Resources
Multi-Tier Applications: Using JDBC from a

83
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Servlet
Week 16 Final Exam

COURSE HANDBOOK

Name of Institute
[name of the University] [Department/college/school
[Logo]
UNIVERSITY Name]

Department: Computer Science


Module Title :Computer Graphics and Module Code : CoSc-M3121
HCI
Module ECTS: 10
Course Tile: Computer Graphics Course Code: CoSc3121
Instructor Name: Course ECTS: 5

Instructor’s Contact Information: Course Information:


Office Academic Year:
Phone: Semester: III
Email: Meeting day:
Office Hours: Meeting time:
Meeting location:

Course Description:
The aim of this course is to provide a unified introduction to computer graphics and computer
vision for students with an interest in imaging or digital visual arts and to the highest extent,
create animated objects and video game development.
The course primarily introduces both the hardware and software utilized in computer graphics.
The emphasis is on creating a working graphics system from the ground up, but modern models
and applications are also discussed and utilized.
The fundamentals of display hardware and applications, interactive techniques and color models,
study of 3D viewing pipeline, drawing images in OpenGL, 3D polygon rendering and
transformations are discussed shrewdly.
Course provides hands-on experience through programming assignments. Example code and
lecture material will be presented in C++ or Java using the OpenGL API. It is highly
recommended that assignments be completed in C++/Java. You are free to use whatever
language you want, with four caveats discussed here under, unless and otherwise the lecturer
wants the students to work on a selected language due to some reasons:
Setup and debugging help will not be offered for languages other than C or C++.
Code other than C or C++ must run on all of the Windows OS
Instructions for compilation and running of executable must be extra clear.
Partial credit may not be assigned for ”partially working” code.
OpenGL should be installed on all laboratory Windows machines and Linux. Assignments may
be done on either Windows (using Visual Studio .NET or Net beans) or Linux (using gcc/g+
+).OpenGL does not have calls to deal with user interaction, like mouse clicks or opening
windows.
84
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Course Goals or Learning Outcome


Up on the completion of the course, students will be able to:
Have a knowledge and understanding of the structure of an interactive computer graphics
system, and the separation of system components.
Understand the fundamental concepts of Perspective and other types of projections.
Learn geometrical transformations especially 3D transformation.
Be able to create interactive graphics applications.
Learn how to use OpenGL to perform items stated above.
Have a knowledge and understanding of techniques for representing 3D geometrical objects.
Learn line generation and geometrical artifacts.
Have a knowledge and understanding of the fundamental principles of local and global
illumination models.
Learn how to use image applications and use image format appropriately.
Differentiate the difference between Modeling and graphics.
Use openGL to manipulate lighting and shading.
Know how colors are maneuvered in computer.
Understand the fundamental concepts of rendering with openGL.
Model 3D objects using polygons.
Understand non-polygon representation of objects and realize the difference between the above.
Have a knowledge and understanding of the fundamental principles of application modeling.

Prerequisites:
Fundamentals of Programming II
Required Texts:
Text book:
Richard S. Wright et.al. OpenGL® SuperBible: Comprehensive Tutorial and Reference, Fifth
Edition Addison-Wesley Professional
Glen W Rowe, Computer Graphics with Java, PALGRAVE, 2001
Summary of Teaching Learning Methods:
The learning–teaching methodology will be student-centered with appropriate guidance of
instructor/s during the students’ activities .There will be Lecture, Demonstrations, and Tutorials,
Reading assignments, Group Discussions and Lab work.
Summary of Assessment Methods:
The course will be assessed using the different assessment methods like: Quizzes , Reading
assessments, Assignments, Project, Mid exam ,Lab exam and Final exam

Policies on incomplete grade and late assignments:

Students should note that completion of both the programming and theoretical assignments will
be necessary to achieve good grades. There are two things students should be aware of before
penalized for the crime they might commit.
There will be a penalty for late assignments which may amount to 10% per day.
Unless intended to be done in group, assignments are to be completed by the student without
assistance from or collaboration with other persons.
Students should make sure their code is debugged or come up without error (i.e., one should be
able to compile and run without medications to the source code)
Programming projects will have their due dates announced in class or Laboratory session
Assignments:

85
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

The goal of this assignment is to get comfortable with the programming environment you will be
using for this class, familiarize yourself with two simple libraries that we will use for linear
algebra and images. It's an opportunity to know OpenGL Deeply Detail Description will be given
Apply the OpenGL transformations to some simple 3D line drawing (e.g. the unit cube or the
house) and verify that what you expect to happen did indeed happen. Check your results by
directly comparing the matrices you obtain for several combinations with ones produced by calls
to various OpenGL transformations. This is a good way to understand exactly what the OpenGL
operations do
Assume the function void earth (); draws a three dimensional model of the earth with the South
Pole at the origin, the north pole at the point (0; 1; 0), and the Greenwich meridian (0o longitude)
pointing in the z-direction. We are interested in drawing the earth as seen from a point in space
with a given longitude and latitude (specified in degrees) and given distance from the surface of
the earth. We want to be looking down into the

9. Student Workload: Taking into consideration that 1ECTS accounts for 27 hours of
student work, the course Logic in computer science 4*27hr=108 hrs the split up is as shown
below:-:
Lecture 32
Lab 48

Home studies 55
10. Polices:

Considering activities grading:


The final score will be converted to a letter grade using the following scale:
[Grade scale is based on the scale of higher education’s from ministry of education ....]
Schedule:
The following is an outline of the order in which syllabus contents will be covered. The exact
dates and due dates for assignments and exams can be found on the class calendar and are
subject to change with notice.

Schedule Date Unit Topics


Week 1 UNIT 1: Brief History of Computer Graphics
Introduction 3D Graphics Techniques and Terminology
to interactive Common Uses of Computer Graphics
Examples of application areas
computer
graphics
End of Suggested Richard S. Wright et.al. OpenGL® SuperBible:
week 1 Readings Comprehensive Tutorial and Reference, Fifth
Edition Addison-Wesley Professional Chapter 1
.

86
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Week 2, 3 UNIT 2: Raster display systems


Graphics Introduction to the 3D graphics pipeline
hardware The Z Buffer for hidden surface removal

Mid of Suggested Glen W Rowe, Computer Graphics with Java,


week 3 Readings PALGRAVE, 2001. Chapter 2
Week 3,4 UNIT 3: The role of OpenGL in the reference model
Introduction Coordinate systems
to the Viewing using a synthetic camera
Output primitives and attributes.
rendering
process with
OpenGL

End of Suggested Richard S. Wright et.al. OpenGL® SuperBible:


week 4 Readings Comprehensive Tutorial and Reference, Fifth
Edition Addison-Wesley Professional Chapter 3
Glen W Rowe, Computer Graphics with Java,
PALGRAVE, 2001. Chapter 8
Week 5,6 UNIT 4: Point and Lines, Bresenham’s
Geometry and algorithm Generating Circles
Line Plotting General Curves
Line Thickness
Generation
Line Style
Polygons
Filling
Text and Characters

End of Suggested Glen W Rowe, Computer Graphics with Java,


week 6 Readings PALGRAVE, 2001. Chapter 3
Richard S. Wright et.al. OpenGL® SuperBible:
Comprehensive Tutorial and Reference, Fifth
Edition Addison-Wesley Professional Chapter 2
Week 7,8 UNIT 5: 3D transformation
Geometrical Matrix representation
Transformati Homogeneous coordinates
Combination of transformations
ons
End of Suggested Glen W Rowe, Computer Graphics with Java,
week 8 Readings PALGRAVE, 2001. Chapter 4 and 5
Richard S. Wright et.al. OpenGL® SuperBible:
Comprehensive Tutorial and Reference, Fifth
Edition Addison-Wesley Professional Chapter 4

End of Mid examination Mid examination will includes all the topics
week 9 discussed up until now by giving more focus for
87
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

topics that are not included on quizzes


Week 10 UNIT 6: Basic State management
State Displaying Points Lines and Polygons
Management Normal Vector
Vertex Arrays
and Drawing
Geometric
Objects

End of Suggested David Shreiner OpenGL® Programming Guide:


week 10 Readings The Official Guide to Learning OpenGL®,
Versions 3.0 and 3.1, Seventh Edition Chapter 2

Week 11 UNIT 7: Modeling using polygons


Representing Techniques for creating representational
3D objects polygonal meshes
Non-polygonal representations
End of Suggested James Foley, Andries van Dam, Steven Feiner,
week 11 Readings and John Huges Computer Graphics: Principles
and Practice (Second Edition in C.) Addison-
Wesley, 1997. Chapter 5, 6, 7

Week 12 UNIT 8: Color in Computer graphics RGB; CIE


Colors and mage formats and their applications: GIF, JPG,
Images PNG.

End of Suggested David Shreiner OpenGL® Programming Guide:


week 12 Readings The Official Guide to Learning OpenGL®,
Versions 3.0 and 3.1, Seventh Edition Chapter 4
Week 13, UNIT 9: Using the camera model for viewing 3D scenes
14 Viewing A Perspective and other types of projection
local Viewing Types of light source
Reflectance models: diffuse (Lambert) and
illumination
specular (Phong) Gouraud and Phong
model interpolation
Lighting and shading in OpenGL
Textures
Mid of Suggested David Shreiner OpenGL® Programming Guide:
week 14 Readings The Official Guide to Learning OpenGL®,
Versions 3.0 and 3.1, Seventh Edition Chapter 3

Week 14, UNIT 10: Distinction between Modeling and graphics


15 Application Immediate mode versus retained mode Model
modeling Storage Strategies

88
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

The matrix stacks


OpenGL display lists: traversal, Instancing
How the concepts are realized in specific systems:
OpenGL, Java3D
End of Suggested Any Graphics Books
week 15 Readings
week 16 Final All chapters of the course included. Questions
examination items are evenly distributed to all topics , especial
focus made on the topics not covered under
continuous assessments and mid examination
COURSE HANDBOOK
Name of Institute
[name of the University] [Department/college/school
[Logo]
UNIVERSITY Name]

Department: Computer Science


Module Title: Computer Graphics and Module Code: CoSc-M3121
Human Computer Interaction
Module ECTS: 10
Course Tile: Human Computer Course Code: CoSc-3122
Interaction Engineering
Instructor Name: Course ECTS: 5

Instructor’s Contact Information: Course Information:


Office Academic Year: 2010/2011
Phone: Semester: I
Email: Meeting day:
Office Hours: Meeting time:
Meeting location:

Course Description:
A key component to the discipline of Computer Science is the understanding and the advocacy
of the user in the development of CS applications and systems. CS graduates must develop a
mind-set that recognizes the importance of users and organizational contexts. They must employ
user-centered methodologies in the development, evaluation, and deployment of Computer
applications and systems. This requires graduates to develop knowledge of HCI, including but
not limited to such areas as user and task analysis, human factors, ergonomics, accessibility
standards, and cognitive psychology.
Course Goals or Learning Outcomes:
At the end of the course, the student should be able to do the following:
Describe the relationship between the cognitive principles and their application to interfaces and
products.
Explain the conceptual terms for analyzing human interaction with products such as affordance,
conceptual model, and feedback.
Analyze different user populations with regard to their abilities and characteristics for using both
software and hardware products.

89
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Describe the connection between the development of a user interface and the user’s knowledge
of an application domain.
List several of the emerging alternative I/O devices for computers
Prerequisites:
None
Required Texts:
Dix, A., Finlay, J., Abowd, G. and Beale, R. (1997). Human-computer interaction.
Summary of Teaching Learning Methods:
The learning–teaching methodology will be student-centered with appropriate guidance of
instructor/s during the students’ activities .There will be Lecture, Demonstrations, Tutorials,
Reading assignments and Group Discussions
Summary of Assessment Methods:
The course will be assessed using the different assessment methods like: Quizzes , Reading
assessments, Assignments, Project, Mid exam and Final exam

Policies on incomplete grade and late assignments:


Homework and project deadlines will be hard. Late homework will be accepted with a 10%
reduction in grade for each class period they are late by. However, once a homework assignment
is discussed in class or the solution is posted, submissions will no longer be accepted. All
assignments must be turned in before the start of class on the due date.
Assignments:
There will be two assignments which will be scrutinized meticulously and graded. Further
detail as to content, process and timing will be provided in due course. Your grade will be based
on satisfactory completion of each of the assignments in a timely manner, and the quality of
work represented by those assignments. A checklist is provided for each assignment.
Assignments must be submitted on the due date given for a particular assignment If not the
student will be penalized 10% of the total mark of the assignment. Assignments for the course
will be 2 main types:
Basic Concept Assignments - These may consist of handouts given by the instructor, discussion
forums, or selected questions out of your textbook.  
Projects - These consist of activities for directly applying and integrating the concepts presented
in the course. In some cases, you will be given a case scenario to use in the development of the
project. These projects will require you to use critical thinking skills, logical analysis, and
creativity. They may be individual or group projects.

9. Student Workload: Taking into consideration that 1ECTS accounts for 27 hours of
student work, the course Fundamental of Software Engineering has 5*25hr=125 hrs the
split up is as shown below:-:
Lecture 48
Tutorials 16

home 71
10. Polices:
Grading policies
Student grade and performance will be evaluated as the whole activities (tests(%)+lab exam(%)
+project(%)+tests/final exam(%))=total(100%).
Considering activities grading:
The final score will be converted to a letter grade using the following scale:

90
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

[Grade scale to be referred....]


Schedule:
The following is an outline of the order in which syllabus contents will be covered. The exact
dates and due dates for assignments and exams can be found on the class calendar and are
subject to change with notice.
Week/Date TOPIC TO BE DISCUSSED Additional Reference

Week 1-2 Chapter One: Introduction


Definition
Historical background
Chapter Two: Human in HCI
Information input/output
Memory
Reasoning, problem solving, skill and error
Emotion
Individual difference
Week 3-4 Chapter Three: Computer in HCI
Input device
Output device
Virtual reality
Physical interaction
Paper
Memory
Processing
Week 5-6 Chapter Four: Interaction
Introduction
Models of interaction
Ergonomics
Interaction styles
The context of the interactions
Paradigms
Week 7-8 Chapter Five: Interaction Design and HCI in the
Software Process
Interaction Design
HCI in the Software Process
Week 9-10 Chapter Six: Design Rules and Implementation
support
Design Rules
Implementation Support

Week 11- Chapter Seven: Evaluation Techniques and


12 Universal Design
Evaluation Techniques
Universal Design

91
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Week 13- Chapter Eight: User Support


15 Introduction
Requirements of user support
Approaches to user support
Adaptive help systems
Designing user support systems

Week 16 EXAM

11. Assessment Arrangements:


List the assessment methods along with weight distribution.
Test
Final examination
Assignments
Quizzes, reading assessment and tutorial contributions
Lab Examination
Project
12. Module and course evaluation:
Peer review, questionnaire-based opinion survey, analysis of assessment results.

COURSE HANDBOOK

Name of Institute
[name of the University] [Department/college/school
[Logo]
UNIVERSITY Name]

Department: Computer Science


Module Title: Intelligent Systems Module Code : CoSc-M3141
Module ECTS: 10
Course Tile: Logic in Computer Science Course Code: CoSc 3141
Instructor Name: Course ECTS: 4

Instructor’s Contact Information: Course Information:


Office Academic Year:
Phone: Semester: III
Email: Meeting day:
Office Hours: Meeting time:
Meeting location:

92
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Course Description:
The study of basic mathematical logic such as propositional logic and predicate logic is
considered an important theoretical underpinning to any undergraduate computer science course.
The aim of logic in computer science is to develop languages to model the situations we
encounter as computer science professionals, in such a way that we can reason about them
formally. Reasoning about situations means constructing arguments about them; we want to do
this formally, so that the arguments are valid and can be defended rigorously, or executed on a
machine.
This course covers topics such as propositional logic, syntax and semantics of propositional
logic, logical connectives, Truth tables, Tautologies and Contradictions, Valid propositions. The
normal forms: Disjunctive normal form (DNF) and Conjunctive normal form (CNF) will be
discussed. Limitations on propositional logic are also discussed.
The other major to be discussed is predicate logic. In this topic, subtopics such as the need for
predicate logic, Quantifiers: Universal and Existential quantifiers; predicate well-formed
formulas (wffs), valid arguments, and limitations on predicate logic is covered. The course also
covers other topics like Logic programming, some introductory topics on modal logic and other
logics such as Intuitionistic, Lukasiewicz, Probabilistic, and Possibility and Fuzzy logic.
Course Goals or Learning Outcome
By the end of this course, students will be able to:
Identify a proposition from other sentences
Understand logical connectives and finding truth values of compound propositions formed using
logical connectives
Understand the syntax and semantics of propositional and predicate logic.
Prove the validity of propositional well-formed formula, predicate well-formed formula using
rules which are stated and proved and also by applying hypothesis developed through the
argumentation
Know how to represent a given proposition in symbolic form and propositional wff, which
simplifies checking whether the argument is valid or invalid
Understand how to represent a given verbal argument (predicate) in symbolic form and predicate
wff, which simplifies checking whether the argument is valid or invalid
Prerequisites:
None
Required Texts:
Text book:
Huth, Mickael (2004) Logic in computer science 2nd Cambridge university press USA
Judith L. Gersting. Mathematical Structures for Computer Science, W.H. Freeman and Company
New York, 5th ed. (2004) (Required text)
Reference book
S. Burris. Logic for Mathematics and Computer Science, Prentice-Hall, 1998 (Optional)
http://en.wikibooks.org/wiki/Logic_for_Computer_Science (Optional)
http://www.math.uwaterloo.ca/~snburris/htdocs/FALL00/slides.html (Optional)
http://en.wikibooks.org/w/index.php?
title=File:ComputerScienceLogic.png&filetimestamp=20050119053602 (Optional)
http://en.wikipedia.org/wiki/Modal_logic
http://www.mcs.vuw.ac.nz/~rob/papers/modalhist.pdf
Fuzzy Logic Tutorial, http://www.seattlerobotics.org/encoder/mar98/fuz/flindex.html

93
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Dirk van Dalen. The Blackwell Guide to Philosophical Logic.


(http://www.blackwellreference.com/subscriber/uid=3/tocnode?
id=g9780631206934_chunk_g978063120693414
Summary of Teaching Learning Methods:
The learning–teaching methodology will be student-centered with appropriate guidance of
instructor/s during the students’ activities .There will be Lecture, Demonstrations, and Tutorials,
Reading assignments, Group Discussions and Lab work.
Summary of Assessment Methods:
The course will be assessed using the different assessment methods like: Quizzes , Reading
assessments, Assignments, Project, Mid exam ,Lab exam and Final exam

Policies on incomplete grade and late assignments:


Homework and project deadlines will be hard. Late homework will be accepted with a 10%
reduction in grade for each class period they are late by. However, once a homework assignment
is discussed in class or the solution is posted, submissions will no longer be accepted. All
assignments must be turned in before the start of class on the due date.

Assignments:
First assignment is an individual paper work and it is from propositional logic which carries total
weight of 10% and
This assignment tests the students’ ability of
constructing truth tables
checking whether a given proposition is a tautology or not
translating verbal arguments to propositional wff and checking validity of the argument
Second assignment is a group work from predicate logic which carries total weight of 10%
This assignment tests the students’ ability of
translating English statements (verbal arguments) to predicate wff and
checking validity of arguments
Third assignment is a group presentation on Prolog which weighs 5%
It tests the students’ ability:
To construct Prolog database
Inserting appropriate facts and rules to the Prolog database
Applying recursive rules
Finding response for queries from the database

9. Student Workload: Taking into consideration that 1ECTS accounts for 27 hours of
student work, the course Logic in computer science 4*27hr=108 hrs the split up is as shown
below:-:
Lecture 16
Lab 48

Home studies 44
10. Polices:

Considering activities grading:


The final score will be converted to a letter grade using the following scale:
[Grade scale is based on the scale of higher education’s from ministry of education ....]
Schedule:

94
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

The following is an outline of the order in which syllabus contents will be covered. The exact
dates and due dates for assignments and exams can be found on the class calendar and are
subject to change with notice.

Week TOPIC References


1st - .Introduction: Required readings:
Aim of logic in computer Chapter 1. [Michael Huth, Mark Ryan]
science Chapter 1 [S. Burris]
Applications of logic in Guiding questions:
computer science What is a proposition or statement?
Statements/propositions What are the rules assigning truth values to compound
Logical connectives statements using logical connectives
Write rules of assigning truth values for compound
statements formed by each logical connective
Required readings:
Chapter 1 [Judith L. Gersting]
Chapter 2 [S. Burris]
Websites [4], [5]

95
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

2nd - Propositional Logic Guiding questions:


4th Syntax of propositional logic What is the relationship between the number of component
Truth tables statements and rows of truth values in constructing a truth
Propositional wffs table?
Tautologies & contradiction What is tautology, contradiction?
Validity Required readings:
Valid arguments and proofs Chapter 1 [Judith L. Gersting]
Derivation rules for Chapter 2 [S. Burris]
propositional logic Guiding questions:
Deduction method Given some argument, list all the premises (Antecedents)
Additional inference rules and consequent
Verbal arguments
Required readings:
Chapter 2 [Judith L. Gersting]
Chapter 2 [S. Burris]
Websites [4], [5]
Guiding questions:
Given an argument, use the rules of propositional wff, to
prove the validity
Required readings:
Chapter 2 [Judith L. Gersting]
Chapter 2 [S. Burris]
Given a verbal argument,
asking the students to convert it in to propositional wff
check validity of the propositional wff using proof sequence
Required readings:
Chapter 2 [Judith L. Gersting]
Chapter 2 [S. Burris]

96
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

5th - Normal Forms At this time the 1st assignment will be given to the
6th Literal, Term, Clause students
Normal Forms Guiding questions:
Disjunctive Normal Form Given a propositional wff, categorize as :
(DNF) DNF
Conjunctive Normal Form CNF
(CNF) Required readings:
Chapter 1 [Michael Huth, Mark Ryan]
Chapter 2 [S. Burris]

97
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Predicate Logic: Guiding questions:


7 -
th
The need for a richer language Give a simple predicate sentence like “All cats are black”
-9th Quantifiers: and request if possible to represent it as a single atomic
Universal and Existential proposition
quantifiers Required readings:
Predicate logic as formal Chapter 3 [Judith L. Gersting]
language Chapter 2 [S. Burris]
scope of quantifiers, free and Guiding questions:
bound variables Asking oral questions like how to determine scope of
Translation identifiers in a programming language
Validity, Derivation rules for Simple examples of English statements to be translated to
predicate wff (well-formed predicate wff with universal and existential quantifiers
Formula) Required readings:
Proofs on predicate wff Chapter 3 [Judith L. Gersting]
Chapter 2 [Michael Huth, Mark Ryan]
Chapter 2 [7]
Guiding questions:
Asking simple questions to check validity of a predicate wff
from its interpretation
Required readings:
Chapter 3 [Judith L. Gersting]
Chapter 2 [Michael Huth, Mark Ryan]
Chapter 2 [7]
At this time the 2nd assignment will be given to the
students
Guiding questions:
Give verbal arguments with some clues in symbolizing the
argument
Ask proofing validity for simple predicate wffs
Required reading:
Chapter 4 [Judith L. Gersting]

98
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

10th - Logic Programming: Guiding questions:


13th Procedural Vs Declarative How procedural programming languages solve problem?
languages Required reading:
Programming basics Chapter 5 [Judith L. Gersting]
Prolog rules
Horn clauses and resolution Required reading:
Recursion Chapter 5 [Judith L. Gersting]
Expert system At this time the 3rd assignment will be given to the
students for presentation
Guiding questions:
Which mathematical operations have the property
transitivity?
What is a recursive function?
Required reading::
Chapter 5 [Judith L. Gersting]

14th - Introduction to other logics:


15th Modal logic Required reading:
Syntax of modal logic From the reference list [7], [8], [9], [10]
Fuzzy logic Final examination will be given after the topics
Intuitionistic logic Required reading:
Lukasiewicz logic [10] from the reference list
Probabilistic logic [http://en.wikipedia.org/wiki/Intuitionistic_logic]

99
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

9. Assessment Arrangements:
List the assessment methods along with weight distribution.
Quiz
Test
Lab project work
Assignment
Final examination
10. Module and course evaluation:
Peer review, questionnaire-based opinion survey, analysis of assessment results.

Week TOPIC References


1st The purpose of this topic is Guiding questions:
week to raise the interest of What is logic? Who created it? What is its use or
students by discussing some why do we need to study it?
introductory ideas on logic. Required readings:
Introduction: Chapter 1. [Michael Huth, Mark Ryan]
Aim of logic in computer Chapter 1 [S. Burris]
science
Applications of logic in
computer science
2nd The purpose of this topic is Guiding questions:
week to introduce the building What is a proposition or statement?
blocks of propositional logic What are the rules assigning truth values to
Statements/propositions compound statements using logical connectives
Logical connectives Write rules of assigning truth values for
compound statements formed by each logical
connective
Required readings:
Chapter 1 [Judith L. Gersting]
100
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Chapter 2 [S. Burris]


Websites [4], [5]
3rd The purpose of this topic is Guiding questions:
week to make a basis that helps What is the relationship between the number of
checking validity component statements and rows of truth values
Syntax of propositional in constructing a truth table?
logic What is tautology, contradiction?
Truth tables Required readings:
Propositional wffs Chapter 1 [Judith L. Gersting]
Tautologies & contradiction Chapter 2 [S. Burris]
4th The purpose of this topic is Guiding questions:
week to show how we can check Given some argument, list all the premises
validity of an argument (Antecedents) and consequent
Validity
Valid arguments and proofs Required readings:
Derivation rules for Chapter 2 [Judith L. Gersting]
propositional logic Chapter 2 [S. Burris]
Websites [4], [5]
5th The purpose of this topic is Guiding questions:
week to state derivation rules for Given an argument, use the rules of
propositional wff to help propositional wff, to prove the validity
shorten steps for proofing Required readings:
Derivation rules for Chapter 2 [Judith L. Gersting]
propositional logic Chapter 2 [S. Burris]
Deduction method
Additional inference rules
6th The purpose of this topic is Given a verbal argument,
week to create a propositional wff asking the students to convert it in to
from an English statement propositional wff
(Verbal argument) check validity of the propositional wff using
Verbal arguments proof sequence
Required readings:
Chapter 2 [Judith L. Gersting]
Chapter 2 [S. Burris]
7th The purpose of this topic is At this time the 1st assignment will be given to
week to convert a given the students
propositional wff normal Guiding questions:
forms (DNF or CNF) to Given a propositional wff, categorize as :
help easy check for validity DNF
Literal, Term, Clause CNF
Normal Forms Required readings:
Disjunctive Normal Form Chapter 1 [Michael Huth, Mark Ryan]
(DNF) Chapter 2 [S. Burris]
Conjunctive Normal Form
(CNF)
8th The purpose of this topic is Guiding questions:
week to introduce predicate logic, Give a simple predicate sentence like “All cats
to find out advantages of are black” and request if possible to represent it
predicate logic over as a single atomic proposition
101
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

propositional logic Required readings:


The topics to be covered Chapter 3 [Judith L. Gersting]
are: Chapter 2 [S. Burris]
Predicate Logic:
The need for a richer
language, Quantifiers:
Universal and Existential
quantifiers

9th The purpose of this topic is Guiding questions:


week to translate English Asking oral questions like how to determine
language statements as scope of identifiers in a programming language
predicate wff, identify scope Simple examples of English statements to be
of quantifiers, … translated to predicate wff with universal and
The topics to be covered existential quantifiers
are: Required readings:
Predicate logic as formal Chapter 3 [Judith L. Gersting]
language, scope of Chapter 2 [Michael Huth, Mark Ryan]
quantifiers, free and bound Chapter 2 [7]
variables, translation
10th The purpose of this topic is Guiding questions:
week to state & verify rules to Asking simple questions to check validity of a
validate predicate wffs predicate wff from its interpretation
Topics: Required readings:
Validity, Derivation rules Chapter 3 [Judith L. Gersting]
for predicate wff Chapter 2 [Michael Huth, Mark Ryan]
Chapter 2 [7]
11th The purpose of this topic is At this time the 2nd assignment will be given to
week to check validity of a the students
predicate wff and verbal Guiding questions:
arguments involving Give verbal arguments with some clues in
predicate wff symbolizing the argument
Topics: Ask proofing validity for simple predicate wffs
Proofs on predicate wff Required reading:
Chapter 4 [Judith L. Gersting]
12th The purpose of this topic is Guiding questions:
week to introduce logic How procedural programming languages solve
programming, programming problem?
in the Prolog Required reading:
Topics to be covered: Chapter 5 [Judith L. Gersting]
Logic Programming:
Procedural Vs Declarative
languages
Programming basics
Prolog rules
13th The purpose of this topic is
week to introduce rule of Required reading:
inference used by Prolog Chapter 5 [Judith L. Gersting]
Topic:
102
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Horn clauses and resolution


14th
The purpose of this topic is At this time the 3rd assignment will be given to
week to apply recursive definition the students for presentation
to query a database Guiding questions:
Topics: Which mathematical operations have the
Recursion property transitivity?
Expert system What is a recursive function?
Required reading::
Chapter 5 [Judith L. Gersting]

15th
week Topics: Required reading:
Introduction to other logics: From the reference list [7], [8], [9], [10]
Modal logic
Syntax of modal logic
Fuzzy logic
16th Topics: Final examination will be given after the topics
week Intuitionistic logic Required reading:
Lukasiewicz logic [10] from the reference list
Probabilistic logic [http://en.wikipedia.org/wiki/Intuitionistic_logic]

COURSE HANDBOOK

Name of Institute
[name of the University] [Department/college/school
[Logo]
UNIVERSITY Name]

Department: Computer Science


Module Title: Intelligent system Module Code : CoSc-M3141

Module ECTS: 10
Course Tile: Introduction to Artificial Course Code: CoSc 4142
intelligence
Instructor Name: Course ECTS: 5

Instructor’s Contact Information: Course Information:


Office Academic Year:

103
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Phone: Semester: IV
Email: Meeting day:
Office Hours: Meeting time:
Meeting location:

Course Description:
The purpose of this course is to give students an understanding of Artificial Intelligence
methodologies, techniques, tools and results. Students will use at least one AI-language [Lisp,
Prolog]. Students will learn the theoretical and conceptual components of this discipline and firm
up their understanding by using AI and Expert System tools in laboratory sessions, projects and
home assignments
Course Goals or Learning Outcomes:
At the end of this course the students will be able to:
Understand reasoning, knowledge representation and learning techniques of artificial intelligence
Evaluate the strengths and weaknesses of these techniques and their applicability to different
tasks
Assess the role of AI in gaining insight into intelligence and perception
know classical examples of artificial intelligence
know characteristics of programs that can be considered "intelligent"
understand the use of heuristics in search problems and games
know a variety of ways to represent and retrieve knowledge and information
know the fundamentals of artificial intelligence programming techniques in a modern
programming language
consider ideas and issues associated with social technical, and ethical uses of machines that
involve artificial intelligence
Prerequisites:
Logic in computer science
Required Texts:
Text Book;
Russell, S. and P. Norvig (1995) Artificial Intelligence: A Modern Approach Prentice-Hall.
Reference
Luger, G. (2002) Artificial Intelligence, 4th ed. Addison-Wesley.
Bratko, Ivan (1990) PROLOG Programming for Artificial Intelligence, 2nd ed. Addison-Wesley,
1990
Winston, P.H. (1992) Artificial Intelligence Addison-Wesley.
Ginsberg, M.L. (1993) Essentials of Artificial Intelligence. Morgan Kaufman.

Summary of Teaching Learning Methods:


The learning–teaching methodology will be student-centered with appropriate guidance of
instructor/s during the students’ activities .There will be Lecture, Demonstrations, Tutorials,
Reading assignments and Group Discussions
Summary of Assessment Methods:
The course will be assessed using the different assessment methods like: Quizzes , Reading
assessments, Assignments, Project, Mid exam and Final exam

Policies on incomplete grade and late assignments:

Based on University rule


Assignments:

104
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

There will be two assignments which will be scrutinized meticulously and graded. Further
detail as to content, process and timing will be provided in due course. Your grade will be based
on satisfactory completion of each of the assignments in a timely manner, and the quality of
work represented by those assignments. A checklist is provided for each assignment.
Assignments must be submitted on the due date given for a particular assignment If not the
student will be penalized 10% of the total mark of the assignment. Assignments for the course
will be 2 main types:
Basic Concept Assignments - These may consist of handouts given by the instructor, discussion
forums, or selected questions out of your textbook.  
Projects - These consist of activities for directly applying and integrating the concepts presented
in the course. In some cases, you will be given a case scenario to use in the development of the
project. These projects will require you to use critical thinking skills, logical analysis, and
creativity. They may be individual or group projects.

. Student Workload: Taking into consideration that 1ECTS accounts for 27 hours of
student work, the course Fundamental of Software Engineering has 5*25hr=125 hrs the
split up is as shown below:-:
Lecture 32
Lab 48

Home studies 55
. Polices:

Considering activities grading:


The final score will be converted to a letter grade using the following scale:
[Grade scale is based on the scale of higher education’s from ministry of education ....]
Schedule:
The following is an outline of the order in which syllabus contents will be covered. The exact
dates and due dates for assignments and exams can be found on the class calendar and are
subject to change with notice.

Content Week Reference book


CHAPTER 1: Russell, S. and P. Norvig
Introduction to AI week 1 and 2 (1995) Artificial
Objectives/Goals of AI Intelligence: A Modern
What is AI? Approach Prentice-Hall.
Approaches to AI – making computer:
Think like a human ( Thinking humanly)
Act like a human (Acting humanly)
Think rationally (Thinking rationally)
Act rationally (Acting rationally)
The Foundations of AI
Bits of History and the State of the Art
CHAPTER 2: Russell, S. and P. Norvig
Intelligent Agents weeks 3 and 4 (1995) Artificial
Introduction Intelligence: A Modern
Agents and Environments Approach Prentice-Hall.

105
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Acting of Intelligent Agents (Rationality)


Structure of Intelligent Agents
Agent Types
Simple reflex agent
Model-based reflex agent
Goal-based agent
Utility-based agent
Learning agent
Important Concepts and Terms
Russell, S. and P. Norvig
CHAPTER 3: Weeks 5,6,7 and (1995) Artificial
Solving Problems by Searching and 8 Intelligence: A Modern
Constraint Satisfaction Problem Approach Prentice-Hall.
Problem Solving by Searching
Problem Solving Agents
Problem Formulation
Search Strategies
Avoiding Repeated States
Constraint Satisfaction Search
Games as Search Problems
CHAPTER 4: Russell, S. and P. Norvig
Knowledge and Reasoning Weeks 9 and 10 (1995) Artificial
Logical Agents Intelligence: A Modern
Propositional Logic Approach Prentice-Hall.
Predicate (First-Order)Logic
Inference in First-Order Logic
Knowledge Representation
Knowledge-based Systems

Uncertain Knowledge and Reasoning (optional) Russell, S. and P. Norvig


Quantifying Uncertainty weeks 11 and 12 (1995) Artificial
Probabilistic Reasoning Intelligence: A Modern
Probabilistic Reasoning over Time Approach Prentice-Hall.
Making Simple Decisions
Making Complex Decisions

Chapter 5: Weeks 13 and 14 Russell, S. and P. Norvig


Learning (1995) Artificial
Learning from Examples/Observation Intelligence: A Modern
Knowledge in Learning Approach Prentice-Hall.
Learning Probabilistic Models
Neural Networks
Russell, S. and P. Norvig
Communicating, Perceiving, and Acting weeks 15 and 16 (1995) Artificial
Natural Language Processing Intelligence: A Modern
Natural Language for Communication Approach Prentice-Hall.
Perception
Robotics

106
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

9. Assessment Arrangements:
List the assessment methods along with weight distribution.
Quiz
Test
Lab
Project
Final examination
10. Module and course evaluation:
Peer review, questionnaire-based opinion survey, analysis of assessment results.

COURSE HANDBOOK

Name of Institute
[name of the University] [Department/college/school
[Logo]
UNIVERSITY Name]

Department: Computer Science


Module Title: System Development Module Code: CoSc-M3091

Module ECTS: 10
Course Tile: Fundamental of Software Course Code: CoSc 3091
Engineering
Instructor Name: Course ECTS: 5

Instructor’s Contact Information: Course Information:


Office Academic Year:
Phone: Semester: III
Email: Meeting day:
Office Hours: Meeting time:
Meeting location:

Course Description:
This course provides an introduction to the problems of software development and maintenance
and the processes and methods used to address them. All phases in the software development life
cycle will be introduced. The course also deals with software project planning, cost estimation,
tracking and control, staffing, risk management, and software configuration plan.
Course Goals or Learning Outcomes:
At the end of the course, the student should be able to do the following:
Understand the basic principles of Software Engineering
Write requirements specification documents

107
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Design a system, component, or process to meet desired needs.


Verify and validate a Software system practice effective communication skill.
Prerequisites:
None
Required Texts:
Text book:
Ian Sommerville (2011), Software Engineering 8th or later edition. Pearson Education Ltd.
Pressman, Roger (2001), Software Engineering: A Practitioner's Approach. Fifth Edition.
McGraw-Hill.
Pankaj Jalote (2005), An Integrated Approach to Software Engineering, 3rd Edition, Springer.
Fundamental Software Engineering by Rajib Mall 2nd ed, Prentice Hall, india,2004

References
A. Behforooz and F. J. Hudson (1996), Software Engineering Fundamentals, Oxford University
Press.
Schach, Stephen R. (2002), Classical and Object-Oriented Software Engineering, 5th ed. IRWIK
Hoffer, Jeffrey A.; Joey F. George; and Joseph S. Valacicli (1999), Modern Systems Analysis
and Design. Massachusetts: Addison-Weslev.
N.E. Fenton and S.L. Pfleeger (2001), Software Metrics: a regorous & practical approach, 2nd
Edition.
E. Manassis (2004), Practical Software Engineering: analysis and design for .NET plattform,
Addison-Wesley
C. Courage and K. Baxter(2005). A Practical Guide to User Requirements Methods, Tools, and
Techniques, Elsevier Inc
Summary of Teaching Learning Methods:
The learning–teaching methodology will be student-centered with appropriate guidance of
instructor/s during the students’ activities .There will be Lecture, Demonstrations, Tutorials,
Reading assignments and Group Discussions
Summary of Assessment Methods:
The course will be assessed using the different assessment methods like: Quizzes , Reading
assessments, Assignments, Project, Mid exam and Final exam

Policies on incomplete grade and late assignments:


Homework and project deadlines will be hard. Late homework will be accepted with a 10%
reduction in grade for each class period they are late by. However, once a homework assignment
is discussed in class or the solution is posted, submissions will no longer be accepted. All
assignments must be turned in before the start of class on the due date.

Assignments:
There will be two assignments which will be scrutinized meticulously and graded. Further
detail as to content, process and timing will be provided in due course. Your grade will be based
on satisfactory completion of each of the assignments in a timely manner, and the quality of
work represented by those assignments. A checklist is provided for each assignment.
Assignments must be submitted on the due date given for a particular assignment If not the
student will be penalized 10% of the total mark of the assignment. Assignments for the course
will be 2 main types:
Basic Concept Assignments - These may consist of handouts given by the instructor, discussion
forums, or selected questions out of your textbook.  

108
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Projects - These consist of activities for directly applying and integrating the concepts presented
in the course. In some cases, you will be given a case scenario to use in the development of the
project. These projects will require you to use critical thinking skills, logical analysis, and
creativity. They may be individual or group projects.

9. Student Workload: Taking into consideration that 1ECTS accounts for 27 hours of
student work, the course Fundamental of Software Engineering has 5*25hr=125 hrs the
split up is as shown below:-:
Lecture 48
Tutorials 32

Home studies 55
10. Polices:

Considering activities grading:


The final score will be converted to a letter grade using the following scale:
[Grade scale is based on the scale of higher education’s from ministry of education ....]
Schedule:
The following is an outline of the order in which syllabus contents will be covered. The exact
dates and due dates for assignments and exams can be found on the class calendar and are
subject to change with notice.

Week Lecture Topics Reading /Assignments


1 Chapter 1: History and overview Reading: R1: pp 1-18
2- 3 Chapter 2: Software processes Reading: 42-69, R3: pp 1-75, R7:
Software Process pp 1-26 and Time boxing
Software life cycle and process models Assignment: on Software types
Process assessment models and SPM
Software process metrics
4-6 Chapter 3: Requirement Engineering Reading: R1: pp95-210,
Software Requirements R3:pp 79-138, R10, R12 (entire
Requirement Engineering Process book). Assignment: various RE
System Models case studies

7-8 Chapter 4: Software Project management Reading: R1: pp 71-92, R2:pp


Responsibility of Software Project Managers, 53-225, R3:pp207-245 , &
Project Planning, R12(entire book).Assignment:
the organization of SPMP document, Project planning exercises
Project Size Estimation Metrics, Fundamental Software
Project Estimation Techniques, Engineering by Rajib Mall 2nd
Scheduling, Organization and Team Structures, ed, Prentice Hall, india,2004
Staffing, (Chapter 3), page 38-84
Risk Management,
Quality Assurance,
Project Monitoring Plans
9-11 Chapter 5; Software Design Reading: R1: 215-236 & 262-
Software Design 280, R2:335-368, R3: 247-348 &
Software Architectures R10(entire book)
Function Oriented Design Assignment: Case studies

109
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Detailed Design offered in chapter one


12 Chapter 6; Coding Reading: R3:392-456, R8( entire
Programming Principles & guidelines book)
Coding process Assignment: Exercises in
Validation & Verification software Metrics
Metrics
13 Chapter 7; Software Testing Reading: R1:pp417-462, R2:
Testing Fundamentals 437- 472, R3:pp465-502, R11(entire
Black-Box and White-Box testing book)
Testing and Debugging Assignment: Exercises in testing
14 Chapter 8; Software Maintenance Reading: R1: pp605-613
15 Chapter 9: Software tools and environments Reading: R1:p37

9. Assessment Arrangements:
List the assessment methods along with weight distribution.
Quiz
Test
Project
Assignment
Final examination

10. Module and course evaluation:


Peer review, questionnaire-based opinion survey, analysis of assessment results.
COURSE HANDBOOK

Name of Institute
[name of the University] [Department/college/school
[Logo]
UNIVERSITY Name]

Department: Computer Science


Module Title: System Development Module Code: Cosc-M3091

Module ECTS: 10
Course Tile: Object oriented Software Course Code: CoSc 3092
Engineering
Instructor Name: Course ECTS: 5

Instructor’s Contact Information: Course Information:


Office Academic Year:
Phone: Semester: III
Email: Meeting day:
Office Hours: Meeting time:

110
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Meeting location:

Course Description:
Description
Covers O-O concepts, tools, development life cycle, problem solving, modeling, analysis, and
design, while utilizing UML (Unified Modeling Language) for O-O modeling. UML has become
the standard notation for modeling O-O systems and is being embraced by major software
developers like Microsoft and Oracle.
Course Goals or Learning Outcomes:
On successful completion of this module the learner will be able to
Describe in detail the theory, concepts and methods pertaining to the Unified Modeling
Language (UML).
Create requirements using use case modeling concepts.
Demonstrate conceptual and technical skills in the analysis, design and implementation of a
software system using Object Oriented Concepts.
Employ tools and techniques for Object Oriented Software Engineering,
Demonstrate an ability to adapt and solve problems in software development activities from
specification to testing individually and as part of a team.

Prerequisites:
Fundamental of software engineering Cosc-
Required Texts:
Brahmin, Ali(1999), Object oriented System development , McGraw Hill, USA.
References
Scott, Kendall (2004) Fast Track UML 2.0 Apress USA
Booch, Grady Rumbaugh, James Jacobson, Ivar (2005) The Unified Modeling Language User
Guide SECOND EDITION Addison Wesley Professional USA

Summary of Teaching Learning Methods:


The learning–teaching methodology will be student-centered with appropriate guidance of
instructor/s during the students’ activities .There will be Lecture, Demonstrations, Tutorials,
Reading assignments and Group Discussions as well as lab work
Summary of Assessment Methods:
The course will be assessed using the different assessment methods like: Quizzes , Reading
assessments, Assignments, Project, Mid exam and Final exam

Policies on incomplete grade and late assignments:


Homework and project deadlines will be hard. Late homework will be accepted with a 10%
reduction in grade for each class period they are late by. However, once a homework assignment
is discussed in class or the solution is posted, submissions will no longer be accepted. All
assignments must be turned in before the start of class on the due date.

9. Student Workload: Taking into consideration that 1ECTS accounts for 27 hours of
student work, the course Fundamental of Software Engineering has 5*25hr=125 hrs the
split up is as shown below:-:

111
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Lecture 48
Tutorials 32

Home studies 55
10. Polices:

Considering activities grading:


The final score will be converted to a letter grade using the following scale:
[Grade scale is based on the scale of higher education’s from ministry of education ....]
Schedule:
The following is an outline of the order in which syllabus contents will be covered. The exact
dates and due dates for assignments and exams can be found on the class calendar and are
subject to change with notice.

Week Lecture Topics Reading /Assignments


1 UNIT – I: Introduction Ref1 1-11
Introduction.
Two Orthogonal view of software.
Object oriented system development methodology.
why an object oriented
Overview of the unified approach.
An object oriented philosophy
Basic concept of object
Attributes object state and properties.

2- 3 2.1 An overview of UML. Ref1 89-112


2.2 Where Can the UML Be Used?
2.3 Building Blocks of the UML.
2.5 Relationships in the UML
2.4 Diagrams in the UML.
2.4.1 Use Case Diagrams
2.4.2 Class Diagrams
2.4.3 Sequence diagrams
2.4.4 State chart diagrams
2.4.5 Activity diagrams
2.4.6 Component diagram
2.4.7 Deployment diagram
2.5 Diagram extensions

4-6 UNIT – III: Requirements Elicitation


3.1 An overview of requirements elicitation.
3.2 Requirements elicitation concepts
3.2.1 Functional requirements
3.2.2 Nonfunctional and pseudo requirements
3.2.3 Levels of description
3.2.4 Correctness, completeness, consistency,
clarity, and realism
3.2.5 Verifiability and traceability

112
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

3.3 Requirements elicitation activities.


3.3.1 Identifying actors
3.3.2 Identifying scenarios
3.3.3 Identifying use cases
3.3.4 Refining use cases
3.3.5 Identifying relationships among actors and
use cases
3.3.6 Identifying initial analysis objects
3.3.7 Identifying nonfunctional requirements
3.4 Managing requirements elicitation
3.4.1 Eliciting information from users:
3.4.2 Validating requirements: Usability testing
3.4.3 Documenting requirements elicitation

7-9 4.1 An Overview of Analysis. Ref1 125-145


4.2 Analysis Concepts
4.2.1 Entity, Boundary, and Control Objects
4.2.2 Association Multiplicity Revisited
4.2.3 Qualified Associations
4.2.4 Generalization
4.3 Analysis Activities: From Use Cases to
Objects
4.3.1 Identifying Entity Objects
4.3.2 Identifying Boundary Objects
4.3.3 Identifying Control Objects
4.3.4 Modeling Interactions between Objects:
Sequence Diagrams
4.3.5 Identifying Associations.
4.3.6 Identifying Attributes
4.3.7 Reviewing the Analysis Model

10-12 UNIT – V: Object oriented System Design Ref1 199-232


5.1 An overview of system design.
5.2 System design concepts.
5.3 System design activities: From objects to
subsystems
5.4 Documenting system design
5.5 An overview of object design
5.6 Object design concepts
5.7 Object design activities
5.8 Managing object design
5.9 Documenting object design.

12 C UNIT – VI: Software Quality Assurance Ref1 325-352


6 .1 an overview of testing
6.2 Testing concepts
6.3 Testing activities
6.4 Managing testing
6.5 impact of object oriented testing

113
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

9. Assessment Arrangements:
List the assessment methods along with weight distribution.
Quiz
Test
Assignment
Project
Final examination
10. Module and course evaluation:
Peer review, questionnaire-based opinion survey, analysis of assessment results.

COURSE HANDBOOK

Name of Institute
[name of the University] [Department/college/school
[Logo]
UNIVERSITY Name]

Department: Computer Science


Module Title: Distributed Systems Module Code: CoSc-M4191
Module ECTS: 6
Course Tile: Introduction to Distributed Course Code: CoSc4191
Systems
Instructor Name: Course ECTS: 6

Instructor’s Contact Information: Course Information:


Office Academic Year:
Phone: Semester: I
Email: Meeting day:
Office Hours: Meeting time:
Meeting location:

Course Description:
A distributed system is a computer system consisting of several independent computers,
connected by a network, that can work together to perform a task or provide a service. Typical
examples include: the World Wide Web, networked file systems, DNS, and massive
multiprocessor supercomputers.
In this course we aim to provide students with a deeper understanding of distributed systems. In
particular we focus on the principles, techniques, and practices relevant to the design and
implementation of such systems. The course takes a systems-oriented view of distributed
systems, concentrating on infrastructure software and providing hands-on experience
implementing distributed systems.

114
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Course Goals or Learning Outcomes:


After completing this course students will be able to:
Explain what a distributed system is, why they would design a system as a distributed system,
and what the desired properties of such systems are;
List the principles underlying the functioning of distributed systems
describe the problems and challenges associated with distributed systems, and evaluate the
effectiveness and shortcomings of their solutions;
Recognize how the principles are applied in contemporary distributed systems, explain how they
affect the software design
Design a distributed system that fulfills requirements with regards to key distributed systems
properties (such as scalability, transparency, etc.)
Understand and exercise on distributed system software development using basic OS
mechanisms as well as higher-level middleware and languages.
Prerequisites:
Data Communication and Computer Networks, Operating Systems
Required Texts:
Text book: S. Tanenbaum and Maarten van Steen, Distributed Systems,
Principles and Paradigms, 2nd edition, Prentice Hall, 2007

Reference books:
B. A. Forouzan, Data Communications and Networking, McGraw Hill, 3rd edition, 2003
S. Mullender, Distributed Systems, 2nd edition, Addison-Wesley, 1993
K. Birman, Building Secure and Reliable Network Applications, Manning Publications Co.,
1996
Summary of Teaching- Learning Methods:
The teaching- learning methodology will be student-centered with appropriate guidance of
instructor/s during the students’ activities .There will be Lecture, Demonstrations, Lab work
Tutorials, Reading assignments and Group Discussions
Lectures – Each chapter will be preceded by lectures to give the students a touch of the contents.
Tutorials – Tutorial classes on some difficult topics will be offered wherein students will have
the opportunity to ask questions and answer questions posed by the instructor and/or other
students.
Lab Works – Students will have lab practices on most of the topics covered.
Projects – Students will be required to work on a design/implementation of a small to medium
level networks for different organizations.

Summary of Assessment Methods:


The course will be assessed using different assessment methods like: Tests/Quizzes
Assignments, Project, Practical exam and Final exam
Lab works – students performing the lab works successfully in the allocated time will earn full
marks; those who have done the work but not in the specified time and those who have attempted
but not successfully will earn proportional marks; those who do not attempt or do not appear in
the lab session will earn zero marks.
Two Quizzes/Tests – to be distributed evenly through the semester.
One project works – project work assessment will be similar to that of lab work assessment.
Final exam
Two assignments – to be distributed evenly through the semester.

Policies on incomplete grade and late assignments:

115
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Two assignments will be given, while the course is being offered, which will be scrutinized
meticulously and weighted. Further detail as to content, process and timing will be provided in
due course. Your grade will be based on satisfactory completion of each of the assignments in a
timely manner, and the quality of work represented by those assignments. A checklist is provided
for each assignment. Assignments must be submitted on the due date given for a particular
assignment If not the student will be penalized 10% of the total mark of the assignment.

7. Student Workload: Taking into consideration that 1ECTS accounts for 27 hours of
student work, this course has 6*27hr=162 hrs the split up is as shown below:-:
Lecture 48
Discussion 10
Tutorials 16
Project 10
Lab work 48
Private study 20
Assessment 10
Total 162
8. Polices:
Grading policies
Student grade and performance will be evaluated as the whole activities (tests(%)+lab exam(%)
+project(%)+tests/final exam(%))=total(100%).
Considering activities grading:
The final score will be converted to a letter grade using the following scale:

Corresponding Corresponding
Raw Mark
Fixe d Number Status Description
Interval-[100 %] Class Description
Grade Letter Grade
[90,100] 4.0 +
A
First class with
[85, 90) 4.0 A Excellent
[80, 85) 3.75 -
A Great distinction
[75, 80) 3.5 +
B First class with
Very Good
[70, 75) 3.0 B
Distinction

[65, 70) 2.75 -


B Good First class
[60, 65) 2.5 +
C

[50, 60) 2.0 C Satisfactory


Second Class
-
[45, 50) 1.75 C Unsatisfactory
Lower Class
[40,45) 1.0 D Very Poor
Lower Class
[30,40) 0 Fx *Fail
Lowest Class

116
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Fail
Lowest Class
[<30) 0 F

Schedule:
The following is an outline of the order in which syllabus contents will be covered. The exact
dates and due dates for assignments and exams can be found on the class calendar and are
subject to change with notice.
Additional Reference for
the topics other than the
Week/Date TOPIC TO BE DISCUSSED
text book cited above

Week 1 Chapter One: Introduction Distributed Systems,


Introduction Principles and Paradigms,
Definition 2nd edition, Chapter 1
Week 2 1.3 Goals of a Distributed System Distributed Systems,
1.4 Types of Distributed Systems Principles and Paradigms,
2nd edition , Chapter 1
Week 3 Chapter two: Architectures Distributed Systems,
2.1 Architectural Styles Principles and Paradigms,
2.2 System Architectures 2nd edition , Chapter 2

Week 4 Chapter Three: Processes Distributed Systems,


3.1 Introduction to Threads Principles and Paradigms,
3.2 Threads in Distributed Systems 2nd edition, Chapter 3

Week 5 3.3 Clients Distributed Systems,


3.4 Servers Principles and Paradigms,
2nd edition, Chapter 3

Week 6 3.5 Code Migration Distributed Systems,


Principles and Paradigms,
2nd edition, Chapter 3

Week 7 Chapter Four :Communication Distributed Systems,


4.1 Layer protocols Principles and Paradigms,
4.2 Types of Communication 2nd edition, Chapter 4

Week 8 4.3 Remote Procedure Call Distributed Systems,


Principles and Paradigms,
2nd edition, Chapter 4

117
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Week 9 Chapter Five : Naming Distributed Systems,


5.1 Flat Naming Principles and Paradigms,
2nd edition, Chapter 5

Week 10 5.2 Structured Naming Distributed Systems,


Principles and Paradigms,
2nd edition, Chapter 5
Week 11 Chapter 6: Synchronization Distributed Systems,
6.1 Clock Synchronization Principles and Paradigms,
6.2 Logical Clocks 2nd edition, Chapter 6

Week 12 Chapter 7: Consistency and Replication Distributed Systems,


7.1 Reasons for Replication Principles and Paradigms,
7.2 Replication as Scaling Technique 2nd edition, Chapter 7
Week 13 Chapter 8 :Fault Tolerance Distributed Systems,
8.1 Basic Concepts Principles and Paradigms,
8.2 Failure Models 2nd edition, Chapter 8

Week 14 Project Presentation and Evaluation

Week 15 Final Exam

Week 16 FINAL EXAM

9. Assessment Arrangements:
List the assessment methods along with weight distribution.
Test #1 5%
Test # 2 5%
Final examination 40%
Assignments (two) 20%
Lab Examination 10%
Project 20%

118
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Total 100%
10. Module and course evaluation:
Peer review, questionnaire-based opinion survey, analysis of assessment results.

COURSE HANDBOOK

Name of Institute
[name of the University] [Department/college/school
[Logo]
UNIVERSITY Name]

Department: Computer Science


Module Title: Compiler Development Module Code: CoSc-M3111

Module ECTS: 11
Course Title: Formal Language Theory Course Code: CoSc3111

Instructor Name: -------------------- Course ECTS: 5

Instructor’s Contact Information: Course Information:


Office Academic Year:
Phone: Semester:
Email: Meeting day:---
Office Hours: Meeting time:---
Meeting location:-----

Course Description:
This course aims to develop the theoretical foundations of computer science through study
of mathematical and abstract models of computers and the theory of formal languages. It
also, introduces some fundamental concepts in automata theory and formal languages
including grammar, finite automaton, regular expression, formal language, pushdown
automaton, and Turing machine. Not only do they form basic models of computation, they
are also the foundation of many branches of computer science, e.g. compilers, software
engineering, concurrent systems, etc.
Course Goals or Learning Outcomes:
On completion of this course students should be able to:
Introduce concepts in automata theory and theory of computation
Study the central concepts of automata theory
Acquire insights into the relationship among formal languages, formal grammars, and automata.
Identify different formal language classes and their relationships
Design grammars and recognizers for different formal languages
Prove or disprove theorems in automata theory using its properties
Familiar with thinking analytically and intuitively for problem solving situations in related areas
of theory in computer science.
119
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Prerequisites:

Required Texts:
References
An Introduction to Formal Languages and Automata, Third Edition, Peter Linz, 2001
An Introduction to Formal Language Theory that Integrates Experimentation and Proof Allen
Stoughton, 2004.

Summary of Teaching Learning Methods:


The learning–teaching methodology will be student-centered with appropriate guidance of
instructor/s during the students’ activities .There will be
Lecture,
Presentation
Tutorials,
Reading assignments and Group Discussions
Summary of Assessment Methods:
The course will be assessed using the different assessment methods like:
Quizzes,
Reading assessments,
Assignments,
Presentation,
Mid exam and Final exam

Policies
Attendance: It is compulsory to come to class on time and every time. If you are going to miss
more than a couple of classes during the term, you should not take this course.
Assignments: You should submit individual and group assignment son due date, late
assignments won’t entertain.
Tests/Quizzes: You should take all quizzes and assignments as scheduled. If you miss quiz or
assignment without any reason, no makeup will be arranged for you.
Cheating/plagiarism: you must do your own work and not copy and get answers from someone
else.

Assignments:
Weather individual assignment or group assignment should be submitted on time. If a
copied assignment is submitted both the cheaters are going to score 0. If their cheating is
that much visible they may score negative marks.

9. Student Workload: Taking into consideration that 1ECTS accounts for 27 hours of student
work, the course Internet Programming has 5*27hr=135 hrs the split up is as shown below:-:
Work load Hour
Lectures 48
Laboratory 0
Tutorials 0
Home Study 87
Total 135

10. Grading policies

120
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Student grade and performance will be evaluated as the whole activities (tests (quiz) (20%) +lab
exam (20%) +project (20%) +final exam (40%)) =total (100%).
The final score will be converted to a letter grade using the following scale:

Raw mark interval [100%] Corresponding Corresponding Fixed Remark


Letter Grade Number grade
[90,100] A+ 4.00
[85,90) A 4.00
[80,85) A- 3.75
[75,80) B+ 3.50
[70,75) B 3.00
[65,70) B- 2.75
[60-65) C+ 2.50
[50,60) C 2.00
[45,50) C- 1.75
[40,45) D 1.00
[30,40) FX 0.00
[<30) F 0.00
Schedule:
The following is an outline of the order in which syllabus contents will be covered. The exact
dates and due dates for assignments and exams can be found on the class calendar and are
subject to change with notice.
Week/Date Content Additional Reference
Week 1 Introduction Peter Linz, An Introduction to Formal
Alphabets and Strings Languages and Automata, Third
Languages Edition, 2001
Grammars Allen Stoughton, An Introduction to
Automata Formal Language Theory that
Integrates Experimentation and Proof
2004.

Week 2 and 3 Finite automata (FA) -its behavior; The Same Text Books
DFA -Formal definition
Simplified notations (state transition
diagram, transition table), Language of a
DFA.
NFA Equivalence of DFAs and NFAs

Week 4 and 5 Regular expression and regular language -The Same Text Books
and 6 Regular expressions (RE),
RE to FA, FA to RE,
applications of REs.Regular grammars and
FA
FA for regular grammar,
Connection Between Regular Expressions and
Regular Languages
Regular grammar
Pumping lemma and non-regular language
121
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

grammars
Week 7 and 8 Context free languages -The Same Text Books
Context free languages
Parsing and ambiguity
sentential forms
Leftmost and right most derivation
Derivation tree or Parse tree
Definition, Relationship between parse trees
and derivations.

Week 9 and 10 Simplification of context free grammar -The Same Text Books
and 11 Methods for Transforming Grammars
Normal for grammars and parsing
Chomsky’s hierarchy of grammars
Pushdown automata
Non deterministic Pushdown Automata
Pushdown Automata and Context-Free
Languages
Deterministic push down automata and
Deterministic context free language
Properties of context free languages
Week 12 and Turing Machine -The Same Text Books
13 The standard Turing machine
Turing machine as machine accepters
Turing machine as Transducers
Universal Turing Machines

Week 14 and Context sensitive grammars and languages -The Same Text Books
15 Context sensitive languages and Linear
bounded automata
Relation between recursive and context
sensitive languages

Week 16
Final exam

9. Assessment Arrangements:
List the assessment methods along with weight distribution. (quiz’s (quiz I and quiz II)
(20%) +presentation (10%) +assignments(assignment 1 and assignment 2)(20%) +final exam
(50%)) =total (100%).
Item Type Points Weight in %
Quiz I 10 10%
Presentation 10 10%
Assignment I 10 10%
Quiz II 10 10%

122
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Assignment II 10 10%
Final Exam 50 50%
Total 100 100%

10. Module and course evaluation:


Peer review, questionnaire-based opinion survey, analysis of assessment results.

COURSE HANDBOOK
COURSE HANDBOOK

Name of Institute
[name of the University] [Department/college/school
[Logo]
UNIVERSITY Name]

Department: Computer Science


Module Title :Compiler Development Module Code: CoSc-M3111
Module ECTS: 11
Course Tile: Compiler Design Course Code: CoSc 3112
Instructor Name: Course ECTS:6

Instructor’s Contact Information: Course Information:


Office Academic Year:
Phone: Semester: IV
Email: Meeting day:
Office Hours: Meeting time:
Meeting location:

Course Description:
The course builds on the student's core knowledge of languages, grammars and programming
and provides an opportunity to see how these core areas can come together to form an
application area.
Also it imparts the knowledge about the following
To learn basic techniques used in compiler construction such as lexical analysis, top-down and
bottom-up parsing, context-sensitive analysis, and intermediate code generation.
To learn basic data structures used in compiler construction such as abstract syntax trees, symbol
tables, three-address code, and stack machines.
To learn software tools used in compiler construction such as lexical analyzer generators, and
parser generators.
Course Goals or Learning Outcome
By the end of this course, students will be able to:
Implementing a small compiler using modern compiler writing tools.
Providing the student with skills and knowledge (such as lexical analysis and parsing) which are
applicable to a broad range of computer science application areas (such as text editors,
information retrieval, etc...).
123
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Prerequisites:
Formal Language and Automata Theory
Required Texts:
Text book:
Text Books:
T1: Alfred Aho, Ravi Sethi, V.Jeffery Ullman D. “COMPILERS PRINCIPLES, TECHINQUES
AND TOOLS “, Addison- Wesley, 1988.
Reference Books:
R1: Allen Holub l. “Compiler Design in C”, Prentice Hall of India. 1990.
R2: Charles N.Fischer Richard J.Leblanc, “Crafting a compiler with C”, Benjamin Cummings,
1991
Summary of Teaching Learning Methods:
The learning–teaching methodology will be student-centered with appropriate guidance of
instructor/s during the students’ activities .There will be Lecture, Demonstrations, and Tutorials,
Reading assignments, Group Discussions and Lab work.
Summary of Assessment Methods:
Evaluation will carry out based on relevant continuous assessments (class assessments,
assignments and laboratory works) and significantly scheduled and designed final examination.

Policies on incomplete grade and late assignments:


Homework and project deadlines will be hard. Late homework will be accepted with a 10%
reduction in grade for each class period they are late by. However, once a homework assignment
is discussed in class or the solution is posted, submissions will no longer be accepted. All
assignments must be turned in before the start of class on the due date.

Assignments:
Date Assessments Description

End of Assessment one Topics covered: Chapter – 1,2,3


week 5
End of Assessment two Topics covered: Chapter – 4,5,6
week 10
End of Assessment Topics covered : Chapter – 7,8,9,10
week 16 three

Student Workload: Taking into consideration that 1ECTS accounts for 27 hours of student
work, the course Logic in computer science6*27hr=162 hrs the split up is as shown below:-:

Lecture 48
Lab 48

Home studies 66
10. Polices:
Any act of dishonesty in any work constitutes academic misconduct in general.
Particularly, student is strongly encouraged to collaborate with one another in studying the
textbook, the lecture material and laboratory activities while they are not permitted to
collaborate on exams, which results in serious penalty. Laboratory materials (hardware,
software and other accessories) must be handled with exceptional care, severe penalty
124
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

otherwise. Lab attendance is mandatory, and lab attendance will be taken. You must
attend a lab in order to get credit for it.

Weeks Topic Name Textbook& Chapters


Phases of a Compiler

Alfred Aho, Ravi Sethi, V.Jeffery Ullman D.


“COMPILERS PRINCIPLES, TECHINQUES
1,2 AND TOOLS “, Addison- Wesley, 1988.
Computer Language Chapter – 1
Representation
Compiler Construction
Tools
Token Specification
Recognition of Tokens
Recognition machine
NFA to DFA Chapter – 3
3,4,5
Error Recovery
A typical lexical analyzer
generator
DFA Analysis
5-8 Parsing Chapter – 4
Top Down Parsing
Predictive Parsing
Top-down parsing –
Principles of CFG
Regular Expressions Vs
Context Free Grammar
Top-down parsing
implementation-
Recursive Descent Parsing
Non recursive Predictive
Parsing
LL(1) Grammar
Bottom-up parsing
Handles
Stack Implementation of
Shift reduce Parsing
LR parsers-Implementation
– LR Parsing Algorithm

125
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

SLR
Canonical & LALR
Error recovery
Parser generator
Syntax Directed
Translation: Syntax-
Chapter – 5
directed definitions,
9,10
construction of syntax trees
Type Checking: Type
Chapter – 6
systems, type conversions
Intermediate languages –
Three Address Code rules
Quadruples
Declarations
11,12 Chapter – 8
Declarations in procedures
Flow control statements
Back patching
Procedure calls
Symbol table
Hash Tables
13 Chapter – 7
Representing Scope
Information
Introduction to code
Chapter – 10
optimization
Code generation –
Simple Code generator
14,15
Register Allocation
Chapter – 9
DAG representation
Peephole Optimization
Techniques
16 Revision

Name of Institute
[name of the University] [Department/college/school
[Logo]
UNIVERSITY Name]

Department: Computer Science


Module Title: Algorithms and complexity Module Code: CoSc-M3131

Module ECTS: 5
Course Tile: Analysis of Algorithms Course Code: CoSc3131

Instructor Name: Course ECTS: 5

126
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Instructor’s Contact Information: Course Information:


Office Academic Year:
Phone: Semester:
Email: Meeting day:
Office Hours: Meeting time:
Meeting location:

Course Description:
The course focuses on the design and analysis of algorithms. Topics Include: Review of the basic
data structures; Design techniques: divide-and-conquer, dynamic programming, greedy
algorithms, And graph algorithms: Elementary graph algorithms, Breadth-first search (BFS),
Depth-first search (DFS), Strongly-connected components, Minimum spanning tree, Shortest
paths.
Course Goals or Learning Outcomes:
By the end of this course, students will be able to:
perform algorithm analysis using the different techniques;
demonstrate the use of algorithm design techniques; and
describe the basics of computational complexity.
apply advanced searching and sorting algorithms
develop, and reason about the correctness and performance of algorithms, in particular for string
searching and graph manipulation
Prerequisites:
Data Structure & Algorithms

Required Texts:
Text book: Horowitz, E. and S. Sahni, Fundamentals of Computer Algorithms.
Computer
Science Press.

Reference books:
Cormen, T.H. et al. (1990) Introduction to Algorithms. MIT Press and McGraw-Hill
Book Company.
Manna, Z. (1974) Mathematical Theory of Computation McGraw-Hill.
Baase, S. (1988) Computer Algorithms: Introduction to Design and Analysis, 2nd ed.
Addison-Wesley Publishing Company..
Summary of Teaching Learning Methods:
The learning–teaching methodology will be student-centered with appropriate guidance of
instructor/s during the students’ activities .There will be Lecture, Assignment and Tutorials.
Summary of Assessment Methods:
The course will be assessed using the different assessment methods like: Quizzes, Reading
assessments, Assignments, project and Final exam

Policies on incomplete grade and late assignments:


Homework and project deadlines will be strict. Late homework will be accepted with a 10%
reduction in grade for each class period they are late by. However, once a homework assignment
is discussed in class or the solution is posted, submissions will no longer be accepted. All
assignments must be turned in before the start of class on the due date.

127
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Assignments:
There will be two assignments which will be scrutinized meticulously and graded. Further detail
as to content, process and timing will be provided in due course. Your grade will be based on
satisfactory completion of each of the assignments in a timely manner, and the quality of work
represented by those assignments. A checklist is provided for each assignment. Assignments
must be submitted on the due date given for a particular assignment If not the student will be
penalized 10% of the total mark of the assignment. Assignments for the course will be 2 main
types:
Basic Concept Assignments - These may consist of handouts given by the instructor, discussion
forums, or selected questions out of your textbook.  

Projects - These consist of activities for directly applying and integrating the concepts presented
in the course. In some cases, you will be given a case scenario to use in the development of the
project. These projects will require you to use critical thinking skills, logical analysis, and
creativity. They may be individual or group projects.

Student Workload: Taking into consideration that 1ECTS accounts for 27 hours of student
work, the course COMPUTER SECURITY has 5*27hr=135 hrs the split up is as shown
below:-:
Lecture 48
Discussion 0
Tutorials 16
Project 15
Lab work 0
Private study 41
Assessment 15
Total 125
Polices:
Grading policies
Student grade and performance will be evaluated as the whole activities (tests(%)+project(%)
+tests/final exam(%))=total(100%).
Considering activities grading:
The final score will be converted to a letter grade using the following scale:
[Grade scale to be referred....]
Schedule:
The following is an outline of the order in which syllabus contents will be covered. The exact
dates and due dates for assignments and exams can be found on the class calendar and are
subject to change with notice.
Week/Date TOPIC TO BE DISCUSSED Additional Reference for
the topics other than the
text book cited above

Week 1 Introduction and elementary data structures


128
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

order notation
Analysis of algorithm
Week 2 Introduction and elementary data structures
Review of elementary data structures
head and Heap Sort

Week 3 Introduction and elementary data structures


Hashing

QUIZ-1

Week 4 Introduction and elementary data structures


sets representation
UNION, FIND operation.
ASSIGNMENT -1
Week 5 Divide – and – conquer
The General Method,
binary search,
TEST # 1

Week 6 Divide – and – conquer


finding, maximum and minimum
Merge sort

Week 7 Divide – and – conquer


Quick sort
selection sort
QUIZ -2

Week 8 Greedy Model


job sequencing with deadlines –
optimal merge pattern,

Week 9 Greedy Model


minimum spanning trees
Single source shortest pattern.

ASSIGNMENT -2
Week 10
Dynamic Programming and traversal techniques
Multistage graphs, all pairs shortest pattern
Optimal binary search trees

129
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Week 11 Dynamic Programming and traversal techniques .


O/I Knapsack
reliability design,
TEST # 2

Week 12 Dynamic Programming and traversal techniques


travelling sales man problem
game trees,
PROJECT
Week 13 Dynamic Programming and traversal techniques
disconnected components
Depth first search.

Week 14 Back Tracking


8 queens problem,
graph coloring, Hamiltonian cycles

Week 15 Back Tracking


Knapsack problems,
O/I Knapsack problems,
Travelling sales person problems

Week 16 FINAL EXAM


PROJECT EVALUATION

Assessment Arrangements:
List the assessment methods along with weight distribution.
Test #1 10%
Test # 2 10%
Final examination 30%
Assignments (two) 20%
Quizzes, reading assessment and tutorial contributions 15%
Project 15%
Total 100%

130
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

COURSE HANDBOOK

Name of Institute
[name of the University] [Department/college/school
[Logo]
UNIVERSITY Name]

Department: Computer Science


Module Title: Algorithm and Complexity Module Code: CoSc-M3131
Development
Module ECTS: 10
Course Title: Complexity Theory Course Code: CoSc4132

Instructor Name: -------------------- Course ECTS: 5

Instructor’s Contact Information: Course Information:


Office:------------------------ Academic Year: --------
Phone: ----------------------- Semester:
Email: ----------------------- Meeting day:---
Office Hours:--------------- Meeting time:---
Meeting location:-----

Course Description:
Complexity Theory course is to make students to grasp the general and basic knowledge of
Turing Machine and construction of Turing Machine, the importance of time and space
complexities, various notations and theorems of Complexity theory
.Course Goals or Learning Outcomes:
By the end of this course, students will be able to:

Explain Models of Computation, resources (time and space), algorithms, computability, and
complexity.
Understand Complexity classes, P/NP/PSPACE, reductions, hardness, completeness, hierarchy,
relationships between complexity classes.
Learn Randomized computation and complexity; Logical characterizations, incompleteness and
approximately.
Understand Circuit complexity, lower bounds; Parallel computation and complexity; Counting
problems and Interactive proofs.
Learn probabilistically checkable proofs; Communication complexity and Quantum computation
Prerequisites:
Formal Language and Automata Theory
Required Texts:
Text Book:
Complexity Theory: A Modern Approach Sanjeev Arora and Boaz Barak
References:
131
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Computability and Complexity Theory (Texts in Computer Science)


by Steven Homer (Author), Alan L. Selman (Author) Publisher: Springer; 1 edition.
Combinatorial Optimization: Algorithms and Complexity by Christos H. Papadimitriou.
Computational Complexity  C.H. Papadimitriou.  
M. R. Garey & D. S. Johnson.  Computers and Intractability: A Guide to the Theory of NP-
completeness. The classic work on NP-completeness.
D. Z. Du and K. Ko.  Theory of Computational Complexity. An advanced book with lots of
details about many topics.
J.E. Hopcroft and J.D. Ullman.  Introduction to Automata Theory, Languages, and
Computation. Somewhat terse, but a good reference for much of the material we'll be covering
early in the course.
Summary of Teaching Learning Methods:
The learning–teaching methodology will be student-centered with appropriate guidance of
instructor/s during the students’ activities .There will be
Lecture,
Presentation
Reading assignments and Group Discussions
Summary of Assessment Methods:
The course will be assessed using the different assessment methods like:
Quizzes,
Reading assessments,
Assignments,
Final exam

Policies on incomplete grade and late assignments:


Homework deadlines will be hard. Late homework will be accepted with a 10% reduction in
grade for each class period they are late by. However, once a homework assignment is discussed
in class or the solution is posted, submissions will no longer be accepted. All assignments must
be turned in before the start of class on the due date.

9. Student Workload: Taking into consideration that 1ECTS accounts for 27 hours of student
work, the course Internet Programming has 5*27hr=135 hrs the split up is as shown below:-:
Work load Hour
Lectures 48
Tutorials 16
Home Study 71
Total 135

10. Polices:
Grading policies
Student grade and performance will be evaluated as the whole activities (tests (quiz) (40%) +
Assignment (20%) +final exam (40%)) =total (100%).
The final score will be converted to a letter grade using the following scale:

Raw mark interval [100%] Corresponding Corresponding Fixed Remark


Letter Grade Number grade
[90,100] A+ 4.00

132
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

[85,90) A 4.00
[80,85) A- 3.75
[75,80) B+ 3.50
[70,75) B 3.00
[65,70) B- 2.75
[60-65) C+ 2.50
[50,60) C 2.00
[45,50) C- 1.75
[40,45) D 1.00
[30,40) FX 0.00
[<30) F 0.00

Schedule:
The following is an outline of the order in which syllabus contents will be covered. The exact
dates and due dates for assignments and exams can be found on the class calendar and are
subject to change with notice.
Week/Date Content Additional Reference
Week 1,2,3 CHAPTER I: Turing Machine (TM)
Standard TM
Construction of TMs
Week 4,5,6,7 CHAPTER II: Undecidability
Turing Decidable
Turing Acceptable
Undecidable Problems

Week CHAPTER III: Computability


8,9,10,11 Recursive Functions
Recursive Languages
Recursively Enumerable Languages
Week CHAPTER IV: Computational
12,13,14,15 Complexity
Big-O Notation
Class P versus Class NP
Polynomial Time Reduction and NP-
Complete Problems
Cook’s Theorem
Week 16 Final Exam

9. Assessment Arrangements:
List the assessment methods along with weight distribution. (Tests (quiz) (20%) +lab
exam (20%) +project (20%) +final exam (40%)) =total (100%).
Tests, Quizzes, reading assessment and tutorial contributions 40%

133
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Assignment 20%
Final Examination 40%
Total 100%
10. Module and course evaluation:
Peer review, questionnaire-based opinion survey, analysis of assessment result

COURSE HANDBOOK

Name of Institute
[name of the University] [Department/college/school
[Logo]
UNIVERSITY Name]

Department: Computer Science


Module Title: Computer Security Module Code: CoSc-M4171

Module ECTS: 5
Course Tile: Computer Security Course Code: CoSc4171

Instructor Name: Course ECTS: 5

Instructor’s Contact Information: Course Information:


Office Academic Year:
Phone: Semester: II
Email: Meeting day:
Office Hours: Meeting time:
Meeting location:

Course Description:
To familiarize students with the security issues and technologies involved in modern information
systems, including computer systems and networks and the various ways in which information
systems can be attacked and tradeoffs in protecting networks.
Course Goals or Learning Outcomes:
By the end of this course, students will be able to:
Understand the basic concepts in information security, including security attacks/threats, security
vulnerabilities, security policies, security models, and security mechanisms
Understand the concepts, principles and practices related to elementary cryptography, including
plain-text, cipher-text, the four techniques for crypto-analysis, symmetric cryptography,
asymmetric cryptography, digital signature, message authentication code, hash functions, and
modes of encryption operations.
Understand issues related to program security and the common vulnerabilities in computer
programs; including buffer overflow vulnerabilities, time-of-check to time-of-use flaws,
incomplete mediation.
Explain and compare security mechanisms for conventional operating systems, including
memory, time, file, object protection requirements and techniques and protection in
contemporary operating systems.

134
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Understand the basic requirements for trusted operating systems, and describe the independent
evaluation, including evaluation criteria and evaluation process.
Describe security requirements for database security, and describe techniques for ensuring
database reliability and integrity, secrecy, inference control, and multi-level databases.
Describe threats to networks, and explain techniques for ensuring network security, including
encryption, authentication, firewalls, and intrusion detection.
Explain the requirements and techniques for security management, including security policies,
risk analysis, and physical threats and controls.
Prerequisites:
Data Communications and Computer Networks (CoSc2061)
Required Texts:
Text book: Security in Computing, Charles P. Pfleeger and Shari L. Pfleeger. (3rd
edition).Prentice-Hall. 2003. ISBN: 0-13-035548-8.
Reference books:
Computer Security, DicterGouman, John Wiley & Sons
Computer Security: Art and Science, Mathew Bishop, Addison-Wesley
Principles of Information Security, Whitman, Thomson.
Network security, Kaufman, Perl man and Speciner, Pearson Education
Cryptography and Network Security, 5th Edition William Stallings, Pearson Education
Introduction to Cryptography, Buchmann, Springer.
Summary of Teaching- Learning Methods:
The teaching-learning methodology will be student-centered with appropriate guidance of
instructor/s during the students’ activities .There will be Lecture, Tutorials, Reading
assignments,presentationand Group Discussions.
Lectures – Each chapter will be preceded by lectures to give the students a touch of the contents.
Tutorials – Tutorial classes on some difficult topics will be offered wherein students will have
the opportunity to ask questions and answer questions posed by the instructor and/or other
students.
Projects – Students will be required to work on designing security policy for small to medium
level networks of different organizations.
Summary of Assessment Methods:
The course will be assessed using different assessment methods like: Tests/Quizzes
Assignments, Project, Practical exam and Final exam
Two Quizzes/Tests – to be distributed evenly through the semester.
One project works – project work assessment will be similar to that of lab work assessment.
Final exam
Two assignments – to be distributed evenly through the semester.
Policies on incomplete grade and late assignments:
Two assignments will be given, while the course is being offered, which will be scrutinized
meticulously and weighted. Further detail as to content, process and timing will be provided in
due course. Students’ grade will be based on satisfactory completion of each of the assignments
in a timely manner, and the quality of work represented by those assignments. A checklist is
provided for each assignment. Assignments must be submitted on the due date given for a
particular assignment If not the student will be penalized 10% of the total mark of the
assignment.
Assignments for the course will be two main types:
Basic Concept Assignments - These may consist of handouts given by the instructor, discussion
forums, or selected questions out of your textbook.  

135
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Projects - These consist of activities for directly applying and integrating the concepts presented
in the course. In some cases, you will be given a case scenario to use in the development of the
project. These projects will require you to use critical thinking skills, logical analysis, and
creativity. They may be individual or group projects.

7. Student Workload: Taking into consideration that 1ECTS accounts for 27 hours of
student work, this course has 5*27hr=135hrs the split up is as shown below:-:
Lecture 48
Discussion 16
Project 20
Private study 36
Assessment 15
Total 135
8. Polices:
Grading policies
Student grade and performance will be evaluated as the whole activities (tests(%)+lab exam(%)
+project(%)+tests/final exam(%))=total(100%).
Considering activities grading:
The final score will be converted to a letter grade using the following scale:

Corresponding Corresponding
Raw Mark
Fixe d Number Status Description
Interval-[100 %] Class Description
Grade Letter Grade
[90,100] 4.0 +
A
First class with
[85, 90) 4.0 A Excellent
[80, 85) 3.75 -
A Great distinction
[75, 80) 3.5 +
B First class with
Very Good
[70, 75) 3.0 B
Distinction

[65, 70) 2.75 -


B Good First class
[60, 65) 2.5 +
C

[50, 60) 2.0 C Satisfactory


Second Class
-
[45, 50) 1.75 C Unsatisfactory
Lower Class
[40,45) 1.0 D Very Poor
Lower Class
[30,40) 0 Fx *Fail
Lowest Class
Fail
Lowest Class
[<30) 0 F
Schedule:

136
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

The following is an outline of the order in which syllabus contents will be covered. The exact
dates and due dates for assignments and exams can be found on the class calendar and are
subject to change with notice.
Additional Reference for
the topics other than the
Week/Date TOPIC TO BE DISCUSSED
text book cited above

Week 1 Introduction Computer Security: Art


Basic concepts: threats, vulnerabilities, controls; risk; and Science, Mathew
confidentiality, integrity Bishop, Addison-
Wesley --Ch1
Week 2 Availability; security policies, security mechanisms; Computer Security: Art
assurance; prevention, detection, deterrence and Science, Mathew
Assignment-1 Bishop, Addison-
Wesley --Ch1
Week 3 Basic cryptography: Cryptography and
Basic cryptographic terms Network Security, William
Historical background Stallings, 5th Edition
Symmetric and Public Key Cryptography Pearson Education
Symmetric key cryptography
One time pads
Stream vs. block ciphers
Block cipher modes
Example symmetric key algorithms
DES
Triple DES (two variants)
AES
QUIZ-1
Week 4 Public key cryptography Cryptography and
One-way functions Network Security, William
RSA Stallings, 5th Edition
Pearson Education

Week 5 Asymmetric crypto primitives Cryptography and


Cryptographic hash functions Network Security, William
Stallings, 5th Edition
Pearson Education

Week 6 Program security Principles of Information


Program Security Overview Security, Whitman,
Flaws Thomson
Malicious code: viruses, Trojan horses, worms
Program flaws: buffer overflows, time-of-check to
time-of-use flaws, incomplete mediation
Controls to protect against program flaws in execution:
operating system support and administrative controls
Program Security Defenses: Software development
137
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

controls and Testing techniques


Week 7 Security in conventional operating systems Network security,
Memory, time, file, object protection requirements and Kaufman, Perl man and
techniques Speciner, Pearson
Education
Week 8 Protection in contemporary operating systems Principles of Information
Identification and authentication Security, Whitman,
Identification goals Thomson
Authentication requirements
Human authentication
Machine authentication
ASSIGNMENT -2
Week 9 Designing Trusted Operating Systems Principles of Information
What makes an operating system "secure"? Or Security, Whitman,
"trustworthy"? Thomson
How are trusted systems designed, and which of those
design principles carry over naturally to other program
development tasks?
How do we develop "assurance" of the correctness of a
trusted operating system?

Week 10 Database management systems security Principles of Information


Database security Overview Security, Whitman,
Database security requirement Thomson.
Database integrity
Database secrecy
Inference control
Multilevel databases
TEST # 2
Week 11 Network security Network security,
Networks vs. stand-alone applications and Kaufman, Perl man and
environments: differences and similarities Speciner, Pearson
Threats against networked applications, including Education
eavesdropping, spoofing, modification, denial of
service, web site defacements, malicious mobile code,
and protocol attacks
Controls against network attacks:
physical security, policies and procedures, and a range
of technical controls
Firewalls: design, capabilities, limitations
Intrusion detection systems
Virtual Private Networks
Private e-mail: PGP and S/MIME
PROJECT
Week 12 Controls against network attacks: Network security,
physical security, policies and procedures, and a range Kaufman, Perl man and
of technical controls Speciner, Pearson
Firewalls: design, capabilities, limitations Education
138
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013

Intrusion detection systems


Virtual Private Networks
Private e-mail: PGP and S/MIME
PROJECT
Week 13 Administering security Principles of Information
Security planning Security, Whitman,
Risk analysis Thomson
Security policies
Physical security
Week 14 The Economics of Cyber security Principles of Information
Making an economic case for security Security, Whitman,
Measuring and quantifying economic value Thomson
Modeling the economics of cyber security

Week 15 Revision Week

Week 16 FINAL EXAM


PROJECT EVALUATION

9. Assessment Arrangements:
List the assessment methods along with weight distribution.
Test #1 10%

Test # 2 10%

Final examination 40%


Assignments (two) 20%
Project 20%
Total 100%
10. Module and course evaluation:
Peer review, questionnaire-based opinion survey, analysis of assessment results.

139

You might also like