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

CS Curriculum

Embed Size (px)

DESCRIPTION

Bahir Dar University Faculty of EngineeringCurriculum for B.Sc Degree in Computer Science(Four Years Program)Department of Computer Science & Engineering Faculty of Engineering Bahir Dar UniversityOctober 2008Curriculum of Computer science 4 - Years Degree (Regular)Table of Contents1. 2. 3. 4. 5. 6.PageBACKGROU D..................................................................................................................... 3 Rationale ........................................

Citation preview

Page 1: 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

Page 2: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

2

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

Page 3: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

3

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

Page 4: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

4

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

Page 5: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

5

4. Staff Profile

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.

$o. $ame

Qualific

ation

Position Specialization Remark

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

Lecturer

Computer

Science

Msc study

7 Ato Selamneh Belete BS.c Assistant

Lecturer

Computer

Science

Msc study

8 Mekonen Fantaw Bsc Assistant

Lecturer

Computer

Science

Msc study

9 Ato Desta Berihu BS.c Assistant

Lecturer

Computer

Science

Msc study in

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

Diploma

Technical

Assistant II

ICT

14 W/rt Kasanesh Meshesha

Alitha

Diploma Technical

Assistant II

Computer

Science

15 Ato Alemu Kumlachew BS.c G. Assistant I Business

Educ.(IT)

Page 6: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

6

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.

Page 7: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

7

� 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.7.7.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

Page 8: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

8

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

Page 9: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

9

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

Page 10: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

10

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:

Page 11: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

11

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

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

Code

Credit

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

Code

Credit

hour

Lec Lab Tut

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

Page 12: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

12

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

Language

Comp282 3 2 0 3

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

Page 13: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

13

Major Elective Courses

Elective I

S.

No

Course Title Course

Code

Credit

Hours

Lec Lab Tut

1 Introduction to Distributed Systems Comp 443 3 2 3 0

2 Introduction to Data Mining and Data

Warehouse

Comp 423 3 2 3 0

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

Page 14: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

14

11. Course Breakdown per Semester for regular program

Year I, Semester I

Credits �o

Course �ame Course

Code Total Lect Lab Tut

Pre-requisites

1 Introduction to Computer

Science

Comp 101 3 2 3 - None

2 Calculus Math 263 4 3 - 3 None

3 Linear algebra Math 224 3 2 - 3 None

4 Fundamentals of Electrical

Engineering

Eeng 201 3 2 3 - None

5 Fundamentals of programming I Comp 111 3 2 3 - None

6 Sophomore English Enla 201 3 3 - - None

Semester Total

Semester Total

19 14 9 6

Year I, Semester II

Credits �o Course �ame Course

Code Total Lect Lab Tut

Pre-requisites

1 Fundamentals of Programming

II

Comp 112 3 2 3 - Comp 111

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

Semester Total

17 12 9 6

Year II, Semester I

Credits �o Course �ame Course

Code Total Lect Lab Tut

Pre-requisites

1 Object Oriented Analysis &

Design

Comp

231

3 2 - 3 Comp 111

2 Computer organization and

Architecture

Comp 261 4 3 - 3 Comp 162

3 Data Structures and Algorithm Comp 251 4 3 3 - Comp 112

4 Computer Based Numerical

Analysis

Math 306 3 2 3 - None

5 Business Communication skills Mgt 100 2 2 - - None

6 Technical Report Writing Enla 300 2 2 - - None

Semester Total

Semester Total

18 14 6 6

Page 15: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

15

Year II, Semester II

Credits �o Course �ame Course

Code Total Lect Lab Tut

Pre-requisites

1 Object Oriented Programming Comp 212 4 3 3 - Comp 231

2 Introduction to Automata and

Formal Language

Comp282 3 2 - 3 Math 397

3 Operating systems Comp 262 4 3 3 - Comp 261

4 Fundamentals of Database

Systems

Comp 222 4 3 3 - Comp 101

5 Data Communications &

Computer Networks

Comp 242 4 3 3 - Comp 101

Semester Total 19 14 9 6

Year III, Semester I

Credits �o Course �ame Course

Code Total Lect Lab Tut

Pre-requisites

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

Semester Total

18 12 9 6 None

Year III, Semester II

Credits �o Course �ame Course

Code Total Lect Lab Tut

Pre-requisites

1 Basic Research Methods for

Computer Science

Comp 302 2 2 - - None

2 Software Project Management Comp 332 3 2 - 3 Comp 331

3 Introduction to Artificial

Intelligence

Comp 372 3 2 3 - Phil 100

Math 397

4 Micro Processor & Assembly

Language

Comp 362 3 2 3 - Comp 261

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

Page 16: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

16

Credits �o Course �ame Course

Code Total Lect Lab Tut

Pre-requisites

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

Semester Total

17 8 12 5

Year IV, Semester II

Total Credit Hours

Major Compulsory Courses: 105

Common Course : 12

Supporting Compulsory Courses: 24

Total : 141

Credits �o Course �ame Course

Code Total Lect Lab Tut

Pre-requisites

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

Business Management

Ieng 452 3 3 - - None

5 Industrial Project II Comp 492 3 9 - Comp 491

Total 15 10 12 3

Page 17: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

17

12. Course Breakdown per Semester for extension program

Year I, Semester I

Credits �o

Course �ame Course

Code Total Lect Lab Tut

Pre-requisites

1 Introduction to Computer

Science

Comp 101 3 2 3 - None

2 Linear algebra Math 224 3 2 - 3 None

3 Fundamentals of Electrical

Engineering

Eeng 201 3 2 3 - None

4 Fundamentals of programming I Comp 111 3 2 3 - None

Semester Total

Semester Total

12 8 9 3

Year I, Semester I

Year I, Semester III (summer)

Credits �o Course �ame Course

Code Total Lect Lab Tut

Pre-requisites

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

Semester Total

8 7 0 3

Credits �o

Course �ame Course

Code Total Lect Lab Tut

Pre-requisites

1 Calculus Math 263 4 3 - 3 None

2 Reasoning Skills (Logic) Phil 100 2 2 - - None

3 Fundamentals of Programming

II

Comp 112 3 2 3 - Comp 111

4 Electronics Eeng 202 3 2 3 - Eeng 201

Semester Total

Semester Total

12 13 9 6

Page 18: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

18

Year II, Semester I

Year II, Semester II

Credits �o Course �ame Course

Code Total Lect Lab Tut

Pre-requisites

1 Object Oriented Analysis &

Design

Comp

231

3 2 - 3 Comp 111

2 Computer organization and

Architecture

Comp 261 4 3 - 3 Comp 162

4 Computer Based Numerical

Analysis

Math 306 3 2 3 - None

Semester Total

Semester Total

10 14 9 3

Year II, Semester III (summer)

Credits �o Course �ame Course

Code Total Lect Lab Tut

Pre-requisites

1 Introduction to Automata and

Formal Language

Comp 282 3 2 - 3 Math 397

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

Credits �o Course �ame Course

Code Total Lect Lab Tut

Pre-requisites

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

Semester Total

12 8 6 3

Page 19: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

19

Year III, Semester I

Year III, Semester II

Year III, Semester III (summer)

Credits �o Course �ame Course

Code Total Lect Lab Tut

Pre-requisites

3 Complexity Theory Comp 381 3 2 - 3 Comp 282

4 Entrepreneurship and Small

Business Management

Ieng 452 3 3 - - None

6 Basic Research Methods for

Computer Science

Comp 302 2 2 - - None

Semester Total

Semester Total

8 7 0 3 None

Credits �o Course �ame Course

Code Total Lect Lab Tut

Pre-requisites

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

Systems

Comp 222 4 3 3 - Comp 101

Semester Total 12 9 9 0

Credits �o Course �ame Course

Code Total Lect Lab Tut

Pre-requisites

5 Data Communications &

Computer Networks

Comp 242 4 3 3 - Comp 101

Systems Programming Comp 311 3 2 3 - Comp 262

Software Engineering Comp 331 4 3 3 Comp 231

Semester Total 11 8 6 3

Page 20: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

20

Year IV, Semester I

Credits �o Course �ame Course

Code Total Lect Lab Tut

Pre-requisites

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

Intelligence

Comp 372 3 2 3 - Phil 100

Math 397

4 Micro Processor & Assembly

Language

Comp 362 3 2 3 - Comp 261

Total 12 8 6 3

Year IV, Semester II

Year IV, Semester III (summer)

Year V, Semester I

Credits �o Course �ame Course

Code Total Lect Lab Tut

Pre-requisites

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

Credits �o Course �ame Course

Code Total Lect Lab Tut

Pre-requisites

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

Credits �o Course �ame Course

Code Total Lect Lab Tut

Pre-requisites

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

Semester Total

7 3 0 3

Page 21: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

21

Requirement Engineering Comp 431 3 3 0 0 Comp 331

Semester Total

Semester Total

9 6 9 0

Year V, Semester II

Total Credit Hours

Major Compulsory Courses: 105

Common Course : 12

Supporting Compulsory Courses: 24

Total 141

Credits �o Course �ame Course

Code Total Lect Lab Tut

Pre-requisites

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

Page 22: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

22

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%

Page 23: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

23

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

nded., 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

Page 24: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

24

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

Page 25: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

25

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%

Page 26: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

26

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

Page 27: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

27

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

Page 28: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

28

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:

Page 29: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

29

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

Page 30: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

30

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

Page 31: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

31

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

Page 32: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

32

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.

Page 33: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

33

- 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

Page 34: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

34

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

Page 35: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

35

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

Page 36: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

36

• 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

Page 37: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

37

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

Page 38: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

38

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

Page 39: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

39

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

Page 40: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

40

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

Page 41: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

41

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

Page 42: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

42

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

Page 43: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

43

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:

Page 44: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

44

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.

Page 45: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

45

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)

Page 46: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

46

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

Page 47: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

47

• 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

Page 48: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

48

• 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

Page 49: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

49

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

Page 50: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

50

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.

Page 51: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

51

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

Page 52: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

52

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

Page 53: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

53

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:

Page 54: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

54

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

Page 55: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

55

- 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

Page 56: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

56

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

Page 57: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

57

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.

Page 58: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

58

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

Page 59: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

59

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.

Page 60: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

60

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

Page 61: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

61

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

Page 62: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

62

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

Page 63: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

63

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

Page 64: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

64

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

Page 65: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

65

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.

Page 66: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

66

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:

Page 67: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

67

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.

Page 68: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

68

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 U�IX Programming Environment, B. Kernighan & R. Pike Prentice-Hall, 1984.

System Software, Leland L. Beck, Addison-Wesley Longmsan, 1990, ISBN: 0-201-50945-8.

Page 69: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

69

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

Page 70: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

70

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

Page 71: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

71

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,

Page 72: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

72

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

Page 73: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

73

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

Page 74: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

74

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:

Page 75: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

75

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

Page 76: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

76

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

Page 77: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

77

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)

Page 78: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

78

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

Page 79: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

79

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

Page 80: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

80

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

Page 81: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

81

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

Page 82: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

82

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

Page 83: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

83

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

Page 84: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

84

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

Page 85: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

85

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

Page 86: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

86

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%

Page 87: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

87

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.

Page 88: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

88

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,

Page 89: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

89

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

Page 90: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

90

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.

Page 91: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

91

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.

Page 92: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

92

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

Page 93: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

93

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

Page 94: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

94

� 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

Page 95: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

95

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

Page 96: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

96

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

Page 97: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

97

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%

Page 98: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

98

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

Page 99: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

99

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

Page 100: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

100

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

Page 101: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

101

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

Page 102: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

102

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.

Page 103: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

103

– 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

Page 104: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

104

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

Page 105: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

105

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:

Page 106: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

106

• 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),

Page 107: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

107

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

Page 108: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

108

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

Page 109: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

109

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

Page 110: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

110

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.

Page 111: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

111

• 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

Page 112: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

112

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.

Page 113: CS Curriculum

Curriculum of Computer science 4 - Years Degree (Regular)

Department of CS & Engineering 18/11/2009

113

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