0% found this document useful (0 votes)
513 views113 pages

CS Curriculum

Bahir Dar University Faculty of Engineering Curriculum for B.Sc Degree in Computer Science (Four Years Program) Department of Computer Science & Engineering Faculty of Engineering Bahir Dar University October 2008 Curriculum of Computer science 4 - Years Degree (Regular) Table of Contents 1. 2. 3. 4. 5. 6. Page BACKGROU D..................................................................................................................... 3 Rationale ........................................
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
Download as pdf or txt
0% found this document useful (0 votes)
513 views113 pages

CS Curriculum

Bahir Dar University Faculty of Engineering Curriculum for B.Sc Degree in Computer Science (Four Years Program) Department of Computer Science & Engineering Faculty of Engineering Bahir Dar University October 2008 Curriculum of Computer science 4 - Years Degree (Regular) Table of Contents 1. 2. 3. 4. 5. 6. Page BACKGROU D..................................................................................................................... 3 Rationale ........................................
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
Download as pdf or txt
Download as pdf or txt
You are on page 1/ 113

Bahir Dar University

Faculty of Engineering

Curriculum for B.Sc Degree in Computer Science


(Four Years Program)

Department of Computer Science & Engineering


Faculty of Engineering
Bahir Dar University

October 2008
Curriculum of Computer science 4 - Years Degree (Regular)

Table of Contents Page


1. BACKGROU D..................................................................................................................... 3
2. Rationale ................................................................................................................................ 3
3. Program Objectives................................................................................................................ 4
4. Staff Profile ............................................................................................................................ 5
Table-: Present Staff members of Computer Science & Eng Department ................................. 5
5. Graduate Profile..................................................................................................................... 5
6. Expected Outcomes of the Program...................................................................................... 6
7. Teaching/Learning strategies: ............................................................................................... 7
8. Academic Requirements ........................................................................................................ 8
8.1. dmission Requirements...................................................................................................... 8
8.2. Duration of the Study......................................................................................................... 8
8.3. Assignment of Course Code............................................................................................... 8
8.4. Assessment and Evaluation ............................................................................................. 10
8.5. Graduation Requirements ............................................................................................... 10
8.6. Degree omenclature ...................................................................................................... 10
9. Mechanisms of Quality Assurance...................................................................................... 11
10. List of Courses.................................................................................................................. 11
11. Course Breakdown per Semester..................................................................................... 14
12. Course Descriptions ......................................................................................................... 22
12.1. Core and Elective Courses........................................................................................... 22
12.2. Elective Courses:.......................................................................................................... 76
12.3. Supportive Courses .......................................................................................................... 94
13. MATERIAL RESOURCE REQUIREME T............................................................... 112
13.1. Lecture/Classroom Requirement............................................................................... 112
13.2. ther hardware requirement........................................................................................ 112
13.3. Computer requirement............................................................................................... 113

Department of CS & Engineering 18/11/2009 2


Curriculum of Computer science 4 - Years Degree (Regular)

1. BACKGROUND

The rapid growth in the development of computer hardware, software, information technology
and its widespread applications in all aspects of life created a considerable demand for computer
graduates in all specializations. Computer science is concerned with the study of the hardware,
software, and theoretical aspects of high-speed computing devices and with the application of
these devices to scientific, technological, and business problems. A bachelor’s degree gives
students a basic understanding of computer science. After completing a required set of
fundamental courses, students arrange their subsequent work around one of several upper
division emphases within either computer science or an interdisciplinary area involving
computer applications. The degree prepares students for graduate work or for various industrial,
governmental, and business positions involving the use of computers.

The program outlined below is therefore prepared partly in response to the initiative and partly
to address the ever-increasing demand for Computer professionals in the various sectors by
producing skilled workforce capable of taking up positions at various levels in the areas of
software engineering, database management and networking. It is designed for offering in four
years after freshman year or in line with the new education policy where students are expected
to join departments of their choice after completing 10+2.

2. Rationale

The basic rationale for program is the prevailing conditions in the Country with respect to the
needs for professionals in this area and the future trends that are developing in the demands
for the profession. The Department has been keenly following the developments in this regard
both within the Country and internationally and the following provide some of the major facts
and observations on which these programs premised.
Over these years the undergraduate instructions have significantly developed - reflecting both
the national needs and the rapid growth of the discipline - and have now reached a point where
graduates of its undergraduate program are equipped with sufficient theoretical and practical
skills that would enable them to be engaged in work.

Ethiopia, like many of the developing countries, is essentially a user of products of computer

Department of CS & Engineering 18/11/2009 3


Curriculum of Computer science 4 - Years Degree (Regular)

technology. The current undergraduate program, which has matured through a series of
evolutionary changes over the years, is designed so as to meet the needs of the main employers
of the graduates in the operation and maintenance of electrical and electronic equipment and
machines. To meet these needs the program is made broad enough to cover most major. But it
has now become necessary to look ahead to the future needs of the country and provide
educational means to meet these needs.

The convergence of computers & communication technologies has made it imperative to provide
education that imports knowledge & skill in these two fields concurrently.
The training provided should be versatile and enables graduates to work in research, design,
development, manufacturing, quality control, marketing, sales and technical support, and as
entrepreneurs, consultants and teachers.

3. Program Objectives
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.
- Provide students with computer knowledge and academic background based on
internationally recognized academic standards.
- Encourage research and development in computer related fields.
- Provide an environment in which students are exposed to the ethical and legal
- Issues that is associated with the computing field.
- Offer staff members a motivating environment within which they can be a tutor,
researcher, trainer, expert and practitioner

Department of CS & Engineering 18/11/2009 4


Curriculum of Computer science 4 - Years Degree (Regular)

4. Staff Profile

$o. $ame Qualific Position Specialization Remark


ation
1 Ato Biazen Molla Brhane MSc Lecturer Computer
Engineering
2 Ato Tesfa Tegegne Asfaw MSc Lecturer Computer
Science
4 Mr. M. Prathap M. C. A. Lecturer Computer
Application
5 Teferi Seifu Melka MSc Lecturer Bio Informatics
6 Ato Gatenet Mamo BS.c Assistant Computer Msc study
Lecturer Science
7 Ato Selamneh Belete BS.c Assistant Computer Msc study
Lecturer Science
8 Mekonen Fantaw Bsc Assistant Computer Msc study
Lecturer Science
9 Ato Desta Berihu BS.c Assistant Computer Msc study in
Lecturer Science Com.Science
10 Lisanu Tebikew Yalew BS.c G. Assistant I Computer
Science
11 Abraham Belay Alemu BS.c G. Assistant I Computer
Science
12 Eyob Gebretinsae Beyene BS.c G. Assistant I Computer
Science
13 Ato Workineh Chekole Advance Technical ICT
Diploma Assistant II
14 W/rt Kasanesh Meshesha Diploma Technical Computer
Assistant II Science
Alitha
15 Ato Alemu Kumlachew BS.c G. Assistant I Business
Educ.(IT)

5. Graduate Profile
The Graduate of the Program would be able to:
1. Elicit/determine user information requirements.
2. Continue their studies in advanced concepts in the field of Computer Science.
3. Design, develop and maintain application software.
4. Design, set up and administer computer networks.

Department of CS & Engineering 18/11/2009 5


Curriculum of Computer science 4 - Years Degree (Regular)

5. Design, develop and administer databases.


6. Participate actively in the establishment and management of computer-based information
systems.
7. Participate in research activities.
8. Serve as graduates and/or research assistants in higher education institutions.
9. Understand the concept of professional practice, innovation and enterprise.
6. Expected Outcomes of the Program

The department concerned with all of the outcomes suggested in the curriculum guide line
document of computing programs.

Cognitive Abilities: To provide students with:

 Knowledge and understanding of the essential facts, concepts, principles and theories
relating to computer science.
 A good knowledge of how knowledge and understanding of essential facts, concepts,
principles and theories relating to computer science can be used to model and design
computer system.
 An in depth understanding the appropriate theory, practices, languages and tools that may be
deployed for specification, design, implementation, and evaluation of software systems.
 Knowledge of how to present succinctly (orally, electrically or in writing) rational and
reasoned arguments that address a given problem to be solved by computer.
 An ability to apply knowledge of computing and mathematics appropriate to the discipline.
 An ability to analyze a problem, and identify and define the computing requirements
appropriate to its solution.

Practical Abilities: To provide students with the ability to:

 Specify, design and construct computer systems in a manner that is both innovative and
creative.
 Critically evaluate and analyze computer systems (including any risks or safety aspects that
may be involved in their operation).
 Deploy effectively the tools used for the construction and documentation of computer
systems, with practical emphases on understanding of the whole process involved in the
effective deployment of computers to solve practical problems.

Department of CS & Engineering 18/11/2009 6


Curriculum of Computer science 4 - Years Degree (Regular)

 An ability to design, implement and evaluate a computer-based system, process, component,


or program to meet desired needs.

Transferable skills: To provide students with:

 A good foundation in basic numeracy


 The ability to manage their own learning and development, and time management and
organizational skills.
 An appreciation of the need for continuing professional development in recognition for the
need for lifelong learning.
 An ability to function effectively on teams to accomplish a common goal.
 An understanding of professional, ethical, legal, security, and social issues and
responsibilities.
 An ability to communicate effectively with a range of audiences.
 An ability to analyze the local and global impact of computing on individuals, organizations
and society.
 Recognition of the need for, and an ability to engage in, continuing professional
development.
 An ability to apply mathematical foundations, algorithmic principles, and computer science
theory in the modeling and design of computer-based systems in a way that demonstrates
comprehension of the tradeoffs involved in design choices.
 Be prepared to enter a top-ranked graduate program in Computer Science.

7. Teaching/Learning strategies:

 Cognitive abilities: The knowledge required for the basic topics is obtained via Lectures,
exercises, practical, assignments and project work. Appropriate IT and other software
packages are taught. Practical demonstrator and project supervisors advise students, and
feedback is provided on all continually assessed work. As the course progresses students are
expected to show greater initiative.
 Practical Abilities: Practical abilities are developed mostly through the “project stream”
which commences in the first year of study with small individual exercises, continues into
the second year and third year with a group project and is completed in the final year with an
individual project. The further development of the program practical skills also forms part of
other streams of study making up the program.
 Transferable Skills: Software tools are taught partly in lectures, mainly through practical
sessions and assignments. Data skills are acquired in laboratory and projects, as are team

Department of CS & Engineering 18/11/2009 7


Curriculum of Computer science 4 - Years Degree (Regular)

working, time management and presentations. Use of information resources, such as the
library and IT methods experienced through projects and assignments.

8. Academic Requirements
8.1. admission Requirements
General National University Entry Requirement
8.2. Duration of the Study
• Students will not take different Computing courses at their high school study
• The nature of the discipline needs many practical works
Considering the above facts, program objectives and graduate profile, under normal
circumstances, four years of study are required to complete the program.
8.3. Assignment of Course Code
The course coding system has the following features
• The first four English letters(the first capital letter) represents the degree programme,
e.g. Comp represents Computer Science
• The three numeric letters represented by XYZ, represent the course number and reveals
the following features
o The first number represents the year i.e. 1 for 1st Year, 2 for 2nd Year and so on.
o The second number represents the course module names as given below.
o The third number represents the semester. If it is odd like 1, 3,…, it designate a
first semester course and if it is even like 2,4,…, it reveals that the course is given
in the second semester.
The course required for the completion of B. Sc. Degree in computer Science is divided into 10
categories based on their characteristics as described below.
0. General
a. Computer Science
1. Programming
a. Fundamentals of Programming I
b. Fundamentals of Programming II
c. Object Oriented Programming
d. Advanced Programming
e. System Programming
f. Internet Programming

Department of CS & Engineering 18/11/2009 8


Curriculum of Computer science 4 - Years Degree (Regular)

g. Visual Programming
2. Information Management/Database Management
a. Fundamentals of Database Systems
b. Advanced Database Systems
c. Information Storage and Retrieval
d. Introduction to Data Mining and Data Warehousing
3. System Development and Software Engineering
a. Software Engineering
b. System Analysis and Design
c. Requirement Engineering
d. Software Project Management
4. Communication and Networking
a. Data Communications and Computer Networks
b. Advanced Computer Networking
c. Computer Security
d. Wireless Communications & Mobile Computing
e. Introduction to Distributed Systems
f. Parallel Computing
5. Algorithms
a. Data Structure and Algorithms
b. Analysis of Algorithm
6. Hardware
a. Computer Organization and Architecture
b. Micro Processor and Assembly Language
c. Logic Design
d. Systems Simulation and Modeling
e. Operating Systems
7. Intelligent Systems
a. Introduction to Artificial Intelligence
b. Neural Network
c. Expert Systems
8. Theoretical Concepts
a. Automata & Formal Language
b. Principles of Compiler Design
c. Complexity Theory

Department of CS & Engineering 18/11/2009 9


Curriculum of Computer science 4 - Years Degree (Regular)

d. Human Computer Interaction


e. Computer Graphics
9. Seminar & Projects
a. Industrial Project I
b. Industrial Project II
c. Seminar
8.4. Assessment and Evaluation

Cognitive Abilities: Cognitive abilities are assessed by a combination of traditional 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, and final exam and etc

8.5. Graduation Requirements


The major graduation requirements for Regular and CEP program include:

♦ Successful completion of a total of 142 credit hours as per this curriculum;


♦ A Cumulative Grade Point Average (C.G.P.A) of at least 2.00;
♦ A cumulative Grade Point Average(CGPA) of at least 2.00 in major courses;
♦ At least C grade in the Industrial project courses;
♦ No grade of "F" or “I” in any of the courses.
8.6. Degree Nomenclature

The English title of the degree shall be:


The Degree of Bachelor of Science in Computer Science
The Amharic title of the degree shall be:

Department of CS & Engineering 18/11/2009 10


Curriculum of Computer science 4 - Years Degree (Regular)

የ ሳ ይን ስ ባ ችለ ር ዲግሪ በ ኮ ምፒዩ ተር ሳ ይን ስ
9. Mechanisms of Quality Assurance
To guarantee the quality and standard of the programme the following must be considered:
• The quality of staff.
• Feedback from employers and graduates.
• Examinations and various assessment methods of courses.
• Regular evaluation of the programme.
• Periodical acquisition of appropriate textbooks/references, laboratory equipment,
application software, etc.
10. List of Courses
Common Courses
S.$o Course Title Course Credit
Code hour
1 Introduction to Civics and Ethics Cvet 100 2
2 Entrepreneurship and Small Business Mgmt Ieng 452 3
3 Sophomore English Enla 201 3
4 Business Communication skills Mgt 100 2
5 Technical Report Writing Enla 300 2
Total 12

Supporting Compulsory Courses

S.No. Course Title Course Code Credit hour


1. Fundamentals of Electrical Engineering Eeng 201 3
2. Electronics Eeng 202 3
3. Statistics and probability Stat 276 3
4. Discrete Structure Math 397 3
5. Calculus Math 263 4
6. Reasoning Skills (Logic) Phil 100 2
7. Linear Algebra Math 224 3
8. Computer Based Numerical Analysis Math 306 3
Total 24

Major Compulsory Courses

S.$o. Course Title Course Credit Lec Lab Tut


Code hour
1. Introduction to Computer Science Comp 101 3 2 3 0

Department of CS & Engineering 18/11/2009 11


Curriculum of Computer science 4 - Years Degree (Regular)

2. Fundamentals of Programming I Comp 111 3 2 3 0


3. Fundamentals of Programming II Comp 112 3 2 3 0
4. Fundamentals of Database Systems Comp 222 4 3 3 0
5. Logic Design Comp 162 3 2 3 0
6. Computer organization and Architecture Comp 261 4 3 0 3
7. Data Structures and Algorithm Comp 251 4 3 3 0
8. Advanced Database Systems Comp 321 3 2 3 0
9. Introduction to Automata and Formal Comp282 3 2 0 3
Language
10. Operating systems Comp 262 4 3 3 0
11. Object Oriented Analysis & Design Comp 231 3 2 0 3
12. Data Communications & Computer Networks Comp 242 4 3 3 0

13. Systems Programming Comp 311 3 2 3 0


14. Advanced Computer Networks Comp 342 3 2 3 0
15. Complexity Theory Comp 381 3 2 0 3
16. Software Engineering Comp 331 4 3 0 3
17. Object Oriented Programming Comp 212 4 3 3 0
18. Analysis of Algorithms Comp 351 3 2 3 0
19. Software Project Management Comp 332 3 2 0 3
20. Micro Processor & Assembly Language Comp 362 3 2 3 0
21. Compiler Design Comp 382 4 3 3 0
22. Introduction to Artificial Intelligence Comp 372 3 2 3 0
23. Internet Programming Comp 413 4 3 3 0
24. Computer Graphics Comp 482 3 2 3 0
25. Elective I Comp xxx 3
26. Elective II Comp xxx 3
27. Human Computer Interaction Comp 484 3 3 0 0
28. Basic Research Methods for Computer Science Comp 302 2 2 0 0
29. Computer Security Comp 441 3 2 3 0
30. Requirement Engineering Comp 431 3 3 0 0
31. Seminar Comp 493 1 0 0 3
32. Industrial Project I Comp 491 3 0 9 0
33. Industrial Project II Comp492 3 0 9 0
Total 105

Department of CS & Engineering 18/11/2009 12


Curriculum of Computer science 4 - Years Degree (Regular)

Major Elective Courses

Elective I
S. Course Title Course Credit Lec Lab Tut
No Code Hours
1 Introduction to Distributed Systems Comp 443 3 2 3 0
2 Introduction to Data Mining and Data Comp 423 3 2 3 0
Warehouse
3 E-Commerce Comp 435 3 3 0 0
4 Selected Topics in Computer Science Comp 403 3
5 Expert Systems Comp 473 3 2 3 0

Elective II
Course Title Course Code Credit hours Lec Lab Tut
Parallel Computing Comp 446 3 3 0 0
Information Storage & Retrieval Comp 424 3 2 3 0
Visual Programming Comp 414 3 2 3 0
Neural Networks Comp 472 3 2 3 0
Multimedia Systems Comp 486 3 2 3 0
Wireless communications & mobile computing Comp 446 3 2 3 0

Department of CS & Engineering 18/11/2009 13


Curriculum of Computer science 4 - Years Degree (Regular)

11. Course Breakdown per Semester for regular program

Year I, Semester I

o Course ame Course Credits Pre-requisites


Code
Total Lect Lab Tut
1 Introduction to Computer Comp 101 3 2 3 - None
Science
2 Calculus Math 263 4 3 - 3 None
3 Linear algebra Math 224 3 2 - 3 None
4 Fundamentals of Electrical Eeng 201 3 2 3 - None
Engineering
5 Fundamentals of programming I Comp 111 3 2 3 - None
6 Sophomore English Enla 201 3 3 - - None
Semester Total 19 14 9 6
Semester Total

Year I, Semester II
o Course ame Course Credits Pre-requisites
Code
Total Lect Lab Tut
1 Fundamentals of Programming Comp 112 3 2 3 - Comp 111
II
2 Discrete Structure Math 397 3 2 - 3 None
3 Electronics Eeng 202 3 2 3 - Eeng 201
4 Probability and Statistics Stat 276 3 2 - 3 None
5 Reasoning Skills (Logic) Phil 100 2 2 - - None
6 Logic Design Comp162 3 2 3 0 None
Semester Total 17 12 9 6
Semester Total

Year II, Semester I


o Course ame Course Credits Pre-requisites
Code
Total Lect Lab Tut

1 Object Oriented Analysis & Comp 3 2 - 3 Comp 111


Design 231
2 Computer organization and Comp 261 4 3 - 3 Comp 162
Architecture
3 Data Structures and Algorithm Comp 251 4 3 3 - Comp 112
4 Computer Based Numerical Math 306 3 2 3 - None
Analysis
5 Business Communication skills Mgt 100 2 2 - - None
6 Technical Report Writing Enla 300 2 2 - - None
Semester Total 18 14 6 6
Semester Total

Department of CS & Engineering 18/11/2009 14


Curriculum of Computer science 4 - Years Degree (Regular)

Year II, Semester II

o Course ame Course Credits Pre-requisites


Code
Total Lect Lab Tut
1 Object Oriented Programming Comp 212 4 3 3 - Comp 231
2 Introduction to Automata and Comp282 3 2 - 3 Math 397
Formal Language
3 Operating systems Comp 262 4 3 3 - Comp 261
4 Fundamentals of Database Comp 222 4 3 3 - Comp 101
Systems
5 Data Communications & Comp 242 4 3 3 - Comp 101
Computer Networks
Semester Total 19 14 9 6

Year III, Semester I


o Course ame Course Credits Pre-requisites
Code
Total Lect Lab Tut
1 Systems Programming Comp 311 3 2 3 - Comp 262
3 Complexity Theory Comp 381 3 2 - 3 Comp 282
4 Software Engineering Comp 331 4 3 3 Comp 231
5 Advanced Database Systems Comp 321 3 2 3 - Comp 222
6 Analysis of Algorithms Comp 351 3 2 3 - Comp 251
Int. to Civics & Ethics Cvet 100 2 2 - - None
Semester Total 18 12 9 6 None
Semester Total

Year III, Semester II


o Course ame Course Credits Pre-requisites
Code
Total Lect Lab Tut
1 Basic Research Methods for Comp 302 2 2 - - None
Computer Science
2 Software Project Management Comp 332 3 2 - 3 Comp 331
3 Introduction to Artificial Comp 372 3 2 3 - Phil 100
Intelligence Math 397
4 Micro Processor & Assembly Comp 362 3 2 3 - Comp 261
Language
5 Compiler Design Comp 382 4 3 3 Comp 282
6 Advanced Computer Networks Comp 342 3 2 3 - Comp 242

Total 19 14 12 3

Year IV, Semester I

Department of CS & Engineering 18/11/2009 15


Curriculum of Computer science 4 - Years Degree (Regular)

o Course ame Course Credits Pre-requisites


Code
Total Lect Lab Tut

1 Computer Security Comp 441 3 3 - - Comp 342,


Comp 262
2 Seminar Comp 493 1 - - 3 Comp 302
3 Elective I Comp xxx 3 Depends on the
course
4 Requirement Engineering Comp 431 3 3 0 0 Comp 331
5 Internet Programming Comp 413 4 3 3 - Comp 242

6 Industrial Project I Comp 491 3 - 9 - Comp 332,


Comp 302,
Comp 222,
Comp 212
Semester Total 17 8 12 5
Semester Total

Year IV, Semester II

o Course ame Course Credits Pre-requisites


Code
Total Lect Lab Tut
1 Computer Graphics Comp 482 3 2 3 0 Comp 112
2 Elective II Comp xxx 3 Depends on the
course
3 Human Computer Interaction Comp 484 3 3 - Comp 101
4 Entrepreneurship and Small Ieng 452 3 3 - - None
Business Management
5 Industrial Project II Comp 492 3 9 - Comp 491
Total 15 10 12 3

Total Credit Hours


Major Compulsory Courses: 105
Common Course : 12
Supporting Compulsory Courses: 24
Total : 141

Department of CS & Engineering 18/11/2009 16


Curriculum of Computer science 4 - Years Degree (Regular)

12. Course Breakdown per Semester for extension program

Year I, Semester I

o Course ame Course Credits Pre-requisites


Code
Total Lect Lab Tut
1 Introduction to Computer Comp 101 3 2 3 - None
Science
2 Linear algebra Math 224 3 2 - 3 None
3 Fundamentals of Electrical Eeng 201 3 2 3 - None
Engineering
4 Fundamentals of programming I Comp 111 3 2 3 - None
Semester Total 12 8 9 3
Semester Total
Year I, Semester I

o Course ame Course Credits Pre-requisites


Code
Total Lect Lab Tut
1 Calculus Math 263 4 3 - 3 None
2 Reasoning Skills (Logic) Phil 100 2 2 - - None
3 Fundamentals of Programming Comp 112 3 2 3 - Comp 111
II
4 Electronics Eeng 202 3 2 3 - Eeng 201
Semester Total 12 13 9 6
Semester Total

Year I, Semester III (summer)


o Course ame Course Credits Pre-requisites
Code
Total Lect Lab Tut
1 Probability and Statistics Stat 276 3 2 - 3 None
2 Sophomore English Enla 201 3 3 - - None
3 Business Communication skills Mgt 100 2 2 - - None
Semester Total 8 7 0 3
Semester Total

Department of CS & Engineering 18/11/2009 17


Curriculum of Computer science 4 - Years Degree (Regular)

Year II, Semester I

o Course ame Course Credits Pre-requisites


Code
Total Lect Lab Tut
2 Discrete Structure Math 397 3 2 - 3 None
6 Logic Design Comp162 3 2 3 0 None
Data Structures and Algorithm Comp 251 4 3 3 - Comp 112
Technical Report Writing Enla 300 2 2 - - None
Semester Total 12 8 6 3
Semester Total
Year II, Semester II

o Course ame Course Credits Pre-requisites


Code
Total Lect Lab Tut

1 Object Oriented Analysis & Comp 3 2 - 3 Comp 111


Design 231
2 Computer organization and Comp 261 4 3 - 3 Comp 162
Architecture
4 Computer Based Numerical Math 306 3 2 3 - None
Analysis
Semester Total 10 14 9 3
Semester Total

Year II, Semester III (summer)

o Course ame Course Credits Pre-requisites


Code
Total Lect Lab Tut
1 Introduction to Automata and Comp 282 3 2 - 3 Math 397
Formal Language
2 Analysis of Algorithms Comp 351 3 2 3 - Comp 251
3 Int. to Civics & Ethics Cvet 100 2 2 - - None
Semester Total 8 6 3 3

Department of CS & Engineering 18/11/2009 18


Curriculum of Computer science 4 - Years Degree (Regular)

Year III, Semester I

o Course ame Course Credits Pre-requisites


Code
Total Lect Lab Tut
1 Object Oriented Programming Comp 212 4 3 3 - Comp 231
3 Operating systems Comp 262 4 3 3 - Comp 261
3 Fundamentals of Database Comp 222 4 3 3 - Comp 101
Systems
Semester Total 12 9 9 0

Year III, Semester II


o Course ame Course Credits Pre-requisites
Code
Total Lect Lab Tut
5 Data Communications & Comp 242 4 3 3 - Comp 101
Computer Networks
Systems Programming Comp 311 3 2 3 - Comp 262
Software Engineering Comp 331 4 3 3 Comp 231
Semester Total 11 8 6 3

Year III, Semester III (summer)


o Course ame Course Credits Pre-requisites
Code
Total Lect Lab Tut
3 Complexity Theory Comp 381 3 2 - 3 Comp 282
4 Entrepreneurship and Small Ieng 452 3 3 - - None
Business Management
6 Basic Research Methods for Comp 302 2 2 - - None
Computer Science
Semester Total 8 7 0 3 None
Semester Total

Department of CS & Engineering 18/11/2009 19


Curriculum of Computer science 4 - Years Degree (Regular)

Year IV, Semester I


o Course ame Course Credits Pre-requisites
Code
Total Lect Lab Tut
1 Advanced Database Systems Comp 321 3 2 3 - Comp 222
2 Software Project Management Comp 332 3 2 - 3 Comp 331
3 Introduction to Artificial Comp 372 3 2 3 - Phil 100
Intelligence Math 397
4 Micro Processor & Assembly Comp 362 3 2 3 - Comp 261
Language
Total 12 8 6 3

Year IV, Semester II


o Course ame Course Credits Pre-requisites
Code
Total Lect Lab Tut
1 Compiler Design Comp 382 4 3 3 Comp 282
2 Advanced Computer Networks Comp 342 3 2 3 - Comp 242

3 Internet Programming Comp 413 4 3 3 - Comp 242

Total 11 8 9 0

Year IV, Semester III (summer)


o Course ame Course Credits Pre-requisites
Code
Total Lect Lab Tut

2 Seminar Comp 493 1 - - 3 Comp 302


3 Elective I Comp xxx 3
4 Human Computer Interaction Comp 484 3 3 - Comp 101
Semester Total 7 3 0 3
Semester Total

Year V, Semester I
o Course ame Course Credits Pre-requisites
Code
Total Lect Lab Tut

1 Computer Security Comp 441 3 3 - - Comp 342,


Comp 262
6 Industrial Project I Comp 491 3 - 9 - Comp 332,
Comp 302,
Comp 222,
Comp 212

Department of CS & Engineering 18/11/2009 20


Curriculum of Computer science 4 - Years Degree (Regular)

Requirement Engineering Comp 431 3 3 0 0 Comp 331


Semester Total 9 6 9 0
Semester Total

Year V, Semester II

o Course ame Course Credits Pre-requisites


Code
Total Lect Lab Tut
1 Computer Graphics Comp 482 3 2 3 0 Comp 112
2 Elective II Comp xxx 3
5 Industrial Project II Comp 492 3 0 9 0 Comp 491
Total 9 2 12 0

Total Credit Hours


Major Compulsory Courses: 105
Common Course : 12
Supporting Compulsory Courses: 24
Total 141

Department of CS & Engineering 18/11/2009 21


Curriculum of Computer science 4 - Years Degree (Regular)

13. Course Descriptions


13.1. Core and Elective Courses

Course $umber: Comp 101


Course Title: Introduction to Computer Science
Credit: 3; Lecture; 2 hours; Lab: 3 hours; Prerequisite: one

Course Objective At the end of the course the students should be able to:
• Explain foundation concepts and principles of computer science;
• Explain fundamental computer programming principles, methodologies, and
techniques; and
• Explain basic concepts of programming in general.
Course Description
Introduction to PC Applications; an overview of Computer Science; historical
development of computers; logical organization of a computer system; data
representation inside computers; computer arithmetic; computer system
architecture; system software (operating software, language software...); problem-
solving using computers; programming concepts; programming using C/C++

Course Outline
Chapter 1: Overview
1.1 Introduction to PC Applications
1.2 An overview of Computer Science
1.3 Historical development of computers
Chapter 2: Components of a Computer System
2.1 Logical organization of a computer system
2.2 Computer Hardware
2.3 Computer Software
Chapter 3: Data Representation and $umber System
3.1 Number System
3.2 Data representation inside computers
3.3 Computer arithmetic
3.4 Computer system architecture;
Chapter 4: Operating Systems
4.1 Windows
4.2 Linux/Unix
Chapter 5: Computer $etworking and Internet

Teaching Method: Lecture supported by laboratory and group presentation


Assessment and Evaluation Method:
Assignment----------------------10%
Lab demonstration,-------------10%
Lab report,-----------------------10%
Mid and---------------------------30%
Final examination----------------40%

Department of CS & Engineering 18/11/200922


Curriculum of Computer science 4 - Years Degree (Regular)

Instructor Qualification
A minimum of M. Sc. Degree in Computer Science, Computer Engineering or Information
Science
Text and University Reference
• Dida Midekso. (1994). Introduction to Computer Science. Addis Ababa printing
press.
• Schildt, H. (1990). C: The Complete Reference, 2nd ed.. Boston: Irwin Sawyer,
S.I: (1990). Computers: The users perspective. 2nded., Boston; Irwin Brightman,
W. R. (1986). Computer organization and architecture: Using computers in an
information age

Software: Ms-Windows, Office Applications, C/C++ Compiler


Requirements Instructional: Lectures, Laboratory
Method of Evaluation: Assignment, mid and final exams

Course $umber Comp162


Course Title Logic Design
Credit: 3 ; Lecture: 2 ; Tutorial: Lab. 3 Hrs Prerequisite: one

Learning Outcome
- Identify some contributors to digital logic and explain why
Boolean logic is important to this subject.
- Articulate why gates are the fundamental elements of a digital
system.
- Indicate some uses for sequential logic.
- Work with binary number systems and arithmetic.
- Derive and manipulate switching functions that form the basis of
digital circuits.
- Realize switching functions with networks of logic gates.
- Explain and apply fundamental characteristics of relevant
electronic technologies.
- Analyze and explain uses of small- and medium-scale logic
functions as building blocks.
- Analyze and design combinational logic networks in a hierarchical,
modular approach, using standard and custom logic functions.
- Design and describe the operation of basic memory elements.
- Analyze the behavior of synchronous and asynchronous machines.
- Hierarchical, modular design of digital systems
Course Description: The course includes History and overview; Switching theory
Combinational logic circuits; Modular design of combinational circuits; Memory
elements ;
Sequential logic circuits; Digital systems design

Course Outline

Department of CS & Engineering 18/11/200923


Curriculum of Computer science 4 - Years Degree (Regular)

Chapter 1: History and overview


1.1 Indicate some reasons for studying digital logic
1.2 Indicate some important topic areas such as logic circuits,
switching, memory, registers, and digital systems
1.3 Highlight the importance of Boolean logic to the knowledge area
1.4 Mention the meaning and importance of sequential logic
1.5 Contrast the meanings of gates, circuits, combinational circuits,
and modules
1.6 Indicate that memory is a logical circuit
1.7 Highlight that a special form of memory module forms registers
1.8 Mention how systems result from modules and circuits
Chapter 2: DIG1 Switching theory
2.1Number systems and codes
2.2 Binary arithmetic
2.3 Boolean and switching algebra
2.4 Representation and manipulation of switching functions
Chapter 3: Combinational logic circuits
3.1 Basic logic gates (AND,OR,NOT,NAND,NOR,XOR)
3.2 Realization of switching functions with networks of logic gates
3.3 2-level networks: AND-OR,OR-AND,NAND-NAND,NOR-NOR
3.4 Multi-level networks
3.5 Physical properties of logic gates (technology, fan-in, fan-out,
propagation delay)
Chapter 4: Modular design of combinational circuits
4.1 Design of medium scale combinational logic modules
4.2 Multiplexers, demultiplexers, decoders, encoders, comparators
4.3 Arithmetic functions (adders, subtracters, carry lookahead)
4.4 Multipliers, dividers
4.5 Arithmetic and logic units (ALUs)
4.6 Hierarchical design of combinational circuits using logic modules
Chapter 5: Memory elements
5.1 Unclocked and clocked memory devices (latches, flip flops)
5.2 Level vs. edge-sensitive, and master-slave devices
5.3 Basic flip flops (SR, D, JK, T)
5.4 Asynchronous flip flop inputs (preset, clear)
5.5 Timing constraints (setup time, hold time) and propagation delays
5.6 Data registers (selection, clocking, timing)
5.7 Random-access memory (RAM)
Chapter 6: Sequential logic circuits
6.1Finite state machines (FSMs), clocked and unclocked
6.2 Analysis of synchronous and asynchronous circuits

Department of CS & Engineering 18/11/200924


Curriculum of Computer science 4 - Years Degree (Regular)

6.3 Design of synchronous sequential circuits: State minimization, state


assignment, next state and output equation realization
6.4 Sequential functional units: Data registers, shift registers, counters,
sequence detectors, synchronizers, debouncers, controllers
Chapter 7: Digital systems design
7.1 Hierarchical, modular design of digital systems
7.2 Synthesis of digital circuits from HDL models
7.3 Design principles and techniques: Bridging conceptual levels – top
down/bottom up, divide and conquer, iteration, satisfying a behavior with a digital
structure
7.4 Functional units, building blocks and LSI components: Adder, shifter,
register, ALU, and control circuits, tri-state devices and buses
Lab. Experiment:
1. Study of logic gates
2. Half and full adder circuit
3. Muliplexer and demultiplexer circuits
4. Study of flip flops
5. Counter circus
6. Shift registers.

Teaching Method: Lecture supported by laboratory and group presentation


Assessment and Evaluation Method: Assignment, lab demonstration, lab report, mid and final
examination

Text Books:
1. Tocci-Digital systems principles an applications
2. Malivino, Leach Digital principles and applications

Reference:
 Mano MM – Digital logic and computer design
 Douglas V. hall. Microprocessors and Digital
 Palmer JE and systems perlman DE – Introduction to digital systems.

Method of Evaluation:

 Practical: 20%
 Mid exam: 25%
 Design assignment: 5%
 Final exam: 50%

Department of CS & Engineering 18/11/200925


Curriculum of Computer science 4 - Years Degree (Regular)

Course $umber: Comp 484


Course Title: Human-Computer Interaction
Credit: 3; Lecture: 3 hours; Lab: 0 hours; Prerequisite: COMP 101

Learning Outcome
– Identify some contributors to human-computer interaction and relate their
achievements to the knowledge area.
– Define HCI.
– Explain the reasons for proper HCI designs in Computer Science.
– Provide a good reason for having a small-screen and large-screen graphical user
interface.
– Develop a conceptual vocabulary for analyzing human interaction with software: to
include terms such as affordance, conceptual model, and feedback.
– Summarize the basic science of psychological and social interaction relevant to the
development of human computer interfaces.
– Distinguish between the different interpretations that a given icon, symbol, word, or
color can have in (a) different human cultures and (b) in the context of human
diversity.
– Identify several fundamental principles for effective GUI design relevant for different
applications in computer science.
– Use a GUI toolkit to create a simple application that supports a graphical user
interface.
– Illustrate the effect of fundamental design principles on the structure of a graphical
user interface.
– Recognize contexts in which to deploy the various technologies associated with
intelligent systems.
– Demonstrate an awareness of the capabilities as well as the limitations of the
available techniques and technologies.
– For a range of contexts in which intelligent systems are deployed in a computer
science context, identify the technical implications for devices, for computing power
and for software
– Identify the potential for the use of intelligent systems in a range of computer
engineering equipment
– Discuss the professional, legal and ethical implications of deploying intelligent
systems in a range of computer science situations

Course Description: This course focuses on History and overview; Foundations of


human-computer interaction; Graphical user interface; I/O technologies; intelligent
systems; Human-centered software evaluation; Human-centered software development;
Graphics and visualization.

Course Outline
Chapter 1: History and overview
1.1 Indicate some reasons for studying human-computer interaction
1.2 Highlight some people that influenced or contributed to the area of human-
computer interaction

Department of CS & Engineering 18/11/200926


Curriculum of Computer science 4 - Years Degree (Regular)

1.3 Indicate some important HCI considerations such as foundational elements,


ergonomic designs, and graphical interfaces
1.4 Contrast ways in which engineering design should reflect human interaction
1.5 Mention some advantages of small-screen designs versus large-screen
designs
Chapter 2: Foundations of human-computer interaction
2.1Motivation: the importance of the human interface in computer science; issues of
small screens and larger screens
2.2 The range of possibilities: text-based systems, use of graphics, sound, animation,
video; the possibilities of multimedia Strengths and weaknesses of individual
approaches
2.3 The web as an example of an interface
2.4 Human performance models: perception, movement, and cognition; culture,
communication, and organizations
2.5 Accommodating human diversity; the role of multimedia
2.6 Introduction to usability testing
2.7 The role of and use of a range of tools
Chapter 3: Graphical user interface
3.1 Illustrations of developments of graphical user interfaces including: textual displays;
interfaces that include alarms; displays that exhibit motion; displays that exhibit
interaction
3.2 Principles of design using graphical user interfaces (GUIs); principles associated with
interaction including fault tolerance
3.3 GUI toolkits
3.4 Principles associated with use of sound and multimedia in different contexts; use of
relevant tools
3.5 Principles of design for web interfaces; web interfaces for small screen and mobile
devices
Chapter 4: I/O technologies
4.1The range of technologies and techniques that can be deployed in intelligent systems:
vision, speech processing, specialized sensors
4.2 Technologies for location aware computing, the role of geographical positioning
systems, other possibilities
4.3 Overview of the technologies involved: their strengths and the limitations
4.4 Availability of software support and of relevant tools

Chapter 5: Intelligent systems


5.1 Illustrations of the deployment of intelligent systems in a computer science context
5.2 The nature of intelligence deployed and the implications for sensors, for software (the
nature of the software, the reliability of the software, the reasoning, the speed of
response)
5.3 The special case of mobile systems and location aware devices; illustrations of
applications and benefits

Department of CS & Engineering 18/11/200927


Curriculum of Computer science 4 - Years Degree (Regular)

5.4 Ethical issues

Teaching Method: Lecture supported by laboratory and group presentation


Assessment and Evaluation Method:
Assignment----------------------20%
Lab demonstration,-------------5%
Lab report,-----------------------10%
Mid and---------------------------30%
Final examination----------------40%

References:
A Dix, J Finlay, G Abowd and R Beale. Human-Computer Interaction, Prentice Hall, 3nd
Edition
(second or first editions are OK), 2004.
Recommended reading
• J Nielsen. Usability Engineering, Academic Press, 1993.
Chapter 5 on ‘Usability Heuristics’ is excellent, providing in-depth coverage of the heuristics that
you will use in your HCI assignment.
• H Thimbleby. User Interface Design, Addison-Wesley, 1990

Course $umber: Comp111


Course Title: Fundamentals of Programming I
Credit: 3; Lecture: 2 hours; Lab: 3 hours; Prerequisite: none

Learning Outcome:

- Identify some contributors to programming fundamentals and relate their


achievements to the knowledge area.
- Define the meaning of algorithm and data structure.
- Know the reasons that a way to solve problems is by using algorithms.
- Identify the difference between various programming paradigms.
- Explain recursion and the way it works.
- Identify the paradigm used by pseudo-code snippets.
- Identify the appropriate paradigm for a given programming problem.
- Analyze and explain the behavior of simple programs involving the fundamental
programming constructs covered by this unit.
- Write a program that uses each of the following fundamental programming
constructs: basic computation, simple I/O, standard conditional and iterative
structures, and the definition of procedures and functions.
Course Description: The course mainly focuses on History and overview; Programming
paradigms; Programming constructs; Algorithms and problem-solving; Data structures;
and Recursion.

Course Outline:

Department of CS & Engineering 18/11/200928


Curriculum of Computer science 4 - Years Degree (Regular)

Chapter 1: History and overview

1.1 Indicate some reasons for studying programming fundamentals


1.2 Indicate some important topic areas such as programming constructs, algorithms,
problem solving, data structures, programming paradigms, recursion
1.2 Contrast between an algorithm and a data structure
1.3 Distinguish between a variable, type, expression, and assignment
1.4 Highlight the role of algorithms in solving problems
1.5 Describe some of the fundamental data structures such as array, record, stack, and
queue
1.6 Explain the various programming paradigms such as procedural, functional, logic,
and object oriented
1.7 Explain how divide-and-conquer strategies lend themselves to recursion
1.8 Explore some additional resources associated with programming fundamentals
1.9 Explain the purpose and role of programming fundamentals in computer Science
Chapter 2: Programming paradigms
2.1Procedural programming
2.2 Functional programming
2.3 Object-oriented Programming
2.4 Encapsulation and information-hiding
2.5 Separation of behavior and implementation
Chapter 3: Programming constructs
3.1 Basic syntax and semantics of a high-level language
3.2 Variables, types, expressions, and assignment
3.3 Simple I/O
3.4 Conditional and iterative control structures
3.5 Functions and parameter passing
Chapter 4: Algorithms and problem-solving
4.1Problem-solving strategies
4.2 The role of algorithms in the problem-solving process
4.3 Implementation strategies for algorithms
4.4 Debugging strategies
4.5 The concept and properties of algorithms
4.6 Structured decomposition

Teaching Method: Lecture supported by laboratory and group presentation


Assessment and Evaluation Method: Assignment, lab demonstration, lab report, mid and final
examination

Instructor Qualification: A minimum of M. Sc. Degree in a Computer Science, Computer


Engineering or Information Science

Department of CS & Engineering 18/11/200929


Curriculum of Computer science 4 - Years Degree (Regular)

Text and Reference


• C++: An Introduction to Computing, 2nd edition (Adams, Leestma, and Nyhoff;
Prentice-Hall, 1998)
• Halterman, Richard. Fundamentals of Programming and Software Design in Java. 2001.
Software: Compiler of a high level language such as C++
Requirements Instructional: Lectures, Laboratory

Method of Evaluation:
Assignment----------------------10%
Mid and---------------------------30%
Project-----------------------------20%
Final examination----------------40%

Course $umber: Comp112


Course Title: Fundamentals of Programming II
Credit: 3; Lecture: 2 hours; Lab: 3 hours; Prerequisite: Comp111

Learning Outcome :
5 Define the basic properties of an algorithm.
6 Develop algorithms for solving simple problems.
7 Use a suitable programming language to implement, test, and debug algorithms for
solving simple problems.
8 Apply the techniques of structured decomposition to break a program into smaller
pieces.
9 Write programs that use each of the following data structures: arrays, records, strings,
linked lists.
10 Explain the concept of recursion.
11 Explain the structure of the divide-and-conquer approach.
12 Write, test, and debug simple recursive functions and procedures.
13 Read and write text files.
14 Read and write binary files.

Course Description: This course is a continuation of fundamentals of Programming


I. modular programming and abstract data types; which covers user defined data
types, pointers, string processing, Functions and parameter passing, including
recursion; file input output, principles of modeling (abstraction and decomposition);
program design and evaluation (module coupling and module strength).

Course Outline:
Chapter 1: Overview of Data structure
1.1 Primitive types
1.2 Arrays

Department of CS & Engineering 18/11/200930


Curriculum of Computer science 4 - Years Degree (Regular)

1.3 Records
1.4 Strings and string processing
1.5 Data representation in memory
1.6 Static, stack, and heap allocation
1.7 Runtime storage management
1.8 Pointers and references
1.9 Linked structures
Chapter 2: Recursion
2.1 The concept of recursion
2.2 Recursive mathematical functions
2.3 Divide-and-conquer strategies
2.4 Recursive backtracking
2.5 Implementation of recursion
Chapter 3: Files and Streams
3.1 Streams and Files
3.2 Binary Files and Text Files
3.3 Input and Output Streams
3.4 Reading and Writing Text Files
3.5 Reading and Writing Binary Files
Chapter 4: Overview of Object oriented programming

Teaching Method: Lecture supported by laboratory and group presentation


Assessment and Evaluation Method:
Assignment----------------------10%
Lab demonstration,-------------10%
Mid and---------------------------20%
Project-----------------------------20%
Final examination----------------40%

References:

• Weiss Mark (1997), Data Structure and Algorithms Analysis in C: Benjamin


Cummings Publishing.
• Ammereaal, Leendert (1988), Programming and data Structure in C (2nd ed.):
John Wiley & Sons.
• Reingold Edward M. and Wilfred Hansen(1983).Data Structures:CBS Publisher
& Distibutors.
• Sahni, Sartaj(1999) Data Structures,Algorithms and Applcations I C++.McGraw-
Hil.

Course $umber: Comp 251


Course Title: Data Structures and Algorithm
Credit: 3; Lecture: 3 hours; Lab: 3 hours; Prerequisite: Comp112

Course Objectives

Department of CS & Engineering 18/11/200931


Curriculum of Computer science 4 - Years Degree (Regular)

At the end of the course students will be able to


Explain the basic techniques for the design and analysis of efficient Algorithm;
Determine when and how to use the various data structures including Linked lists,
Queues, Stacks, Binary trees, Search trees and Graphs;
Apply data structures and algorithms that are frequently used in information
processing.
Course Description
Introduction of Data Structures (Linear ,non-Linear Data Structures) and Algorithm
Analysis Concept, Measuring Complexity, Complexity of Algorithm
Big-O Notation. Simple Sorting and Searching Algorithms (Bubble Sort, Insertion
Sort, Selection Sort, Sequential Searching, Binary Searching.). Abstract Data
Types, Structures, Pointers, Arrays, Linked Lists, Stacks, Queues, Trees, Graphs.
Advanced Sorting and Searching Algorithms(Shell Sort, Quick Sort, heap Sort,
Merge Sort, and Hashing)
Course Outline
Chapter 1: Introduction
1.1 Software Engineering Principles.
1.2 Introduction to Data Structures and Algorithms Analysis.
Chapter 2: Algorithm Analysis Concepts
2.1 Measuring Complexity
2.2 Complexity of Algorithm
2.3 Big-O Notation
Chapter 3: Complexity of Unknown Algorithm
Chapter 4: Simple Sorting and Searching Algorithm
4.1 Bubble Sort, Insertion Sort, Selection Sort
4.2 Sequential Searching, Binary Searching.
Chapter 5: Data Structures and Applications
5.1 Abstract Data Types, Structures, Pointers, Arrays, Linked Lists, Stacks, Queues,
5.2 Trees, Graphs.
Chapter 6: Advanced Sorting and Searching Algorithms
6.1 Shell Sort, Quick Sort, heap Sort, Merge Sort, and Hashing.

Teaching Method: Lecture supported by laboratory and group presentation


Assessment and Evaluation Method:
Assignment----------------------10%
Lab demonstration,-------------5%
Lab report,-----------------------10%
Mid and---------------------------30%
Final examination----------------45%

Reference
- Weiss Mark (1997), Data Structure and Algorithms Analysis in C: Benjamin
Cummings Publishing.
- Ammereaal, Leendert (1988), Programming and data Structure in C (2nd ed.):
John Wiley & Sons.

Department of CS & Engineering 18/11/200932


Curriculum of Computer science 4 - Years Degree (Regular)

- Reingold Edward M. and Wilfred Hansen(1983).Data Structures:CBS Publisher


& Distibutors.
- Sahni, Sartaj(1999) Data Structures,Algorithms and Applcations I C++.McGraw-
Hil.

Course $umber: Comp 231


Course Title: Object Oriented Analysis and Design
Credit; 3; Lecture: 3 hours; Lab/ Tutorial: 3 hours; Prerequisite: COMP 111

Course Objectives: At the end of this course, students should be able to:
 Have a broad understanding of the object-oriented approach,
 Understand the major concepts involved in object-oriented system Development
including encapsulation, abstraction, inheritance, and reusability;
 Analyze application requirements and define the important objects;
 Be aware of the differences between object-oriented programming languages.
Course Description
Object Oriented Programming paradigm and its use; classes, Objects, abstraction and
encapsulation; inheritance, polymorphism and overloading; generality and persistence;
OOP design basics: finding objects (informal descriptions, domain analysis, etc.),
finding classes, classification techniques, class roles, finding interactions, use cases, OO
analysis, OO design, etc. Practices on the techniques and idioms of Object-
oriented programming in C++, Java and/or other OOP languages

Course Outline
Chapter 1:Overview of Object Orientation
1.1 The potential benefits of object orientation
1.2 The potential drawbacks of object orientation
1.3 object standards
1.4 The object orientation software process
Chapter 2: Gathering user requirements
2.1 Putting together requirements gathering team
2.2 Fundamental requirements gathering techniques
2.3 Essential Use Case Modelling
2.4 Essential User Interface Prototyping
Domain modelling with class responsibility collaborator (CRC) cards
2.5 developing a supplementary Specification
ing Change Cases
Chapter 3: ensuring Your Requirements Are correct: Requirement validation
Techniques
Use Case Scenario Testing
Chapter 4: Determining What to Build: OO Analysis
4.1 em Use Case Modelling
4.1 Sequence Diagrams: From Use Cases to Classes
4.1 Conceptual Modelling :Class diagrams
4.1 Activity diagramming
4.1 User interface prototyping Evolving your supplementary specification

Department of CS & Engineering 18/11/200933


Curriculum of Computer science 4 - Years Degree (Regular)

4.1 Applying Analysis patterns Effectively


4.1 User Documentation
4.1 Organizing your models with packages
Chapter 5: Determining How to Build Your System: OO Design
5.1 Ensuring your models :Class Type Architecture
5.1 Class Modelling
5.1 Applying Design Patterns Effectively
5.1 State chart modelling
5.1 Collaboration Modelling
5.1 Component Modelling
5.1 Deployment Modelling
5.1 Rational Persistence Modelling
5.1 User Interface Design
Chapter 6: Object Oriented Testing
Software Requirements: Compiler with Object Oriented support such as Java
Instructional Methods: Lectures, Laboratory

Method of Evaluation:
Assignment---------------------20%
Mid and---------------------------30%
Final examination----------------50%

Text and Reference:


• Smalltalk, Objects, and Design, Chamond Liu, 1996
• A.C. Staugaard, Jr., Structured & Object-oriented Problem Solving Using C++.
• Prentice Hall, 2002. With lab manual.
• John Hubbard,programming in C++. McGraw Hill Schaimi's Outline Series Object
Oriente'd Programming and Design, 2ndedition, by Timothy Budd, Addison-Wesley 1997.
• Budd, Timothy. An Introduction to Object-Oriented Programming 2nd Edition, Addison-
Wesley, 1997

Course $umber: Comp 212


Course Title: Object Oriented Programming
Credit; 4; Lecture:3 hours; Lab/ Tutorial: 3 hours; Prerequisite: COMP 231

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

Course Description
Object Oriented Programming paradigm and its use; classes, Objects, abstraction and
encapsulation; inheritance, polymorphism and overloading; generality and persistence;
OOP design basics: finding objects (informal descriptions, domain analysis, etc.),
finding classes, classification techniques, class roles, finding interactions, use cases, OO
analysis, OO design, etc. Practices on the techniques and idioms of Object-
oriented programming in C++, Java and/or other OOP languages

Department of CS & Engineering 18/11/200934


Curriculum of Computer science 4 - Years Degree (Regular)

Course Outline
Chapter 1: Overview
1.1 Overview of Classes, Methods, Variables and Data types
1.2 Statements and Expressions, Literals
1.3 Expressions and Operators
1.4 Working with Objects
1.5 Logic, and Loops

o if conditionals, switch conditionals, for loops, while and do loops


Chapter 2: Strings, Inheritance, Polymorphism, Arrays, and Exceptions
2.1 Strings and String Processing
2.2 Inheritance and Polymorphism
2.3 Arrays and Array Processing
2.4 Exceptions
Chapter 3: Files and Data Structures
3.1 Files and Streams: Input/Output Techniques
3.2 Data Structures
3.3 Vectors, Stacks, Map, Hash Table
Chapter 4: Threads, Interfaces and Packages
4.1 Threads and Concurrent Programming
4.2 Interfaces, Packages
Chapter 5: Graphical User Interfaces (GUI) – Swing
5.1 Frames, panels, and borders
5.2 Layout managers
5.3 Labels, buttons, Text area, Text field, Combo boxes, List boxes
5.4 Tabbed panes, Scrolling panes
5.5 Menus, Toolbars, Desktops & internal frames
5.6 Trees, Tables
Chapter 6: Java Database Connectivity-JDBC
6.1 Introduction
6.2 Developing Database Applications Using JDBC
6.3 Loading drivers, Establishing connections, Creating statements, Executing
statements, Processing ResultSet
Chapter 7: Java Applets

Instructional Methods: Lectures, Laboratory


Method of Evaluation: Assignment, mid and final exams
Text and Reference:
• Smalltalk, Objects, and Design, Chamond Liu, 1996
• A.C. Staugaard, Jr., Structured & Object-oriented Problem Solving Using C++.

Department of CS & Engineering 18/11/200935


Curriculum of Computer science 4 - Years Degree (Regular)

• Prentice Hall, 2002. With lab manual.


• John Hubbard,programming in C++. McGraw Hill Schaimi's Outline Series Object
Oriente'd Programming and Design, 2ndedition, by Timothy Budd, Addison-Wesley 1997.
• Budd, Timothy. An Introduction to Object-Oriented Programming 2nd Edition, Addison-
Wesley, 1997

Course $umber: Comp 242


Course Title: Data Communication and Computer $etworks
Credit; 4; Lecture: 3; Lab/tutorial:3; Prerequisite: Comp 101

Learning Outcome:
7 Identify some components of a network.
8 Name some network devices and describe their purpose.
9 Describe advantages of a star topology over a ring topology.
10 Describe advantages of a ring topology over a star topology.
11 Define the meaning of a protocol.
12 Explain the importance of security when dealing with networks.
13 Understand fundamental concepts of networks and their topologies.
14 Understand the concept of network architecture and its hardware components.
15 Understand data transmission and transmission media

16 Demonstrate understanding of the elements of a protocol, and the concept of layering.


17 Recognize the importance of networking standards, and their regulatory committees.
18 Describe the seven layers of the OSI model.
19 Compare and contrast the OSI model with the TCP/IP model.
20 Understand the basic concepts of LAN and WAN technologies and topologies.
21 Explain the different roles and responsibilities of clients and servers for a range of
possible applications.
22 Understand common barriers to network security and the major issues involved in
implementing proper security measures.
23 Describe the purpose of encryption and the function of public and private keys.

Course Description: History and overview; Communications network architecture;


Communications network protocols; Local and wide area networks; Client-server
computing; Data security and integrity; Wireless and mobile computing; Data
Course Outline
Chapter 1: History and overview
1.1 Indicate some reasons for studying networks
1.1 Highlight some people that influenced or contributed to the area of networks
1.2 Indicate some important topic areas such as network architectures and protocols, network
types (LAN, WAN, MAN, and wireless), data security, data integrity, and network
performance
1.3 Describe some of the hardware and software components of networks
1.4 Describe the operation of some network devices such as repeaters, bridges, switches, routers,
and gateways
1.5 Indicate some network topologies such as mesh, star, tree, bus, and ring

Department of CS & Engineering 18/11/200936


Curriculum of Computer science 4 - Years Degree (Regular)

1.6 Describe the purpose of network protocols


1.7 Mention some popular protocols
Chapter 2: Data Communications
2.1 Data transmission
2.2 Concepts and Terminology
2.3 Analog and Digital Data Transmission
2.4 Transmission Impairments
2.5 Transmission media
2.6 Guided Transmission Media
2.7 Wireless Transmission
Chapter 3: Communications network architecture
3.1 Network line configuration (point-to-point, multipoint)
3.2 Networking and internetworking devices: Repeaters, bridges, switches, routers, gateways
3.3 Network Topologies (mesh, star, tree, bus, ring)
3.4 Connection-oriented and connectionless services
Chapter 4: Communications network protocols
4.1 Network protocol
4.2 Overview of the TCP/IP Protocol suites
4.3 Network Standards and standardization bodies
Chapter 5: Local and wide area networks
5.1 LAN topologies (bus, ring, star)
5.2 LAN technologies (Ethernet, token Ring, Gigabit Ethernet)
5.3 Large networks and wide areas
Chapter 6: Client-server computing
6.1 Web technologies: Server-side programs; Socket programs; Server sockets; Client sockets;
multithreading concepts;
Chapter 7: Data security and integrity
7.1 Fundamentals of secure networks; cryptography
7.2 Encryption and privacy
7.3 Authentication protocols
7.4 Firewalls
7.5 Virtual private networks
7.6 Transport layer security

Instructional Methods: Lectures, Laboratory, discussion


Method of Evaluation:
Assignment----------------------10%
Group project---------------------15%
Mid and---------------------------30%
Final examination----------------45%

Instructor Qualification: A minimum of M. Sc. Degree in Computer Science, Computer


engineering

Text and Reference: Computer Networking. Kurose & Ross. Addison Wesley, latest edition

Department of CS & Engineering 18/11/200937


Curriculum of Computer science 4 - Years Degree (Regular)

Software Requirements: Network Operating systems, Simulators, etc

Course $umber: Comp 261


Course Title: Computer Organization and Architecture
Credit: 4; Lecture: 3 hours; Lab/ Tutorial: 3 hours; Prerequisite: COMP 162

Learning Outcome:
– Describe the progression of computer architecture from vacuum tubes to VLSI.
– Demonstrate an understanding of the basic building blocks and their role in the historical
development of computer architecture.
– Use mathematical expressions to describe the functions of simple combinational and
sequential circuits.
– Design a simple circuit using the fundamental building blocks.
– Explain the reasons for using different formats to represent numerical data.
– Discuss how fixed-length number representations affect accuracy and precision.
– Describe the internal representation of nonnumeric data.
– Describe the internal representation of characters, strings, records, and arrays.
– Explain the organization of the classical von Neumann machine and its major functional
units.
– Explain how an instruction is executed in a classical von Neumann machine.
– Summarize how instructions are represented at both the machine level and in the context of a
symbolic assembler.
– Explain different instruction formats, such as addresses per instruction and variable length vs.
fixed length formats.
– Write simple assembly language program segments.
– Demonstrate how fundamental high-level programming constructs are implemented at the
machine-language level.
– Explain how subroutine calls are handled at the assembly level.
– Explain the basic concepts of interrupts and I/O operations.
– Identify the main types of memory technology.
– Explain the effect of memory latency on running time.
– Explain the use of memory hierarchy to reduce the effective memory latency.
– Describe the principles of memory management.
– Describe the role of cache and virtual memory.
– Explain the workings of a system with virtual memory management.
– Explain how interrupts are used to implement I/O control and data transfers.
– Identify various types of buses in a computer system.
– Describe data access from a magnetic disk drive.
– Compare the common network configurations.
– Identify interfaces needed for multimedia support.
– Describe the advantages and limitations of RAID architectures.
– Compare alternative implementation of datapaths.
– Discuss the concept of control points and the generation of control signals using hardwired or
microprogrammed implementations.
– Explain basic instruction level parallelism using pipelining and the major hazards that may
occur.

Course Description: To be a professional in any field of computing today, one should not
regard the computer as just a black box that executes programs by magic. All students of

Department of CS & Engineering 18/11/200938


Curriculum of Computer science 4 - Years Degree (Regular)

computing should acquire some understanding and appreciation of a computer system’s


functional components, their characteristics, their performance, and their interactions. Students
need to understand computer architecture in order to structure a program so that it runs more
efficiently on a real machine. The focus of this course is to deal with Digital logic and digital
systems; Machine level representation of data; Assembly level machine organization; Memory
system organization and architecture; Interfacing and communication; and Functional
organization.
Course Outline
Chapter 1: Introduction to Digital logic and digital systems
1.1 Overview of computer architecture and organization
1.2 Fundamental building blocks (logic gates, flip-flops, counters, registers, PLA)
1.3 Logic expressions, minimization, sum of product forms
1.4 Register transfer notation
1.5 Physical considerations (gate delays, fan-in, fan-out)

Chapter 2: Introduction of $umber system


2.1 Bits, bytes, and words
2.2 Numeric data representation and number bases
2.3 Fixed- and floating-point systems
2.4 Signed and twos-complement representations
2.5 Representation of nonnumeric data (character codes, graphical data)
2.6 Representation of records and arrays
Chapter 3: Assembly level machine organization
3.1 Basic organization of the von Neumann machine
3.2 Control unit; instruction fetch, decode, and execution
3.3 Instruction sets and types (data manipulation, control, I/O)
3.4 Assembly/machine language programming
3.5 Instruction formats
3.6 Addressing modes
3.7 Subroutine call and return mechanisms
3.8 I/O and interrupts
Chapter 4: Memory system organization and architecture
4.1 Coding, data compression, and data integrity
4.2 Memory hierarchy
4.3 Main memory organization and operations
4.4 Latency, cycle time, bandwidth, and interleaving
4.5 Cache memories (address mapping, block size, replacement and store policy)
4.6 Virtual memory (page table, TLB)
4.7 Fault handling and reliability
Chapter 5: Interfacing and communication
5.1 I/O fundamentals: handshaking, buffering, programmed I/O, interrupt-driven I/O
5.2 Interrupt structures: vectored and prioritized, interrupt acknowledgment
5.3 External storage, physical organization, and drives
5.4 Buses: bus protocols, arbitration, direct-memory access (DMA)
5.5 Introduction to networks

Department of CS & Engineering 18/11/200939


Curriculum of Computer science 4 - Years Degree (Regular)

5.6 Multimedia support


5.7 RAID architectures
Chapter 6: Functional organization
6.1 Implementation of simple data paths
6.2 Control unit: hardwired realization vs. microprogrammed realization
6.3 Instruction pipelining
6.4 Introduction to instruction-level parallelism (ILP)

Instructional Methods: Lecture supported by tutorial


Method of Evaluation:
Assignment----------------------10%
Group project---------------------15%
Mid --------------------------------30%
Final examination----------------45%

Software Requirements: VHDL Simulator

Instructor Qualification: A minimum of M. Sc. Degree in Computer Science or Computer


engineering

Text Reference
• D. A. Patterson and J. L, Hennessy (1996) Computer Architecture: A Quantitative
Approach, 2nd edition. Morgan Kaufmann, Inc.
• D.A. Patterson and J.L Hennessy (1991} Computer Organization and Design: The
• Hardware/Software Interface, 2nd edition. Morgan Kaufmann Publishers
• J.D. Carpinelli (2000) Computer Systems Organization and Architecture, Addison Wesley Pub Co.
• A.S. Taneubaum (1998) Structured Computer Organization. Prentice Hall M.
• M. Mario (1992) Computer System Architecture, Prentice Hall
• Hemacher: Computer Organization

Course $umber: Comp 222


Course Title: Fundamentals of Database Systems
Credit: 4; Lecture: 3 hours; Lab: 3 hours; Tutorial; Prerequisite: Comp101

Course Objectives
At the end of this course the students will be able to:

 Know different database models


 Understand the basic principles of database design systems using different database models
 Appreciate the use of database system in the real world.
 Differentiate database system from file system
 Design different types of databases
 Use database in their daily life
 Create databases, tables, views, triggers and indices.
 Write SQL queries and database programs
 Crate more basic database systems using different database models

Course Description

Department of CS & Engineering 18/11/200940


Curriculum of Computer science 4 - Years Degree (Regular)

This course is assumed to be the first course in database management systems. It starts by
introducing database systems and how it differs with the traditional file processing system. It then
deals with data models, ER diagrams, database design methods The course mainly emphasizes on
basics of database systems how to retrieve and modify data. It also deals different database
environments.

Course Outline
1 Introduction to Database Systems.
1.1 introduction to database system
1.2 Database system and File System
1.3 Characteristics of the Database Approach
1.4 Actors on the Scene

2. Database System Concepts and Architecture


2.1 Data Models, Schema and Instances
2.2 DBMS Architecture and Data Independence
2.3 Database Language and Interface
2.4 The Database System Environment
2.5 Classification of DBMS
3. Database Modeling
3.1 Introduction to ODL
3.2 E/R Model
3.3 Design principles, Network and hierarchical model
4 Data Modeling using Entity Relationship Model
4.1 Using High level Data Models for Database Design
4.2 Entity types and Sets, Attributes and Keys
4.3 Relationships, Roles and Structural Constraints
4.4 Weak Entity Types
4.5 Database Abstraction
4.6 E/R Diagram naming conventions, and Design issues

5 Enhanced Entity –Relationship and Object modeling


5.1 Subclass, Super-class and Inheritance
5.2 Specialization and Generalization
5.3 Constraints and Characteristics of Specialization and Generalization
6 Record Storage and Primary File Organization
6.1 Introduction
6.2 Operations on Files
6.3 Files of Unordered Records (Heap Files)
6.4 Files of Ordered Records (Sorted Files)
6.5 Hashing Techniques
7 Index Structure for Files
7.1 Types of Single level Ordered Index
7.2 Dynamic Multilevel indexes using B-Trees and B+ Trees
7.3 Indexes on Multiple Indexes
8 Basic Relational Algebra Operation
9 Database Design
9.1 Introduction
9.2 Functional Dependency
9.3 Normalization

Department of CS & Engineering 18/11/200941


Curriculum of Computer science 4 - Years Degree (Regular)

10 Structured Query Language(SQL)


10.1 SQL Statements
10.2 SQL Query
10.3 Data Manipulation Language
10.4 Constraints and Triggers

Instructional Methods: Lectures, Laboratory'


Method of Evaluation:
Assignment,-----------------15%
mid Term,--------------------25%
Final Exams-----------------40%
Project------------------------20%

Software Requirements: SQL SERVER 2000 /MS – ACCESS/ ORACLE

Instructor Qualification: A minimum of M. Sc. Degree in Computer Science, Information


Science or Computer Engineering
Text Reference
• Ramez Elmasri and Shamkant B. Navathe (2000) Fundamentals of Database Systems, 3rd
edition. Massachusetts AddisonWesley 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,
McGraxv-Hiil, 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

Course $umber: Comp 282


Course Title: Theory of Automata and Formal Languages
Credit: 3; Lecture: 2 hours; 3 Lab 0;Prerequisite: Math 397

Objectives: The course aims to develop an appreciation of the theoretical foundations of


computer science through study of mathematical & abstract models of computers and the theory
of formal languages. Theory of formal languages and use of various abstract machines as
‘recognizers’ and parsing will be studied for identifying/validating the synthetic characteristics of
programming languages. Some of the abstract machines shall also study as ‘Transducers’.

Course Outline:
Chapter 1:
Finite State Models:

Department of CS & Engineering 18/11/200942


Curriculum of Computer science 4 - Years Degree (Regular)

Chapter 2:
Language definitions preliminaries, Regular expressions/Regular languages, Finite automata
(FAs), Transition graphs (TGs), NFAs, kleene’s theorem, Transducers (automata with output),
Pumping lemma and non regular language Grammars and PDA:
Chapter 3:
Context free grammars, Derivations, derivation trees and ambiguity, Simplifying CFLs , Normal
form grammars and parsing, Push-down Automata, Pumping lemma and non-context free
languages, Decidability, Chomsky’s hierarchy of grammars Turing Machines Theory:
Chapter 4:
Turing machines, Post machine, Variations on TM, TM encoding, Universal Turing Machine,
Context sensitive Grammars, Defining Computers by TMs.

Instructor Qualification: A minimum of M. Sc., Degree in Computer Science


Text and Reference
• Arthur Gill, Applied Algebra for the Computer Sciences, Prentice Hall, 1976.
• Judith L. Gersting, Mathematical Structures for Computer Science Michael Sipser,
Introduction to the theory of Computation, J'YVS publishing, 1997.
• VJ. Rayward Smith, A First Course in Formal Language Theory
• J.E. Hopcrof & J. D. Ullman, Introduction to Automata Theory. Language and
Computation, Addison Wesley, 1979
Software Requirements: High-level language such as C++
Instructional: Lecture supported by tutorial
Method of Evaluation:
Assignment,----------------20%
mid and----------------------30%
final exams------------------50%

Course $umber: Comp 382


Course Title: Compiler Design
Credit: 4; Lecture: 3hours; Lab: 3 hour; Prerequisite: COMP 282
Learning Outcome:
1. Introduce the basic concepts and principles of compiler design.
2. expose students to the design and implementation of compilers
Course Description
Chapter 1:
Introduction to Compiling Compilers, analysis of the source program, the phases of
a compiler; cousins of the compilers, A simple one pass compiler over view,
Chapter 2:
Syntax definition, syntax-directed translation, parsing, lexical analysis, incorporating
a symbol table, putting the Techniques Together. , Lexical Analysis:
Chapter 3:
The role of the lexical analyzer, input buffering, Specifications of tokens, recognition
of tokens, a language for specifying lexical analyzers, Syntax analysis:
Chapter 5:
The role of the parser, context free grammars, top down parsing no recursive
predictive parsing, bottom up parsing, operator precedence parsing Syntax directed
translation:
Chapter 6:

Department of CS & Engineering 18/11/200943


Curriculum of Computer science 4 - Years Degree (Regular)

Syntax directed definition, bottom up evaluation of attributed definitions, Type


checking:
Chapter 7:
Type systems specification of a simple type check, Run time environments:
Chapter 8:
Source language Issues, the scope of a declaration, storage, organization static
allocation, Intermediate code generators:
Chapter 9:
Three address code, types of three address statements. Code generation Issues in the
design of a code generator, the target machine, basic blocks & flow graphs.

Instructional: Lecture supported by laboratory

Method of Evaluation:
Assignment----------------------10%
Group project---------------------15%
Mid --------------------------------30%
Final examination----------------45%

Software Requirements: High-level language such as C++

Reference Books:
Hopcroft & Ullman, “Introduction to Automata theory languages and computation”,
Narosa.
Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman, Compilers: Principles, Techniques, and
Tools, Addison-Wesley; 0201100886
Mishra & Chandra Shkaran, “Theory of computer Science”, Prentice Hall.
Kohan, “Theory of Computer Science”.

Course $umber: Comp 351


Course Title: Analysis of Algorithms
Credit: 3; Lecture: 2 hours; Lab: 3 hours prerequisite: COMP 251

Learning Outcome:
Explain the use of big O, omega, and theta notation to describe the amount of work done by
an algorithm.
Use big O, omega, and theta notation to give asymptotic upper, lower, and tight bounds on
time and space complexity of algorithms.
Determine the time and space complexity of simple algorithms.
Deduce recurrence relations that describe the time complexity of recursively defined
algorithms.
Solve elementary recurrence relations.
Describe the shortcoming of brute-force algorithms.
For each of several kinds of algorithm (brute force, greedy, divide-and-conquer,
backtracking, branch-and-bound, and heuristic), identify an example of everyday human
behavior that exemplifies the basic concept.
Implement a greedy algorithm to solve an appropriate problem.

Department of CS & Engineering 18/11/200944


Curriculum of Computer science 4 - Years Degree (Regular)

Implement a divide-and-conquer algorithm to solve an appropriate problem.


Use backtracking to solve a problem such as navigating a maze.
Describe various heuristic problem-solving methods.
Use pattern matching to analyze substrings.
Use numerical approximation to solve mathematical problems, such as finding the roots of a
polynomial.
Implement the most common quadratic and O(N log N) sorting algorithms.
Design and implement an appropriate hashing function for an application.
Discuss the computational efficiency of the principal algorithms for sorting, searching, and
hashing.
Solve problems using the fundamental graph algorithms, including depth-first and breadth-
first search, single-source and all-pairs shortest paths, transitive closure, topological sort,
and at least one minimum spanning tree algorithm.
Explain the distributed paradigm.
Describe the relative ordering of events in a distributed algorithm.
Design a deterministic finite-state machine to accept a specified language.
Explain how some problems have no algorithmic solution.
Provide examples that illustrate the concept of uncomputability.

Course Description: Algorithms are fundamental to computer science and software


engineering. The real world performance of any software system depends on only two things: (1)
the algorithms chosen and (2) the suitability and efficiency of the various layers of
implementation. Good algorithm design is therefore crucial for the performance of all software
systems. This course deals with Basic algorithmic analysis; Algorithmic strategies; Fundamental
computing algorithms; Distributed algorithms; and Basic computability.
Course Outline
Chapter 1: Basic algorithmic analysis
1.1 Asymptotic analysis of upper and average complexity bounds
1.2 Identifying differences among best, average, and worst case behaviors
1.3 Big O, little o, omega, and theta notation
1.4 Standard complexity classes
1.5 Empirical measurements of performance
1.6 Time and space tradeoffs in algorithms
1.7 Using recurrence relations to analyze recursive algorithms
Chapter 2: Algorithmic strategies
2.1 Brute-force algorithms
2.2 Greedy algorithms
2.3 Divide-and-conquer
2.4 Backtracking
2.5 Branch-and-bound
2.6 Heuristics
2.7 Pattern matching and string/text algorithms
2.8 Numerical approximation algorithms
Chapter 3: Fundamental computing algorithms
3.1 Simple numerical algorithms
3.2 Sequential and binary search algorithms
3.3 Quadratic sorting algorithms (selection, insertion)

Department of CS & Engineering 18/11/200945


Curriculum of Computer science 4 - Years Degree (Regular)

3.4 O(N log N) sorting algorithms (Quicksort, heapsort, mergesort)


3.5 Hash tables, including collision-avoidance strategies
3.6 Binary search trees
3.7 Representations of graphs (adjacency list, adjacency matrix)
3.8 Depth- and breadth-first traversals
3.9 Shortest-path algorithms (Dijkstra’s and Floyd’s algorithms)
3.10 Transitive closure (Floyd’s algorithm)
3.11 Minimum spanning tree (Prim’s and Kruskal’s algorithms)
3.12 Topological sort
Chapter 4: Distributed algorithms
4.1 Consensus and election
4.2 Termination detection
4.3 Fault tolerance
4.5 Stabilization
Chapter 5: Basic computability
5.1 Finite-state machines
5.2 Context-free grammars
5.3 Tractable and intractable problems
5.4 Incomputable functions
5.5 The halting problem
5.6 Implications of incommutability

Instructional Methods: Lecture supported by laboratory


Method of Evaluation:
Assignment----------------------10%
Mid and---------------------------25%
Project-----------------------------20%
Final examination----------------45%

Software Requirements: High-level language such Java

Instructor Qualification: A minimum of M. Sc. Degree in Computer Science

Text and Reference


• Introduction to Algorithms, T.H. Cormen etal., MIT Press and McGraw- Hill Book
Company, 1990.
• Fundamentals of Computer Algorithms, I:. Horowitz and S. Sahni, Computer
Science Press. 1978.
• Mathematical Theory of Computation, Z. Manna, McGraw-Hill, 1974.
• Computer Algorithms: Introduction to Design and Analysis. S. Baase, 2nd Ed,
Addison-Wesley Publishing Company. 1988.

Course $umber: Comp 413


Course Title: Internet Programming
Credit: 3; Lecture: 2 hours; Lab: 3 hours; Prerequisite: Comp 242

Course Objectives: At the end of this course the students will be able to have
• Practical use of Internet and its application in the real life

Department of CS & Engineering 18/11/200946


Curriculum of Computer science 4 - Years Degree (Regular)

• Practical use of client based programming


• Practical use of Server based programming

Course Description
Overview of Internet and World Wide Web: Client-server Architecture: Web server and
security. HTTP Protocol; Web page Design and development; information Architecture &
visualization; s t a t i c & dynamic pages, client side programming using scripting languages
(JavaScript, VBScript); server-side programming (JSP/ASP/ PHP); web-based database
application development.
Course Outline
Chapter 1: Introduction
1.1 Overview of Internet
1.2 World Wide Web:
1.3 Client-server Architecture:
1.4 Web server and security.
Chapter 2: Protocols:
1.1 URL,
1.2 WWW,
1.3 HTTP Protocol
Chapter 3: Web Page Design:

3.1 Web page Design and development;


3.2 information Architecture & visualization; static & dynamic pages,
3.3 Hyper Text Mark up Language

Chapter 4: Client side programming


1.1 client side programming using scripting languages (JavaScript, VBScript);

Chapter 5: Server side programming


3.1 server-side programming (JSP/ASP/ PHP);
5.2 web-based database application development.
Instructional Methods: Lectures supported by laboratory
Method of Evaluation:
Assignment----------------------10%
Mid and---------------------------25%
Project-----------------------------20%
Final examination----------------45%

Software Requirements: HTML, Front page, ASP, Java Script, PHP, VB Script , Server
side scripting language

Instructor Qualification
A minimum of M. Sc. Degree in Computer Science, Information Science or
Computer Engineering

Text
Goodman: Java script bible (3rd edition) Gage Publishing
Reference

Department of CS & Engineering 18/11/200947


Curriculum of Computer science 4 - Years Degree (Regular)

• Deitel and Deitel. "Java - How to Program", Addison-Wesley Press, Reading, Mass.
1998,
• David Flanagan. "Java in a Nutshell (Java 1.1)", Second Edition, O'Reilly and
• Associates Publishing, Sebastopol, CA, 1997.
• David Flanagan. "Java Examples in a Nutshell (Java 1.1)", O'Reilly and Associates
Publishing, Sebastopol, CA, 1997.
• Larry Wall and Randall Schariz. "Programming Perl", O'Reilly and Associates
Publishing. Sebastopol, CA, 1994
• Scott Oaks and Henry Wong. "Java Threads", O'Reilly and Associates Publishing.
Sebastopol, CA, 1997.
• Gary Cornell, Cay Horstmann. "Core Java", SUN Soft Press Publishing, Mountain View,
1996.
• S. Gundavaram. "CGI Programming on the World Wide Web", O'Reilly and
Associates Publishing, Sebastopol, CA, 1996.

Course $umber: Comp342


Course Title: Advanced Computer $etworks
Credit: 3; Lecture: 3 hours; Lab: 2 hours; Prerequisite: Comp 242

Learning Outcome:
Understand the different uses of computer networks
Identify the network software and hardware components
Understand the network reference models
Differentiate between guided and unguided transmission media
Compare and contrast how Communication Satellites, Public Switched Telephone Networks,
Mobile Telephone Systems, and Cable Televisions work.
Identify the different mechanisms used to detect and correct errors at the data link layer
Understand and mention the different mechanisms of flow control at the data link layer
Understand the Channel Allocation Problem
Understand Multiple Access Protocols
Compare and contrast Ethernet, Wireless LANs, Broadband Wireless, and Bluetooth
Understand Data Link Layer Switching
Understand Network Layer Design Issues
Understand and identify different Routing Algorithms, Congestion Control Algorithms
Understand Quality of Service, Internetworking
Compare and contrast TCP and UDP
Explain DNS—The Domain Name System, Electronic Mail
Describe the World Wide Web, and Multimedia

Course Description: This course is designed to study the details of the network reference
models: some general introduction; the physical layer; data link layer; network layer; transport
layer; and application layer.
Course Outline
Chapter 1: Introduction
1.1 Uses of computer networks
1.2 Network Hardware

Department of CS & Engineering 18/11/200948


Curriculum of Computer science 4 - Years Degree (Regular)

1.3 Network Software


1.4 Reference Model
1.5 Network Standardization
1.6 Metric Units
Chapter 2: The Physical Layer
2.1 The Theoretical Basis for Data Communication
2.2 Guided Transmission Media
2.3 Wireless Transmission
2.4 Communication Satellites
2.5 The Public Switched Telephone Network
2.6 The Mobile Telephone System
2.7 Cable Television
Chapter 3: The Data Link Layer
3.1 Data Link Layer Design Issues
3.2 Error Detection and Correction
3.3 Flow Control
Chapter 4: The Medium Access Control Sublayer
4.1 The Channel Allocation Problem
4.2 Multiple Access Protocols
4.3 Ethernet
4.4 Wireless LANs
4.5 Broadband Wireless
4.6 Bluetooth
4.7 Data Link Layer Switching
Chapter 5: The $etwork Layer
5.1 Network Layer Design Issues
5.2 Routing Algorithms
5.3 Congestion Control Algorithms
5.4 Quality of Service
5.5 Internetworking
5.6 The Network Layer in the Internet
Chapter 6: The Transport Layer
6.1 The Transport Service
6.2 Elements of Transport Protocols
6.3 A Simple Transport Protocol
6.4 The Internet Transport Protocols: UDP
6.5 The Internet Transport Protocols: TCP
6.6 Performance Issues
Chapter 7: The Application Layer
7.1 DNS—the Domain Name System
7.2 Electronic Mail
7.3 The World Wide Web
7.4 Multimedia

Department of CS & Engineering 18/11/200949


Curriculum of Computer science 4 - Years Degree (Regular)

Course Details:-Introduction: Overview of computer networks, seven-layer architecture, TCP/IP


suite of protocols, etc. network hardware, network software, examples, standasrdization, guided
transmission media, wireless transmission, data link layer design issues, error detection &
correction, elementary data link protocols, sliding window protocols, the channel Allocation
problem, multiple access protocols, Ethernet, wireless LANs, broadband LANs, blue tooth, data
link layer switching, the network layer design issues, Routing Algorithms,QOS, Congestion
control algorithms
Instructional Methods: Lectures supported by laboratory

Method of Evaluation:
8 Assignment----------------------10%
9 Mid and---------------------------25%
10 Project-----------------------------20%
11 Final examination----------------45%

Software Requirements: Programming language: C, C++, Java etc


Teachers Qualification: A minimum of MSc degree in Compute Science, Networking, Computer
Engineering
Reference Books
 W. R. Stevens. TCP/IP Illustrated, Volume 1: The protocols, Addison Wesley, 1994.
 Andrew S Tanenbaum, Computer networks 4th edition, EEE
 G. R. Wright. TCP/IP Illustrated, Volume 2: The Implementation, Addison Wesley, 1995.
 W. R. Stevens. TCP/IP Illustrated, Volume 3: TCP for Transactions, HTTP, TP, and
the Unix Domain Protocols, Addison Wesley, 1996.
 R. Handel, M. N. Huber, and S. Schroeder. ATM etworks: Concepts, Protocols,
Applications, Addison Wesley, 1998.
 W. Stallings. Cryptography and etwork Security: Principles and Practice, 2nd Edition,
Prentice Hall, 1998.
 C. E. Perkins, B. Woolf, and S. R. Alpert. Mobile IP: Design Principles and Practices,
Addison Wesley, 1997.
 Peter Loshin. IPv6 Clearly Explained, Morgan Kauffman, 1999.
 M. Gonsalves and K. Niles. IPv6 etworks, McGraw Hill, 1998.
 RFCs and Internet Drafts, available from Internet Engineering Task Force.
 Articles in various journals and conference proceedings.

Course $umber: Comp 331


Course Title: Software Engineering
Credit: 4; Lecture: 3 hours; Lab/Tutorial: 3 hour; Prerequisite: Comp 231

Learning Outcome:
12 Provide examples of the software process.
13 Articulate some of the components of a software process.
14 Provide some examples that would use software engineering.
15 Give reasons for the importance of testing and validation in the development of
software.

Department of CS & Engineering 18/11/200950


Curriculum of Computer science 4 - Years Degree (Regular)

16 Select, with justification, the software development models most appropriate for the
development and maintenance of diverse software products.
17 Apply key elements and common methods for elicitation and analysis to produce a set
of software requirements for a medium-sized software system.
18 Use a common, non-formal method to model and specify (in the form of a
requirements specification document) the requirements for a medium-size software
system (e.g., structured analysis or object-oriented-analysis).
19 Conduct a review of a software requirements document using best practices to
determine the quality of the document.
20 Translate into natural language a software requirements specification written in a
commonly used formal specification language.
21 Evaluate the quality of multiple software designs based on key design principles and
concepts.
22 Using a software requirement specification and a common program design
methodology and notation, create and specify the software design for a medium-size
software product (e.g., using structured design or object-oriented design).
23 Demonstrate the application of the different types and levels of testing (unit,
integration, systems, and acceptance) to software products of medium size.
24 Identify the principal issues associated with software evolution and explain their
impact on the software life cycle.
25 Select, with justification, an appropriate set of tools to support the software
development of a range of software products.

Course Description: History and overview of Software Engineering; Software


processes; Software requirements and specifications; Software design; Software testing
and validation; Software evolution; Software tools and environments.
Course Outline
Chapter 1: History and overview
1.1 Indicate some reasons for studying software engineering
1.2 Indicate some important topic areas such as the software process, requirements,
specifications, design, testing, validation, evolution, and project management
1.3 Mention some examples that would use the software engineering approach
1.4 Indicate the existence of formalized software processes such as the software life cycle
1.5 Explain that requirements and specifications may change slightly as a software
project evolves
1.6 Indicate the importance of language selection when doing software design
1.7 Highlight the importance of testing and validation in a software projects
Chapter 2: Software processes
2.1 Software life cycle and process models
2.2 Process assessment models
2.3 Software process metrics
Chapter 3: Software requirements and specifications
3.1 Requirements elicitation
3.2 Requirements analysis modeling techniques

Department of CS & Engineering 18/11/200951


Curriculum of Computer science 4 - Years Degree (Regular)

3.3 Functional and nonfunctional requirements


3.4 Prototyping
3.5 Basic concepts of formal specification techniques
Chapter 4: Software design
4.1 Fundamental design concepts and principles
4.2 Software architecture
4.3 Structured design
4.4 Object-oriented analysis and design
4.5 Component-level design
4.6 Design for reuse
Chapter 5: Software testing and validation
5.1 Validation planning
5.2 Testing fundamentals, including test plan creation and test case generation
5.3 Black-box and white-box testing techniques
5.4 Unit, integration, validation, and system testing
5.5 Object-oriented testing
5.6 Inspections
Chapter 6: Software evolution
6.1 Software maintenance: the different forms of maintenance; the associated disciples
and the role and the nature of configuration management and version control
6.2 Impact analysis; regression testing; associated software support
6.3Characteristics of maintainable software
6.4 Software re-use in its different forms – their strengths and weaknesses
6.5 Reengineering
6.6 Legacy systems
Chapter 7: Software tools and environments
7.1 Programming environments
7.2 Requirements analysis and design modeling tools
7.3 Testing tools
7.4 Configuration management tools
7.5 Tools based on databases – their design and development
7.6 Additional possibilities including CASE tools
7.7 Tool integration mechanisms

Instructional Methods: Lectures supported by laboratory


Method of Evaluation:
7 Assignment----------------------10%
8 Mid and---------------------------25%
9 Project-----------------------------20%
10 Final examination----------------45%

Software Requirements: Software Requirements: High level languages such C++/Java,


modelling languages such as UML, COCOMO

Department of CS & Engineering 18/11/200952


Curriculum of Computer science 4 - Years Degree (Regular)

Instructor Qualification: A minimum of M. Sc. Degree in Computer Science or M. Sc in


Software Engineering
Text Reference:
• Jalote, Pankaj (1997) An Integrated Approach to Software Engineering, 2nd ed
Springer
• Pressman, Roger (2001) Software Engineering: A Practitioner's Approach, 5th ed.
McGraw-Hill.
• 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

Course $umber: Comp 362


Course Title: Microprocessors & assembly language Programming
Credit3; Lecture: 2 hours; Lab/Tutorial: 3 hour; Prerequisite: Comp 261

Course Objectives: -Keeping students on the forefront of technology, this course offers a
practical reference to all programming and Interfacing aspects of the popular Intel family
of Microprocessors.

Course Description: This course is designed to provide fundamental skills needed to analyze
the internal architecture of Intel MPU, their assembling language and interfacing system.

Course Outline
Chapter 1: Introduction to Microprocessor and computer
Chapter 2: The Microprocessor and its Architecture: 80186, 80188, 80286, 80386, 80486
Chapter 3: Pentium II, Pentium III and Pentium 4 architecture
Chapter 4: The Arithmetic Coprocessor.
Chapter 5: Addressing Modes
Chapter 6: Data Movement Instruction.
Chapter 7: Arithmetic and Logic Instruction.
Chapter 8: Program Control Instruction.
Chapter 9: Assembling Programming language
Chapter 10: Memory Interface.
Chapter 11: Basic I/O Interface
Chapter 12: Bus Interface

Instructional Methods: Lectures, laboratory session, Discussion


Method of Evaluation:
11 Assignment----------------------10%
12 Group project---------------------15%
13 Mid --------------------------------30%
14 Final examination----------------45%
Software Requirements: Turbo assembler, Macro Assembler

Instructor Qualification: A minimum degree of MSc in Computer Engineering or


Electrical Engineering or Computer Science

Reference Books:

Department of CS & Engineering 18/11/200953


Curriculum of Computer science 4 - Years Degree (Regular)

- TheIntel Microprocessors 8086/8088, 80186/80188, 80286, 80486, Pentium and


Pentium processor – Architecture, Programming and Interfacing
o By Barry B Brey. 4th Edition, prentice Hall – India – 2002

- Ouglas v. Hall 'Microprocessors and Interfacing', tata mcgraw hill

- U ffenbeck 'Microcomputers and Interfacing', prentice hall

- Ram 'Fundamentals of Microprocessors and Microcomputers', Dhanpat Rai

- Ompkins 'PC interfacing', prentice hall

Course $umber: Comp 262


Course Title: Operating Systems
Credit: 3; Lecture: 3 hours; Prerequisite: Comp 261

Learning Outcomes
- Provide some reasons for a computer to have an operating system.
- Describe concurrency and reasons for its importance.
- Describe scheduling and illustrate how it works to improve computer
performance.
- Identify some devices an operating system would manage.
- Demonstrate understanding of the logical layers and the benefits of building
these layers in a hierarchical fashion.
- Relate system state to user protection.
- Explain the range of requirements that a modern operating system has to
address.
- Define the functionality that a modern operating system must deliver to meet a
particular need.
- Articulate design tradeoffs inherent in operating system design.
- Justify the presence of concurrency within the framework of an operating
system.
- Demonstrate the potential run-time problems arising from the concurrent
operation of many (possibly a dynamic number of) tasks.
- Summarize the range of mechanisms (at an operating system level) that are
useful to realize concurrent systems and be able to describe the benefits of
each.
- Explain the different states that a task may pass through and the data structures
needed to support the management of many tasks.
- Compare and contrast the common algorithms used for both preemptive and
non-preemptive scheduling of tasks in operating systems.
- Investigate the wider applicability of scheduling in such contexts as disk I/O,
networking scheduling, and project scheduling.
- Introduce memory hierarchy and cost-performance tradeoffs.
- Explain virtual memory and its realization in hardware and software.

Department of CS & Engineering 18/11/200954


Curriculum of Computer science 4 - Years Degree (Regular)

- Identify the relationship between the physical hardware and the virtual devices
maintained by the operating system.
- Summarize the features of an operating system used to provide protection and
security, and describe the limitations of each of these.
- Compare and contrast different approaches to file organization, recognizing the
strengths and weaknesses of each.
Course Description: The course deals with History and overview of OS; Design
principles of OS; Concurrency; Scheduling and dispatch; Memory management; Device
management; Security and protection; File systems

Course Outline
Chapter 1: History and overview
1.1 Indicate some reasons for studying operating systems
1.2 Indicate some important topic areas such as function and design, concurrency,
scheduling, dispatch, memory management, device management, file systems,
security, and protection
1.3 Describe the purpose of an operating system
1.4 Indicate the meaning of an interrupt
1.5 Describe the meaning of concurrency and the reasons for its importance
1.6 Illustrate the manner in which scheduling and dispatch take place in a
computer through its operating system
1.7 Describe the manner and importance of memory management
1.8 Describe the manner and importance of device management
1.9 Explore some additional resources associated with operating systems
1.10 explain the purpose and role of operating systems in computer engineering
Chapter 2: Design principles
2.1 Functionality of a typical operating system
2.2 Mechanisms to support client-server models, hand-held devices

2.3 Design issues (efficiency, robustness, flexibility, portability, security, compatibility)

2.4 Influences of security, networking, multimedia, windows

2.5 Structuring methods (monolithic, layered, modular, micro-kernel models)

2.6 Abstractions, processes, and resources

2.7 Concepts of application program interfaces (APIs) specific to operating systems

2.8 Applications needs and the evolution of hardware/software techniques

2.9 Device organization

2.10 Interrupts: methods and implementations

Department of CS & Engineering 18/11/200955


Curriculum of Computer science 4 - Years Degree (Regular)

2.11 Concept of user/system state and protection, transition to kernel mode

Chapter 3: Design principles


3.1 States and state diagrams
3.2 Structures (ready list, process control blocks, and so forth)
3.3 Dispatching and context switching
3.4 The role of interrupts
3.5 Concurrent execution: advantages and disadvantages
3.6 The “mutual exclusion” problem and some solutions
3.7 Deadlock: causes, conditions, prevention
3.8 Models and mechanisms (semaphores, monitors, condition variables,
rendezvous)
3.9 Producer-consumer problems and synchronization
3.10 Multiprocessor issues (spin-locks, reentrancy)
Chapter 4: Scheduling and dispatch
4.1 Preemptive and non-preemptive scheduling
4.2 Schedulers and policies
4.3 Processes and threads
4.4 Deadlines and real-time issues
Chapter 5: Memory management
5.1 Review of physical memory and memory management hardware
5.2 Overlays, swapping, and partitions
5.3 Paging and segmentation
5.4 Placement and replacement policies
5.5 Working sets and thrashing
5.6 Caching
Chapter 6: Device management
6.1Characteristics of serial and parallel devices
6.2 Abstracting device differences
6.3 Buffering strategies
6.4 Direct memory access
6.5 Recovery from failures
Chapter 7: Security and protection
7.1 Overview of system security
7.2 Policy/mechanism separation
7.3 Security methods and devices
7.4 Protection, access, and authentication
7.5 Models of protection
7.6 Memory protection
7.7 Encryption
7.8 Recovery management
Chapter 7: File systems
8.1Files: data, metadata, operations, organization, buffering, sequential, non-
sequential
8.2 Directories: contents and structure
8.3 File systems: partitioning, mount/unmount, and virtual file systems

Department of CS & Engineering 18/11/200956


Curriculum of Computer science 4 - Years Degree (Regular)

8.4 Standard implementation techniques


8.5 Memory-mapped files
8.6 Special-purpose file systems
8.7 Naming, searching, access, backups

Instructional Methods: Lectures, laboratory session, Discussion


Method of Evaluation:
9 Assignment----------------------10%
10 Group project---------------------15%
11 Mid --------------------------------30%
12 Final examination----------------45%

Software Requirements: U$IX/Linux operation systems

Instructor Qualification: A minimum of M. sc. Degree in Compute science or Computer


Engineering or Distributed Systems
Text Reference: Andrew S. Tanenbaum (1992) Modern Operating Systems. Prentice-Hall
International Inc.
• Operating Systems, 4th edition by W. Stalling (editor) Prentice-Hall 2001
• Distributed Systems: Concepts and Design (3rd edition), George Coulouris, Jean
• Dollimore and Tim Kindberg, Addison Wesley Longman, 2000.
• Distributed Programming with Java, Qusay H. Mahmoud, Manning Publications Co., 2000.
• Distributed Systems: Principles and Paradigms, Andrew S. Tanenbaum and Maarten van
Steen, Prentice-Hall, 2002.

Course $umber: Comp 372


Course Title: Introduction to Artificial Intelligence
Credit: 3; Lecture: 2; Tutorial: Lab 3; Prerequisite: Phil 100, Math 397
Learning Outcome:
13 Describe the Turing test and the “Chinese Room” thought experiment.
14 Differentiate the concepts of optimal reasoning and human-like reasoning.
15 Differentiate the concepts of optimal behavior and human-like behavior.
16 List examples of intelligent systems that depend on models of the world.
17 Describe the role of heuristics and the need for tradeoffs between optimality and efficiency.
18 Formulate an efficient problem space for a problem expressed in English by expressing that
problem space in terms of states, operators, an initial state, and a description of a goal state.
19 Describe the problem of combinatorial explosion and its consequences.
20 Select an appropriate brute-force search algorithm for a problem, implement it, and
characterize its time and space complexities.
21 Select an appropriate heuristic search algorithm for a problem and implement it by designing
the necessary heuristic evaluation function.
22 Describe under what conditions heuristic algorithms guarantee optimal solution.
23 Implement minimax search with alpha-beta pruning for some two-player game.
24 Formulate a problem specified in English as a constraint-satisfaction problem and implement
it using a chronological backtracking algorithm.
25 Explain the operation of the resolution technique for theorem proving.
26 Explain the distinction between monotonic and nonmonotonic inference.
27 Discuss the advantages and shortcomings of probabilistic reasoning.

Department of CS & Engineering 18/11/200957


Curriculum of Computer science 4 - Years Degree (Regular)

28 Apply Bayes theorem to determine conditional probabilities.


29 Explain how an agent differs from other categories of intelligent systems.
30 Characterize and contrast the standard agent architectures.
31 Describe the applications of agent theory, to domains such as software agents, personal
assistants, and believable agents.
32 Describe the distinction between agents that learn and those that don’t.
33 Demonstrate using appropriate examples how multi-agent systems support agent interaction.
34 Describe and contrast robotic and mobile agents.

Course Description: The field of artificial intelligence (AI) is concerned with the design and
analysis of autonomous agents. These are software systems and/or physical machines, with
sensors and actuators, embodied for example within a robot or an autonomous spacecraft. An
intelligent system has to perceive its environment, to act rationally towards its assigned tasks, to
interact with other agents and with human beings. These capabilities are covered by topics such
as computer vision, planning and acting, robotics, multiagents systems, speech recognition, and
natural language understanding. They rely on a broad set of general and specialized knowledge
representations and reasoning mechanisms, on problem solving and search algorithms, and on
machine learning techniques. Hence the focus of this course is to deal with Fundamental issues in
intelligent systems; Search and constraint satisfaction; Knowledge representation and reasoning.
Course Outline
Chapter 1: Fundamental issues in intelligent systems
1.1History of artificial intelligence
1.2 Philosophical questions
1.2.1 The Turing test
1.2.2 Searle’s “Chinese Room” thought experiment
1.2.3 Ethical issues in AI
1.3 Fundamental definitions
2.3.1 Optimal vs. human-like reasoning
2.3.2 Optimal vs. human-like behaviour
1.4 Philosophical questions
1.5 Modelling the world
1.6 The role of heuristics
Chapter 2: Search and constraint satisfaction
2.1 Problem spaces
2.2 Brute-force search (breadth-first, depth-first, depth-first with iterative deepening)
2.3 Best-first search (generic best-first, Dijkstra’s algorithm, A*, admissibility of A*)
2.4 Two-player games (minimax search, alpha-beta pruning)
2.5 Constraint satisfaction (backtracking and local search methods)
Chapter 3: Knowledge representation and reasoning
3.1Review of propositional and predicate logic
3.2 Resolution and theorem proving
3.3 Nonmonotonic inference
3.4 Probabilistic reasoning
3.5 Bayes theorem
Chapter 4: Agents
4.1 Definition of agents
4.2 Successful applications and state-of-the-art agent-based systems
4.3 Agent architectures

Department of CS & Engineering 18/11/200958


Curriculum of Computer science 4 - Years Degree (Regular)

4.3.1 Simple reactive agents


4.3.2 Reactive planners
4.3.3 Layered architectures
4.3.4 Example architectures and applications
5 Agent theory
5.1 Commitments
5.2 Intentions
5.3 Decision-theoretic agents
5.4 Markov decision processes (MDP)
6 Software agents, personal assistants, and information access
5.1 Collaborative agents
5.2 Information-gathering agents
6 Believable agents (synthetic characters, modeling emotions in agents)
7 Learning agents
8 Multi-agent systems
8.1 Economically inspired multi-agent systems
8.2 Collaborating agents
8.3 Agent teams
8.4 Agent modeling
8.5 Multi-agent learning
9 Introduction to robotic agents
10 Mobile agents
Teaching Methodology: Lecture, Laboratory session and group based assignment and
presentation
Evaluation Method:
11 Assignment----------------------10%
12 Group project---------------------15%
13 Mid --------------------------------30%
14 Final examination----------------45%

Software Requirement: PROLOG, LISP and PYTHON


References:
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.
Russell, S. and P. Norvig (1995) Artificial Intelligence: A Modern Approach
Prentice-Hall.
Ginsberg, M.L. (1993) Essentials of Artificial Intelligence. Morgan Kaufman.

Course $umber: Comp 482


Course Title: Computer Graphics
Credit: 3; Lecture: 2; Tutorial: Lab 3; Prerequisite: Comp 112

Learning Outcome:
15 Distinguish the capabilities of different levels of graphics software and describe the
appropriateness of each.
16 Create images using a standard graphics API.

Department of CS & Engineering 18/11/200959


Curriculum of Computer science 4 - Years Degree (Regular)

17 Use the facilities provided by a standard API to express basic transformations such as scaling,
rotation, and translation.
18 Implement simple procedures that perform transformation and clipping operations on a
simple 2-dimensional image.
19 Discuss the 3-dimensional coordinate system and the changes required to extend 2D
transformation operations to handle transformations in 3D
20 Describe the appropriateness of graphics architectures for given applications.
21 Explain the function of various input devices.
22 Compare and contrast the techniques of raster graphics and vector graphics.
23 Use current hardware and software for creating and displaying graphics.
24 Discuss the expanded capabilities of emerging hardware and software for creating and
displaying graphics.
25 Explain the value of using colors and pseudo-colors.
26 Demonstrate the ability to create effective video and hardcopy images.
27 Identify effective and ineffective examples of communication using graphics.
28 Create effective examples of graphic communication, making appropriate use of color,
legends, text, and/or video.
29 Create simple polyhedral models by surface tessellation.
30 Construct CSG models from simple primitives, such as cubes and quadric surfaces.
31 Generate a mesh representation from an implicit surface.
32 Generate a fractal model or terrain using a procedural method.
33 Generate a mesh from data points acquired with a laser scanner.
34 Explain the operation of the Bresenham algorithm for rendering a line on a pixelbased
display.
35 Explain the concept and applications of each of these techniques.
36 Demonstrate each of these techniques by creating an image using a standard API.
37 Describe how a graphic image has been created.
38 Explain the spline interpolation method for producing in-between positions and orientations.
39 Compare and contrast several technologies for motion capture.
40 Use the particle function in common animation software to generate a simple animation, such
as fireworks.
41 Use free-form deformation techniques to create various deformations.

Course Description: Computer graphics is the art and science of communicating information
using images that are generated and presented through computation. This requires (a) the design
and construction of models that represent information in ways that support the creation and
viewing of images, (b) the design of devices and techniques through which the person may
interact with the model or the view, (c) the creation of techniques for rendering the model, and (d)
the design of ways the images may be preserved The goal of computer graphics is to engage the
person’s visual centers alongside other cognitive centers in understanding. Generally, this course
deals with Fundamental techniques in graphics; Graphic systems; Graphic communication;
Geometric modeling; Basic rendering; Advanced rendering; Advanced techniques; Computer
animation.
Course Outline
Chapter 1: Fundamental techniques in graphics
1.1 Hierarchy of graphics software
1.2 Using a graphics API
1.3 Simple color models (RGB, HSB, CMYK)
1.4 Homogeneous coordinates

Department of CS & Engineering 18/11/200960


Curriculum of Computer science 4 - Years Degree (Regular)

1.5 Affine transformations (scaling, rotation, translation)


1.6 Viewing transformation
1.7 Clipping
Chapter 2: Graphic systems
2.1 Raster and vector graphics systems
2.2 Video display devices
2.3 Physical and logical input devices
2.4 Issues facing the developer of graphical systems
Chapter 3: Graphic communication
3.1 Psychodynamics of color and interactions among colors
3.2 Modifications of color for vision deficiency
3.3 Cultural meaning of different colors
3.4 Use of effective pseudo-color palettes for images for specific audiences
3.5 Structuring a view for effective understanding
3.6 Image modifications for effective video and hardcopy
3.7 Use of legends to key information to color or other visual data
3.8 Use of text in images to present context and background information
3.9 Visual user feedback on graphical operations
Chapter 4: Geometric modeling
4.1 Polygonal representation of 3D objects
4.2 Parametric polynomial curves and surfaces
4.3 Constructive Solid Geometry (CSG) representation
4.4 Implicit representation of curves and surfaces
4.5 Spatial subdivision techniques
4.6 Procedural models
4.7 Deformable models
4.8 Subdivision surfaces
4.9 Multiresolution modeling
4.10 Reconstruction
Chapter 5: Basic rendering
5.1 Line generation algorithms (Bresenham)
5.2 Font generation: outline vs. bitmap
5.3 Light-source and material properties
5.4 Ambient, diffuse, and specular reflections
5.5 Phong reflection model
5.6 Rendering of a polygonal surface; flat, Gouraud, and Phong shading
5.7 Texture mapping, bump texture, environment map
5.8 Introduction to ray tracing
5.9 Image synthesis, sampling techniques, and anti-aliasing
Chapter 6: Computer animation
6.1 Key-frame animation
6.2 Camera animation
6.3 Scripting system
6.4 Animation of articulated structures: inverse kinematics
6.5 Motion capture
6.6 Procedural animation

Department of CS & Engineering 18/11/200961


Curriculum of Computer science 4 - Years Degree (Regular)

6.7 Deformation

Teaching Mthodology: Lecture, Laboratory session and group based assignment and
presentation
Evaluation Method: Assignment, Mid term exam, Group project and Final examination
Software Requirement: Programming language: C or C++, OpenGel
Instructor Qualification: A minimum of MSc degree in computer Science and above

Reference:
Angel, Edward (2000) Interactive Computer Graphics, 2nd ed., Addison-Wesley.
Foley, J.D. (1994) Computer Graphics: Principles and Practice, 2nd ed. Addison-
Wesley.
Hearn and Baker (1997) Computer Graphics – C version, 2nd ed. Prentice Hall.
Woo, Mason (1999) OpenGL Programming Guide: The
official Guide to Learning OpenGL, Version 1.2, 3rd
ed. Addison-Wesley

Course $umber: Comp 381


Course Title: Complexity Theory
Credit: 3; Lecture: 2; Tutorial: 3; Lab 0;Prerequisite: Comp 282

Course Objective: After the end of this lesson, students will be able to:

• Understand what complexity theory is


• Define and use Turing machines
• Use P and NP algorithms to solve different problems
• Know who to design Turing machine
Course Description

Complexity Theory is a central field of Theoretical Computer Science, with a remarkable


list of celebrated achievements as well as a very vibrant present research activity. The
field is concerned with the study of the intrinsic complexity of computational tasks, and
this study tends to aim at generality: It focuses on natural computational resources, and
the effect of limiting those on the class of problems that can be solved. This course is
aimed at exposing the students to the basic results and research directions in the field.

Course Outline:
Chapter 1: Introduction.
Chapter 2: Turing machines

Chapter 3: P versus NP

Chapter 4: Reductions and Self-reducibility

Chapter 5: NP-completeness

Department of CS & Engineering 18/11/200962


Curriculum of Computer science 4 - Years Degree (Regular)

Chapter 6: Complexity classes defined by a sharp threshold

Chapter 7: Space Complexity

Chapter 8: The Polynomial-Time Hierarchy

Chapter 9: Randomized Complexity Classes

Chapter 10: Non-Uniform Complexity

Chapter 11: Counting Classes

Chapter 12: Space is more valuable than time [not included]

Chapter 13: Circuit Depth and Space Complexity

Teaching Methodology: Lecture, tutorial


Evaluation Method:
Assignment------------------20%
Mid--------------------------30%
Final Examination----------50%

References:

Course $umber: Comp 321


Course Title: Advanced Database Systems
Credit: 3; Lecture: 2 hours; Lab: 3 hours, Prerequisite: Comp 222

Course Objectives At the end of this course the students will be able to:
 Understand the database query processing and optimization
 Know the basics of transaction management
 Understand database security
 Use different recovery methods when there is a database failure
 Design a distributed database system in homogenous and heterogeneous
environments
Course Description: This course includes including file organizations, storage
management, , query optimization, transaction management, recovery, and concurrency
control, database authorization and security. Additional topics including distributed
databases, mobile 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 Outline
Chapter 1: Query processing and Optimization
1.1. Translating SQL Queries into Relational Algebra

Department of CS & Engineering 18/11/200963


Curriculum of Computer science 4 - Years Degree (Regular)

1.2. Basic Algorithms for Executing Query Operations


1.3. Using Heuristic in Query Optimization
1.4. Using Selectivity and Cost Estimates in Query Optimization
1.5. Semantic Query Optimization
Chapter 2: Transaction Processing Concepts
2.1. Introduction
2.2. Transaction and System Concepts
2.3. Properties of Transaction
2.4. Schedules and Recoverability
2.5. Serializability of Schedules
2.6. Transaction Support in SQL
Chapter 3: Concurrency Control Techniques
3.1 Locking Techniques for Concurrency Control
3.2 Concurrency Control Based ON Timestamp Ordering
3.3 Multiversion Concurrency Control Techniques
3.4 Validation (Optimistic) Concurrency Control Technique
3.5 Granularity of Data Items and Multiple Granularity Locking
3.6 Using Locks for Concurrency Control in Indexes
Chapter 4: Database Recovery Techniques
4.1 Recovery Concepts
4.2 Recovery Concepts Based on Deferred Update
4.3 Recovery Concepts Based on Immediate Update
4.4 Shadow Paging
4.5 The ARIES Recovery Algorithm
4.6 Recovery in Multidatabase Systems
Chapter 5: Database Security and
Authorization
5.1 Introduction to DB Security Issues
5.2 Discretionary Access Control Based on Granting /Revoking of Privileges
5.3 Mandatory Access Control for Multilevel Security
5.4 Statistical DB Security
Chapter 6: Distributed Database System
6.1 Distributed Database Concepts
6.2 Data Fragmentation, Replication, and Allocation Techniques for Distributed
database Design
6.3 Types of Distributed Database Systems
6.4 Query Processing in Distributed Databases
6.5 An over view of Client- Server Architecture and its Relationship to Distributed
database
Teaching Methodology: Lecture assisted by laboratory
Evaluation Method:
7 Assignment----------------------10%
8 Group project---------------------15%
9 Mid --------------------------------30%
10 Final examination----------------45%

Software Requirement: Oracle database

Department of CS & Engineering 18/11/200964


Curriculum of Computer science 4 - Years Degree (Regular)

Instructor Qualification::A minimum of MSc degree and above in Database or


Computer Science

References:

 Elmasri et al (2004),Fundamentals of Database Systems, 4th ed, Pearson


Educations
 Silberschatz etal(2006). Database System Concepts, 5th ed, Boston, McGraw
Hill
 Hector Garcia-Molina, Jeffrey Ullman and Jennifer Widom, (2002)Database
Systems: The Complete Book, Prentice Hall
 Thomas Connolly and Carolyn Begg,(2005) Database Systems: A Practical
Approach to Design, Implementation, and Management, Addison Wesley, 4th
edition.

Course $umber: Comp 441


Course Title: Computer Security
Credit: 3; Lecture: 2; Tutorial: 0;Lab 3, Prerequisite: Comp 342, Comp 262

Course Objective: After completing this course, students should be able to:

1 Learn fundamentals of cryptography.


2 Understand network security threats and countermeasures.
3 Acquire background for supporting electronic commerce.
4 Gain hands-on experience with programming techniques for security protocols
5 Obtain background for original research in network security

Course Description

This course is designed to provide fundamental skills needed to analyze the internal and
external security threats against a network, and to develop security policies that will
protect an organization’s information. Students will learn how to evaluate network and
Internet security issues and design, and how to implement successful security policies
and firewall strategies.

Security requirements and basic goals for computer security ,Introduction to


cryptography and its application to network; applications of cryptography; secret key and
public key cryptographic algorithms; hash functions; authentication; security for
electronic mail; Digital Signature, Management of Public Keys Through Third Parties:
Digital Certificate, Certification Authority Hierarchy and Revocation of Certificates.
Low-level protection mechanisms, access control: models for access control, some
confidentiality and integrity Secure Socket Layer, SSL Architecture, Handshake
Protocol, Change Cipher Spec Protocol, Alert Protocol , IP Security (IPSec.), Malicious
code: viruses, worms, Trojan horses; how they work and how to defend against them.

Department of CS & Engineering 18/11/200965


Curriculum of Computer science 4 - Years Degree (Regular)

Problems in network security; kinds of attacks, PKI, key exchange protocols, example
protocols such as PGP, Kerberos, IPSEC/VPN, SSL, S/MIME etc. Steganography. Tools
for network security such as firewalls and intrusion detection systems.

Course Outline

Chapter 1: Introduction:

1.1ecurity requirements and basic goals for computer security ,

1.1Introduction to cryptography and its application to network;

Chapter 2: Security threats:

2.1 applications of cryptography;

2.2 secret key and public key cryptographic algorithms; hash functions;

2.3 authentication;

2.4 security for electronic mail;

2.5 Digital Signature,

Chapter 3: Management of Keys

3.1 Management of Public Keys Through Third Parties:


3.2 Digital Certificate,
3.3 Certification Authority Hierarchy and Revocation of Certificates.

Chapter 4: Operating System Security: l

4.1 Low-level protection mechanisms,


4.2 access control: models for access control,
4.3 some confidentiality and integrity

Chapter 5: Transport Layer Security:

5.1 Secure Socket Layer,


5.2 SSL Architecture,
5.3 Handshake Protocol,
5.4 Change Cipher Spec Protocol, Alert Protocol ,
5.5 IP Security (IPSec.),

Chapter 6: Malicious code:

Department of CS & Engineering 18/11/200966


Curriculum of Computer science 4 - Years Degree (Regular)

6.1 viruses,
6.2 worms,
6.3 Trojan horses;
6.4 how they work and how to defend against them.

Chapter 7: $etwork Security:

7.1 Problems in network security; kinds of attacks,


7.2 PKI, key exchange protocols, example protocols such as PGP, Kerberos,
IPSEC/VPN, SSL, S/MIME etc.
7.3 Steganography.

Teaching Methodology: Lecture assisted by Tutorial


Evaluation Method:
11 Assignment----------------------10%
12 Group project---------------------15%
13 Mid --------------------------------30%
14 Final examination----------------45%

Instructor Qualification: A minimum of MSc degree and above in Networking, web


technology, or computer Science

Tools:

Tools for network security such as firewalls and intrusion detection systems, Java etc

References:

Fred Halshall "Data Communication, Computer Networks & Open systems" Publication
Pearson Education

W. R. Stevens. TCP/IP Illustrated, Volume 1: The protocols, Addison Wesley, 2000

W. Stallings. Cryptography and etwork Security: Principles and Practice, 2nd Edition,
Prentice Hall, 2000

C. E. Perkins, B. Woolf, and S. R. Alpert. "Mobile IP: Design Principles and Practices," Addison
Wesley, 2000.

Peter Loshin. IPv6 Clearly Explained, Morgan Kauffman,1999.

M. Gonsalves and K. Niles. IPv6 etworks, McGraw Hill, 1998.

Department of CS & Engineering 18/11/200967


Curriculum of Computer science 4 - Years Degree (Regular)

Course $umber: Comp 311


Course Title: Systems Programming
Credit: 3; Lecture: 2; Tutorial: Lab 3, Prerequisite: - Comp 262
Course Objective
Demonstrate mastery of the internal operation of Unix system software including
assemblers, loaders, macro-processors, interpreters, interprocess communication.

Course Description: System Programming overview: Application Vs. System


Programming, System Software, Operating System, Device Drivers, OS Calls. Window
System Programming for Intel386 Architecture: 16 bit Vs 32 bit, Programming, 32 bit
Flat memory model, Windows Architecture. Virtual Machine (VM)Basics, System
Virtual Machine, Portable Executable Format, Ring O Computer, Linear Executable
format, Virtual Device Driver (V + D), New Executable format, Module Management,
COFF obj format 16 bit. (Unix) other 32-bit O.S Programming for I 386; Unix Binaryble
format (ELF), Dynamic shared objects, Unix Kernel Programming (Ring O), Unix
Device Architecture (Character & Block Devices), Device Driver Development,
Enhancing Unix Kernel.
Course outline
Chapter 1: System Programming overview
Chapter 2: Application Vs. System Programming, System Software, Operating
System, Device Drivers, OS Calls.
Chapter 3: Window System Programming for Intel386 Architecture: 16 bit Vs
32 bit, Programming, 32 bit Flat memory model, Windows Architecture.
Chapter 4: Virtual Machine (VM)Basics, System Virtual Machine, Portable
Executable Format, Ring O Computer, Linear Executable format, Virtual
Device Driver (V + D), New Executable format, Module Management, COFF
obj format 16 bit. (Unix) other 32-bit O.S Programming for I 386
Chapter 5: Unix Binaryble format (ELF), Dynamic shared objects, Unix Kernel
Programming (Ring O), Unix Device Architecture (Character & Block Devices), Device
Driver Development, Enhancing Unix Kernel.

Teaching Methodology: Lecture assisted by laboratory


Evaluation Method:
15 Assignment----------------------10%
16 Group project---------------------15%
17 Mid --------------------------------30%
18 Final examination----------------45%

Software Requirement: Programming language C, C++, Linux, Unix


Instructor Qualification::A minimum of MSc degree and above in Distributed
Systems or Computer Science
References:
The UIX Programming Environment, B. Kernighan & R. Pike Prentice-Hall,
1984.
System Software, Leland L. Beck, Addison-Wesley Longmsan, 1990, ISBN: 0-
201-50945-8.

Department of CS & Engineering 18/11/200968


Curriculum of Computer science 4 - Years Degree (Regular)

Course $umber: Comp 332


Course Title: Software Project Management
Credit: 3; Lecture: 3; Tutorial: Prerequisite: - Comp 331
Course Objectives: To develop ability to plan and manage software development
projects successfully, maximizing the return from each stage of the software development
life cycle.

Course Outline
Chapter 1: Introduction to Project Management
1.1. Importance of software project management
1.1.1 What is a project?
1.1.2 Problems with Software Projects
1.1.3 What is Project Management?
1.2. Stages of Project
1.2.1. The Feasibility Study
1.2.1.1 The Cost-benefit Analysis
1.2.2. Planning
1.2.3. Project Execution
1.2.4 Project and Product Life Cycles
1.3. The Stakeholder of Project
1.3.1 All parties of project
1.3.2 The Role of Project Manager
1.4. Project Management Framework
1.5. Software Tools for Project Management
Chapter 2: Project Planning
2.1. Integration Management
2.1.1 What is Integration Management?
2.1.2. Project Plan Development
2.1.3. Plan Execution
2.2 Scope Management
2.2.1 What is Scope Management?
2.2.2 Methods for Selecting Projects
2.2.3 Project Charter
2.2.4 Scope Statement
2.2.5 Work Breakdown Structure
2.3 Stepwise Project Planning
2.3.1 Overview
2.3.2 Main Steps in Project Planning
Chapter 3: Project Scheduling
3.1 Time Management
3.1.1. Importance of Project Schedules
3.1.2. Schedules and Activities
3.1.3. Sequencing and Scheduling Activity
3.2 Project Network Diagrams
Chapter 4: Project Cost Management
4.1. Importance and Principles of Project Cost Management
4.2. Resource Planning
4.3. Cost Estimating
4.4 Cost Budgeting

Department of CS & Engineering 18/11/200969


Curriculum of Computer science 4 - Years Degree (Regular)

4.5 Cost Control


Chapter 5: Project Quality Management
5.1 Quality of Information Technology Projects
5.2 Stages of Software Quality Management
5.2.1 Quality Planning
5.2.2 Quality Assurance
5.2.3 Quality Control
5.3 Quality Standards
5.4 Tools and Techniques For Quality Control
Chapter 6: Project Human Resources Management
6.1. What is Project Human Resources Management?
6.2 Managing People
6.3. Organizational Planning
6.4. Issues in Project Staff Acquisition and Team Development
Chapter 7: Project Communication Management
7.1. Communications Planning
7.2. Information Distribution
7.3. Performance Reporting
7.4. Administrative Closure
7.5. Suggestions for Improving Project Communications
Chapter 8: Project Risk Management
8.1. The Importance of Project Risk Management
8.2. Common Sources of Risk in IT projects
8.3. Risk Identification
8.4. Risk Quantification
8.5. Risk Response Development and Control
Chapter 9: Project Procurement Management
9.1. Importance of Project Procurement Management
9.2. Procurement Planning
9.3. Solicitation
9.4. Source Selection
9.5. Contract Administration
9.6. Contract Close-out
Chapter 10: Project Management Process Groups
10.1 Introduction to Project Management Process Groups
10.2. Project Initiation
10.3. Project Planning
10.4. Project Executing
10.5. Project Controlling and Configuration Management
10.6. Project Closing

Teaching Methodology: Lecture and managing fictitious project


Evaluation Method:
19 project-----------------------------20%
20 Mid --------------------------------30%
21 Final examination----------------50%

Software Requirement: MS Project and others

Instructor Qualification: A minimum of MSc degree and above in Software

Department of CS & Engineering 18/11/200970


Curriculum of Computer science 4 - Years Degree (Regular)

Engineering or Computer Science

References:
1. Software Project Management, Richard H. Thayer, Wiley IEEE Press 2002, ISBN
0-7695-1199-6.
2. Software Engineering: A Practitioner's Approach, 4th edition, Roger S. Pressman,
McGraw-Hill Higher Education, ISBN: 0070521824.
3. “Information Technology Project Management” Kathy Schwalbe, International
Student Edition, THOMSO Course Technology, 2003
4. Basics of Software Project Management, IIT, Prentice-Hall India, 2004
5. Software Project Management in Practice, Pankaj Jalote, Pearson Education,
2002
6. Software Project Management, A Concise Study, S.A. Kelkar, Revised Edition,
Prentice-Hall India, 2003

Course $umber: Comp 442


Course Title: Wireless Communications and Mobile Computing
Credit: 3; Lecture: 2; Tutorial: 3, Prerequisite: - Comp 342

Course Objectives
At the end of the this course the students will be able to understand the fundamental problems in
the area of wireless communication and mobile computing and study the existing and proposed
solutions for these problems from both research and development perspective.

Course Description
Overview of wireless Telephony, IEEE 802.11 & Blue Tooth, Wireless Multiple access
protocols, mobile and wireless networks (cellular, ad hoc, sensor based) ,applications
(data broadcasting, context-aware),challenges , Cellular architecture, co-channel
interference, frequency reuse, capacity increase by cell splitting. Evolution of mobile
system: CDMA, FDMA, TDMA, GSM. , Multiple-access schemes (CSMA/CA, MACA
etc.),Unicast and multicast routing protocols (Mobile-IP, IPv6, DSR, AODV etc.),Data
dissemination in wireless sensor networks. Mobility management :Location management
schemes, handoff schemes
Resource management: channel allocation, power-management, Wireless and mobile data
services: data broadcast scheduling algorithms,Mobile client-server computing and data
management : data caching, disconnected operation, Energy-efficient computing and
communication: MAC protocols, disk scheduling Ad hoc Network Routing Protocols:
Ad hoc network routing protocols, destination sequenced distance vector algorithm,
cluster based gateway switch routing, global state routing, fish-eye state routing, dynamic
source routing, ad hoc on-demand routing, location aided routing, zonal routing
algorithm.

Course Outline
Chapter 1: Introduction to Wireless Communication :
Overview of wireless Telephony,
IEEE 802.11 & Blue Tooth,

Department of CS & Engineering 18/11/200971


Curriculum of Computer science 4 - Years Degree (Regular)

Wireless Multiple access protocols,


Chapter 2: Introduction to Mobile Computing :
mobile and wireless networks (cellular, ad hoc, sensor based) applications (data
broadcasting, context-aware),challenges ,
Cellular architecture, co-channel interference, frequency reuse, capacity increase by cell
splitting.
Chapter 3: Mobile and wireless communication
Evolution of mobile system: CDMA, FDMA, TDMA, GSM. , Multiple-access schemes
(CSMA/CA, MACA etc.),
Unicast and multicast routing protocols (Mobile-IP, IPv6, DSR, AODV etc.),
Data dissemination in wireless sensor networks.
Chapter 4: Mobility management :
Location management schemes,
handoff schemes
Chapter 5: Resource management:
channel allocation,
power-management
Chapter 6: Wireless and mobile data services:
data broadcast scheduling algorithms
Chapter 7: Mobile client-server computing and data management
data caching,disconnected operation
Chapter 8: Energy-efficient computing and communication:
MAC protocols, disk scheduling
Chapter 9: Ad hoc $etwork Routing Protocols:
Ad hoc network routing protocols,
destination sequenced distance vector algorithm,
cluster based gateway switch routing,
global state routing,
fish-eye state routing,
dynamic source routing,
ad hoc on-demand routing,
location aided routing,
zonal routing algorithm.

Teaching Methodology: Lecture assisted by laboratory


Evaluation Method:
22 Assignment----------------------10%
23 Group project---------------------15%
24 Mid --------------------------------30%
25 Final examination----------------45%

Software Requirement: Java, Blue tooth etc

Department of CS & Engineering 18/11/200972


Curriculum of Computer science 4 - Years Degree (Regular)

Instructor Qualification::A minimum of MSc degree and above in Networking,


Wireless Communication or Computer Science or
computer Engineering
References:

Fundamentals of Mobile and Pervasive Computing by S. K. S. Gupta, F. Adelstein, G. Richard and L.


Schweibert

A S Tannenbaum " Computer Networks" Prentice Hall of India Publication

Fourozon " Data Communication & Computer Networks" Tata Mcgraw Hill Publication

W. Stallings. Cryptography and etwork Security: Principles and Practice, 2nd Edition,
Prentice Hall, 2000

C. E. Perkins, B. Woolf, and S. R. Alpert. "Mobile IP: Design Principles and Practices," Addison
Wesley, 2000.

Peter Loshin. IPv6 Clearly Explained, Morgan Kauffman,1999.

M. Gonsalves and K. Niles. IPv6 etworks, McGraw Hill, 1998.

Course $umber: Comp 431


Course Title: Requirement Engineering
Credit: 3; Lecture: 3; Tut 0; Lab 0; Prerequisite: - Comp 331

At the end of this course the students will be able to:


understand the importance of requirement engineering in system development
Know the techniques of requirement elicitation
Understand the role of requirement document in the development process
Write requirement specification documents
Appreciate how the requirement directly or indirectly
Know about different types of requirements
Understand the role of stakeholders in the RE process
Elicit requirements using different elicitation techniques
Specify and document requirements
Validate documents Prioritize requirement
Course Description
Requirement engineering is the branch of software engineering concerned with
the real world goals for, functions of, and constraints on software systems. It deals
with the real-world goals; it bridges the informal world of stakeholders’ needs,
and the formal world of the software behaviour. RE also deals with the precise
specifications of software behaviour. RE is concerned with the ‘what’ aspects of
the system and it sets the guidelines that the designers will draw upon and the
testers will refer to. Lastly, requirement engineering deals with the evolution over
time and evolution across software families. RE copes with the changes in real
world systems and provides reusable features

Department of CS & Engineering 18/11/200973


Curriculum of Computer science 4 - Years Degree (Regular)

Course Outline:

Chapter 1: Introduction to Requirement Engineering


Chapter 2: Requirement Engineering Process
2.1 Process Models
2.2 Actors in Requirements engineering process
2.3 Process support
2.4 Process Improvement
Chapter 3: Requirement Elicitation and Analysis
3.1Elicitation and Analysis Process
3.2 Elicitation Techniques
3.2.1 Interviews
3.2.2 Scenarios
3.2.3 Soft system Methods
3.2.4 Observation & Social Analysis
3.2.5 Focus Groups
3.2.6 Ethnography
3.3 Prototyping
3.4 Requirement Analysis and Negotiation
Chapter 4: Requirement Specification
4.1 Modelling
4.2 Writing requirement documents
Chapter 5: Requirement Validation
5.1 Requirement review
5.2 Prototyping
5.3 Model validation
5.4 Requirement testing
Chapter 6: Requirement Management
6.1 Stable and volatile requirements
6.2 Requirements identification and storage
6.3 Change management
6.4 Traceability
Chapter 7: Requirement engineering Techniques
7.1 Methods for RE
7.2 Viewpoint-oriented Requirements Methods
7.3 Non-functional Requirement
Chapter 8: Requirement and Risk Reduction

Teaching Methods: Lecture, laboratory, field trips in industry


Evaluation Methods:
Midterm exam -------------------------------------------------------------------- (20%),
Final examination----------------------------------------------------------------- (30)
Project students are expected to a real requirement project in teams-------- (50%)

Instructor Qaulification: A minimum of MSc in Requirement Engineering, Software


Engineering or Computer Scinece
References:

Department of CS & Engineering 18/11/200974


Curriculum of Computer science 4 - Years Degree (Regular)

Ian Sommerville & Pete Sawyer (1997) Requirement Engineering : A Good Practice
Guide. UK, John Wiley and Sons LTD
Hull, Jackson and Dick(2004).Requirements Engineering, 2nd ed. Spring
Karl E. Wiegers (2003). Software Requirements, Second Edition
Ian K Bray and Ian Bray (2002). An Introduction to Requirements Engineering.
Gerald Kotonya and Ian Sommerville (1998). Requirement Engineering: Process and
Techniques.
Johan F. Hoorn(2006). Software Requirements: Update, Upgrade, Redesign- Towards a
Theory of R equirement Change. Vrije Universiteit.

Course $umber: Comp 491


Course Title: Industrial Project I
Credit: 3; Laboratory 9 hours

Description:
This project will enable students to acquire analytical and problem-solving skills,
application of theory and practices Computer based system management, collaboration
in group-work, communication skills both written and oral, and confidence to tackle
unfamiliar problems in addition to the business-related skills. In this course students
will define their problem area, prepare project proposal, elicit requirements, and
analyze and design their new system.
Instructional Method: Group work assisted by Advisor
Assessment & Evaluation:
Group presentation -------------------15%
Documentation, ------------------------30%
System Implementation---------------55%

Instructor Qualification::A minimum of MSc degree and above in Computer


Science or other related fields

Course $umber: Comp 492


Course Title: Industrial Project II
Credit: 3; Laboratory 9hours; prerequisite Comp 491

Description:
This course is a continuation of Industrial project I. Students will implement, test and
prepare documentation for the new system based on the their work in Industrial Project
Instructional Method: Group work assisted by Advisor
Assessment & Evaluation:
Group presentation -----------------------15%
Documentation, ---------------------------30%
System Implementation------------------55%

Instructor Qualification: A minimum of MSc degree and above in Computer


Science or other related fields

Department of CS & Engineering 18/11/200975


Curriculum of Computer science 4 - Years Degree (Regular)

Course $umber: Comp 493


Course Title: Seminar
Credit: 1; Tut 3;

Objective:
This module helps the students to choose the subjects and topics from their own
specialized interest. After having successfully participated in this module the students will learn
how to choose and deliver the topics both from the existing and emerging fields.

Description:
The students are also expected to choose the topic of their own and present it before the
whole class and get the exposure how to delver the lecture in an efficient and effective
manner.

Instructional Method: Group/individual presentation by the student


Assessment & Evaluation:
Presentation ---------------40%
Report submitted-----------60%

Instructor Qualification:A minimum of MSc degree and above in Computer


Science or other related fields

13.2. Elective Courses:


Course $umber: Comp 472
Course Title: $eural $etworks
Credit: 3; Lecture: 2; Lab: 3, Prerequisite: Comp 471

Course Objectives
This course gives an introduction to basic neural network architectures and learning rules.
Emphasis is placed on the mathematical analysis of these networks, on methods of
training them and on their application to practical engineering problems in such areas as
pattern recognition, function approximation and signal processing.

Course Description
History of neural network, distinction between biological and artificial neural network;
Analysis of Neural networks; Characteristics of Neural Networks; Limitations and
applications of Neural Networks; Perceptron; Performance estimation and model
selection; multi-layer perceptron networks; hopfield networks; stochastic neural
networks; associative memory networks; Kohonen networks .

Course Outline

Department of CS & Engineering 18/11/200976


Curriculum of Computer science 4 - Years Degree (Regular)

Chapter 1: Introduction to neural networks

1.1History of Neural Networks

1.2Biological Neural Networks

1.3Artificial Neuron

1.4Analysis of Neural networks

1.5Characteristics of Neural Networks

1.6Limitations of Neural Networks

1.7Neural Network Applications

Chapter 2: Perceptron

2.1 Overview of Perceptron

2.2 Pattern Recognition

2.3 Mathematical modeling of Simple Perceptron

2.4 Perceptron Learning Algorithms

2.5 Limitations of Perceptron

Chapter 3: Performance estimation and model selection

3.1 Motivation
3.2 The Holdout
3.3 Re-sampling techniques
3.4 Three-way data splits

Chapter 4: Multi-layer perceptron networks

4.1 Delta Learning Rule for the Output Layer, Generalized Delta Learning Rule
4.2 Backpropagation learning algorithm
4.3 Mathematical modeling of MLP Networks
4.4 Application to Function Approximation

Chapter 5: Hopfield networks

5.1 What is Hopfield Network, Energy Minimizing Networks

5.2 Analysis and Mathematical modeling of Hopfield Model

5.3 Designing Stable States (Energy Wells)

Department of CS & Engineering 18/11/200977


Curriculum of Computer science 4 - Years Degree (Regular)

5.4 Application to Optimization Problems

Chapter 6: Stochastic neural networks

6.1 Boltzmann Machine


6.2 Entropy of a Network
6.3 State-Transition Matrix, Markov Chain
6.4 Simulated Annealing

Chapter 7: Associative memory networks

7.1 Linear Feedforward Associative Memory Network


7.2 Recurrent Associative Memory Network
7.3 Bidirectional Associative Memory Network (BAM)
7.4 Brain-State-in-a-Box (BSB) Network
7.5 Cross-Talk versus Perfect Recall

Chapter 8: Kohonen networks

8.1 Self-Organization in Human Brain


8.2 Self-Organizing Neural Networks
8.3 Kohonen's Neural Network, Kohonen Learning Rule
8.4 Self-Organizing Feature Maps, Vector Quantization
8.5 Application to Data Compression

Teaching Methods: Lecture, laboratory


Evaluation Methods:
Midterm exam----------------------------------------------------------------------- (20%)
Final examination ---------------------------------------------------------------------(30)
Project students are expected to a real requirement project in teams----------- (50%)
Instructor Qaulification: A minimum of MSc in Information Science, or Computer Science
References:

Introduction to Artificial Neural Systems, Zurada, Jacek M., West Publishing Company, 1992.

Neural Networks, Simon Haykin, Macmillan, 1999.

Introduction to Neural Computing, Igor Alexsander and Helen Morton, International Thomson
Computer Press, 1995.

Course $umber: Comp 473


Course Title: Expert Systems
Credit: 3; Lecture: 2; Tutorial: 3, Prerequisite:
Course description

Brief history of expert system; why expert system; economic reasons, time, space,
consistency and quality in decision making, intelligent reasons, human cognitive ,
shortcomings, pure reasoning systems versus knowledge-rich systems. Knowledge
acquisition: meaning, purpose and techniques. Knowledge representation: frames
rules, classes and procedures.
An introduction to expert system development tools and shells. Inference methods

Department of CS & Engineering 18/11/200978


Curriculum of Computer science 4 - Years Degree (Regular)

foreword and backward chaining, depth/ breadth approaches, rules selection


strategies.
Explanation : how /way , symbolic and non-symbolic systems, probability /certainty
factor, statistical systems, neural nets, case based reasoning

Course objective
At the end of the course students will be able to
1. Understand how Expert system work
2. Design knowledge base system
3. Understand how knowledge base system is represented

Chapter 1: Introduction
1.1 Expert Reasoning
1.2 Expert Domains
1.3 roduction Systems
1.4 Rule-Based Expert Systems
1.4.1 MYCI$
1.4.2 Dendral
1.4.3 R1/XCO$
Chapter 2: Knowledge
2.1 Representation
2.2 Frames
2.3 Logic
Chapter 3: Reasoning Under
3.1 Uncertainty
3.2 Bayesian Probability
3.3 Dempster-Shafer
3.4 EMYCI$'s Certainty Factors
3.5 The Tuning Fallacy
Chapter 4: Knowledge
4.1 Acquisition Tools
4.2 Teiresias, protos
4.3 Rule Induction Algorithms
4.4 Choosing Applications
4.5 Getting Knowledge from an
Expert
Chapter 5: Expert System
5.1 Building Tools and Hardware
5.2 LISP, EMYCI$, KAS, S-1,
ROSIE, KEE, MRS, ART, OPS-5
Chapter 6: Blackboard Systems
Chapter 7: Research Trends
Teaching Methods: Lecture, tutor

Department of CS & Engineering 18/11/200979


Curriculum of Computer science 4 - Years Degree (Regular)

Evaluation Methods:
Midterm exam----------------------------------------------------------------------- (20%)
Final examination ---------------------------------------------------------------------(30)
Project students are expected to a real requirement project in teams----------- (50%)
Instructor Qaulification: A minimum of MSc in Information Science, or Computer Science
References:

Course $umber: Comp 484


Course Title: Multimedia Systems
Credit: 3; Lecture: 2; Tutorial: 3, Prerequisite: - Comp 112

Learning Outcome:
Students will be able:
To develop practical experience in designing & developing multimedia information
system applications.
To understand about the latest technological developments, which have laid the basis for the
information society such as digital broadcasting, Electronic transaction in banking, shopping,
etc. Implications for security. Various audio , video conferencing
Course Description:
Multimedia technologies; multimedia storage models and structures; data models
and interfaces; multimedia information systems; video/audio networking; media
synchronization; image computing and information assimilation; conferencing
paradigms and structured interaction support.

Course Outline:
Chapter one
Introduction
1.1 What is Multimedia?
1.2 History of Multimedia
1.3 Multimedia and Hypermedia
1.4 Multimedia and World Wide Web

Chapter Two
Multimedia Authoring and Tools
2.1 What is Multimedia Authoring?
2.2 Some Useful Editing and Authoring Tools 2.3 Authoring
Paradigms

Chapter Three
Data Representations
3.1 Graphics/Image Data Representation
3.2 Digital audio and MIDI
3.3 Popular File Formats

Chapter Four
Image and Video
4.1 Color Science
4.2 Colour Models in Images 4.3 Colour Models in Video

Department of CS & Engineering 18/11/200980


Curriculum of Computer science 4 - Years Degree (Regular)

Chapter Five
Fundamental Concepts in Video 5.1 Types of Video
Signals
5.2 Analogue Video
5.3 Digital Video
5.4 Different TV standards
Chapter Six
Basics of Digital Audio
6.1 Digitization of Sound
6.2 Quantization and Transmission of Audio

Chapter Seven
Lossless Compression Algorithms
7.1 Introduction
7.2 Basics of Information Theory
7.3 Run-Length Coding
7.4 Variable-Length Coding (VLC)
7.5 Dictionary Based Coding
7.6 Huffman Coding
7.7 Arithmetic Coding
7.8 Lossless Image Compression

Chapter Eight
Loss Compression Algorithms
8.1 Introduction
8.2 Distortion Measures
8.3 The Rate Distortion Theory
8.4 Quantization
8.5 Transform Coding

Chapter $ine
Image Compression Standards
the JPEG Standard

Chapter Ten
Basic Video Compression Techniques
1 Introduction to Video Compression
2 Video Compression Based on Motion Compensation

Chapter Eleven
MPEG Video and Audio Coding
1. Video Compression
2 MPEG Audio Compressions

Teaching Methods: Lecture, laboratory

Department of CS & Engineering 18/11/200981


Curriculum of Computer science 4 - Years Degree (Regular)

Evaluation Methods:
Midterm exam -------------- (20%)
Final examination ----------- (30%)
Project--------------------------50%

Instructor Qaulification: A minimum of MSc in Multimedia Systems or Computer Science

References:
1) Ze-Nian Li and Mark S. Drew, Fundamentals of Multimedia, Prentice Hall, 2004.
2) Richard Brice, Multimedia and Virtual Reality Engineering, Newnes, 1997
3) Jon Crowcroft, Mark Handley, Ian Wakeman; Internetworking Multimedia,
Morgan Kaufmann Publishers, San Francisco, California, 1999
4) Doug Sahlin, Flash 5 Virtual Classroom, McGraw-Hill, 2001, California
Any other multimedia book can be used as refere

Course $umber: Comp 424


Course Title: Information Storage and Retrieval
Credit: 3; Lecture: 2; Tutorial: 3, Prerequisite: - Comp 471
Course $umber: Comp

Learning Outcome: At the end of the course students will be able to:
Understand the various Information Retrieval Systems and processes
Know the retrieval model and evaluation of Information Retrieval Systems
Understand the processes of information storage and retrieval
Design ,develop and evaluate information retrieval models
Understand evaluation issues in IR
Understand current research issues in IR

Course Description: This course will explore the Introductory concepts of Information
Storage and Retrieval (Definition, components, kinds of Information Retrieval Systems,
the retrieval process etc.); automatic text operation and automatic indexing (term
selection, term weighting, etc); data and file structure for information retrieval ( flat files,
inverted files, signature files, PAT trees, and graphs), Retrieval Model (Boolean Model,
Vector Based Retrieval Model, Probabilistic Retrieval Model); Evaluation of Information
retrieval systems (Precision Recall, fallout, generality, E-measure, harmonic mean, User
based evaluation etc.), Techniques for enhancing retrieval effectiveness(including
relevance feedback, query reformulation, thesauri etc), query languages, query
operations, string manipulation and search algorithms, document classification and
clustering; Current Issues in IR etc.
Course Outline
Chapter 1: Introduction to information storage and retrieval
Chapter 2: Foundations, basic theories and principles of information storage and
retrieval
Chapter 3: Content analysis
Chapter 4: Vocabulary control and indexing techniques
Chapter 5: Automatic indexing and searching

Department of CS & Engineering 18/11/200982


Curriculum of Computer science 4 - Years Degree (Regular)

5.1 Automatic text analysis


5.2 Indexing
5.3 Thesauri
Chapter 6: Modern information retrieval models
6.1 Boolean Model
6.2 Vector space model
6.3 Probabilistic Model
Chapter 7: Data/File structures and Algorithms in IR
7.1 File structures in IR
7.2 Data structure
7.3 Query languages
7.4 Relevance feedback
Chapter 8: Query analysis and search strategies
Chapter 9: Retrieval Evaluation
a. History of Evaluation
b. System effectiveness/Efficiency
c. Difficulties in Evaluation
d. Precision and recall
Chapter 10: Current issues in IR

Teaching Methods: Lecture


Evaluation Methods:
Mid term----------------------------25%
Final--------------------------------40%
Assignment-----------------------15%
Project-----------------------------20%

Instructor Qualification: A minimum of MSc degree and above in Information Science or


Computer Science

Course Code: - Comp 415


Course Title: visual Programming
Credit: 3; Lecture: 2; Tutorial: 3, Prerequisite: - Comp212
Course Description:
Rapid Application Development concepts and visual programming concepts and
tools; introduction to Visual Basic.Net as a RAD environment; component
development and reusability; designing and customizing forms; modeling tools;
multi-user programming techniques; designing and customizing reports;
programming with DDE, OLE and calling procedures in DL and; project using
VB.net.

Advanced Visual Programming is a continuation of the course Visual


Programming. Concepts and techniques used in designing and writing programs
using a graphical user interface to implement sophisticated applications are

Department of CS & Engineering 18/11/200983


Curriculum of Computer science 4 - Years Degree (Regular)

presented. Areas of study include file management, database programming, object


oriented programming, advanced concepts in visual programming including client
server development.

Course Outline

Chapter 1: Event Drive Fundamentals

1.1Building Your First Application


1.2What's New with event driven programs?
1.3Working in the Programming Environment
1.4Using the Intrinsic Controls
1.5Working with Projects in event driven Programming
1.6Working with Properties, Methods, and Events

Chapter 2: The Elements of event driven programs

2.1 Creating Menus in Your Programs


2.2 Enhancing Your Programs with Forms and Dialog Boxes
2.3 Handling Keyboard and Mouse Input in Your Programs
2.4 Working with Time and Timers
2.5 Adding Graphics to Your Programs
2.6 Writing Reusable Code with Subs and Functions
2.7 Saving and Retrieving Your Data with programs
2.8 Deploying your event driven Applications

Chapter 3: Advanced Programming with event driven

3.1 Debugging Your Applications


3.2 Creating Controls On-the-Fly Using Control Arrays
3.3 Adding Help to Your Programs
3.4 Using VBA to Connect Your VB Programs with Microsoft Office
3.5 Making Object-Oriented Programs with
3.6 Creating Your Own ActiveX Controls with
3.7 Creating Programs for the Internet
3.8 Making Programming Easier with add-Ins

Chapter 4: Database Programming

4.1 Database Basics and the Data Control


4.2 Making Reports in event driven
4.3 Enhancing Your Programs Using the Advanced Data Controls

Teaching Methods: Lectures supported by tutorials laboratory exercise and assignments

Department of CS & Engineering 18/11/200984


Curriculum of Computer science 4 - Years Degree (Regular)

Evaluation Methods:
Assignments-----------------------------10%
Laboratory exams-----------------------15%
Mid-semester Examination-------------30%
Final examination-------------------------45%

Instructor Qualification: `A minimum of MSc degree and above in Information Science or


Computer Science

Reference:
Visual Basic V6.0 programmers Guide.
Visual Basic V5.0 programmers Guide.

Course $umber: Comp 403


Course Title: Selected Topics in Computer Science
Credit: 3; Lecture: 2; Tutorial: 3, Prerequisite: -

Course Description:
Topics to be discussed in this course should reflect topics of current interest in
Computer Science. Topics to be covered in the course will be decided from time to time
by taking into account current developments in the field and by a careful selection of
contents that cannot be covered by any other courses

Course $umber: Comp 443


Course Title: Introduction to Distributed
systems
Credit: 3; Lecture: 2; Tutorial: 3, Prerequisite: - Comp
342

Course Details
design issues in distributed systems, hardware and software issues, interprocess communication,
remote procedure calls, group communication, synchronization problem, Lamport`s Logical
Clocks, processes and processor allocation system models, scheduling problem, fault tolerance,
real time distributed systems.
Course Outline
We will cover fundamental and current research topics in the design, implementation, and
evaluation of parallel and distributed systems. Our focus will be on the systems software
and parallel programming systems, but some hardware issues will also be covered.
Topics will include parallel algorithms, parallelization strategies, distributed shared
memory (and related ideas), system area networks (SAN), and operating system support.
Approximately 2/3 of the course will be on the practical and hands-on aspects of parallel
programming. The other 1/3 of the course will be on current research issues. A number of
research papers will be discussed and critically evaluated.
Some of the topics (in rough order) to be covered include:
Chapter 1: Introduction

Department of CS & Engineering 18/11/200985


Curriculum of Computer science 4 - Years Degree (Regular)

1.1 Why use parallel and distributed systems? Why not use them?
1.2 Speedup and Amdahl's Law
1.3 Hardware architectures: multiprocessors (shared memory), networks of
workstations (distributed memory), clusters (latest variation)
1.5 Software architectures: threads and shared memory, processes and
message passing, distributed shared memory (DSM), distributed shared
data (DSD)
1.6 Possible research and project topics
Chapter 2: Chapter 1: Parallel Algorithms
1.1 Concurrency and synchronization (review)
1.2 Data and work partitioning
1.3 Common parallelization strategies
1.4 Granularity
1.5 Load balancing
1.6 Examples: parallel search, parallel sorting, etc.
Chapter 3: Shared-Memory Programming: Threads
3.1 Pthreads
3.2 Locks and semaphores
Chapter 4: Distributed-Memory Programming: Message Passing
4.1MPI
4.1PVM
Chapter 5: Other Parallel Programming Systems
5.1 TreadMarks: Distributed shared memory
5.2 Aurora: Scoped behaviour and abstract data types
5.3 Enterprise: Process templates
Chapter 6: Research Topics
6.1 Protocols for DSM systems
6.2 Impact of network protocols (TCP/IP, UDP/IP, bulk-data transfer, etc.)
6.3 System area networks (SAN) (e.g., Myrinet)
6.4 Operating system issues
6.5 More to come
Teaching Methods: Lectures supported by tutorials laboratory exercise and assignments

Evaluation Methods:
Assignments-----------------------------10%
Mid-semester Examination-------------40%
Final examination-------------------------50%

Department of CS & Engineering 18/11/200986


Curriculum of Computer science 4 - Years Degree (Regular)

Textbooks
B. Wilkinson and M. Allen, Parallel Programming: Techniques and Applications
Using $etworked Workstations and Parallel Computers, 2/e, Prentice Hall,
2005. (OPTIO$AL).

W.R. Stevens and S.A. Rago, Advanced Programming in the Unix Environment,
2nd Edition Addison Wesley, 2005. (OPTIO$AL). Alternatively any equivalent
book

Course $umber COMS


Course Title: - Computer Simulation and Modelling
Credit: 3; Lecture: 2; Lab: 2, Prerequisite:

Course Objective
At the end of this course the students should be able to :
• Work by applying different types of simulation models
• Analyze various simulation techniques
• Simulate or model a given computer oriented problem

Course descriptions: Introduction, simulation procedures types Continuous system


simulation. Mixed continuous/discrete-event simulation. Queuing networks, Input and
output analysis, generation, execution-driven simulation, Estimations.

Course Outline
Chapter 1: Introduction
1.1 Introduction
1.2 Basic simulation procedures

Chapter 2: Different types of simulation models


2.1 Monte Carlo simulation,
2.2 discrete-event simulation.
2.3 Continuous system simulation.
2.4 Mixed continuous/discrete-event simulation.

Chapter 3: Queuing networks


3.1 Introduction
3.2 Analytical and simulation modeling of queuing systems.

Chapter 4: Input and output analysis


4.1 Random numbers,
4.2 Generating and analyzing random numbers.
4.3 Sample generation.

Department of CS & Engineering 18/11/200987


Curriculum of Computer science 4 - Years Degree (Regular)

Chapter 5: Trace- and execution-driven simulation

Chapter 6: Point and interval estimation.

Teaching Methods: Lectures supported by tutorials laboratory exercise and assignments

Evaluation Methods:
Assignments-----------------------------10%
Laboratory exams-----------------------15%
Mid-semester Examination-------------30%
Final examination-------------------------45%

Instructor Qualification: `A minimum of MSc degree and above in Information Science or


Computer Science

Reference:

Course $o Comp 423


Course Title Introduction to Data Warehousing and Data Mining
Credit: 3; Lecture: 2; Laboratory: 3

Course Objectives

On completion of this course students should have gained a good understanding of basic
concepts, principles and techniques of data warehousing and data mining. Specifically,
they should be able to:
• define what knowledge discovery and data mining are
• recognize the key areas and issues in data mining
• develop an in-depth understanding of several data mining techniques
• define the concept, structure and major issues of data warehousing
• develop general awareness of data warehousing project management
• apply multi-dimensional modeling techniques in designing data warehouses
• apply the online analytical processing (OLAP) technology for decision support
• apply data cubing techniques
• use knowledge discovery in data warehouses
Course Description

Data Warehouse: Data Model for Data Warehouses; Implementing Data Warehouses:
data extraction, cleaning, transformation and loading, data cube computation,

Department of CS & Engineering 18/11/200988


Curriculum of Computer science 4 - Years Degree (Regular)

materialized view selection, OLAP query processing.


Data Mining: Fundamentals of data mining process and system architecture, relationship
with data warehouse and OLAP systems, data pre-processing; Mining Techniques and
Application: association rules, Classification, Clustering.

Course Outline
Chapter 1: Introduction
1.1 What motivated data mining? Why is it important?
1.2 What is data mining?
1.3 Data mining on what king of data?
1.4 Data mining functionalities-what kind of patterns can be mining?
1.5 Classification of data mining system
Chapter 2: Data warehousing and OLAP Technology for data mining
2.1 What is a data warehouse?
2.2 A multidimensional data model
2.3 Data warehouse architecture
2.4 Data warehouse implementation
2.5 From data warehouse to data mining
Chapter 3: Data preprocessing
3.1 Why preprocess the data?
3.2 Data cleaning
3.3 Data integration and Transformation
3.4 Data reduction
3.5 Discretization and concept hierarchy generation
Chapter 4: Mining association rules in large databases
4.1 Association rule mining
4.2 Mining single-dimensional Boolean association rules from transactional databases
4.3 Mining multilevel association rules from transactional databases
4.4 Mining multidimensional association rules from relational databases and data
warehouses
Chapter 5: Classification and prediction
5.1 What is classification? What is prediction?
5.2 Issues regarding classification and prediction
5.3 Classification by decision tree induction
5.4 Bayesian classification
5.5 Classification by backpropagation
5.6 Other classification methods
5.6.1 K-nearest neighbor classifier
5.6.2 Genetic algorithm
5.7 Prediction
5.8 Classifier accuracy
Chapter 6: Cluster analysis
6.1 What is cluster analysis?
6.2 Types of data in cluster analysis
6.3 Categorization of major clustering methods
6.4 Partitioning methods
6.5 Hierarchical methods
6.6 Density based methods

Department of CS & Engineering 18/11/200989


Curriculum of Computer science 4 - Years Degree (Regular)

6.7 Outlier analysis

Teaching Methods: Lectures supported by tutorials laboratory exercise and assignments

Evaluation Methods:
Assignments-----------------------------10%
Laboratory exams-----------------------15%
Mid-semester Examination-------------30%
Final examination-------------------------45%

Instructor Qualification: A minimum of MSc degree and above in Information Science or


Computer Science

Reference:

Morgan Kaufmann, “Data Mining: Concepts and Techniques”, 2nd edition, 2006 -----
(Text Book)

Pang-Ning Tan, Michael Steinbach, and Vipin Kumar, "Introduction to Data Mining",
Pearson Addison Wesley, 2005

Margaret H. Dunham, “Data Mining: Introductory and Advanced Topics”, Prentice Hall,
2003.

Course $umber: Comp 444


Course Title: parallel Computing
Credit: 3; Lecture: 3; Tutorial: Prerequisite: Comp 342

Course Description
Introduction to parallel processing: Application requirements, Examples of parallelism,
Interconnection infrastructure, Flynn classification in parallel architectures, Memory
based classification, Performance metrics, Computation distribution, Degree of
parallelism, Load balancing, Amdahl's law. Main characteristics and examples of
advanced architectures: SISD architectures, Very large instruction word (VLIW) systems,
SIMD architectures, Array processors / Associative processors, MIMD architectures,
Systolic arrays, Pipelines and vector processors: Basic concepts, Vector instruction
analysis, Arithmetic pipelines, Instruction pipelines, Example of pipeline design, Pipeline
conflicts and throughput optimization. Memory: Context addressable or associative
memory, Cache memories, Overview of data placement policies, Memory coherence and
consistency, Snoopy caches, Directory solutions, Software solutions, Hierarchical
memory design, Memory multiplexing, Parallel access for vectors of processors, Data
placement stride and access collisions for pipelines, Memory organization for vector
processors.

Department of CS & Engineering 18/11/200990


Curriculum of Computer science 4 - Years Degree (Regular)

Course outline:
Chapter 1: Introduction ?-not clear
Why use parallel and distributed systems? Why not use them?
Speedup and Amdahl's Law
Hardware architectures: multiprocessors (shared memory), networks of
workstations (distributed memory), clusters (latest variation)
Software architectures: threads and shared memory, processes and message
passing, distributed shared memory (DSM), distributed shared data (DSD)
Possible research and project topics
Chapter 2: Parallel Algorithms
2.1 Concurrency and synchronization (review)
2.2 Data and work partitioning
2.3 Common parallelization strategies
2.4 Granularity
2.5 Load balancing
2.6 Examples: parallel search, parallel sorting, etc.
Chapter 3: Shared-Memory Programming: Threads
3.1 Pthreads
3.2 Locks and semaphores
Chapter 4: Distributed-Memory Programming: Message Passing
4.1 MPI
4.2 PVM
Chapter 5: Other Parallel Programming Systems
5.1 TreadMarks: Distributed shared memory
5.2 Aurora: Scoped behaviour and abstract data types
5.3 Enterprise: Process templates
Chapter 6: Research Topics
6.1 Protocols for DSM systems
6.2 Impact of network protocols (TCP/IP, UDP/IP, bulk-data transfer, etc.)
6.3 System area networks (SAN) (e.g., Myrinet)
6.4 Operating system issues
6.5 More to come
Textbooks
B. Wilkinson and M. Allen, Parallel Programming: Techniques and Applications Using
$etworked Workstations and Parallel Computers, 2/e, Prentice Hall, 2005.

Department of CS & Engineering 18/11/200991


Curriculum of Computer science 4 - Years Degree (Regular)

(OPTIO$AL).

W.R. Stevens and S.A. Rago, Advanced Programming in the Unix Environment,
2nd Edition Addison Wesley, 2005. (OPTIO$AL). Alternatively any equivalent
book

Teaching Methods: Lectures supported by tutorials laboratory exercise and assignments

Evaluation Methods:
Assignments-----------------------------10%
Laboratory exams-----------------------15%
Mid-semester Examination-------------30%
Final examination-------------------------45%

Course $umber: Comp 431


Course Title: E-Commerce
Credit: 3; Lecture: 3; Tutorial: Prerequisite: Comp 311

Course Objective:

At the end of this course the students will be able to understand about the latest
technological developments, which have laid the basis for the information society such as
digital broadcasting, Electronic transaction in banking, shopping, etc. Implications for
security

Course Description

Introduction to Electronic Commerce, M-Commerce, D-Commerce, Business Models,


Electronic Data Interchange, Electronic Commerce: Architectural Framework, Network
Infrastructure, Electronic Commerce: Information Distribution and Messaging,
Information Publishing Technology, Securing the Business on Internet, Securing
Network Transaction, Electronic Payment Systems, Search Engines and Directory
Services Internet Advertising,. Mobile Commerce: Introduction, Framework, and
Models, Agents in Electronic Commerce, E- COMMERCE GROWTH: Legal Issues,
Cyber Security, Cyber Crimes

Chapter 1: Introduction

1.1 Introduction to Electronic Commerce,

Department of CS & Engineering 18/11/200992


Curriculum of Computer science 4 - Years Degree (Regular)

1.2 M-Commerce,
1.3 D-Commerce
Chapter 2: Electronic Commerce:'
2.1 Business Models,
2.2 Electronic Data Interchange,
2.3 Electronic Commerce: Architectural Framework,
Chapter 3: Electronic Commerce:
3.1 Network Infrastructure,
3.2 Electronic Commerce:
3.3 Information Distribution and Messaging,
Chapter 4: Electronic Commerce:
1.1 Information Publishing Technology,
Chapter 5: Electronic Commerce:
5.1 Securing the Business on Internet ,
Chapter 6: Electronic Commerce:
6.1 Securing Network Transaction,.
6.2 Electronic Payment Systems,.
Chapter 7: Electronic Commerce:
7.1 Search Engines and Directory Services ,
7.2 Internet Advertising,.
7.3 Mobile Commerce:
7.4 Introduction, Framework, and Models,
7.5 Agents in Electronic Commerce,

CONCERNS FOR E-COMMERCE GROWTH:

 Legal Issues, ?
 Cyber Security,
 Cyber Crimes

Teaching Methods: Lectures supported by tutorials laboratory exercise and assignments

Evaluation Methods:
Assignments-----------------------------10%
Laboratory exams-----------------------15%
Mid-semester Examination-------------30%
Final examination-------------------------45%

Instructor Qualification:` A minimum of MSc degree and above in Information Science or


Computer Science

Reference Books
 Bajaj, K.K.; Nag, Debjani " E-Commerce " Mc-Grawhills Publication , India ,
2005
 Bharat and Bhaskar " E-Commerce- 2nd Edition Mc-Grawhills Publication , India
, 2002

Department of CS & Engineering 18/11/200993


Curriculum of Computer science 4 - Years Degree (Regular)

 Chakravarti and Rajesh " The Asian Manager's Handbook On E-Commerce" Mc-
Grawhills Publication , India , 2002

13.3. Supportive Courses

Course $umber: Stat 276


Course Title: Probability and Statistics
Credit: 3; Lecture; 3 hours; Prerequisite: one
Learning Outcome:
8 Identify some contributors to probability and statistics and relate their achievements
to the knowledge area.
9 Contrast the difference between probability and statistics.
10 Contrast the difference between discrete and continuous probability.
11 Identify some discrete and continuous probability distributions.
12 Articulate the importance of estimation.
13 Identify the meaning of correlation and regression.
14 Describe how computer science uses or benefits from probability and statistics.
15 Calculate probabilities of events and expectations of random variables for elementary
problems such as games of chance.
16 Differentiate between dependent and independent events.
17 Apply binomial theorem to independent events and Bayes’ theorem to dependent
events.
18 Recognize situations in which it is appropriate to consider the relevance of the normal
distribution and/or the exponential distribution.
19 Calculate the mean and the variance for given distributions involving continuous
random variables.
20 Understand the significance and be able to compute expectation of functions of more
than one variable and transform.
21 Compute fault coverage and reliability in simple hardware and software applications.
22 Become familiar with the concepts and tools to manipulate stochastic processes.
23 Apply the concepts and tools of stochastic processes to analyze the performance of
simple software systems.
24 Demonstrate the ability to apply appropriate sampling methods in a range of
situations.
25 Describe the fundamental principles behind the concept of estimation and give
examples that illustrate its beneficial application.
26 Explain the role of hypothesis testing, describing the main steps in the process.
27 Given a sample situation, formulate a hypothesis and carry out appropriate tests to
check its acceptability.
Course Description: History and overview; Discrete probability; Continuous
probability; Expectation; Stochastic processes; Sampling distributions; Estimation;
Hypothesis tests; Correlation and regression
Course Outline
Chapter 1: History and overview

Department of CS & Engineering 18/11/200994


Curriculum of Computer science 4 - Years Degree (Regular)

1.1 Indicate some reasons for studying probability and statistics


1.2 Indicate some important topic areas such as discrete probability, continuous
probability, expectation, sampling, estimations, stochastic process, correlation, and
regression
1.3 Describe the meaning of discrete probability
1.4 Describe the meaning of continuous probability
1.5 Contrast discrete from continuous probability
1.6 Provide a context for considering probabilistic expectation
1.7 Indicate the reason for using sampling distributions
1.8 Define a stochastic process
1.9 Mention the need for considering stochastic processes
1.10 Describe the need for probabilistic estimation in computer science
1.11 Highlight the importance of correlation
1.12 Provide examples for using regression
1.13 Explore some additional resources associated with probability and statistics
1.14 Explain the purpose and role of probability and statistics in computer science
Chapter 2: Discrete probability
2.1 Randomness, finite probability space, probability measure, events
Conditional probability, independence, Bayes’ theorem
2 .2 Discrete random variables
2.3 Binomial, Poisson, geometric distributions
2.4 Mean and variance: concepts, significance, computations, applications
2.5 Integer random variables
Chapter 3: Continuous probability
3.1 Continuous random variables, the nature of these, illustrations of use
3.2 Exponential and normal distribution: probability density functions, calculation of
mean and variance
3.3 The central limit theorem and the implications for the normal distribution
3.4 Joint distribution
Chapter 4: Expectation
4.1 Moments, transform methods, mean time to failure
4.2 Conditional expectation, examples
4.3 Imperfect fault coverage and reliability
Chapter 5: Stochastic processes
5.1 Introduction: Bernoulli and Poisson processes, renewal process, renewal model of
program behavior
5.2 Discrete parameter Markov chains: transition probabilities, limiting distributions
5.3 Queuing: M/M1 and M/G/1, birth and death process
5.4 Finite Markov chains, program execution times
Chapter 6: Sampling distributions
6.1Purpose and the nature of sampling, its uses and applications

Department of CS & Engineering 18/11/200995


Curriculum of Computer science 4 - Years Degree (Regular)

6.2 Random approaches to sampling: basic method, stratified sampling and variants
thereof, cluster sampling
6.3 Non-random approaches: purposive methods, sequential sampling
6.4 Data analysis; tools; graphical and numerical summaries
6.5 Multivariate distributions, independent random variables
Chapter 7: Estimation
7.1Nature of estimates: point estimates, interval estimates
7.2 Criteria to be applied to single point estimators: unbiased estimators, consistent
estimators, efficiency and sufficiency of estimators
7.3 Maximum likelihood principle approach, least squares approach; applicability
conditions for these
7.4 Confidence intervals
7.5 Estimates for one or two samples
Chapter 8: Hypothesis tests
8.1 Development of models and associated hypotheses, the nature of these
8.2 Hypothesis formulation: null and alternate hypotheses
8.3 Testing hypothesis based on a single parameter, choice of test statistic; choice of
samples and distributions
8.4 Criteria for acceptance of hypothesis
8.5 t-test, chi-squared test; applicability criteria for these
Teaching Methods : Lecture supported by tutorials, group discussion, questioning and
answering.
Assessment & Evaluation Method:
Assignments-----------------------------20%
Mid-semester Examination-------------30%
Final examination-------------------------50%

Instructor Qualification: A minimum of M. Sc. Degree in Statistics


Text Reference
• Applied Statistics and Probability for Engineers by Douglas C. Montgomery,
• C. Runger, 2nd edition (November 1998), John Wiley & Sons;
• Probability and Statistical Inference (5-th Edition) by Robert V. Hogg and Elliot A.
Tanis, Prentice Hall, 1997

Instructional Methods: Lectures, Tutorials


Method of Evaluation: Assignment, mid and final exams

Department of CS & Engineering 18/11/200996


Curriculum of Computer science 4 - Years Degree (Regular)

Course $umber: Mgt 100


Course Title: Business Communication Skills
Credit:2; Lecture: 2; Tutorial: Prerequisite:

Course Objectives: To develop good English writing, language usage and reading skills.To
appreciate the importance of business communication and to develop understanding of
communication concepts, principles, theories and problems. To develop good oral
communication and presentation skills.

Course Outline:
Chapter 1: Review and continual reinforcement of individual presentation skills,
such as voice projection, eye contact, body and hand control,
speaking pace, and managing anxiety about public speaking.
Chapter 2: Brief overview of communication theory, particularly as applicable
to communication in business and the professions.
Chapter 3: Principles and practices of effective small-group communication,
particularly as applicable to business and the professions.
Chapter 4: Principles and practices of interviewing.
Chapter 5: Principles and practices of leading and participating effectively in
group discussions.
Chapter 6: Principles and practices of conducting and participating in
meetings, both informal and formal.
Chapter 7: Principles and practices of conducting question-and-answer
sessions.
Chapter 8: Principles and practices of developing interesting and effective
visual aids, and using them effectively in presentations.
Chapter 9: Organization and delivery of short persuasive presentations,
extemporaneously or from notes.
Chapter 10: Organization and delivery of informal business or professional
presentations using a flip chart. (Video-recorded and critiqued)
Chapter 11: Organization and delivery of formal business or professional
presentations using transparencies or computer slides. (Videorecorded
and critiqued)
Chapter 12: Team presentations in which students, working in groups, research,
organize and present a formal business presentation to an invited
audience using computer slides and conducting an extended
question-and-answer session afterwards. (Video-recorded and
critiqued)
Chapter 13: Organization and delivery of short, informal speeches for special
occasions, such as introductions, toasts, awards, eulogies, etc.

Teaching Methodology: Lecturer, demonstration, role play, presentation


Assessment & Evaluation:
Assignments-------------------------------20%
Mid-semester Examination--------------30%
Final examination-------------------------50%

Department of CS & Engineering 18/11/200997


Curriculum of Computer science 4 - Years Degree (Regular)

Reference:
• Business English, Vawdrey, Stoddard, Bell.

Course $umber: Enla 300


Course Title: Technical Report Writing
Credit: 2 Lecture:2; Tutorial: 0;Prerequisite: one

Objectives: To develop efficient literature survey, analysis, report writing and document
designing skills.

Course Outline: Overview of technical reporting, use of library and information


gathering, administering questionnaires, reviewing the gathered information. Technical
exposition; topical arrangement, exemplification, definition, classification and division,
casual analysis, effective exposition, technical narration, description and argumentation,
persuasive strategy.
Organizing information and generation solution: brainstorming, organizing material,
construction of the formal outline, outlining conventions, electronic communication,
generation solutions. Polishing style: paragraphs, listening sentence structure, clarity,
length and order, pomposity, empty words, pompous vocabulary, document design:
document structure, preamble, summaries, abstracts, table of contents, footnotes,
glossaries, cross-referencing, plagiarism, citation and bibliography, glossaries, index,
appendices, typesetting systems, creating the professional report; elements, mechanical
elements and graphical elements. Reports: Proposals, progress reports, Leaflets,
brochures, handbooks, magazines articles, research papers, feasibility reports, project
reports, technical research reports, manuals and documentation, thesis. Electronic
documents, Linear verses hierarchical structure documents.

Teaching and Learning Methodology: Lecture and practical Report writing projects
Assessment & Evaluation:
Assignments-----------------------------10%
Project-------------------------------------35%
Mid-semester Examination-------------25%
Final examination-------------------------30%
Reference:
• Greenfield, T., Research Methods, Guidance for Postgraduates, Arnold, 1996,
034064629.

Course $umber: Math 224


Course Title: Introduction to Linear Algebra
Credit: 3; Lecture: 2; Tutorial: 3; Prerequisite: one

Refere Mathematics department

Department of CS & Engineering 18/11/200998


Curriculum of Computer science 4 - Years Degree (Regular)

Course $umber: Math 306


Course Title: Computer Based $umerical Analysis
Credit: 3; Lecture; 2 hours; Lab. 3 Hrs; Prerequisite:

Course Description
Chapter 1: Error Analysis;
Chapter 2: Finding the Roots of Equations;
Chapter 3: System of Linear Equations;
Chapter 4: Interpolation;
Chapter 5: Numerical Integration and Numerical Solutions of Ordinary Differential Equations;
Chapter 6: Solutions of Partial Differential Equations;
Chapter 7: Least Squares and Descriptions.

Lab. Experiment: Program for solving roots of equations; bracketing methods – Bisection
method, Open methods – Secant method. Program for solving system of linear equations;
Gaussian elimination, Gauss – seidel iteration. Culve fitting; Program for linear repression,
Program for Newton interpolation. Numerical integration; Program for trapezoidal rule, Program
for Simpson’s integration (1/3, 3/8). Solving ordinary differential equations; program for Euler’s
methods, Program for Runge-Kutta methods.
Methods of Presentation: Lecture and laboratory
Methods of Evaluation:
Assignments-----------------------------10%
Project-------------------------------------20%
Mid-semester Examination-------------30%
Final examination-------------------------40%

Instructors Qualification: A minimum of M. Sc. Degree in Mathematics is recommended


Reference

Course $umber: Math 263


Course Title: Fundamentals of Electrical Engineering
Credit: 4; Lecture 3; Tutrial:3 Prerequisite: $one

Refere Mathematics Department

Course $umber: Eeng 201


Course Title: Fundamentals of Electrical Engineering
Credit: 3; Lecture 2; Lab:3 Prerequisite:

Course objective (s) /Aim (s):


• To have an understanding of what electricity is
• To define electrical quantities
• To understand an electric circuit and its elements
• To understand the different ckt analysis techniques
• To understand electrostatic and phenomena related with it
• To study magnetic field
• To study properties of alternating voltages and currents

Department of CS & Engineering 18/11/200999


Curriculum of Computer science 4 - Years Degree (Regular)

• To study the different properties of single phase and poly phase ckts.
• To define resonance and study its different properties

Course content:
Chapter 1: Introduction to electric quantities
1.1 Atoms and their Structure
1.2 The nature of electricity
1.3 Electric current and voltage
Chapter 2: The principal law of DC
2.1 The electric circuit and its elements
2.2 Resistance and conductance
2.3 Temperature coefficient of resistance
2.4 Ohm’s law
2.5 Resistances in series
2.6 Resistances in parallel
2.7 Electric energy and power
Chapter 3: $etwork theorems
3.1 Kirchhoff’s laws
3.2 Mesh and Node analysis
3.3 Current and voltage divider rule
3.4 Types of Sources and their conversion
3.5 Superposition theorem
3.6 Thevenin theorem
3.7 Norton’s theorem
3.8 Maximum power transfer
3.9 Delta-star and star-delta transformation
Chapter 4: Electrostatic
4.1 Introduction
4.2 Electric field
4.3 Coulomb’s law
4.4 Electrostatic induction
4.5 Electric potential and energy
4.6 Capacitance
4.7 Capacitor
4.8 Calculation of capacitance
4.9 Capacitance in series
4.10 Capacitance in parallel
4.11 Energy stored in a capacitor
4.12 Force of attraction between charged plates
4.13 Charging of a capacitor
4.14 Discharging of a capacitor
Chapter 5: Magnetism and Electromagnetism
5.1 General
5.2 Characteristic of lines of magnetic field
5.3 Electromagnetism: - magnetic field due to an electric current, magnetic field of a
solenoid, Force on a current carrying conductor, Ampere's law, Biot-Savart Law
5.4 Magnetic circuit: - Comparison of magnetic and electric circuits, properties of
magnetic material, Introduction to magnetic circuit, Comparison of
electromagnetic and electrostatic terms.

Department of CS & Engineering 18/11/2009100


Curriculum of Computer science 4 - Years Degree (Regular)

Chapter 6: Electromagnetic induction


6.1 Faraday's law of electromagnetic induction
6.2 Inductive and non-inductive circuits
6.3 Inductance in terms of flux-linkage
6.4 Factors determining the inductance of a coil
6.5 Mutual inductance
6.6 Coupling coefficient
6.7 Inductances in series and parallel
6.8 Transients in RL circuits
6.9 Energy stored in an inductor
Chapter 7: Alternating voltage and current
7.1 Sinusoids (Alternating systems)
7.2 Generation of an alternating emf
7.3 Waveform terms and definitions
7.4 Average and r.m.s. Values of sinusoidal currents and voltages
7.5 Average and r.m.s. Values of non-sinusoidal currents and voltages
7.6 Representation of an alternating quantity by a phasor
7.7 Addition and subtraction of sinusoidal quantities
Chapter 8: Single phase series circuits
8.1 Basic a.c. circuits
8.2 A.C. in a resistive circuit
8.3 A. C. in an inductive circuit
8.4 Current and voltage in an inductive circuit
8.5 Resistance and inductance in series
8.6 A. C. in a capacitive circuit
8.7 Current and voltage in a capacitive circuit
8.8 Resistance and Capacitance in series
8.9 A. C. in an RLC circuit
Chapter 9: Single phase parallel circuit
9.1 Basic ac circuits
9.2 Simple parallel circuit
9.3 Parallel impedance circuits
9.4 Polar impedance and admittances
Chapter 10: Power in ac circuits
10.1 Power in a resistive circuit
10.2 Power in a purely inductive circuit
10.3 Power in purely capacitive circuit
10.4 Power in a circuit with resistance and reactance
10.5 Power factor
10.6 Measurement of power in a single-phase circuit.
Chapter 11: Resonance in ac circuits
11.1 Series Resonance circuits
11.2 Quality factor
11.3 Selectivity
11.4 Parallel Resonance circuits
11.5 Filter circuit
Chapter 12: Poly-phase circuits
12.1 Three phase circuits
12.2 Symmetrical star connected systems
12.3 Symmetrical delta connected systems

Department of CS & Engineering 18/11/2009101


Curriculum of Computer science 4 - Years Degree (Regular)

12.4 Source/Load connection


12.5 Power relationships
12.6 Power factor improvement
12.7 Three phase power measurements

Teaching Method: Lecture supported by laboratory and group presentation


Assessment and Evaluation Method:
Assignments-----------------------------10%
Project-------------------------------------20%
Mid-semester Examination-------------30%
Final examination-------------------------40%

Text book:
• Boylestad: - Introduction to circuit analysis, 7th Edition.

References:
• J. D. Irwin: Basic engineering circuit Analysis, 5th Ed.
• Bobrow: Fundamentals of Electrical Engineering, 2nd Ed.
• Hughes: Electrical Technology, 7th Ed.

Course $o Math 397


Course Title Discrete Structure
Credit: 3; Lecture: 2; Tut 3; Prerequisite: one
Learning Outcome:
– Explain with examples the basic terminology of functions, relations, and sets.
– Perform the operations associated with sets, functions, and relations.
– Relate practical examples to the appropriate set, function, or relation model, and interpret the
associated operations and terminology in context.
– Demonstrate basic counting principles, including uses of diagonalization and the pigeonhole
principle.
– Apply formal methods of symbolic propositional and predicate logic.
– Describe how formal tools of symbolic logic are used to model algorithms and real life
situations.
– Use formal logic proofs and logical reasoning to solve problems such as puzzles.
– Describe the importance and limitations of predicate logic.
– Outline the basic structure of and give examples of each proof technique described in this
unit.
– Discuss which type of proof is best for a given problem.
– Relate the ideas of mathematical induction to recursion and recursively defined structures.
– Identify the difference between mathematical and strong induction and give examples of the
appropriate use of each.
– Compute permutations and combinations of a set, and interpret the meaning in the context of
the particular application.
– State the definition of the Master theorem.
– Solve a variety of basic recurrence equations.
– Analyze a problem to create relevant recurrence equations or to identify important counting
questions.
– Illustrate by example the basic terminology of graph theory, and some of the properties and
special cases of each.

Department of CS & Engineering 18/11/2009102


Curriculum of Computer science 4 - Years Degree (Regular)

– Demonstrate different traversal methods for trees and graphs.


– Model problems in computer science using graphs and trees.
– Relate graphs and trees to data structures, algorithms, and counting.
– Calculate probabilities of events and expectations of random variables for elementary
problems such as games of chance.
– Differentiate between dependent and independent events.
– Apply the binomial theorem to independent events and Bayes theorem to dependent events.
– Apply the tools of probability to solve problems such as the Monte Carlo method, the average
case analysis of algorithms, and hashing.

Course Description: The material in discrete structures is pervasive in the areas of data
structures and algorithms but appears elsewhere in computer science as well. This course focuses
on Functions, relations, and sets; Basic logic; Proof techniques; Basics of counting; Graphs and
trees; Discrete probability;
Course Outline
Chapter 1: Functions, relations, and sets
1.1 Functions (surjections, injections, inverses, composition)
1.2 Relations (reflexivity, symmetry, transitivity, equivalence relations)
1.3 Sets (Venn diagrams, complements, Cartesian products, power sets)
1.4 Pigeonhole principle Cardinality and countability
Chapter 2: Basic logic
2.1Propositional logic
2.2 Logical connectives
2.3 Truth tables
2.4 Normal forms (conjunctive and disjunctive)
2.5 Validity
2.6 Predicate logic
2.7 Universal and existential quantification
2.8 Modus ponens and modus tollens
2.9 Limitations of predicate logic
Chapter 3: Proof techniques
3.1 Notions of implication, converse, inverse, contrapositive, negation, and contradiction
3.2 The structure of formal proofs
3.3 Direct proofs
3.4 Proof by counterexample
3.5 Proof by contraposition
3.6 Proof by contradiction
3.7 Mathematical induction
3.8 Strong induction
3.9 Recursive mathematical definitions
3.10 ell orderings
Chapter 4: Basics of counting
4.1 Counting arguments
4.2 Sum and product rule
4.3 Inclusion-exclusion principle
4.4 Arithmetic and geometric progressions

Department of CS & Engineering 18/11/2009103


Curriculum of Computer science 4 - Years Degree (Regular)

4.5 Fibonacci numbers


4.6 The pigeonhole principle
4.7 Permutations and combinations
4.8 Basic definitions
4.9 Pascal’s identity
4.10 The binomial theorem
4.11 Solving recurrence relations
4.12 Common examples
4.13 The Master theorem
Chapter 5: Graphs and trees
5.1 Trees
5.2 Undirected graphs
5.3 Directed graphs
5.4 Spanning trees
5.5 Traversal strategies
Chapter 7: Discrete probability=? Where is chapter 6?
Finite probability space, probability measure, events
Conditional probability, independence, Bayes’ theorem
Integer random variables, expectation
Text References
• Dr. NG. Goudru, Discrete Mathematical structures First Edition: 2003
• Himalayan publishing house
• Discrete Mathematics for computer Science; A.B. Shiflet
• Applied Combinatory; A. Tucker
• Elements of discrete mathematics; C.L Liu
• Mathematics of choice; Ivan Niven
• Discrete Mathematics with applications; I l . F . J r . Matson

Teaching Methods: Lecture supported by laboratory and group discussion and demonstration
Methods of Evaluation:
• Assignments 10%;
• Mid examination 30%;
• Final examination 60%.

Instructor Qualification: MSc and above in Electrical Engineering

Course $o Eeng 202


Course Title Electronics
Credit: 3; Lecture: 2; Laboratory: 3, Prerequisite: Eeng 201

Course Objective: At the end of the course, the student should be able to:
• explain of basic principles and analysis of circuit theory;
• explain of basic principles of semiconductor electronics;
• explain of basic principles of analogy/digital electronics;
• work on different electronic components and circuits
• work on operational amplifiers

Department of CS & Engineering 18/11/2009104


Curriculum of Computer science 4 - Years Degree (Regular)

Course Description
Introduction: Atomic structures, Energy band theory of crystal, Classification of materials into
metals, semiconductors, and insulators based on energy bands; Semiconductor theory; Types of
Semiconductor Diodes: PN-junction diodes, Zener diodes, Other types of diodes; Bipolar
Junction Transistors: Construction, Configuration, Input-output characteristics, and Equivalent
circuit of transistors, Applications, Low frequency and high frequency analysis of transistors,
Transistor biasing, Oscilloscopes, Function generators ,introduction to IC family, Characteristics
of Digital ICs, Voltage , and Current Rating , Noise Margin , Propagation Delay , Power
dissipation, TTL logic Family & Other Families, CMOS.

Course Outline:
Chapter 1: Alternating Current Circuits
Chapter 2: Signal Analysis
Chapter 3: Diodes
Chapter 4: Rectifiers
Chapter 5: Filters
Chapter 6: Bipolar Junction Transistors
Chapter 7: Field- Effect Transistors
Chapter 8: Common Transistor Circuits
Chapter 9: Operational Amplifiers
Chapter 10: Digital and Analog Electronic Systems.
Teaching Methods: Lecture supported by laboratory and group discussion and demonstration
Methods of Evaluation:
Mid-----------------------------------30%
Final examinations----------------- 40%
Assignments------------------------10%
Lab report---------------------------20%

Instructor Qualification: MSc and above in Electrical Engineering or Computer Engineering

References
• J.J. Brophy: Basic Electronics for Scientists (McGraw-Hill International, 1990)
• H.V. Malmstadt, CG. Enke, E.G. Toren, Electronics for Scientists, W.A. Benjamin, Inc.
New York, 1962
• D. Deininger, Basic Electronics, Addis Ababa University, 1983
• B-H. Vassos, G.W. Ewing, Analog and Digital Electronics for Scientists, John Wiley,
New York, 1980
• R.E. Simpson, Introductory Electronics for Scientists and Engineers, Allyn &. Bacon,
Inc, Massachusetts, 1987

Course $umber: Ieng 452


Course Title: Entrepreneurship and Small Business Management
Credit: 3; Lecture: 3;

Course Objectives:
Successful students in this course will be able to:

Department of CS & Engineering 18/11/2009105


Curriculum of Computer science 4 - Years Degree (Regular)

• 1. Describe the process of Innovation, technology transfer & entrepreneurship as an


activity originating from market need, the creative recognition of opportunity, and
innovative problem solving in the business environment.
• 2. Understand how innovation and competitive advantage contribute value to new
business products and services.
• 3. Understand the entrepreneurial traits and skills needed in entrepreneurial ventures.
• 4. Through the development of a business plan, evaluate the opportunities of a selected
venture idea along with the constraints on its feasibility.
Course Description
The goals of this course are to give the student a broad understanding of the field of
entrepreneurship development, and commercialization of technology-based innovation in existing
firms; and the formation, development, and growth of technology-based new enterprises. Students
can integrate these areas in their studies or approach them as distinct elements and to provide an
introduction to the important tools and skills necessary to create and grow a successful new
venture. The course is designed to simulate the real life activities of entrepreneurs in the start-up
stage of a new venture. Students, in teams, will develop a new venture concept and determine if a
demand exists for their product or service.

Course Outline:

Chapter 1. The Entrepreneur and the Entrepreneurial Venture


Entrepreneurs and Entrepreneurship, The Concept of Entrepreneurship,
The Entrepreneur as an Individual, Creativity and Innovation

Chapter 2. Creation of $ew Ventures


Developing the Entrepreneurial Plan, Ideas versus Opportunities, Commercialization of 2.2
technology-based innovation, Formation, development, and growth of technology-based new
enterprises

Chapter 3. International Technology Transfer and Multinational Enterprises, innovation


Technology usage and adoption by SMEs, Promotion of technological development, Public
regulation of technology transfers, Diffusion and Mechanisms of Technology Transfer,
Intellectual Property Rights and the Appropriability of Technology
Chapter 4. Assessing the Feasibility of a $ew Venture
Assessment and Evaluation of Entrepreneurial Opportunities, Structuring the New Venture,
Legal Structures and Issues, Sources and Types of Capital, Buying versus Starting a Business

Chapter 5. Growing the $ew Venture


The Management Team, Strategic Planning, Managing Growth, Financing Growth,
Developing a Team of Advisors
Chapter 6. Risk and insurance of Business enterprises
Definition of Risk, The process of Risk management, Classifying risks by Type of Asset,
Insurance of the Small Business
Chapter 7. Project work
Feasibility Study and Business Plan
Teaching Methods:
In the presentation and discussion of the major modules, the course will include
 Lecture/discussion,
 Application of the principles covered (case studies and readings),
 Student feedback (discussion),

Department of CS & Engineering 18/11/2009106


Curriculum of Computer science 4 - Years Degree (Regular)

 Team project
 Guest speakers will be invited to discuss various stages of the entrepreneurial process.
Evaluation:
Continuous Assessment 10 %
Project Work: 40%
Final Exam: 50%

Instructor Qualification: MSc and above in Industrial Engineering or Management

Textbook:
John D. Pervy W.H, how to start and run and succeed in your business 1983, 6th ed
References:
Jeffdry A. Timmons, New Venture Creation, Entrepreneurship in the 1990’s, 3rd ed. Irwin.
H.N. Broom , Small business management. 1983, 6th ed.
Justin G. Longenecker and Carlos W. Moore, Small Business Management, 8th ed., College
Division South Western Publishing Co Dallas, 1991.
Keith L.A Introduction to Business Enterprise
5. Ken R. Blawatt Entrepreneurship: Process and management, 1998

Course $umber: Cvet 100


Course Title: Int. to Civics and Ethics
Credit:3; Lecture: 3

Course Objective: At the end of the course students will be able to:

• Have civic knowledge on various issues such as on meaning and definition of civics and
ethics, Constitutionalism, Democracy, Human Rights, State, and Government etc.
• Clearly understand their rights and responsibilities and then exercise their rights and
discharge their responsibilities.
• Develop civic attitude such as Patriotism, civic mindedness, Active participation,
Tolerance etc.
• Develop civic skills such as accurate decision making, expression of one self clearly and
logically, Conflict resolution etc.
• Start behaving exactly as good citizens and play a crucial role in the democratization
process of the state.
• Identify the main ethical issues in IT fields
Course Description
This fundamental objective of Civic and Ethical Education is producing good citizens with higher
civic qualities. Good citizen who are well aware of their rights and responsibilities as well as
endowed with various type civic virtues such as active participation, tolerance, Civic mindedness
etc have a lot to contribute in the process of democratization and development of their own state.
In view of this, this course is designed to familiarize students with basic themes and concepts of
civic and ethical education, constitutionalism, Democracy, Human Rights and some other
pertinent issues in achieving the basic goal of the subject matter.
The vary nature of civic education requires active participation from the part of students in
various ways such as forwarding original arguments, participating in class discussions, debates,

Department of CS & Engineering 18/11/2009107


Curriculum of Computer science 4 - Years Degree (Regular)

Presentation etc. . Thus students are highly expected to act accordingly for the successful delivery
of the course.
Course Outline
Chapter 1: Introduction:
1.1Definition of Civics and Ethics
1.2Foundations of civics and ethical education
1.3The interdisciplinary nature of civics and ethical education
Chapter 2: Constitutional Development:
2.1 Definition of Constitution
2.2 Purpose and Functions of Constitution
2.2 Origin and development of Constitution
2.3 USA and UK
2.4 Constitutional experiences of Ethiopia Pre-1931
2.5 The first written constitution of Ethiopia -1931
2.6 The revised constitution of PDRE( Dreg Era 1974-1991)
2.7 The Charter of the TGE (1991-1995)
2.8 The constitution of FDRE

Chapter 3: The Concept of Democracy:


3.1 Definitions of Democracy and Democratic Values

3.2 Principles of Democracy


3.3 Democratic Rights as enshrined in FDRE Constitution
3.4 Traditional Political Institutions in Ethiopia (Gada System, Political system of
Kafa and Wolyita)
Chapter 4: The State, Government and Citizenship:
4.1 Origin essence and essential elements of state
4.2 Types and functions of state
4.3 Essence, purpose and forms of Government
4.4 What is Citizenship
4.4.1Citizenship Defined
Citizenship and ways of acquiring/loosing
Citizenship

Chapter 5: Meaning and $ature of Fundamental Human Rights:


Human Rights defined
Universal Declaration of Human Rights (UDHR)
Human Rights of Women and Children
Problems in International Protection of Human Rights
Human Rights in FDRE Constitution
Chapter 6: Ethical Issues in IT:
6.1 Define Ethics
6.2 Ethics and Moral Responsibility
6.3 Professional Ethics
6.4 Field Specific Ethical Values

Chapter 7: International Relations:


Definition and Historical Development
Approaches and Theories
Structure of International Relations
Review of the foreign policy of Ethiopia

Department of CS & Engineering 18/11/2009108


Curriculum of Computer science 4 - Years Degree (Regular)

Contemporary Global Issue

Teaching Methods: Lectures supported by tutorials, assignments and Exercises


Assessment & Evaluation:
Assignments-------------------------10%
Mid-semester Examination--------40%
Final examination--------------------50%

References

• Chekki Don, " Particapatory Democracy in Action" International Profiles of


Community Devt. New Delhi, 1999
• James and Clapham," Constitution Development of Ethiopia" Vol. ii Faculty of
Law, Haile Selassie University , 1985
• May Philip " Moral Education School" London 1980
• The Constitution of the Federal Democratic Republic of Ethiopia, August 21,
1995
• Universal Declaration of Human Rights : Adopted by the UN General Assembly
in 1948
• Fasil Nahum " A Constitution of Nations, Nationalities

Course $umber: Enla 201


Course Title: Sophomore English
Credit: 3; Lecture:3
Course Objective: At the end of the lesson, students will be able to:
• Understand how to use simple complex sentences
• Write their own essays effectively and efficiently
• Develop their confidence to speak and listen English language fluently
• Listen and comprehend form different media and jot down notes in the class
room.

Course Description: English is a vital language to use in the class room and in a daily
communication As a result, this course deals with senternce types, listening skills and
writing essays.

Course Outline
Chapter 1: Essential requirements for written English
1.1 Simple, Complex, and Compound Sentences
1.2 Various Clauses
1.3 Punctuation
1.4 Itemizing and Paragraphing

Chapter 2: Listening Comprehension

Department of CS & Engineering 18/11/2009109


Curriculum of Computer science 4 - Years Degree (Regular)

Exercises involving the students taking down the notes when a few topics are dictated
Chapter 3: Essential requirements for written English
3.1 Simple, Complex, and Compound Sentences
3.2 Various Clauses
3.3 Punctuation
3.4 Itemizing and Paragraphing

Chapter 4: Listening Comprehension


4.1 Exercises involving the students taking down the notes when a few topics are
dictated

Chapter 5: Essay writing


5.1 Preparing a detailed notes from a few points that are given
5.2 Writing essays on given topics

Chapter 6: Preparing a brief notes from a Detailed one


6.1 Condensing the subject matter given in a few pages to a few paragraphs
6.2 Precise writing from Essays

Teaching & learning Methods: Lectures, Discussions, Reading, and Writing


Practice, Assignments
Assessment and Evaluation: Assignments (three)…..………………… 15%
Mid-term Examination …………………. 35%
Final Examination ………………………. 50%
References:
• Sophomore English,Tesfaye Tilhun & Ayalew Mulugeta, ---Dept. of English-
BahirDar University
• College English--- Vol. I & II,---Dept.of Foreign Languages &Literature,---Addis
Ababa University
• Creative Compositions,Harvey S Wiener,---Mc Graw Hill Publications
• From Paragraph to Essay------A process approach for beginning college writing --
- Mc Graw Hill Publications
• College Writing Skills with Readings--- ---John Langan,Mc Graw Hill ublications

Course $umber: Phil. 100


Course Title: Reasoning skill (logic)
Credit: 2; Lecture: 2

Course Objective: At the end of the course students will be able to:

• Develop the skills required to construct sound arguments of their own


• Ability to critically evaluate the arguments of others
• Cultivate the habits of critical thinking and develop sensitivity to the clear and accurate
use of language.

Department of CS & Engineering 18/11/2009110


Curriculum of Computer science 4 - Years Degree (Regular)

• Understand the role of the language in the logic and argument process
Course Description
This course emphasizes on major concepts and ideas of logic to enable learners to draw sound
arguments in convincing others as well as to be convinced by others whenever they involve in
arguments process. Inline with this understanding, the course will focuses on the definition of
logics, meaning of arguments, types of argument, art of argument, the role of language in logic
and argument process, common reasoning defects in argument fallacies, categorical syllogism,
propositions and symbolic logic.

Course Outline
Chapter 1: Introduction:
1.1What is logic and its uses
Chapter 2: $ature of Arguments:
2.1 Define arguments
2.2 Non argument expressions
2.3 Type of arguments (Deductive and Inductive)
2.4 Validity and Invalidity: Truth and Falsity
2.5 Sound and Unsound Arguments
2.6 Strength and weakness: Truth and Falsity
2.7 Cogent and unclogging arguments
2.8 Evaluating an arguments
Chapter 3: Definitions:
Cognitive and Emotive meaning of terms
Intension and Extension of terms
Definitions and their purposes
Definitional Techniques
Criteria for lexical definitions
Chapter 4: Informal Fallacies:
4.1Fallacies of Relevance
4.2 Fallacies of Weak Induction
4.3 Fallacies of Presumptions
4.4 Fallacies of Ambiguity
4.5 Fallacies of Grammatical Analogy
Chapter 5: Syllogistic Logic:
Categorical Propositions: Standard Form and Types
Square of Oppositions: Traditional and Modern
Role of Immediate Inference and Formal fallacies
Categories Syllogism: Standard Form, Mood and Figure
Syllogistic Rules and Formal Fallacies
Methods of Testing Validity

Chapter 6: Prepositional Logic:


Compound propositions and Prepositional Connectives
Truth Functional Connectives & the Truth Values of Propositions
Prepositional Type arguments and formal fallacies
Symbolizing Prepositions and prepositional arguments
Rule for prepositional logic: rule of implication and Rule of equivalence
Natural deduction

Department of CS & Engineering 18/11/2009111


Curriculum of Computer science 4 - Years Degree (Regular)

Chapter 7: Induction:
7.1 Analogy and legal and moral reasoning
7.2 Causality and Mill's Methods
7.3 Hypothetical Reasoning

Teaching & Learning Methods: Lectures supported by tutorials, assignments and Exercises

Assessment/Evaluation & Grading System:


Assignments …..………………… 15%
Mid-term Examination …………… 35%
Final Examination ………………. 50%

Reference

• Hurley, Patrick J. " A Concise Introduction to Logic" 7th edition , Belmarnt:Wadsworth


Publishing Company, 2003
• Copi, Irving M. and Carl Cohen " Introduction to Logic" , New York: Macmillan
Publishing company 2001
• Fogilin, Robert J. " Understanding arguments: An Introduction to Informal Logic",
New York: Harcourt Brace Jovanovich Publishing company 2001
• Guttenplan , Samuel" The Language of Logic" : Oxford:Blackwell Publishers, 2000
• Stephen C. " The Power of Logic" Londoan and Toronto: Mayfield Publishing
Company, 2000
• Walelign Emiru "Freshmen Logic" ,Addis Ababa:" Commercial Printing Enterprise,
2005
• Simico N. D. and G.G. James " Elementary Logic" , Belmont Ca: 2nd ed. Wadswoth
Publishing Company

14. MATERIAL RESOURCE REQUIREMENT

14.1. Lecture/Classroom Requirement


Three 50-student capacity lecture halls will be necessary.

14.2. the hardware requirement


• Three overhead projectors for each classroom:
• Three blackboards for each computer laboratory:
• Four whiteboards for each computer laboratory:
• Three tables for projectors in each classroom:
• 150 student chairs, 50 for each classroom:
• 104 chairs without armrest, 26 for each computer laboratory:
• 52 computer tables for two PCs, 13 for each computer laboratory:
• 52 six-outlet electric-dividers, 13 for each laboratory, 1 for two computers.

Department of CS & Engineering 18/11/2009112


Curriculum of Computer science 4 - Years Degree (Regular)

14.3. Computer requirement


In addition to the above, the following are required:
• Ten computers for staff lab
• Two heavy-duty laser jet printers
• One Dot Matrix printer

Department of CS & Engineering 18/11/2009113

You might also like