BSC Degree in Computer Science (DBU)
BSC Degree in Computer Science (DBU)
College of Computing
Department of Computer Science
September, 2020
Ethiopia
Curriculum Revision Team Members
S. No Name of the Academic Rank E-mail University
participant
1 Kebebew Ababu Ass. Prof. (MSc. in Computer Science) [email protected] Jimma
2 Mizanu Zelalem Lecturer (MSc. in Computer Science) [email protected] University
3 Samuel Sisay Lecturer (MSc. in Computer Science) [email protected]
4 Worku Birhanie Lecturer (MSc. in Computer Science) [email protected]
2
Table of Contents
List of tables ............................................................................................................................ 4
Acronyms ................................................................................................................................. 5
1. Introduction ...................................................................................................................... 6
2. Rationale ........................................................................................................................... 7
3. Mission, Vision and Objectives ........................................................................................ 8
3.1 Mission .............................................................................................................................. 8
3.2 Vision ................................................................................................................................. 8
3.3 Objectives .......................................................................................................................... 8
4. Professional Profile .......................................................................................................... 9
5. Graduate Profile.............................................................................................................. 10
6. Program Requirement ..................................................................................................... 12
6.1. Admission Requirement.............................................................................................. 12
6.2. Duration of the Study .................................................................................................. 12
6.3. Mode of delivery ......................................................................................................... 12
6.4. Method of Teaching .................................................................................................... 12
6.5. Grading System ........................................................................................................... 12
6.6. Graduate Requirement ................................................................................................ 13
7. Degree Nomenclature ..................................................................................................... 14
8. Quality Assurance .......................................................................................................... 14
9. Assessment and Evaluation ............................................................................................ 14
10. Course Policy .............................................................................................................. 15
11. Course Coding ............................................................................................................ 15
12. Course list with credit hours ....................................................................................... 17
13. Course Syllabus .......................................................................................................... 23
13.1. Compulsory Computer Science Courses ................................................................. 23
13.2. Elective Computer Science Courses ..................................................................... 147
13.3. Supportive Courses ............................................................................................... 175
13.4. Common Courses .................................................................................................. 198
References............................................................................................................................ 276
3
List of tables
4
Acronyms
5
1. Introduction
Computers play a major role in shaping the information or the knowledge age. They are also
becoming essential in almost all activities of human life. Furthermore, with the decline in the
price of computer hardware, nations, organizations and individuals that couldn't afford to have
computers some years back can now afford to acquire them. However, the acquisition of the
hardware is just one step towards computerization. The most important step is to be able to use
them properly.
This necessitates for a high number of skilled computer scientists who will develop the
necessary applications for the computers, who will administer the computer systems and who
will decide on computer system acquisitions of the organizations and all automation processes in
general.
Institutions, enterprises, organizations and companies in all sectors, public and private, are
directly or indirectly being affected by the overwhelming information flow around the world.
The effect goes down to small businesses and even to individuals. Every such unit should be
equipped with tools that enable it to survive in such a dynamic world. Ethiopia is no exception
and we must get ready to cope up with the influence of the knowledge age in our day-to-day life.
A curriculum in Computer Science must be designed in such a way that it addresses the current
needs of the country. Currently, the country has no sufficient number of competent computer
professionals in the various fields of Computer Science. Various Governmental and other
organizations have the desire to use modern information technology. However, there is an acute
shortage of technical staff.
6
Rationale
Computer Science is an exciting, challenging and dynamic discipline. Computers form an
integral part of every aspect of society and modern life. New computing technologies are
introduced at an enormous rate and the Computer Science field develops and changes
continually and rapidly. Consequently, Computer Science has evolved into a dynamic and
challenging field of study.
Students in the course of their degree are exposed to the theoretical foundations in all areas of
the field, gain an understanding of the principles that underlie development of systems, apply
their knowledge on real life projects and acquire the necessary knowledge and skills to cope
with the astonishing rate of change of the specific discipline.
The curriculum is in compliance with the already established standards proposed by
international Computer Societies. Graduates are well equipped to successfully follow fulfilling
career paths in many diverse areas of business and academia.
7
2. Mission, Vision and Objectives
3.1 Mission
The mission of B.Sc. curriculum in Computer Science is to deliver an internationally recognized
study program in Computer Science through an innovative and effective process to upgrade the
students’ learning towards the national and international standards that meet the 21st century
standards, and to the nation development goal of 2030.
3.2 Vision
The B.Sc. curriculum in Computer Science will:
▪ Provide an environment of learning that fosters competency, growth, and appreciation of
Computer Science in diverse fields such as science, engineering, architecture, business,
health, and the like.
▪ Promote students to be actively involved in social activities and cooperation with other
academic institutions, governmental bodies, and business companies; to encourage their
talents, creativity, teamwork, decision-making and problem-solving abilities.
▪ Produce Computer Scientists with the Computer Science foundation and adaptive skills
to serve in different sectors.
▪ Prepare students with essential knowledge of Computer Science for successful graduate
study, scientific research, and concentration in specific areas of the discipline and
beyond.
▪ Implement efficient, effective, transparent, IT-based learning to familiarize students to
current technology.
3.3 Objectives
The primary objective of the program is to produce a high-quality graduate with an
entrepreneurial and problem-solving mind-set. The specific objectives of the program are:
▪ Provide an in-depth understanding of the fundamental principles and techniques of
Computer Science.
▪ Develop Computer Science concepts and definitions, and to extend and generalize them to
new situations.
▪ 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.
8
▪ Make students understand the connections between Computer Science and other disciplines,
and being able to recognize Computer Science ideas embedded in other contexts.
▪ Develop the fundamental concepts of Computer Science modelling and how to apply
Computer Science to real-world situations.
▪ Motivating students to become innovators who can respond very positively to the challenges
and opportunities presented by new ideas and technologies.
▪ Laying a strong foundation for, and instilling confidence in students who may want to pursue
post-graduate studies later in life.
3. Professional Profile
Through document analysis on different research organization websites in the field of
computer science and based on other universities’ computer science programs, it has been
found professionals in the field of computer science do have knowledge and skills in
software design and implementation, devising new ways of to use computers, developing
effective ways to solve computing problems, generating new knowledge through research as
in bioinformatics and intelligent systems, presenting findings clearly ,and using computers
for the betterment of society.
Computer science professional must have
• A high-level understanding of computing systems as a whole. This understanding must
go beyond the implementation details of the various components to encompass an
appreciation for the structure of computer systems and the processes involved in their
construction and analysis.
• Thorough understanding of the balance between theory and practice and the essential
link between them not only the theoretical underpinnings of the discipline but also how
that theory influences practice
• A solid foundation that allows and encourages them to maintain their skills as the field
evolves.
9
Areas of Competences Professional Profile
Cognitive Knowledge
▪ Analyze and demonstrate a high-level understanding of theory and
Skill
principles of Computing systems as a whole
▪ Conduct research in computing to generate new knowledge
▪ Apply knowledge and innovative skills to plan, set up and run
businesses.
Practical Skills ▪ Demonstrate, deploy, design and implement computing systems
▪ Exercise management and administration of computing systems
Attitude (Transferable
▪ Prepare, present and reporting research findings orally and in writing.
Skills)
▪ Apply managerial skills
4. Graduate Profile
The graduate will have the following knowledge, skill and attitude at the end of the program.
A) Cognitive knowledge skill
• Demonstrate knowledge and understanding of essential facts, concepts, principles and
theories relating to computer science.
• Use such knowledge and understanding in the modeling and design of computer-based
systems in a way that demonstrates comprehension of the tradeoffs involved in design
choices.
• Identify and analyze criteria and specifications appropriate to specific problems, and
plan strategies for their solution.
• Analyze the extent to which a computer-based system meets the criteria defined for its
current use and future development.
• Deploy appropriate theory, practices, and tools for the specification, design,
implementation, and evaluation of computer-based systems.
• Recognize the need for, and an ability to engage in, continuing professional development
and the knowledge and skills to act as research assistants or lecturers in higher education
institutions.
10
B) Practical skills
• Specify, design, and implement computer-based systems.
• Evaluate systems in terms of general quality attributes and possible tradeoffs presented
within the given problem.
• Apply the principles of human-computer interaction to the evaluation and construction of
a wide range of materials including user interfaces, web pages, and multimedia systems.
• Identify any risks or safety aspects that may be involved in the operation of computing
equipment within a given context.
• Deploy effectively the tools used for the construction and documentation of software,
with particular emphasis on understanding the whole process involved in using
computers to solve practical problems.
• Use current techniques, skills, and tools necessary to maintain and administer computer-
based systems.
• Apply mathematical foundations, algorithmic principles, and computer science theory in
the modeling and design of computer-based systems in a way that demonstrates
comprehension of the tradeoffs involved in design choices;
C) Attitude (Transferable skill)
• Make succinct presentations to a range of audiences about technical problems and their
solutions.
• Be able to work effectively as a member of a development team.
• Understand and explain the quantitative dimensions of a problem.
• Manage one’s own learning and development, including time management and
organizational skills
• Keep abreast of current developments in the discipline to continue one’s own
professional development.
• Recognize and be guided by the social, professional, and ethical issues involved in the
use of computer technology.
11
5. Program Requirement
6.1. Admission Requirement
Placements to all regular undergraduate programs are processed through the Ministry of
Science and Higher Education (MoSHE). The universities then conduct admission and
enrollment to the program based on results of the Ethiopian Higher Education Entrance
Certificate Examination (EHEECE). For second year and above, and other applicants
holding diploma (regular advanced), evening, distance (if any) and summer programs,
admission will be provided if an applicant meets the minimum requirements set by each
university.
6.2. Duration of the Study
The duration of the study for the regular B.Sc. program in Computer Science is 4 years.
6.3. Mode of delivery
All courses should be delivered on a semester basis and face-to-face teaching.
6.4. Method of Teaching
The teaching learning process in this program mainly follows the principle of active
learning. The students should be engaged in assignments, quizzes, tutorials, laboratories,
project demonstrations, lectures and field trip/ industrial visit.
6.5. Grading System
The grading system of the B.Sc. program in Computer Science is fixed scale and indicated in
Table 1.
Table 1: Grading System
Scale Letter grade Number grade Status
[90 – 100] A+ 4
[85 - 90) A 4 Excellent
[80 - 85) A- 3.75
[75 - 80) B+ 3.5 Very Good
[70 - 75) B 3
[65 – 70) B- 2.75 Good
[60 – 65) C+ 2.5
[50 – 60) C 2 Satisfactory
[45 – 50) C- 1.75 Unsatisfactory
[40 – 45) D 1.00 Poor
[0 – 40) F 0 Fail
12
6.6. Graduate Requirement
Every candidate for B.Sc. degree in Computer Science must fulfill the following
requirements for
graduation:
6.6.1. Minimum cumulative Grade Point Requirement for graduation is 2.00.
6.6.2. The required compulsory, elective, supportive and common courses with
their respective total ECTS, Cr. Hrs, and number of courses for graduation
with the Degree of Bachelor of Science in Computer Science is indicated
below in Table 2.
Table 2: Total required courses
No Course Category No. of courses Cr. Hrs ECTS
1 Compulsory 30 89 148
2 Elective 2 6 10
3 Supportive 7 21 35
4 Common 13 32 54
Total 52 148 247
6.6.3. Educational visit: educational tours will help inspire the next generation
of computer scientists by showing them the practical application of the
subject in an exciting and informative way. Each batch of students are
expected to visit a minimum of 2 popular companies/organizations in the
field.
13
7. Degree Nomenclature
14
10. Course Policy
This policy applies for all courses in the program:
• It is mandatory to attend all classes such as lecture class, laboratory sessions, tutorials
and seminars. However, with distinct circumstance up to 80% will be entertained.
• It is mandatory to pass 50% of the lab exam, in order to be eligible for the final. This is
applied for all practical courses.
• Plagiarism will cause not only automatic course dismissal but also academic discipline
based on the rules and regulations of the university.
• If someone is caught while cheating during final examination, his/her grade will
automatically be ‘F’ also academic discipline may be taken based on the rules and
regulations of the university. However, other assessments are evaluated as ‘0’.
• If someone misses any assessments with a valid justification, he/she has a right to sit for
makeup exam.
• Students are not allowed to enter to examination rooms after 30 minutes of examination
commencement.
11. Course Coding
All Computer Science courses are coded ‘‘CoSc’’ followed by four digits, where
I. The first digit indicates the year in which the course is offered. That is 1 refers to year one,
2 refers to year two, 3 refers to year three, and 4 refers to year four.
II. The next two digits indicate the area (category)of the course, where all Computer Science
courses are categorized depending on similarity of the courses as shown in Table 3.
Table 3: Course categories with their corresponding course categories/Module numbers
Course Category Code Courses Under Category
Introduction to Emerging Technologies
Basic programming and
01 Computer programming
Emerging Technologies
Fundamental of Programming in C++
Computer organization and architecture
Operating System
Computer Architecture and
02 Microprocessor and Assembly Language
Operating Systems
Programming
Real time and embedded system
Data Communication &Computer Networking
Computer Networking and
03 Wireless Communication and Mobile Computing
Security
Computer Security
15
Network and System Administration
Introduction to Distributed Systems
Fundamentals of Database Systems
Database Systems 04
Advanced Database Systems
Object Oriented Programming
Advanced Programming 05 Java Programming
Event-Driven Programming
System Development 06 Software Engineering
Computer Graphics
Human Computer Interaction
Computer Graphics and HCI 07
Multimedia
Simulation and Modeling
Web and Application Web programming
08
Development Mobile Application Development
Design and Analysis of Algorithms
Algorithms 09
Data Structures and Algorithms
Compiler Development and Automata and Complexity Theory
10
Complexity Compiler Design
Introduction to Artificial Intelligence
Introduction to Data Mining and Data
Warehousing
Intelligent Systems 11
Introduction to Machine Learning
Introduction to Natural Language Processing
Computer Vision and Image Processing
Industrial Practice
Projects and Research 12 Research Methods in Computer Science
Final Year Project I
Final Year Project II
Selected topics 13 Selected topics in Computer Science
III. The last digit indicates the semester in which the course is offered. If it is odd, the course is
offered during the first semester, and if it is even, the course is offered during the second
semester.
For example: CoSc 3023 (Operating Systems), is the course which will be given in the third
year first semester and the course is categorized under category 02.
Note: The course Introduction to Emerging Technologies is treated differently as its course code
is assigned by MOSHE.
16
12. Course list with credit hours
Table 4: List of compulsory courses
No Course Name (Course Title) Course Code ECTS Cr. Hr.
1. Introduction to emerging technologies EmTe 1012 5 3
2. Computer programming CoSc1012 5 3
3. Fundamental of Programming in C++ CoSc2015 5 3
4. Computer organization and Architecture CoSc2022 5 3
5. Microprocessor and Assembly Language Programming CoSc3025 5 3
6. Operating Systems CoSc3023 5 3
7. Real time and embedded system CoSc3026 5 3
8. Data Communication and Computer Networks CoSc2032 5 3
9. Network and System Administration CoSc4036 5 3
10. Wireless Communication and Mobile Computing CoSc3034 5 3
11. Computer Security CoSc4035 5 3
12. Introduction to Distributed Systems CoSc4038 5 3
13. Fundamentals of Database Systems CoSc2041 5 3
14. Advanced Database Systems CoSc2042 5 3
15. Object Oriented Programming CoSc2051 5 3
16. Java Programming CoSc3053 5 3
17. Software Engineering CoSc3061 5 3
18. Computer Graphics CoSc3072 5 3
19. Computer Vision and Image Processing CoSc4113 5 3
20. Web programming CoSc3081 7 4
21. Data Structures and Algorithms CoSc2092 5 3
22. Design and Analysis of Algorithms CoSc3094 5 3
23. Automata and Complexity Theory CoSc3101 5 3
24. Compiler Design CoSc4103 5 3
25. Introduction to Artificial Intelligence CoSc3112 5 3
26. Industrial Practice CoSc3122 3 2
27. Research Methods in Computer Science CoSc4123 3 2
28. Final Year Project I CoSc4125 5 3
29. Final Year Project II CoSc4126 5 3
30. Selected Topics in Computer Science CoSc4132 5 3
Total 148 89
17
Table 5: List of elective courses
No Course Title (Course Name) Course Code Cr. hrs ECTS
1. Event-Driven Programming CoSc4055 3 5
2. Human Computer Interaction CoSc4075 3 5
3. Multimedia CoSc4077 3 5
4. Simulation and Modeling CoSc4079 3 5
5. Mobile Application Development CoSc4083 3 5
6. Introduction to Data Mining and Data Warehousing CoSc4112 3 5
7. Introduction to Machine Learning CoSc4114 3 5
8. Introduction to Natural Language Processing CoSc4116 3 5
Total 6 10
18
Table 8: Summary of the total credit hours and ECTS for each course category
No Course Category Cr. Hrs ECTS
1 Compulsory 89 148
2 Elective 6 10
3 Supportive 21 35
4 Common 32 54
Total 148 247
2. Year 1 Semester 2
No. Course Cr. Lec. Lab. Tut.
Course Title ECTS
Code Hrs. Hrs Hrs. Hrs.
1. FLEn1012 Communicative English Language Skills II 5 3 3 0 0
2. Anth1012 Social Anthropology 3 2 2 0 0
3. Math1041 Applied Mathematics I 5 3 3 0 2
4 GLTr 1012 Global trends 4 2 2 0 0
5 EmTe1012 Introduction to Emerging Technologies 5 3 3 0 2
6 MCiE1012 Moral and Civic Education 3 2 2 0 0
7 CoSc1012 Computer programming 5 3 2 3 1
Sub Total 30 18 17 3 1
19
3. Year 2 Semester 1
4. Year 2 Semester 2
20
5. Year 3 Semester 1
Sub Total 32 19 15 12 10
6. Year 3 Semester 2
21
7. Year 4 Semester 1
8. Year 4 Semester 2
22
13. Course Syllabi
13.1. Compulsory Computer Science Courses
Course Description
This course teaches problem solving using computers, algorithms, program structure, constants,
types, variables, reserved words, syntax diagram, identifiers, numbers, character strings and
constant declarations; basic data types, statements (assignment, I/O, control)
Course objectives
On completion of the course successfully, students will be able to:
➢ Apply programming skills to solve problems
➢ Understand basic concepts in computer science such as Boolean logic and problem
decomposition
➢ Learn control structures (such as ‘if’ and ‘for’ statements)
➢ Understand programming concepts that will assist in learning other languages (like Java,
Perl, or C#)
➢ Learn about computing resources on campus and online
➢ Analyze simple problems and formulate solutions
➢ Develop computer programs for quality program solving
➢ Practice good programming disciplines and styles
23
Course outline
Chapter 1: Introduction
1.1. Introduction to programming
1.2. Problem solving techniques
1.2.1. Flowchart
1.2.2. Pseudo code
1.2.3. Algorithms
Chapter 2: Basics of programming
2.1. Structure of a Program
2.2. C++ IDE
2.3. Showing Sample program
2.4. Keywords, Identifiers, Inputs, Outputs, Comments, Parts of a program
2.5. Data Types
2.6. Variables
2.7. Constants
2.8. Operators
2.8.1. Assignment Operators
2.8.2. Compound Assignment Operators
2.8.3. Arithmetic Operators
2.8.4. Relational Operators
2.8.5. Increment and Decrement Operators
2.8.6. Infix and postfix types
2.8.7. Precedence of Operators
Chapter 3: Control Statements
3.1. If…. else statement
3.2. If… elseif… else statement
3.3. Switch statement
3.4. For loop statement
3.5. While loop statement
3.6. Do…while statement
3.7. Jumping Statement
24
Chapter 4: Introduction on Function and Array
4.1 Definition of function
4.2 Declaration of function
4.3 Definition of Array
4.4 Declaration of Array
Teaching-learning methods
Two contact hours of lectures, three contact hours of lab and 1 contact hour of tutorials per
week.
Assessment methods
➢ Assignments/quizzes 10%
➢ Lab exams/Project 20%
➢ Mid semester examination 20%
➢ Final examination 50%
References:
1. Ravichandran; “Problem Solving with C++”, Tata Mc. Grew Hill Company
2. Thinking in C++, Volume 2: Practical Programming, Bruce Eckel, President, MindView,
Inc., Chuck Allison, Utah Valley State College
3. E.Balagurusamy, “Programming with C++”, Tata Mc. Grew Hill Company
Laboratory Course Outline
Week 1
➢ Lab Environment setup
➢ Building blocks of a code
➢ First code “Hello, World”
Week 2
➢ Data types and variables
➢ Using variables and constants
➢ Statements
Week 3-6
➢ Operators
➢ Basic arithmetic operators
➢ Arithmetic and logical operations
25
Week 7-9
➢ If
➢ If…else
➢ If...elseif...else
➢ Nested if ...else statements
➢ Switch statement
Week 10-12
➢ For loop statement
➢ While loop statement
➢ Do…while statement
➢ Nested loops
Week 13
➢ Definition of function
➢ Declaration of function
➢ One-dimensional array
26
DEBRE BERHAN UNIVERSITY Computing College
Institute of Technology Department of Computer Science
Department: Computer Science
Course Title: Fundamental of Programming in C++ Course Code: CoSc2015
Course Load: ECTS Credit Lecture hrs. Laboratory hrs. Tutorial hrs.
5 3 2 3 1
Course Prerequisite: Computer Programming (CoSc1012)
Course Category: Compulsory
Instructor’s Contact Information: Course Delivery Information:
Name: _____________________ Academic Year: ____________
Office: _____________________ Year/Semester: II/I
Phone: _____________________ Meeting date: ____________
Email: _____________________ Meeting time: ____________
Office Hours: ________________ Meeting location: __________
1. Course Description
The course is designed to familiarize on C++ programming by providing programming concepts
on creating and working computer programs in C++. It helps us to solve business problems
through the technique of structural programming. The course is also dealing with modular
programming and abstract data types; which covers primitive data types, pointers, string
processing, Functions and parameter passing, including recursion; file input output, use data
structure elements in the programs.
2. Objective
At the end of this course the students will able to:
➢ To use Arrays, string and pointer, Functions and File concepts in solving problems.
➢ To solve business problems using c++ programming.
➢ Apply the techniques of structured decomposition to break a program into smaller pieces.
➢ To write programs that use array and String data structures.
➢ To Explain the concept of recursion and to use pointer in c++ program
➢ To use file concepts in programming.
27
3. Course content
TOPIC
29
Week 2
➢ Passing value of a function by Value
➢ Passing value of a function by reference
Week 3
➢ One-dimensional array
Week 4
➢ Multi-dimensional array
Week 5
➢ String
Week 6
➢ Pointer
Week 7
➢ Pointer and array
Week 8
➢ Pointer and function
Week 9
➢ Pointer and string
Week 10-12
➢ Specifying simple structure
➢ Defining a structure variable
➢ Accessing structure variable
Week 13
➢ File and file management
30
DEBRE BERHAN UNIVERSITY Computing College
Institute of Technology Department of Computer Science
Department: Computer Science
Course Title: Fundamentals of Database Systems Course Code: CoSc2041
Course Load: ECTS Credit Lecture hrs. Laboratory hrs. Tutorial hrs.
5 3 2 3 2
Course Prerequisite: None
Course Category: Compulsory
Instructor’s Contact Information: Course Delivery Information:
Name: _____________________ Academic Year: ____________
Office: _____________________ Year/Semester: II/I
Phone: _____________________ Meeting date: ____________
Email: _____________________ Meeting time: ____________
Office Hours: ________________ Meeting location: __________
Course description
This course is assumed to be the first course in database management systems. It starts by
introducing what database is and database systems, and how it differs with the traditional file
processing system. It then deals with data models, ER diagrams, database design methods,
normalization, relational algebra and calculus, file organizations and storage management, index
structure for files, and SQL statements. The course mainly emphasizes on basics of database
systems how to retrieve and modify data. It also deals with different database environments.
Course objectives
This course introduces the students to the overview, design and implementation of database
systems.
At the end of this course, students will be able to:
➢ Understand what database is, database system and DBMS
➢ Differentiate database system from file system
➢ Identify the pros and cons of manual approach, file based approach and database
approach
➢ Understand the basic principles of database design systems using different database
models
➢ Appreciate the use of database system in the real world.
31
➢ Design different types of databases
➢ Understand database normalization & functional dependency
➢ Understand the principles of relational database management systems and their
languages
➢ Understand file organizations and storage management, and index structure for files
➢ Demonstrate queries in the relational algebra.
➢ Demonstrate queries in the tuple relational calculus.
➢ Create a relational database schema in SQL that incorporates key, entity integrity, and
referential integrity constraints.
Course outline
Chapter 1: Introduction to Database Systems (2 hours)
1.1. Overview
1.2. Basics of Database
1.3. File organization verses Database approach
1.4. Users and actors of Database system
1.5. Characteristics of the Database Approach
1.6. Actors on the Scene
Chapter 2: Database System Architecture (2 hours)
2.1. Data models, Schemas, and Instances
2.2. Over view of data models
2.3. Architecture and Data Independence
2.4. Database Language and Interface
2.5. The Database System Environment
2.6. Classification of DBMS
Chapter 3: Database Modeling (6 hours)
3.1. The Entity Relationship (ER) Model
3.1.1. The high-level conceptual model
3.1.2. Entities, Attributes, and Keys
3.1.3. Relationships, Associations, and Constraints
3.1.4. The ER Diagrams
3.1.5. Mapping ER-models to relational tables
3.2. Enhanced Entity Relationship (EER) Model
32
3.2.1. Inheritance
3.2.2. Union
3.2.3. Aggregation and Association
3.2.4. Mapping EER model to relational model
3.3. The Relational Database Model
3.3.1. The Relational Model Concepts
3.3.2. The Relational Constraints and Relational Database Schemas
3.3.3. The Relational Operations
Chapter 4: Functional Dependency and Normalization (4 hours)
4.1. Functional Dependency
4.2. Normal Forms
4.2.1. First Normal Form
4.2.2. Second Normal Form
4.2.3. Third Normal Form
4.2.4. Boyce Codd Normal Form
Chapter 5: Record Storage and Primary File Organization (6 hours)
5.1. Introduction
5.2. Operations on Files
5.3. Files of Unordered Records (Heap Files)
5.4. Files of Ordered Records (Sorted Files)
5.5. Hashing Techniques
5.6. Index Structure for Files
5.7. Types of Single Level Ordered Index
5.8. Dynamic Multilevel indexes using B-Trees and B+ Trees
5.9. Indexes on Multiple Indexes
Chapter 6: The Relational Algebra and Relational Calculus (5 hours)
6.1. Introduction
6.2. Relational Algebra
6.3. The Relational Calculus
Chapter 7: The SQL Language (7 hours)
7.1. Structured Query Language
7.2. Datatypes
33
7.3. DDL, DML, TCL and DCL
7.4. Basic Queries in SQL
7.5. Nested Queries in SQL
7.6. Views
7.7. Comments
7.8. Constraints
Evaluation Schemes
(This may vary on the number of students per class, but general evaluation scheme is as
below)
➢ Quiz 10%
➢ Mid Exam 30%
➢ Lab Evaluation and Project Work 20%
➢ Final Exam 40%
Text books and References:
Textbook:
1. Raghu Ramakrishnan, Johannes Gehrke. Database Management Systems, McGraw-Hill; 3rd
edition, 2002
2. Elmasri, R., & Navathe, S. (2017). Fundamentals of database systems (7th Edition). Pearson.
References
1. Osama Mustafa, Robert P. Lockard. (2019). Oracle Database Application Security, Apress,
Berkeley, CA.
2. C. J. Date. (2019). Database Design and Relational Theory. 2nd Edition. Apress, Berkeley,
CA.
3. Anthony Hack. (2019). SQL Computer Programming for Beginners. Independently
published
34
Laboratory Course Outline
Week1: Database modeling
Week 2: Introduction and Software Installation
1.1. (Microsoft SQL Server or Oracle DB)
1.2. Data Definition Language
1.3. Data definition and data types in SQL
Week 3: Data Manipulation Language
1.4. Specifying Constraints in SQL
1.5. Querying from tables (insert, select, delete, update)
Week 4: More Complex SQL Retrieval Queries 1
1.6. Sorting (ascending, descending) using ORDER BY, DESC and ASC
1.7. group by, order by, having, wildcards, and regular expressions
2. Week 5: More Complex SQL Retrieval Queries 2
2.1. Aggregate Functions in SQL
2.2. Null value & Keywords in SQL
2.3. Auto Increment, alter, drop, rename in SQL
3. Week 6: More Complex SQL Retrieval Queries 3
3.1. Joins
4. Week 7: More Complex SQL Retrieval Queries 4
4.1. Unions, intersections, differences
5. Week 8: Views
6. Week 9: SQL Functions 1
6.1. String Functions
7. Week 10: SQL Functions 2
7.1. Numeric/Math Functions
8. Week 11: SQL Functions 3
8.1. Date/Time Functions
9. Week 12: SQL Functions 4
9.1. Conversion Functions
10. Week 13: SQL Functions 5
10.1. Advanced Functions in SQL
11. Week 14: Complex SQL Queries
12. Week 15: File Organization and Indexes
35
DEBRE BERHAN UNIVERSITY Computing College
Institute of Technology Department of Computer Science
Department: Computer Science
Course Title: Advanced Database Systems Course Code: CoSc2042
Course Load: ECTS Credit Lecture hrs. Laboratory hrs. Tutorial hrs.
5 3 2 3 2
Course Prerequisite: Fundamentals of Database Systems (CoSc2041)
Course Category: Compulsory
Instructor’s Contact Information: Course Delivery Information:
Name: _____________________ Academic Year: ____________
Office: _____________________ Year/Semester: II/II
Phone: _____________________ Meeting date: ____________
Email: _____________________ Meeting time: ____________
Office Hours: ________________ Meeting location: __________
Course description
This course deals with query optimization, transaction management, recovery and concurrency
control, database authorization and security. Additional topics including object oriented and
object relational database systems, distributed 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 objectives
At the end of this course, students will be able to:
➢ Describe the main concepts of the OO model such as object identity, type constructors,
encapsulation inheritance, polymorphism, and versioning
➢ Evaluate a set of query processing strategies and select the optimal strategy. Know the
basics of transaction management and concurrency control
➢ Understand database security
➢ Use different recovery methods when there is a database failure
➢ Design a distributed database system in homogenous and heterogeneous environments
36
Course outline
Chapter 1: Concepts for Object-Oriented Databases (2 hours)
1.1. Overview of Object-Oriented Concepts
1.2. Object Identity, Object Structure, and Type Constructors
1.3. Encapsulation of Operations, Methods, and Persistence
1.4. Type Hierarchies and Inheritance
Chapter 2: Query processing and Optimization (4 hours)
2.1. Translating SQL Queries into Relational Algebra
2.2. Basic Algorithms for Executing Query Operations
2.3. Using Heuristic in Query Optimization
2.4. Using Selectivity and Cost Estimates in Query Optimization
2.5. Semantic Query Optimization
Chapter 3: Transaction Processing Concepts (6 hours)
3.1. Introduction
3.2. Transaction and System Concepts
3.3. Properties of Transaction
3.4. Schedules and Recoverability
3.5. Serializability of Schedules
3.6. Transaction Support in SQL
Chapter 4: Concurrency Control Techniques (6 hours)
4.1. Locking Techniques for Concurrency Control
4.2. Concurrency Control Based ON Timestamp Ordering
4.3. Multi-version Concurrency Control Techniques
4.4. Validation (Optimistic) Concurrency Control Techniques
4.5. Granularity of Data Items and Multiple Granularity Locking
4.6. Using Locks for Concurrency Control in Indexes
Chapter 5: Database Recovery Techniques (5 hours)
5.1. Backup and Recovery Concepts
5.2. Recovery Concepts Based on Deferred Update
5.3. Recovery Concepts Based on Immediate Update
5.4. Shadow Paging
5.5. The ARIES Recovery Algorithm
37
5.6. Recovery in Multi database Systems
Chapter 6: Database Security and Authorization (5 hours)
6.1. Introduction to DB Security Issues
6.2. Discretionary Access Control Based on Granting /Revoking of Privileges
6.3. Mandatory Access Control for Multilevel Security
6.4. Statistical DB Security
Chapter 7: Distributed Database System (4 hours)
7.1. Distributed Database Concepts
7.2. Data Fragmentation, Replication, and Allocation Techniques for Distributed Database
Design
7.3. Types of Distributed Database Systems
7.4. Query Processing in Distributed Databases
Evaluation Schemes
(This may vary on the number of students per class, but general evaluation scheme is as below)
➢ Quiz 10%
➢ Mid Exam 30%
➢ Lab Evaluation and Project Work 20%
➢ Final Exam 40%
Text books and References:
Textbook:
1. Raghu Ramakrishnan, Johannes Gehrke. Database Management Systems, McGraw-Hill; 3rd
edition, 2002
2. Elmasri, R., & Navathe, S. Fundamentals of database systems (7th Edition). Pearson. (2017).
References
1. Osama Mustafa, Robert P. Lockard. (2019). Oracle Database Application Security, Apress,
Berkeley, CA.
2. C. J. Date. (2019). Database Design and Relational Theory. 2nd Edition. Apress,
Berkeley, CA.
3. Anthony Hack. (2019). SQL Computer Programming for Beginners. Independently
published
38
Laboratory Course Outline
Week 1: Introduction and Software Installation
1.1. (Microsoft SQL Server or Oracle DB)
Week 2: Objet-Oriented Database
2.1. Object Identity
2.2. Object Query Language (OQL)
Week 3: Query Processing and Optimization
3.1. Query Execution Plan
3.2. Query Optimization
Week 4: Transaction Management
3.3. Basic Syntax of Transactions
3.3.1. What are Transactions
3.3.2. Beginning Transaction
3.3.3. Committing or Rolling Back
3.3.4. Creating Named Transactions
Week 5: Transaction Management
3.4. Making Use of Transactions
3.4.1. Conditionally Committing or Rolling Back
3.4.2. Transactions with Error Handlers
Week 6: Transaction Management
3.4.3. Automatic Rollback
3.4.4. Nested Transactions
Week 7: Transaction Management
3.4.5. Using Save points
3.4.6. Transactions in Stored Procedures
Week 8: Concurrency Control Techniques
4.1. Locking
4.2. Timestamping
Week 9: Concurrency Control Techniques
4.3. Multi-version Concurrency Control
4.4. Locks for Indexes
Week 10: Database Recovery Techniques
39
5.1. Backup and Recovery Concepts
5.2. Backup
5.3. Recovery
Week 11: Database Security and Authorization
6.1. List the different Types of Accounts in SQL Server or Oracle DB
6.2. Explain the use of Server Roles
6.3. Demonstrate how to Grant and Deny Permissions
6.4. Describe Database Roles
6.5. Describe How to Work with Database Permissions
Week 12: Distributed Database
7.1. Distributed Database Concepts
7.2. Data Fragmentation
7.3. Replication
7.4. Allocation Techniques
7.5. Query Processing in Distributed Databases
Week 13: Triggers
8.1. Triggers
Week 14: Stored Procedures
8.2. Stored Procedures
40
DEBRE BERHAN UNIVERSITY Computing College
Institute of Technology Department of Computer Science
Department: Computer Science
Course Title: Software Engineering Course Code: CoSc3061
Course Load: ECTS Credit Lecture hrs. Laboratory hrs. Tutorial hrs.
5 3 3 0 2
Course Prerequisite: None
Course Category: Compulsory
Instructor’s Contact Information: Course Delivery Information:
Name: _____________________ Academic Year: ____________
Office: _____________________ Year/Semester: III/I
Phone: _____________________ Meeting date: ____________
Email: _____________________ Meeting time: ____________
Office Hours: ________________ Meeting location: __________
Course Description
This course provides an introduction to the problems of software development and maintenance
and the processes and methods used to address them. All phases in the software development life
cycle will be introduced. The course also deals with software project planning, cost estimation,
tracking and control, staffing, risk management, and software configuration plan.
Covers O-O concepts, tools, development life cycle, problem solving, modeling, analysis, and
design, while utilizing UML (Unified Modeling Language) for O-O modeling. UML has become
the standard notation for modeling O-O systems and is being embraced by major software
developers like Microsoft and Oracle.
Course objectives
On completion of the course successfully, students will be able to:
➢ Understand the basic principles of Software Engineering
➢ Write requirements specification documents
➢ Design a system, component, or process to meet desired needs.
➢ Verify and validate a Software system practice with effective communication skill.
➢ Describe in detail the theory, concepts and methods pertaining to the Unified Modeling
Language (UML).
➢ Create requirements using use case modeling concepts.
➢ Demonstrate conceptual and technical skills in the analysis, design and implementation
of a software system using Object Oriented Concepts.
41
➢ Employ tools and techniques for Object Oriented Software Engineering,
➢ Demonstrate an ability to adapt and solve problems in software development activities
from specification to testing individually and as part of a team.
Course outline
Chapter 1: Introduction (6 hrs)
1.1. Two Orthogonal view of software.
1.2. Software development process models
1.2.1. Software Process
1.2.2. Software life cycle and process models
1.2.3. Process assessment models
1.2.4. Software process metrics
1.3. Object oriented system development methodology.
1.3.1. Why an object oriented
1.3.2. Overview of the unified approach.
1.3.3. An object-oriented philosophy
1.3.4. Basic concepts of an object
1.3.5. Attributes of an object, its state and properties.
Chapter 2: Unified Modeling Language (UML) (8 hours)
2.1. Where Can the UML Be Used
2.2. Building Blocks of the UML.
2.3. Relationships in the UML
2.4. Diagrams in the UML.
2.4.1. Use Case Diagrams
2.4.2. Class Diagrams
2.4.3. Sequence diagrams
2.4.4. State chart diagrams
2.4.5. Activity diagrams
2.4.6. Component diagram
2.4.7. Deployment diagram
2.4.8. Diagram extensions
42
Chapter 3: Requirements Elicitation (6 hours)
3.1. An overview of requirements elicitation.
3.2. Requirement’s elicitation concepts
3.2.1. Functional requirements
3.2.2. Nonfunctional and pseudo requirements
3.2.3. Levels of description
3.2.4. Correctness, completeness, consistency, clarity, and realism
3.2.5. Verifiability and traceability
3.3. Requirement’s elicitation activities.
3.3.1. Identifying actors
3.3.2. Identifying scenarios
3.3.3. Identifying use cases
3.3.4. Refining use cases
3.3.5. Identifying relationships among actors and use cases
3.3.6. Identifying initial analysis objects
3.3.7. Identifying nonfunctional requirements
3.4. Managing requirements elicitation
3.4.1. Eliciting information from users:
3.4.2. Validating requirements: Usability testing
3.4.3. Documenting requirements elicitation
Chapter 4: Software Project management (6 hours)
4.1. Responsibility of Software Project Managers
4.2. Project Planning
4.3. The organization of SPMP document
4.4. Project Size Estimation Metrics
4.5. Project Estimation Techniques
4.6. Scheduling, Organization and Team Structures
4.7. Staffing
4.8. Risk Management
4.9. Quality Assurance
4.10. Project Monitoring Plans
43
Chapter 5: Analysis (8 hours)
5.1. Analysis Concepts
5.1.1. Entity, Boundary, and Control Objects
5.1.2. Association Multiplicity Revisited
5.1.3. Qualified Associations
5.1.4. Generalization
5.2. Analysis Activities: From Use Cases to Objects
5.2.1. Identifying Entity Objects
5.2.2. Identifying Boundary Objects
5.2.3. Identifying Control Objects
5.2.4. Modeling Interactions between Objects: Sequence Diagrams
5.2.5. Identifying Associations.
5.2.6. Identifying Attributes
5.2.7. Reviewing the Analysis Model
Chapter 6: Object Oriented System Design (8 hours)
6.1. An overview of system design.
6.1.1. System design concepts.
6.1.2. System design activities: From objects to subsystems
6.1.3. Documenting system design
6.1.4. An overview of object design
6.1.5. Object design concepts
6.1.6. Object design activities
6.1.7. Managing object design
6.1.8. Documenting object design
Chapter 7: Software Quality Assurance (6 hours)
7.1. An overview of testing
7.2. Testing concepts
7.3. Testing activities
7.4. Managing testing
7.5. Impact of object-oriented testing
7.6. Types of Testing
44
Text Book
1. Brahmin, Ali (1999), Object oriented System development, McGraw Hill, USA.
References
1. Martina Seidl, Marion Scholz, Christian Huemer, Gerti Kappel. UML @ Classroom: An
Introduction to Object-Oriented Modeling. 2012. Springer International Publishing AG.
2. Scott, Kendall (2004) Fast Track UML 2.0 Apress USA
3. Booch, Grady Rumbaugh, James Jacobson, Ivar (2005) The Unified Modeling Language
User Guide second edition Addison Wesley Professional USA
Evaluation Schemes
(This may vary on the number of students per class, but general evaluation scheme is as below)
➢ Quizzes, assignments and tests 10%
➢ Mid Exam 20
➢ Projects 20%
➢ Final Exam 50%
45
DEBRE BERHAN UNIVERSITY Computing College
Institute of Technology Department of Computer Science
Department: Computer Science
Course Title: Object Oriented Programming Course Code: CoSc2051
Course Load: ECTS Credit Lecture hrs. Laboratory hrs. Tutorial hrs.
5 3 2 3 2
Course Prerequisite: Computer Programming (CoSc1012)
Course Category: Compulsory
Instructor’s Contact Information: Course Delivery Information:
Name: _____________________ Academic Year: ____________
Office: _____________________ Year/Semester: II/II
Phone: _____________________ Meeting date: ____________
Email: _____________________ Meeting time: ____________
Office Hours: ________________ Meeting location: __________
Course description
This programming course emphasizes the methodology of programming from an object-oriented
perspective and software engineering principles. It allows students to develop the ability to
analyze programming problems and design and document suitable solutions and to implement
reliable and robust software using contemporary program design methods. Topics to be dealt
with are: classes: data abstraction, information hiding, overloading; inheritance; polymorphism;
exceptions handling.
Course objectives
Upon successful completion of the course, students will be able to:
➢ Explain the basic object oriented concepts
➢ Successfully code, debug and run programs with appropriate development environment
➢ Work on more advanced programs
➢ Have clear differentiation between structural and object oriented programming
paradigms
Course outline
Chapter 1: Introduction to Object-Oriented Programming (4 hrs)
1.1. Types of programming paradigms
1.2. Overview of OO principles
1.3. Editing, Compiling and Interpreting
46
Chapter 2: Objects and Classes (6 hrs)
2.1. Defining a class
2.2. Creating an Object
2.3. Instantiating and using objects
2.3.1. Printing to the Console
2.3.2. Methods and Messages
2.3.3. Parameter Passing
2.3.4. Comparing and Identifying Objects
2.3.5. Destroying Objects
2.3.6. Enumerated Types
2.4. Instance fields
2.5. Constructors and Methods
2.6. Access Modifiers
2.7. Encapsulation
Chapter 3: Inheritance and Polymorphism (8 hrs)
3.1. Inheritance
3.2. Casting
3.3. Method Overriding and Overloading
3.4. Polymorphism
3.5. Super
3.6. The Object Class
3.7. Abstract Classes
3.8. Interfaces
3.9. Using Interfaces
Chapter 4: Exception Handling (4 hrs)
4.1. Exceptions Overview
4.2. Catching Exceptions
4.3. The finally Block
4.4. Exception Methods
4.5. Declaring Exceptions
4.6. Defining and Throwing Exceptions
4.7. Errors and Runtime Exceptions
47
Chapter 5: Packages (4 hrs)
5.1. Packages
5.2. The import Statement
5.3. Static Imports
5.4. CLASSPATH and Import
5.5. Defining Packages
5.6. Package Scope
Chapter 6: Data structures (6 hrs)
6.1. The Set
6.2. Set Implementation Classes
6.3. The List
6.4. List Implementation Classes
6.5. The Queue
6.6. Queue Implementation Classes
6.7. Map/ dictionary
Teaching- learning methods
Two contact hours of lectures, three hours of lab and two hours of tutorials per week.
Assessment methods
➢Quiz/ Assignment 10%
➢Lab Exam/Project 20%
➢Mid Exam 20%
➢Final Exam 50%
Text book
1. H.M. Deitel, P.J. Deitel, Java How to Program. 8th ed. Prentice Hall
2. Eckel, Bruce. Thinking in Java. 4th Ed. New Jersey: Prentice Hall
Laboratory Outline
Week 1: Introduction to Object-Oriented Programming
▪ Software Installation and Environment Setup
Week 2-4: Basics of Programming
▪ Variable types and identifiers
▪ Number types, strings, constants
▪ Operators and operator precedence
48
▪ Type Conversion/ Casting Chapter
▪ Decision Statements
o If statement
o Switch statement
▪ Looping Statements
▪ For loop
▪ While, Do while loop
Week 5: Objects and Classes
▪ Defining a class
▪ Creating an Object
▪ Instantiating and using objects
Week 6: Objects and Classes
▪ Instance fields
▪ Constructors and Methods
Week 7: Objects and Classes
▪ Access Modifiers
▪ Encapsulation
Week 8: Inheritance
▪ Inheritance
▪ Casting
▪ Method Overriding and Overloading
Week 9: Polymorphism and Abstract
▪ Polymorphism
▪ Super
▪ The Object Class
▪ Abstract Classes
Week 10: Interfaces
▪ Interfaces
▪ Using Interfaces
Week 11: Exception Handling
▪ Exceptions Overview
▪ Catching Exceptions
49
▪ The finally Block
▪ Exception Methods
▪ Declaring Exceptions
▪ Defining and Throwing Exceptions
▪ Errors and Runtime Exceptions
Week 12: Packages
▪ Packages
▪ The import Statement
▪ Static Imports
▪ CLASSPATH and Import
▪ Defining Packages
▪ Package Scope
Week 13: Data structures
▪ Set
▪ List
▪ Stack & Queue
▪ Map/Dictionary
50
DEBRE BERHAN UNIVERSITY Computing College
Institute of Technology Department of Computer Science
Department: Computer Science
Course Title: Data Communication and Computer Course Code: CoSc2032
Networks
Course Load: ECTS Credit Lecture hrs. Laboratory hrs. Tutorial hrs.
5 3 2 3 2
Course Prerequisite: None
Course Category: Compulsory
Instructor’s Contact Information: Course Delivery Information:
Name: _____________________ Academic Year: ____________
Office: _____________________ Year/Semester: II/II
Phone: _____________________ Meeting date: ____________
Email: _____________________ Meeting time: ____________
Office Hours: ________________ Meeting location: __________
Course description
This course will explore the various types of data communication systems, networks and their
applications. Concepts & terminologies like computer networks, layered architecture (OSI &
TCP/IP), network hardware, network software, standardization, network medium, and IP
addressing will be explored. The practical aspect will deal with building small to medium level
networks including Cabling, Configuring TCP/IP, Peer to Peer Networking, Sharing resources,
Client Server Networking.
Course objectives
➢ By the end of this course, students will be able to:
➢ Understand the concepts and principles of data communications and computer networks
➢ Understand data transmission and transmission media
➢ Understand Protocols and various networking components
➢ Understand TCP/IP & OSI Reference Model
➢ Understand LAN and WAN technologies
➢ Understand and implement IP addressing.
➢ Build small to medium level Computer networks
➢ Understand subnets
51
Course outline
Chapter 1: Data Communication and Computer Networking Basics (5 hours)
1.1 Data Communication
1.1.1 Definition of Data Communication
1.1.2 Communication Basics
1.1.3 Data Representation techniques
1.1.4 Digital Data Transmission formats
1.1.5 Transmission Impairments
1.1.6 Modes of Data transmission
1.1.7 Elements of Data Communication
1.1.8 Protocols and standards
1.1.9 Circuit switching and Packet switching,
1.2 Computer Network
1.2.1 Network Definition
1.2.2 Network Applications
1.2.3 Network Types
1.2.3.1 Geographical Area
1.2.3.1.1 PAN
1.2.3.1.2 LAN
1.2.3.1.3 MAN
1.2.3.1.4 WAN
1.2.3.2 Architecture
1.2.3.2.1 Peer-to-Peer
1.2.3.2.2 Client/server
1.2.4 Network Components
1.2.4.1 Hardware Components
1.2.4.2 Software Components
1.2.5 Network Topology
1.2.5.1 Physical
1.2.5.2 Logical
1.2.6 Network Models
1.2.6.1 OSI Reference Model
52
1.2.6.2 TCP/IP Protocol Suite
1.3 Transmission Media
1.3.1 Guided
1.3.1.1 Twisted Pair Cable
1.3.1.2 Coaxial Cable
1.3.1.3 Fiber Optics/Optical Fiber Cable
1.3.2 Unguided
1.3.2.1 Wireless LAN
1.3.2.2 Radio Communication
1.3.2.3 Microwave Communication
1.3.2.4 Infrared Communication
1.3.2.5 Wi-Fi
1.3.2.6 Bluetooth Technology
1.3.2.7 Satellite communication
Chapter 2: Application, Session and Presentation Layers (5 hours)
2.1. Application Layer Introduction
2.2. Client-Server Model
2.3. Application Protocols
2.4. Network Services
2.5. Session Layer
2.6. Presentation Layer
Chapter 3: Transport Layer (6 hours)
3.1. Segmentation
3.2. Addressing
3.3. Multiplexing and DE-multiplexing
3.4. Connectionless/Connection-Oriented
3.5. Unreliable/ Reliable
3.6. Protocols in Transport Layer
3.6.1. UDP
3.6.2. TCP
3.6.2.1. Flow control
3.6.2.2. Error Control
53
3.6.2.3. Congestion control
3.6.2.4. TCP Variants
Chapter 4: Network Layer Addressing and Routing (8 hours)
4.1. NIC addressing
4.2. Packetizing
4.3. IP addressing
4.3.1. IPv4
4.4. Sub-netting,
4.4.1. Classfull Addressing
4.4.2. Classless Inter Domain Routing(CIDR)
4.4.3. Private and Public IP addresses
4.4.4. NAT
4.4.5. PAT
4.5. Address Mapping
4.5.1. Logical to Physical Address Mapping –ARP
4.5.2. Physical to Logical Address Mapping –RARP
4.6. ICMP:
4.6.1. Types of Messages
4.6.2. Message Format
4.1.1. Error Reporting and Query
4.1.2. ICMPv6
4.7. IGMP:
4.7.1. Group Management
4.7.2. IGMP Messages
4.7.3. Message Format
4.7.4. IGMP Operation
4.7.5. Encapsulation
4.7.6. Netstat
4.8. Routing and forwarding
4.1.3. Routing algorithms
4.1.4. Routing in the Internet
4.1.5. Unicasting, Multicasting and Broadcasting
54
4.9. IPv6
4.9.1. structure
4.9.2. Address space
Chapter 5: Link Layer and Physical Layer (8 hours)
5.1. Link layer services
5.1.1. Faming
5.1.2. Multiple Access Protocols
5.1.2.1. CSMA/CD and CSMA/CA
5.1.3. Link layer addressing
5.1.3.1. MAC address
5.1.4. Data Link Sub Layers
5.1.4.1. Logical Link Control(LLC) and Data Link Control
5.1.5. Data Link and its responsibilities
5.1.5.1. Data Link Control,
5.1.5.2. Error detection and correction
5.1.5.3. Data Link Layer Protocols
5.2. Physical Layer Services
5.2.1. Bits
5.2.2. Ethernet,
5.2.3. Point-to-Point Protocol
5.2.4. LAN Devices: Repeaters, Hubs, Bridges and switches
5.2.5. WAN Devices Routers, Layer 3 Switches and Gateways
5.2.6. Signaling and encoding
5.2.6.1. Signal Encoding Techniques
5.2.7. Physical Layer and its responsibilities
Teaching-learning methods
Two contact hours of lectures, three contact hours of lab and two hours of tutorials per week.
Assessment methods
➢ Assignments/quizzes 15%
➢ Lab Assessments 15%
➢ Mid semester examination 20%
➢ Final examination 50%
55
Textbooks:
1. Data Communications and Networking, 5th Edition, Behrouz A. Forouzan
Reference books:
1. Andrew S. Tanenbaum, David J. Wetherall, Computer Networks (5th Edition),
Pearson; 2010.
2. William Stallings, Data and Computer Communications, 10th Edition, Pearson, 2014
Laboratory Outline
Week 1: Designing cables
1.1. Crossover cable
1.2. Straight-through cable
1.3. Rollover cable
Week 2: Creating Peer to Peer network
2.1. Building a Switched based network
2.2. Sharing Files and Printers between Windows OSs
2.3. Sharing Files between Windows OSs
Week 3: Study of IPv4 Address
3.1. Classification of IP Addresses
3.2. Subnetting
3.3. Supernetting
3.4. NIC addressing
Week 4: Study of Basic Network Configuration commands
4.1. ping
4.2. tracert/traceroute
4.3. ifconfig/ipconfig
4.4. netstat
4.5. telnet
4.6. ssh
4.7. ftp
4.8. nslookup
4.9. pathping
Week 5: Configuring a Switch
Week 6: Configuring a VLAN
56
Week 7: Configuring a Router
Week 8: Configuring NAT
Week 9: Configuring Routing Information Protocol (RIPv2)
Week 10: Configuring Interior Gateway Protocol (IGRP)
Week 11: Configuring Open Shortest Path First (OSPF)
Week 12: Configuring Enhanced Interior Gateway Routing Protocol (EIGRP)
Week 13: Configuring Border Gateway Protocol (BGP)
Week 14: Configuring Intermediate System-to-Intermediate System (IS-IS)
57
DEBRE BERHAN UNIVERSITY Computing College
Institute of Technology Department of Computer Science
Department: Computer Science
Course Title: Operating System Course Code: CoSc3023
Course Load: ECTS Credit Lecture hrs. Laboratory hrs. Tutorial hrs.
5 3 2 3 2
Course Prerequisite: Computer Organization and Architecture (CoSc2022)
Course Category: Compulsory
Instructor’s Contact Information: Course Delivery Information:
Name: _____________________ Academic Year: ____________
Office: _____________________ Year/Semester: III/I
Phone: _____________________ Meeting date: ____________
Email: _____________________ Meeting time: ____________
Office Hours: ________________ Meeting location: __________
Course Description
What is an Operating System, history of operating system, operating system zoo; process
concept, process scheduling, inter-process communication; threads; CPU scheduling, basic
concepts, scheduling criteria, scheduling algorithms; process synchronization, the critical section
problem, semaphores, monitors, classical synchronization problems; deadlocks, avoidance,
prevention, detection; memory management, physical and virtual memory, swapping, allocation,
paging, segmentation; file systems, access methods, directory structure, file sharing and
protection; security, authentication, intrusion detection, encryption.
Course Objectives
By the end of this course, students will be able to:
➢ Explain the objectives and functions of modern operating systems
➢ Describe the functions of a contemporary operating system with respect to convenience,
➢ efficiency, and the ability to evolve.
➢ Explain the different states that a task may pass through and the data structures needed to
support
➢ the management of many tasks.
➢ Explain conditions that lead to deadlock.
➢ Compare and contrast the common algorithms used for both preemptive and non-preemptive
58
➢ scheduling of tasks in operating systems, such as priority, performance comparison, and
fair-
➢ share schemes.
➢ Explain the concept of virtual memory and how it is realized in hardware and software
Course outline
Chapter 1: Introduction (4hr)
1.1. Role and purpose of operating systems
1.2. History of operating system development
1.3. Types of operating systems
Chapter 2: Processes and process management (7hr)
2.1. Process and Thread
2.2. The concept of multi-threading
2.3. Inter process communication
2.3.1. Race conditioning
2.3.2. Critical Sections and mutual exclusion
2.4. Process Scheduling
2.4.1. Preemptive and Computer organization and Architecture
non preemptive scheduling
2.4.2. Scheduling policies
2.5. Dead lock
2.5.1. Deadlock prevention
2.5.2. Deadlock detection
2.5.3. Deadlock avoidance
Chapter 3: Memory Management (7hr)
3.1. Over view of physical memory and memory management
3.1.1. Hardware overlays
3.1.2. Swapping
3.1.3. Partitioning
3.2. Paging and Segmentation
3.2.1. Page replacement and replacement policies
3.3. Working sets and thrashing
3.4. Caching
59
Chapter 4: Device Management (4hr)
4.1. Characteristics of parallel and serial devices
4.2. Buffering strategies
4.3. Direct memory access
4.4. recovery from failure
Chapter 5: File Systems (6hr)
5.1. Fundamental concepts on file
5.1.1. Data and meta data
5.1.2. Operations, organization and buffering in file
5.1.3. Sequential Vs Consequential data
5.1.4. Content and structure of directories
5.2. File system techniques
5.2.1. Partitioning
5.2.2. Mounting and unmounting
5.2.3. Virtual file system
5.2.4. Memory-mapped files
5.3. Special purpose file systems
5.3.1. Naming, searching and backup strategies
Chapter 6: Security and protection (4hr)
6.1. Overview of system security
6.1.1. Policies and mechanism of system security
6.2. System protection, authentication
6.2.1. Models of protection
6.2.2. Memory protection
6.2.3. Encryption
6.2.3. Recovery management
Teaching - Learning methods
Assessment method
Test #1 10%
Test # 2 10%
Final examination 35%
Assignments (two) 20%
60
Quizzes, reading assessment and tutorial contributions 15%
Lab Examination 10%
Total 100%
Teaching materials
Required Texts:
➢ Andrew Tanenbaum, Modern Operating Systems, 2nd Edition, USA,Prentice-Hall, 2001
Reference books:
➢ William Stallings, operating Systems: Internals and Design Principles, 5th Edition, Prentice-
Hall, 2005
➢ Abraham Silberschatz, P.B. Galvin and G. Gagne, Operating Systems Concepts, 6 th
Edition, John Wiley &Sons ,2006
Operating Laboratory Outline
Week1 Basics of UNIX commands
Week2 C Program to simulate UNIX commands
Week3 Shell Programming
Week4 C programs to implement Different Scheduling algorithm
Week5 Implementation of Semaphore
Week6 Implementation of Shared memory and IPC
Week7 Banker Algorithm for Deadlock Avoidance
Week8 Implementation of deadlock avoidance algorithms
Week9 Implementation of Memory allocation methods for Fixed partition
First Fit
Worst Fit
Best Fit
Week10 Implementation of Page replacement algorithms
FIFO
LRU
LFU
Week11 Implementation of File Allocation strategies
Sequential
Indexed
Linked
61
DEBRE BERHAN UNIVERSITY Computing College
Institute of Technology Department of Computer Science
Department: Computer Science
Course Title: Java Programming Course Code: CoSc3053
Course Load: ECTS Credit Lecture hrs. Laboratory hrs. Tutorial hrs.
5 3 2 3 2
Course Prerequisite: Object Oriented Programming (CoSc 2051)
Course Category: Compulsory
Instructor’s Contact Information: Course Delivery Information:
Name: _____________________ Academic Year: ____________
Office: _____________________ Year/Semester: III/I
Phone: _____________________ Meeting date: ____________
Email: _____________________ Meeting time: ____________
Office Hours: ________________ Meeting location: __________
Course Description
This course covers topics on Java which includes: AWT and Swing, I/O Streams, Multi-
threading, Network Programming, Java database connectivity (JDBC), RMI, and
Introduction to Servlets.
Course Objectives
At the end of this course, students should be able to:
➢ Carry out design and development of complex elements, such as user interfaces,
multiprocessing, and fault-tolerant components;
➢ Write TCP/IP Client Server applications using Sockets;
➢ Write Java applications using the JDBC to make database independent queries; and Call
methods remotely.
Course Outline
Chapter 1: Overview of Java Programming (4hr)
1.1. Data types and variables
1.2. Arrays
1.3. Decision and Repetition statement
1.4. Exception Handling
1.4.1. Exception handling overview
1.4.2. Syntax
62
Chapter 2: Java Applet (2hr)
2.1. Overview of Java Applets
2.2. Java Applets Vs Java Application
Chapter 3: Java GUI using JAVAFX (8 hrs.)
3.1. JAVAFX architecture and Program structure
3.2. JAVAFX layout components
3.3. Basic UI controls
3.3.1. Event handlers
3.3.1. UI controls
3.4. Composite UI controls
3.5. Shapes
3.5.1. Color, Texts, Fonts
3.5.2. Lines, Circle, Rectangle
3.5.3. CSS styling
3.6. Properties and Bindings
3.7. Graphics and Animation
Chapter 4: Streams and File I/O (4hr)
4.1. Input output streams
4.1.1. Various stream classes
4.1.2. Using Streams
4.1.3. Object Streams
4.2. File management
Chapter 5: Multi-threading concept (4hr)
5.1. Thread vs process
5.2. Multiple threads
5.2.1. Thread priorities
5.2.2. Thread synchronization
Chapter 6: Networking in Java (3hr)
6.1. Networking overview
6.1.1. Types of connections
6.2. Socket programming
6.2.1. Socket, port and URI
63
6.2.2. Implementing Socket programming
6.3. Remote method invocation (RMI)
6.3.1. Overview of RMI
6.3.2. The RMI registry
6.3.3. The remote Interface
6.3.4. Implementing RMI
Chapter 7: Java - Database connectivity (4hr)
7.1. Introduction on database systems
5.1.1. Structured query language (SQL)
7.2. Basic JDBC programming concept
7.2.1. Populating database
7.2.2. Executing queries
7.2.3. Manipulating query results
Chapter 8: Servlets (3 hrs.)
8.1. Servlet overview and architecture
8.2. Handling HTTP methods (GET and POST requests)
8.3. Request redirecting
8.4. Multi-tier applications using JDBC from servlet
Teaching - Learning methods
Assessment method
Quizzes 20%
Assignments 20%
Project 20%
Final Exam 40%
Total 100%
Teaching materials
Required Texts:
➢ S. Horstmann and Gary Cornell, Core Java 2 – Volume II- Advanced Features, Sun
Microsystems Press
➢ Harvey M. Deitel and Paul J. Deitel, Java How to Program, Deitel & Associates Inc.
java.sun.com/docs/books/tutorial
64
Java Programming Laboratory Outline
Week1 Overview of Java Programming
Variable declaration
Athematic and logical operations
Week2 Java Conditional and loop statements
Week3 Java Applet
Week4 Java GUI
JavaFX layout components
Week5 -6 Basic UI Controls
Event handlers
UI Controls
Week7 Composite UI controls
Week8-9 Shapes
CSS styling
Property bindings
Graphics and Animation
Week10 File Input-Output
BufferedWritter and BufferedReader
DataInputStream and DataOutputStream
Week11 Multi-thread concept
Extending Thread class Vs Implementing Runnable Interface
Thread Synchronization
Week12 Socket Programming
Components of Socket class and Its implementation
Components of ServerSocket class and its implementation
Week13 Remote method invocation
Architecture of RMI
Implementing RMI
Week14 Java - Database Connectivity
Database setup
Creating a connecting to a database
65
Creating and executing SQL statements
Week15 Java - Database Connectivity
More on Querying Database
Manipulating results of query statements
Week16 Servlet
Servlet lifecycle
Compiling and deploying servlet
Accessing data from HTML form
Client Request and Server Response
HTTP codes
66
DEBRE BERHAN UNIVERSITY Computing College
Institute of Technology Department of Computer Science
Department: Computer Science
Course Title: Computer Organization and Architecture Course Code: CoSc 2022
Course Load: ECTS Credit Lecture hrs. Laboratory hrs. Tutorial hrs.
5 3 3 0 1
Course Prerequisite: Digital Logic Design (EENG2041)
Course Category: Compulsory
Instructor’s Contact Information: Course Delivery Information:
Name: _____________________ Academic Year: ____________
Office: _____________________ Year/Semester: II/II
Phone: _____________________ Meeting date: ____________
Email: _____________________ Meeting time: ____________
Office Hours: ________________ Meeting location: __________
Course Description
This course introduces students to basic computer organization and architecture concepts. It
covers: number systems, Boolean algebra, digital logic circuits and their design, simple machine
architecture, genealogy of microprocessors, von Neumann architecture, the system bus model,
data representation and manipulation, organization of instruction sets and program execution,
microprocessor organization, memory organization, organization of input and output subsystem,
I/O interface; instruction set design philosophies, parallel processing, symmetric multiprocessing
and clustering; case study of at least two microprocessor families and other components of
computing system.
Course Objectives
By the end of this course, students will be able to:
➢ Describe the basic structure and operation of a digital computer
➢ Explain in detail the operation of the arithmetic unit including the algorithms &
implementation of fixed-point and floating-point addition, subtraction, multiplication &
division.
➢ Identify different ways of communicating with I/O devices and standard I/O interfaces.
➢ Describe different performance enhancement of computer architecture
➢ Explain the basic structure of computer hardware & software
➢ Identify the processes involved in the basic operations of CPU
67
➢ Understand basic concepts of circuits and their design
Course Outline
Chapter 1: Introduction (4hr)
1.1. Logic gates and Boolean algebra
1.2. Combinational circute
1.3. Flip flops
1.4. Sequential circute
Chapter 2: Number system and codes (4hr)
2.1. Data types
2.2. Complements
2.3. Fixed- and floating-point representation
2.4. Codes
Chapter 3: Common digital components (6hr)
3.1. Integrated circute
3.2. Decoder, multiplexer and registers
3.3. Binary counter
3.4. Memory units
Chapter 4: Register Transfer Language and Micro Operations (6hr)
4.1. Register transfer languages
4.2. Bus and memory transfer
4.3. Arithmetic and logic operations
4.4. Shift micro-operations
Chapter 5: Basic Computer Organization and Design (6hr)
5.1. Instructional code
5.2. Computer Register
5.3. Computer Instructions
5.4. Timing and control
5.5. Memory reference instructions
5.6. Design of Basic computers
5.7. Design of accumulator logic
68
Chapter 6: Central processing unit (4hr)
6.1. General register organization
6.2. Stack organization
6.3. Instruction formats
6.4. Addressing modes
6.5. Data transfer and manipulation
6.6. Program control
6.7. Characteristics of RISC and CISC
Chapter 7: Memory Organization (6hr)
7.1. Memory Hierarchy
7.2. Main memory
7.3. Cache memory
7.4. Mapping functions
7.4.1. Direct mapping
7.4.2. Associative mapping
7.4.3. Set associative mapping
7.5. External memory
7.5.1. Magnetic disks
7.5.2. RAID technology
7.5.3. Optical disks
7.5.4. Magnetic tapes
Chapter 8: Input-Output Organization (4hr)
8.1. Peripheral devices
8.2. Input-output interface
8.3. Asynchronous data transfer
8.4. Mode of transfer
8.5. Priority interrupts
8.5. Direct memory access (DMA)
8.6. Input-Output Controller (IOC)
8.6. Serial communication
69
Chapter 9: Pipeline and Vector Processing (4hr)
9.1. Pipeline
9.2. Parallel Processing
9.3. Arithmetic Pipeline
9.4. Instruction Pipeline
9.5. Vector Processing
9.6. Array Processing
Chapter 10: Multiprocessors (4hr)
10.1. Multiprocessor and its Characteristics
10.2. Interconnection Structures for Multiprocessor
10.3. Inter Processor Communication and Synchronization
Teaching - Learning methods
Assessment method
Test1, Test2 30%
Assignments 20%
Final Exam 50%
Total 100%
Teaching materials
Required Texts:
Text book:
➢ William Stalling, Computer Organization and Architecture: Designing for Performance, 7 th
Edition, Prentice Hall, 2006
Reference books:
➢ Andrew S. Tannenbaum, Structured Computer Organization, 4 th Edition, Prentice Hall,
1999
➢ Mano M, Morris, Computer System Architecture, 3rd Edition, 1993
➢ B. Ram, Computer Fundamentals, Architecture and Organization, 2007
70
DEBRE BERHAN UNIVERSITY Computing College
Institute of Technology Department of Computer Science
Department: Computer Science
Course Title: Microprocessor and Assembly Language Course Code: CoSc 3025
Programming
Course Load: ECTS Credit Lecture hrs. Laboratory hrs. Tutorial hrs.
5 3 2 3 1
Course Prerequisite: Computer Organization and Architecture (CoSc 2022 )
Course Category: Compulsory
Instructor’s Contact Information: Course Delivery Information:
Name: _____________________ Academic Year: ____________
Office: _____________________ Year/Semester: III/I
Phone: _____________________ Meeting date: ____________
Email: _____________________ Meeting time: ____________
Office Hours: ________________ Meeting location: __________
Course description
Microprocessor architecture; memory organization; assembly language programming;
microprocessor assemblers; use of microprocessor boards; memory and I/O interfaces;
programming peripherals; interrupt system programming; microprocessor system design and
applications
Course objectives
On completion of the course, successful students will be able to:
➢ Become familiar with the basic components of 8086 instruction set architecture
➢ Inspect and modify 8086 processor registers and memory.
➢ Use assembler to develop and run assembly language programs.
➢ Identify registry, memory allocation, memory reference techniques, File processing,
modular programming etc
➢ Identify how to interface serial and parallel I/O devices with a microprocessor
➢ Write code to process exceptions and interrupts,
71
Course outline
CHAPTER 1: INTRODUCTION TO MICROPROCESSORS (4hr)
1.1 Introduction to microprocessors
1.2 General architecture of microcomputer system
1.3 Evolution of Intel microprocessors
1.4 Architectural compatibility
1.5 Hardware and software
1.6 Review of the basic number systems and conversion between different number systems
CHAPTER 2:BASIC ARCHITECTURE OF THE 8088 & 8086 MICROPROCESSORS (4hr)
2.1 Internal architecture of the 8086/8088 microprocessors
2.2 Memory address space and data organization
2.3 Data types
2.4 Segment registers and memory segmentation
2.5 Pointer and index register
2.6 Status and flag register
2.7 The Stack
CHAPTER 3: ADDRESSING MODES (5hr)
3.1 Data-Addressing Modes
3.1.1 Register Addressing
3.1.2 Immediate Addressing
3.1.3 Direct Data Addressing
3.1.4 Register Indirect Addressing
3.1.5 Base-Plus-Index Addressing
3.1.6 Register Relative Addressing
3.1.7 Base Relative-Plus-Index Addressing
3.1.8 Scaled-Index Addressing
3.1.9 RIP Relative Addressing
3.1.10 Data Structures
3.2 Program Memory-Addressing Modes
3.2.1 Direct Program Memory Addressing
3.2.2 Relative Program Memory Addressing
3.2.3 Indirect Program Memory Addressing
72
3.3 Stack Memory-Addressing Modes
CHAPTER 4: INSTRUCTIONS (6hr)
4.1. Data Movement Instructions
4.1 MOV Revisited
4.2 PUSH/POP
4.3 Load-Effective Address
4.4 String Data Transfers
4.5 Miscellaneous Data Transfer Instructions
4.2: Arithmetic and Logic instructions
4.2.1 Arithmetic Instructions
4.2.2 Basic Logic Instructions
4.2.3 Shift and Rotate
4.2.4 String Comparisons
CHAPTER 5: PROGRAM CONTROL INSTRUCTIONS (4hr)
5.1 The Jump Group
5.1.1 Unconditional Jump (JMP)
5.1.2 Conditional Jumps and Conditional Sets
5.2 Controlling the Flow of the Program
5.2.1 LOOP
5.2.2 REPEAT
5.3 Procedures
5.3.1 CALL
5.3.2 RET
5.4 Introduction to Interrupts
5.4.1 Interrupt Vectors
5.4.2 Interrupt Instructions
5.4.3 Interrupt Control
5.5 Machine Control and Miscellaneous Instructions
5.5.1 Flag Control Instructions
5.5.2 WAIT
5.5.3 HLT
5.6. NOP
73
CHAPTER 6: 8086/8088 HARDWARE SPECIFICATIONS (5hr)
6.1 Pin-Outs and the Pin Functions
6.2 Clock Generator (8284A)
6.3 Bus Buffering and Latching
6.4 Bus Timing
6.5 Ready and the Wait State
6.6 Minimum Mode versus Maximum Mode
CHAPTER 7: INTERFACE (4hr)
7.1 Memory Interface
7.1.1 Memory Devices
7.1.1 Memory Pin Connections
7.2 I/O Interface
7.2.1 Introduction to I/O Interface
7.2.2 I/O Port Address Decoding
7.2.3 The Programmable Peripheral Interface
7.2.4 Analog-to-Digital (ADC) and Digital-to-Analog (DAC) Converters
CHAPTER 8: INTERRUPTS (4hr)
8.1 Basic Interrupt Processing
8.1.1 The Purpose of Interrupts
8.1.2 Interrupts
8.1.3 Interrupt Instructions: INTO, INT, INT 3, and IRET
8.1.4 The Operation of a Real Mode Interrupt
8.1.5 Operation of a Protected Mode Interrupt
8.1.6 Interrupt Flag Bits
8.1.7 Storing an Interrupt Vector in the Vector Table
8.2 Hardware Interrupts
74
Laboratory outline
75
Assessment methods
Assignments/quizzes 10%
Mid semester examination 20%
Project 20%
Final examination 50%
Teaching materials
Text Books:
The Intel Microprocessors 8086/8088, 80186/80188, 80286, 80486, Pentium and Pentium
processor – Architecture, Programming and Interfacing by Barry B Brey. 4th Edition, prentice
Hall – India – 2002
References:
➢ Ouglas v. Hall 'Microprocessors and Interfacing', Tata McGraw hill
➢ Uffenbeck 'Microcomputers and Interfacing', prentice hall
➢ Ram 'Fundamentals of Microprocessors and Microcomputers', Dhanpat Rai Ompkins 'PC
interfacing', prentice hall
➢ Richard Trooper, Assembly Language Programming the IBM PC, McGraw Hill, 1994
➢ Vlad Pirogov, the Assembly Programming Master Book, 2006
➢ Peter Abel, IBM PC Assembly Language and Programming, 5h Edition, 2001.
76
DEBRE BERHAN UNIVERSITY Computing College
Institute of Technology Department of Computer Science
Department: Computer Science
Course Title: Automata and Complexity Theory Course Code: CoSc 3101
Course Load: ECTS Credit Lecture hrs. Laboratory hrs. Tutorial hrs.
5 3 3 0 2
Course Prerequisite: None
Course Category: Compulsory
Instructor’s Contact Information: Course Delivery Information:
Name: _____________________ Academic Year: ____________
Office: _____________________ Year/Semester: III/I
Phone: _____________________ Meeting date: ____________
Email: _____________________ Meeting time: ____________
Office Hours: ________________ Meeting location: __________
Course Description
This course aims to develop the theoretical foundations of computer science through study of
mathematical and abstract models of computers and the theory of formal languages. It also,
introduces some fundamental concepts in automata theory and formal languages including
grammar, finite automaton, regular expression, formal language, push down automaton, and
Turing machine. The importance of time and space complexities, various notations and theorems
of Complexity theory.
Course Objectives
By the end of this course, students will be able to:
➢ On completion of this course students should be able to:
➢ Introduce concepts in automata theory and theory of computation
➢ Study the central concepts of automata theory
➢ Acquire insights into the relationship among formal languages, formal grammars, and
automata.
➢ Identify different formal language classes and their relationships
➢ Design grammars and recognizer for different formal languages
➢ Explain Models of Computation, resources (time and space), algorithms, computability, and
complexity.
77
➢ Understand Complexity classes, P/NP/PSPACE, reductions, hardness, completeness,
hierarchy, relationships between complexity classes.
➢ Learn Randomized computation and complexity; Logical characterizations, incompleteness
and approximately.
Course Outline
Chapter 1: Introduction (4hr)
1.1.1. Alphabets and strings
1.1.2. Languages and Grammars
1.1.3. Automata
1.1.3.1. Finite automata, Deterministic and Non-deterministic finite
automata
Chapter 2: Regular Expression and Regular languages (4hr)
2.1. Regular expressions
2.2. Connection between regular expression and regular languages
2.3. Regular grammar
2.4. Pumping lemma and non-regular language grammars
Chapter 3: Context free languages (6hr)
3.1. Context free languages
3.2. Parsing and ambiguity
3.2. Sentential forms
3.3. Derivation tree or parse tree
3.3.1. Left most and right most derivations
3.4. Simplification of context free grammar
3.4.1. Methods for transforming grammars
3.4.2. Chomsky’s hierarchy of grammars
Chapter 4. Push down automata (4hr)
4.1. Non-deterministic pushdown automata
4.2. Push down automata and context free languages
4.3. Deterministic push down automata
4.4. Deterministic context free languages
Chapter 5: Turing machines (4hr)
5.1. Standard TM
78
5.2. Construction of TM
5.3. Turing Decidable and Turing Acceptable
5.4. Undecidable problems
Chapter 6: Computability (4hr)
6.1. Recursive functions
6.2. Recursive languages and recursive Enumerable languages
Chapter 7: Computational complexity (6hr)
7.1. Big-O notaions
7.2. Class P vs class NP
7.3. Polynomial time reduction and NP-complete problems
7.4. Cook’s Theorem
Teaching - Learning methods
Two contact hours of lectures, three hours of lab and two hours of tutorials per week. Students
do home assignments.
Assessment method
Quizzes 20%
Assignments 30%
Test 10%
Final Exam 40%
Total 100%
Teaching materials
Required Texts:
Introduction to Automata Theory, Languages, and Computation by Hopcroft, Ullman and
Motwani
Reference books:
➢ An Introduction to Formal Languages and Automata, Third Edition, Peter Linz, 2001
➢ An Introduction to Formal Language Theory that Integrates Experimentation and Proof
Allen Stoughton, 2004.
➢ Complexity Theory: A Modern Approach Sanjeev Arora and Boaz Barak
79
DEBRE BERHAN UNIVERSITY Computing College
Institute of Technology Department of Computer Science
Department: Computer Science
Course Title: Data Structures and Algorithms Course Code: CoSc 2092
Course Load: ECTS Credit Lecture hrs. Laboratory hrs. Tutorial hrs.
5 3 2 3 2
Course Prerequisite: Computer Programming (CoSc 1012) & Discrete Mathematics and
Combinatorics (MATH 2051)
Course Category: Compulsory
Instructor’s Contact Information: Course Delivery Information:
Name: _____________________ Academic Year: ____________
Office: _____________________ Year/Semester: II/II
Phone: _____________________ Meeting date: ____________
Email: _____________________ Meeting time: ____________
Office Hours: ________________ Meeting location: __________
Course Description
This course focuses on the study of data structures, algorithms and program efficiency. Topics
include: analysis of time and space requirements of algorithms; program efficiency improving
techniques, abstract data types such as linked lists, stacks, queues, trees (traversal,
implementations); simple searching algorithms (linear search, binary search, ... ), simple sorting
algorithms (bubble sort, insertion sort, selection sort, ... ), advanced sorting algorithms (merge
sort, quick sort, heap sort ...)
Course Objectives
➢ To introduce the most common data structures like stack, queue, linked list
➢ To give alternate methods of data organization and representation
➢ To enable students use the concepts related to Data Structures and Algorithms to solve real
world problems
➢ To practice Recursion, Sorting, and searching on the different data structures
➢ To implement the data structures with a chosen programming language
80
Course outline
Chapter 1. Introduction to Data Structures and Algorithms (4hr)
1.1. Introduction to Data Structures
1.1.1 Abstract data Types
1.1.2 Abstraction
1.2. Algorithms
1.2.1. Properties of an algorithm
1.2.2. Algorithm analysis concepts
1.2.3. Complexity analysis
1.3. Asymptotic Analysis
Chapter 2: Simple Sorting and Searching Algorithms (4hr)
2.1. Sorting Algorithms
2.1.1. Insertion sort
2.1.2. Selection Sort
2.1.3. Bubble sort
2.1.4. Pointer sort
2.2. Searching Algorithms
2.2.1. Linear Search (Sequential search)
2.2.2. Binary Search
Chapter 3: Linked Lists (4hr)
3.1. Review on Pointer and Dynamic Memory allocation
3.2. Singly Linked List and Its Implementation
3.3. Doubly Linked List and Its Implementation
3.4. Circular Linked Lists and Its Implementation
Chapter 4: Stacks (4hr)
4.1. Properties of Stack
4.2. Array Implementation of Stack
4.3. Linked List Implementation of Stack
4.4. Application of Stack
4.4.1. Evaluation of Algebraic Expression
4.4.2. Infix and Post fix (RPN) conversion
4.4.3. Function calls
81
Chapter 5: Queue (4hr)
5.1. Properties of Queue
5.2. Array Implementation of Queue
5.3. Linked List Implementation of Queue
5.4. Double Ended Queue (Deque)
5.5. Priority Queue
5.6. Application of Queues
Chapter 6: Trees (4hr)
6.1. Binary Tree and Binary Search Trees
6.2. Basic Tree Operations
6.3. Traversing in a Binary tree
6.4. General Trees and Their Implementations
Chapter 7: Graphs (4hr)
7.1. Introduction
7.2. Directed vs Undirected graph
7.3. Traversing Graph
Chapter 8: Advanced Sorting and Searching algorithms (4hr)
8.1. Advanced Sorting
8.1.1. Shell sort
8.1.2. Quick sort
8.1.3. Heap Sort
8.1.4. Merge sort
8.2. Advanced Searching
8.2.1. Hashing
Teaching - Learning methods
Two contact hours of lectures, three hours of lab and two hours of tutorials per week. Students
do home assignments.
Assessment method
Quizzes 20%
Assignments 10%
Project 20%
Final Exam 50%
82
Total 100%
Teaching materials
Reference books:
➢ Robert Lafore, “Data Structures and Algorithms in JAVA, 2nd Ed.”, Sams Publishing
➢ Jean Paul Tremblay, Paul G. Soreson, “An Introduction to Data Structures with
Applications”, Mc. Graw Hill Computer Science Series
➢ E. Horowitz, S.Sahni and Dinesh Mehta. Fundamentals of data structures in C++, W.H
Freeman and Company (1995)
➢ Sanjay Pahuja, A practical approach to data structures and algorithms, New age
Internationapublishers, 2008
Data structures and Algorithms Laboratory Outline
Week1 Introduction
Overview of C++, and programs to demonstrate C++ classes, structures
and pointer
Week2 Implementation of Array ADT and String AD
Week3 Implementing simple sorting algorithms
Selection sort, bubble sort, insertion sort
Week4 Implementing searching algorithms
Linear search, binary search
Week5 Implementing linked list
Singly linked list, doubly linked list, circular linked list
Week6 Stack
Array Implementation of stack
Linked List implementation of stack
Week7 Queue
Array Implementation of queue
Linked list implementation of queue
Week8 Double ended queue (Deque) and Priority queue
Week9 Tree
Implementing Binary search tree
Week10 Graph
Implementing graph traversal algorithms
Week11 Advanced sorting algorithms
Shell sort, Heap sort
Week12 Advanced sorting algorithms
quick sort, merge sort,
Week13 Advanced searching algorithm
Hashing (open and closed hashing)
83
DEBRE BERHAN UNIVERSITY Computing College
Institute of Technology Department of Computer Science
Department: Computer Science
Course Title: Web Programming Course Code: CoSc 3081
Course Load: ECTS Credit Lecture hrs. Laboratory hrs. Tutorial hrs.
7 4 3 3 1
Course Prerequisite: None
Course Category: Compulsory
Instructor’s Contact Information: Course Delivery Information:
Name: _____________________ Academic Year: ____________
Office: _____________________ Year/Semester: III/I
Phone: _____________________ Meeting date: ____________
Email: _____________________ Meeting time: ____________
Office Hours: ________________ Meeting location: __________
Course Description
Client-server Architecture: Web page Design and development; information Architecture &
visualization; static & dynamic pages, client side programming using scripting languages
(JavaScript), OOP programming using PHP, File manipulation and Management using PHP.
Multimedia web programming, dynamic web content creation; session tracking; Internet
protocols, PHP Web controls, connecting web page to data base, loading and manipulating XML
documents, web security; cryptography theory.
Objectives
The objective of this module is to familiarize students:
➢ The concepts, principles and methods in programming for web and Internet environment
and the services and technologies available and used on Internet. Specifically, at the
completion of this module the student is able to
➢ Provide fundamental concepts and skills for the understanding and development of web-
based applications.
➢ Construct Web sites using HTML and Server-Side scripting Languages.
➢ Implement client-side interactivity
➢ Use CSS to manage Web site presentation and maintenance
➢ Select and customize existing technologies to set up and maintain web servers
➢ Specify, build and manage form and content of information-rich web sites
84
➢ Design, implement and evaluate client-server systems following specific protocol
specifications, taking into account concurrency issue.
Course outline
Chapter 1: The world Wide Web (4hr)
1.1. Course overview
1.2. The Internet and World Wide Web
1.3. Web Hosting and Domain Name Registration
Chapter 2: Hyper Text Markup Language (HTML) (10hr)
2.1. Introduction to HTML
2.2. HTML tags
2.2.1. Basic HTML tags (HTML, HEAD, BODY,TITLE)
2.2.2. Meta tag
2.2.3. HTML Comments
2.2.4. HTML Link
2.2.4. HTML Text Formatting tags
2.2.5. HTML image inserting tag
2.2.5.1. IMG tag and its attribute
2.2.5.2. Inserting Image Map
2.2.6. HTML Table
2.2.7. Ordered and Unordered List in HTML
2.2.8. HTML Frames
2.2.8.1. Frame Set
2.2.8.2. Internal Frame
2.2.9. HTML Form and Form Controls
2.2.9. Inserting Multimedia in HTML
2.2.9.1. Embed vs Video and Audio tags
2.2.10. HTML Graphics
2.2.10.1. HTML Canvas
2.2.10.2. HTML SVG
Chapter 3: Cascading Style Sheet (CSS) (10hr)
3.1. CSS Basics
3.1.1. Introduction to CSS
85
3.1.2. CSS Syntax (CSS Selectors and Declarations)
3.1.3. Attaching CSS with HTML (External , Embedded and Inline)
3.2. Style Sheet Rules
3.2.1. Style Inheritance
3.2.2. Style Rules Precedence
3.3. Style Properties
3.3.1. Foreground and Background Properties
3.3.2. Font and Text Properties
3.3.3. CSS Box Model
3.3.4. Table Styling Properties
3.3.5. More On Styling List (Creating Navigation bars)
3.3.6. Layout and Positioning Properties
3.4. CSS Measuring Units
Chapter 4: Client Side Scripting (JavaScript) (8hr)
4.1. Introduction to JavaScript
4.2. JavaScript Basic
4.2.1. JavaScript Syntax
4.2.2. Attaching JavaScript to HTML (External, Embedded, Inline)
4.3. JavaScript Comments
4.4. Basic JavaScript Input Output
4.5. JavaScript Data Types and Variables
4.5.1. JavaScript Data types
4.5.2. Variable declaration in JavaScript
4.5.3. Data Type Conversion
4.6. Arithmetic and Logical Operators in JavaScript
4.7. Control Structures (Conditional and Looping Statements)
4.8. Array in JavaScript
4.9. JavaScript Functions
4.10. JavaScript DOM (Document object Model)
4.10.1. Accessing HTML elements in JavaScript
4.10.2. CSS in JavaScript
4.10.3. Events in JavaScript
86
4.10.4. Handling Exception in JavaScript
4.11. Form Processing using JavaScript
4.12. JavaScript BOM (Browser Object Model)
4.12.1. JavaScript Window
4.12.2. JavaScript Location
4.12.3. JavaScript Location
4.12.4. JavaScript Cookies
Chapter 5: Server-Side Scripting (PHP) (8hr)
5.1. Introduction to PHP
5.2. Basic PHP Syntax
5.2.1. PHP Comments
5.2.2. Predefined and User Variables in PHP
5.3. PHP Output Statements
5.4. Data Types and Variables in PHP
5.5. Arithmetic and Logical Operators
5.6. Conditional Statements
5.7. Loop Statements in PHP
5.8. Arrays in PHP
5.9. PHP Functions
5.10. Form Processing using PHP
5.11. PHP File Upload
5.12. PHP Cookies and Session
5.13. Database Programming using PHP
5.13.1. Overview on MySQL database
5.13.2. Creating Database Connection in PHP
5.13.3. Sending Query to MySQL Database using PHP
5.13.4. Processing Query Result.
5.14. PHP File Input-Output
5.15. PHP Date and Time
5.16. PHP Mathematical Functions
5.17. PHP OOP
87
Chapter 6: Advanced JavaScript and XML (AJAX) (4hr)
6.1. Introduction to AJAX
6.2. XMLHttpRequest Object
6.3. Sending Request to PHP server
6.4. Handling Response from Server
Chapter 7: Introduction to web development frameworks (4hr)
a. Bootstrap & jQuery
b. Node.js
c. Angular.js
d. React.js
Teaching - Learning methods
Three contact hours of lectures, three hours of lab and 1 hours of tutorials per week. Students do
home assignments.
Assessment method
Quizzes 20%
Assignments 10%
Project 20%
Final Exam 50%
Total 100%
Teaching materials
Reference books:
➢ Fundamental Concepts for Web Development: HTML5, CSS3, JavaScript and much more!,
by Roxane Anquetil
➢ Web Design with HTML, CSS, JavaScript and jQuery Set 1st Edition by Jon Duckett
(Author)
➢ W3Schools, https://www.w3schools.com
Web programming Laboratory outline
Week 1 Lab environment set up (installing text editor software, web browser,
server software)
Introduction to HTML
Basic HTML tags and their attribute
HTML, HEAD, TITLE, BODY
HTML comment
88
Meta tag
Creating link
Text formatting tags
Headings, Paragraphs
Font
Text styling tags
Week 2 Image in HTML
Inserting Image
Using Image as a link
Image map
Week 3 HTML Table
Table row, Table header and Table data
Attributes of table
Attributes of table row and cell
Using header, body and footer in HTML table
HTML Lists
Unordered list
Ordered List
Week 4 Frames in HTML
Frameset , Nested frame ,Internal frame
HTML form
Form attributes
Input elements
Inserting multimedia in HTML
Inserting video
Inserting audio
Week 5 CSS
Linking CSS with HTML (embedded, inline and external CSS)
Styling background, text, font, Styling Link, Table
CSS class and ID
Week 6 CSS box model (margin, padding and boarder)
CSS display, visibility, position and z-index
Week 7 JavaScript syntax
Linking JavaScript with HTML (embedded, inline, external)
The first code in JavaScript “Hello, World”
JavaScript comments
Basic Input output in JavaScript
JavaScript variables
Arithmetic and assignment operators in JavaScript
Comparison and logical operators in JavaScript
Data type conversion in JavaScript
89
Week 8 Conditional Statements
If, if..else,if...elseif..else ad switch statement
Looping statements
For, while and do..while
Break and continue statements
Week 9 Array in JavaScript
Manipulating elements of an array
Function in JavaScript
Week 10 JavaScript DOM
Accessing Document elements
CSS in JavaScript
Event Handling
JavaScript BOM (Window, Location, History, Cookies)
Form processing and validation in JavaScript
Week11 PHP Syntax
Output statements
Comments
PHP Variable and Data type conversion
Control structures (Conditional and Looping statements)
Week12 Array
Function
Form Processing
File uploading
Week13 Session and Cookie
Database programming
Week14 File management in PHP
Date and Time
Math functions
Week15 Ajax programming
Week16 Introduction to Web development frameworks
Bootstrap, node.js, angular.js
90
DEBRE BERHAN UNIVERSITY Computing College
Institute of Technology Department of Computer Science
Department: Computer Science
Course Title: Wireless Communication and Mobile Course Code: CoSc 3034
Computing
Course Load: ECTS Credit Lecture hrs. Laboratory hrs. Tutorial hrs.
5 3 2 3 1
Course Prerequisite: Computer Network and Data communication (CoSc 2032)
Course Category: Compulsory
Instructor’s Contact Information: Course Delivery Information:
Name: _____________________ Academic Year: ____________
Office: _____________________ Year/Semester: III/II
Phone: _____________________ Meeting date: ____________
Email: _____________________ Meeting time: ____________
Office Hours: ________________ Meeting location: __________
Course Description
This course will examine the area of wireless networking and mobile computing, looking at the
unique network protocol challenges and opportunities presented by wireless communications
and host or router mobility. The course will give a brief overview of fundamental concepts in
mobile wireless systems and mobile computing, it will then cover John. Wiley & Sons –
Handbook of Wireless Networks and Mobile Computing.
system and standards issues including wireless LANs, Cellular Networks, mobile IP, ad-hoc
networks, sensor networks, as well as issues associated with small hand held portable devices
and new applications that can exploit mobility and location information.
Objectives
The objective of this module is:
➢ To provide an overview of Wireless Communication networks area and its applications in
communication engineering.
➢ To appreciate the contribution of Wireless Communication networks to overall
technological growth.
➢ To explain the various terminology, principles, devices, schemes, concepts, algorithms and
different methodologies used in Wireless Communication Networks. To enable students to
91
compare and contrast multiple division techniques, mobile communication systems, and
existing wireless network
➢ To provide an overview on Trends, issues and challenges on Mobile computing
Course Outline
Chapter 1: Introduction (4hr)
1.1. Introduction to Wireless communication and Mobile Computing
1.2. Types of Services
1.3. Wireless Vs Mobile
1.4. Applications
Chapter 2: Mobile Computing (4hr)
2.1. Fundamentals of Mobile computing
2.2. Mobile devices and Mobile OS
2.3. Mobile Computing Issues and Challenges
2.4. Mobile Computing Technologies
2.5. Mobile Computing Applications
Chapter 3: Wireless Network Principles (6hr)
3.1. Wireless Basics
3.2. Frequency Allocation and Regulation
3.3. Antennas
3.4. Signal Propagation
3.5. Multiplexing
3.6. Modulation
3.7. Media Access Control
3.8. Classifications of Wireless Networks
Chapter 4: Wireless Local Area Networks (WLANs) (4 hrs)
4.1. WLAN Overview
4.2. IEEE802.11 (WLAN) Standards
4.3. HiperLAN
4.4. WPAN Overview
4.5. IEEE 802.15 (WPAN) Standards
4.6. Wireless Sensor Networks and Zigbees
92
Chapter 5: Cellular Networks (6 hrs)
5.1. Principles of Cellular Networks
5.2. First Generation (1G) Cellular and Paging Networks
5.3. Second Generation (2G) Cellular Networks
5.4. The 2.5G Cellular Networks
5.5. Third Generation (3G) Cellular Networks
5.6. Fourth Generation (4G) Cellular Networks
5.7. Overview of Fifth Generation (5G) Cellular Networks
Chapter 6: Mobile Network Layer (4hr)
6.1. Mobile IP
6.1.1. Introduction
6.1.2. Mobile IP entities and Terminologies
6.1.3. IP packet delivery
6.1.4. Registration
6.1.5. Tunneling and Encapsulation
6.2. Introduction to Mobile ad-hoc networks
Chapter 7: Wireless network security (4hr)
7.1. Introduction to wireless security
7.2. Examining wireless LAN vulnerabilities
7.3. Understanding WLAN security models
7.4. Securing wireless transmission using VPN
7.5. Wireless security policies
Teaching - Learning methods
Two contact hours of lectures, three hours of lab and 1 hours of tutorials per week. Students do
home assignments.
Assessment method
Quizzes 20%
Assignments 10%
Project 20%
Final Exam 50%
Total 100%
93
Teaching materials
Reference books:
➢ Vijay Garg, Wireless Communications and Networking.
➢ Amjad Umer, Mobile Computing and Wireless Communications.
➢ Jochen H. Schiller- Mobile communications ,2nd Edition
➢ Theodore.S. Rappaport, Wireless Communication and Principles and Practice, 2nd Edition.
➢ John. Wiley & Sons – Handbook of Wireless Networks and Mobile Computing.
Wireless communication and mobile computing laboratory outline
Week1 WLAN design
Week2 WLAN configuration
Week3 Simulating WLAN using GNS3, OPENet, ns2, ns3
Week4 Simulating Bluetooth
Week5 Simulating WIMAX
Week6-7 Designing and Simulating MANET, OPENet, OMNET++
Week8-9 Simulating Wireless Sensor Network
Week9 Simulating GSM and GPRS
Week9-10 Simulating 3G and LTE, NetSim
Week11-12 Simulating Mobile IP
94
DEBRE BERHAN UNIVERSITY Computing College
Institute of Technology Department of Computer Science
Department: Computer Science
Course Title: Design and Analysis of Algorithms Course Code: CoSc 3094
Course Load: ECTS Credit Lecture hrs. Laboratory hrs. Tutorial hrs.
5 3 3 0 0
Course Prerequisite: Data Structure and Algorithms (CoSc 2092)
Course Category: Compulsory
Instructor’s Contact Information: Course Delivery Information:
Name: _____________________ Academic Year: ____________
Office: _____________________ Year/Semester: III/II
Phone: _____________________ Meeting date: ____________
Email: _____________________ Meeting time: ____________
Office Hours: ________________ Meeting location: __________
Course Description
The course focuses on the design and analysis of algorithms. Topics Include: Review of the
basic data structures; Design techniques: divide-and-conquer, dynamic programming, greedy
algorithms, And graph algorithms: Elementary graph algorithms, Breadth-first search (BFS),
Depth-first search (DFS), Strongly-connected components, Minimum spanning tree, Shortest
paths.
Objectives
By the end of this course, students will be able to:
➢ Perform algorithm analysis using the different techniques;
➢ Demonstrate the use of algorithm design techniques; and
➢ Describe the basics of computational complexity
➢ Apply advanced searching and sorting algorithms
➢ Develop, and reason about the correctness and performance of algorithms, in particular for
string
➢ Searching and graph manipulation
95
Course Outline
Chapter 1: Introduction and Elementary Data Structures (6hr)
1.1. Introduction to Algorithm analysis
1.1.1. Asymptotic Notations
1.1.2. Analysis of Algorithm
1.2. Review of elementary Data Structures
1.2.1. Heaps
1.2.2. Hashing
1.2.3. Set Representation
1.2.3.1. UNION, FIND Operation
Chapter 2: Divide and Conquer (6hr)
2.1. The General Method of Divide and Conquer
2.2. Binary Search
2.3. Finding Maximum and Minimum
2.4. Merge Sort
2.5. Quick Sort
2.6. Selection Sort
Chapter 3: Greedy Algorithms (6hr)
3.1. General Characteristic of Greedy Algorithms
3.2. Graph Minimum Spanning Tree (MST) - Kruskal’s and Prims’s Algorithms
3.3. Shortest Paths
3.4. Scheduling
Chapter 4: Dynamic Programming (6hr)
4.1. Introduction to Dynamic Programming
4.2. All pairs Shortest Path - Floyd-Warshall Algorithm
4.3. Shortest Path - Dijkstra Algorithm
4.4. 0/1 Knapsack
4.5. Depth First Search
Chapter 5: Back Tracking (6hr)
5.1. 8 Queens Problem
5.2. Graph Coloring
5.3. Hamiltonian Cycle
96
5.4. Knapsack Problems
5.5. Traveling Salesman Problems
Chapter 6: Introduction to Probabilistic Algorithms - Parallel Algorithms (2hr)
Teaching - Learning methods
Assessment method
Quizzes 20%
Assignments 10%
Project 20%
Final Exam 50%
Total 100%
Teaching materials
Reference books:
➢ Cormen, T.H. et al. (1990) Introduction to Algorithms. MIT Press and McGraw-Hill
➢ Book Company.
➢ Manna, Z. (1974) Mathematical Theory of Computation McGraw-Hill.
➢ Baase, S. (1988) Computer Algorithms: Introduction to Design and Analysis, 2nd ed.
➢ Addison-Wesley Publishing Company.
➢ T. H. Cormen, C. E. Leiserson, R. L. Rivest. Introduction to Algorithms The MIT Press,
Cambridge, Massachusetts, 3rd edition.
97
DEBRE BERHAN UNIVERSITY Computing College
Institute of Technology Department of Computer Science
Department: Computer Science
Course Title: Compiler Design Course Code: CoSc 4103
Course Load: ECTS Credit Lecture hrs. Laboratory hrs. Tutorial hrs.
5 3 2 3 2
Course Prerequisite: Automata and Complexity Theory (CoSc 3101)
Course Category: Compulsory
Instructor’s Contact Information: Course Delivery Information:
Name: _____________________ Academic Year: ____________
Office: _____________________ Year/Semester: IV/I
Phone: _____________________ Meeting date: ____________
Email: _____________________ Meeting time: ____________
Office Hours: ________________ Meeting location: __________
Course Description
The course builds on the student's core knowledge of languages, grammars and programming
and provides an opportunity to see how these core areas can come together to form an
application area. It also imparts the knowledge about the following
To learn basic techniques used in compiler construction such as lexical analysis, top-down and
bottom-up parsing, context-sensitive analysis, and intermediate code generation.
To learn basic data structures used in compiler construction such as abstract syntax trees, symbol
tables, three-address code, and stack machines.
To learn software tools used in compiler construction such as lexical analyzer generators, and
parser generators.
Course Objectives
By the end of this course, students will be able to:
➢ Implementing a small compiler using modern compiler writing tools.
➢ Providing the student with skills and knowledge (such as lexical analysis and parsing) which
are applicable to a broad range of computer science application areas (such as text editors,
information retrieval, etc...).
98
Course Outline
Chapter 1: Introduction (2hr)
1.1. Phases of a Compiler
1.2. Computer Language Representation
1.3. Compiler Construction Tools
Chapter 2: Lexical Analysis (4hr)
2.1. Token Specification
2.2. Recognition of Tokens
2.3. Recognition of Machines
2.4. NFA to DFA Conversion
2.5. Error Recovery
2.6. A typical Lexical Analyzer Generator
2.7. DFA Analysis
Chapter 3: Syntax Analysis (6hr)
3.1. Parsing
3.2. Top-down Parsing
3.3.1. Predictive Parsing
3.4.1. Top-down Parsing principles of CFG
3.5. Regular Expression Vs Context Free Grammar (CFG)
3.6. Top-down Parsing Implementation - Recursive Decent parsing
3.7. Non-Recursive Predictive Parsing
3.8. LL(1) Grammar
3.9. Bottom-Up Parsing
3.10. Handles
3.11. Stack Implementation of Shift Reduce Parsing
3.12. LR Parers-Implementation - LR Parsing Algorithms
3.13. SLR, CLR and LALR parser
3.3. Error Recovery
3.4. Parser Generator
Chapter 4: Syntax Directed Translation (4hr)
4.1. Syntax Directed Definitions (SDD)
4.2. Evaluation Order for SDD
99
4.3. Construction of Syntax Trees
Chapter 5: Type Checking (4hr)
5.1. Rules of Type Checking
5.2. Type Conversions
Chapter 6: Intermediate Languages (4hr)
6.1. Three Address Code Rules
6.2. Quadruples
6.3. Declarations
6.4. Declarations in Procedures
6.5. Flow Control Statements
6.6. Back Patching
6.7. Procedure Calls
Chapter 7: Run time- Environments (4hr)
7.1. Symbol table
7.2. Hash Table
7.3. Representing Scope Information
Chapter 8: Code Generation and Optimization (4hr)
8.1. Simple Code Generation
8.2. Register Allocation
8.3. DAG Representation
8.4. Peephole Optimization Techniques
Teaching - Learning methods
Assessment method
Quizzes 20%
Assignments 10%
Project 20%
Final Exam 50%
Total 100%
100
Teaching materials
Text Books:
➢ T1: Alfred Aho, Ravi Sethi, V.Jeffery Ullman D. “COMPILERS PRINCIPLES,
TECHINQUES AND TOOLS “, Addison- Wesley, 1988.
Reference Books:
➢ Allen Holub l. “Compiler Design in C”, Prentice Hall of India. 1990.
➢ Charles N.Fischer Richard J.Leblanc, “Crafting a compiler with C”, Benjamin Cummings,
1991
Compiler design laboratory manual
Week1 Introduction and lab environment setup
Lex and Yacc tools
Week2 Simulating Lexical analyzer for validating
Operators and expressions
Week3 Implementing lexical analyzer using JLex, flex or other lexical
analyzer generator tools
Week4 Implementing functionality of predictive parser for mini language
Week5 Constructing LL((1) parser
Week6 Constructing recursive descent parsing
Week7 Implementing LALR parsing
Week8 Convert BNF rules into YACC form
Generating abstract syntax tree for mini language
Week9 Generate machine code from abstract syntax tree generated by
parser
101
DEBRE BERHAN UNIVERSITY Computing College
Institute of Technology Department of Computer Science
Department: Computer Science
Course Title: Computer Graphics Course Code: CoSc 3072
Course Load: ECTS Credit Lecture hrs. Laboratory hrs. Tutorial hrs.
5 3 2 3 1
Course Prerequisite: Fundamental of Programming in C++ (CoSc 2015)
Course Category: Compulsory
Instructor’s Contact Information: Course Delivery Information:
Name: _____________________ Academic Year: ____________
Office: _____________________ Year/Semester: III/II
Phone: _____________________ Meeting date: ____________
Email: _____________________ Meeting time: ____________
Office Hours: ________________ Meeting location: __________
Course Description
This course will introduce students to all aspects of computer graphics including hardware,
software and applications. Students will gain experience using a graphics application
programming interface (OpenGL) by completing several programming projects.
Course Objectives
By the end of this course, students will be able to:
➢ Have a basic understanding of the core concepts of computer graphics.
➢ Be capable of using OpenGL to create interactive computer graphics.
➢ Understand a typical graphics pipeline.
➢ Have made pictures with their computer.
Course Outline
Chapter 1: Introduction to Interactive Computer Graphics (4hr)
1.1. Brief History of Computer Graphics
1.2. 3D Graphics Techniques and Terminology
1.3. Common Uses of Computer Graphics
1.4. Application Area
Chapter 2: Graphics Hardware (2hr)
2.1. Raster Display Systems
2.2. Introduction To The 3D Graphics Pipeline
102
2.3. The Z Buffer For Hidden Surface Removal
Chapter 3: Introduction to The Rendering Process with OpenGL (3hr)
3.1. The Role of OpenGL in the Reference Model
3.2. Coordinate Systems
3.3. Viewing Using a Synthetic Camera
3.4. Output Primitives and Attributes
Chapter 4: Geometry and Line Generation (5hr)
4.1. Point and Lines, Bresenham’s Algorithm Generating Circles
4.2. Plotting General Curves
4.3. Line Thickness
4.4. Line Style
4.5. Polygons
4.6. Filling
4.7. Text and Characters
Chapter 5: Geometrical Transformations (3hr)
5.1. 3D Transformation
5.2. Matrix Representation
5.3. Homogeneous Coordinates
5.4. Combination of Transformations
Chapter 6: State Management and Drawing Geometric Objects (3hr)
6.1. Basic State management
6.2. Displaying Points Lines and Polygons3
6.3. Normal Vector
6.4. Vector Arrays
Chapter 7: Representing 3D Objects (2hr)
7.1. Modeling Using Polygons
7.2. Techniques for Creating Representational Polygon Meshes
7.3. Non-Polygonal representations
Chapter 8: Color and Images (2hr)
8.1. Color in Computer Graphics TGB, CIE
8.2. Image Formats and Their Applications: GIF, JPG, PNG
Chapter 9: Viewing A local Illumination Model (4hr)
103
9.1. Using The Camera Model for Viewing 3D Scenes
9.2. Perspective and Other Types of Projection
9.3. Viewing Types of Light Source
9.4. Reflectance Models: Diffuse (Lambert) and Specular (Phong) Gouraud and Phong
Interpolation
9.5. Lightning and Shading in OpenGL Textures
Chapter 10: Application Modeling (4hr)
10.1. Distinction Between Modeling and Graphics
10.2. Immediate Mode Versus Retained Mode Model
10.3. Storage Strategies
10.4. The Matrix Stacks
10.5. OpenGL Display Lists: Traversal and Instancing
10.6. How The Concepts are Realized in Specific Systems: OpenGL and java3D
Teaching - Learning methods
Assessment method
Quizzes 20%
Assignments 10%
Project 20%
Final Exam 50%
Total 100%
Teaching materials
Text Books:
➢ Richard S. Wright et.al. OpenGL® SuperBible: Comprehensive Tutorial and Reference,
Fifth Edition Addison-Wesley Professional
➢ Glen W Rowe, Computer Graphics with Java, PALGRAVE, 2001
104
Computer Graphics Laboratory Outline
Week1 Introduction to OpenGL
Rendering pipeline
Libraries
Include files
Setting up compiler
Compiling OpenGL/GLUT programs
Week2 Implementation for drawing 2D primitives
Points, lines, Circle, polygon
Week3 2D transformation
Translation
Rotation
Reflection
Window viewport
Week4 Composite 2D transformation
Week5 Line Clipping
Week7 3D transformation
Translation
Rotation
Scaling
Week8 3D projection
Parallel
Perspective
Week9 Image editing and Manipulation
Week10 2D animation
105
DEBRE BERHAN UNIVERSITY Computing College
Institute of Technology Department of Computer Science
Department: Computer Science
Course Title: Industrial Practice Course Code: CoSc3122
Course Load: ECTS Credit Lecture hrs. Laboratory hrs. Tutorial hrs.
3 2 0 0 0
Course Prerequisite: None
Course Category: Compulsory
Instructor’s Contact Information: Course Delivery Information:
Name: _____________________ Academic Year: ____________
Office: _____________________ Year/Semester: III/II
Phone: _____________________ Meeting date: ____________
Email: _____________________ Meeting time: ____________
Office Hours: ________________ Meeting location: __________
Course description
Industrial Practice is an organization-based practical training experience that prepares students
for the tasks they are expected to perform after graduation (completion of their university
education).
Course objectives
The objective of Industrial Practice is to produce practically oriented graduates that meet the
required job-related competences of their future employers. Through practical attachment,
potential employees are enabled to voice their ideas about the competencies, skills and
knowledge of new graduates. The specific objectives include:
• To enable students get hands-on experience real-life situation they are expected to work
in when they graduate.
• To provide an opportunity for students to apply the principles and techniques
theoretically learnt into real-life problem solving situations.
• To provide an opportunity for students to interact with the stakeholders and potential
employers to appreciate the different office situations
• To develop student understanding of work ethics, employment demands, responsibilities
and opportunities.
• To enhance and strengthen linkages between University and various stakeholders.
• To provide workplace experience/exposure for students
106
• To enhance the department’s network and linkages with industrial companies &
businesses vis-à-vis career placement for its graduates
• To provide opportunities for future professionals relative to the labor market
• To enable the students to apply and appreciate the relevance of classroom learning
Roles and responsibilities of stakeholders
Industrial Practice will be implemented through partnership between the university and other
partners. This partnership has three key stake holders namely: the university partners, the
university and the students.
For the Industrial Practice program to be effective and sustainable, the three partners have to
commit themselves to specific roles and responsibilities. The following are the roles and
responsibilities of each partner:
I. The University
o Will provide overall institutional management of the program.
o Will be responsible for the development of a monitoring and evaluation criteria
for practical attachment program including code of conduct for the students.
o Will be responsible for identifying organizations that offer valuable learning
experiences to the students.
o Shall initiate partnership with relevant organizations and concretize this
partnership with memorandum of understanding.
o Shall build practical attachment expenses in the university fees structure and
budget.
o Will create platforms and mechanisms for sharing experience arising out the
practical attachment program by the stakeholders.
107
o Will provide feedback to the university on the experience of the practical
attachment program.
o Will commit their organizational facilities and/or resources for effective
implementation of the practical attachment program.
o Will provide students on practical attachment with a wide range of experiences
that go beyond technical skills.
o Shall give accreditation and credit gains to students on practical attachment.
o Shall complete the performance assessment form of the student.
a. Placement
Students will be placed in organizations selected by themselves or in places which will be
identified by the university. Students will go for Industrial Practice during the summer time i.e.,
108
on July and August. The students are expected to undergo Industrial Practice for not less than
(300) hrs but not more than 2 months to the selected and recommended organization/industry.
b. Supervision
Each student is expected to have one supervisor from the organization and one from the
department. The practical attachment supervisor from the organization monitors the day-to-
day performance of the student. While the academic supervisor from the department will visit
the organization at least two times without informing the students for checking whether or not
the students are really working. During the visit, the academic supervisor will interact with the
student, his/her supervisor, and other relevant officials to acquaint himself/herself with the
activities of the student.
The attachment and academic supervisors need to meet the following requirements.
c. Evaluation
The assessment will be distributed between the attachment supervisor, academic supervisor and
practical attachment report.
109
sealed and stamped envelope. This assessment by the practical attachment supervisor will
account for 40%.
Evaluation by Academic Supervisor
The staff members of the department will evaluate the students by visiting the host
organizations and reading their attachment report. This assessment by the academic
supervisor based on criteria determined by the department will be out of 30%.
Evaluation by Examination Committee
After the attachment report of each student is evaluated by the respective academic
supervisor, the student is expected to correct it based on the comments given. Then, the
student will present the report to the examination committee of the department in the
presence of his/her classmates and other individuals. For this evaluation, the department
will arrange a committee of three staffs for each student presentation. The academic
supervisor will chair the presentation and see the consistency of the written report and the
presentation. This assessment by the examination committee will account for 30%.
110
DEBRE BERHAN UNIVERSITY Computing College
Institute of Technology Department of Computer Science
Department: Computer Science
Course Title: Network and System Administration Course Code: CoSc4036
Course Load: ECTS Credit Lecture hrs. Laboratory hrs. Tutorial hrs.
5 3 2 3 1
Course Prerequisite: Data Communication and Computer Networks (CoSc2032) &
Operating system (CoSc3023)
Course Category: Compulsory
Instructor’s Contact Information: Course Delivery Information:
Name: _____________________ Academic Year: ____________
Office: _____________________ Year/Semester: IV/II
Phone: _____________________ Meeting date: ____________
Email: _____________________ Meeting time: ____________
Office Hours: ________________ Meeting location: __________
Course Description
This course deals with the concepts and techniques of systems and network administration. This
course instructs students how to administer and manage a modern network by properly planning
and implementing various functions of a Network OS. Key components include how to plan
server deployment, server monitoring and maintenance, application and data provisioning, and
providing business continuity and availability by proper use of security configuration and
backup policies. The course material is designed to provide extensive hands-on experience.
Topics include: installation and configuration; the boot process; user and group administration;
file system administration, including quotas, FACLs, RAID and LVM; task automation; client
networking; software management; log files; troubleshooting; Emphasis is also given on storage,
file management system, connectivity, security, troubleshooting, archiving, backing up,
directory services, remote administration, access control lists.
Course objectives
By the end of this course, students will be able to:
➢ Understand the concepts, principles, and roles of system and network administration.
➢ Understand how to install/configure Linux operating system
➢ Understand how to build network services to users
111
➢ Understand how to design/implement small to medium level network administration
➢ Understand how to identify security policies and troubleshooting
➢ Understand how to apply scripting for system administration
Course outline
Chapter 1: Introduction to System & Network Administration (3 hrs)
1.1 Objectives/Goals, Challenges and Common Practices
1.2 Overview of the OSs
1.3 Unix-like Systems Vs Windows Systems
1.4 Linux Distributions and UIs
1.5 Linux Operations Review
1.5.1 File system Hierarchy and Standard
1.5.1.1 Single-rooted hierarchy, Seamless and Extensible File systems
1.5.1.2 Mounting Additional File systems
1.5.1.3 File system Object Oriented Design and File system Standard
1.5.1.4 Unix File and Directory Permissions
1.5.2 Essential Shell Commands
1.5.2.1 Basic File Manipulation Commands and Directory Navigation Commands
1.5.2.2 Advanced File Manipulation Commands (Init, Processes, and Threads)
1.5.3 Advanced Shell Features
Chapter 2: Account and Security Administration, and Access Control (DAC, RBAC) (3 hrs)
2.1 Account and security Administration
2.1.1 User and Group Concepts, and User Private Group Scheme
2.1.2 User Administration, Modifying Accounts and Group Administration
2.1.3 Password Aging and Default User Files
2.2 Managing files and folder permission
2.2.1 Managing File Ownership
2.2.2 Controlling Access to files
2.2.3 Managing Disk Quotas
Chapter 3: File Systems and Management of Data Storages (4hr)
3.1 File system Administration
3.1.1 Partitioning Disks with fdisk and parted
3.1.2 Creating, Mounting and Maintaining File systems
112
3.1.3 Swap
3.1.4 Determining Disk Usage With df and du
3.1.5 Configuring Disk Quotas
3.2 Logical Volume Management (LVM) and RAID
3.2.1 Implementing LVM, Creating Logical Volumes (LVs), Manipulating VGs & LVs
3.2.2 Advanced LVM Concepts (i.e. system-config-lvm)
3.2.3 RAID Concepts (Creating and Managing a RAID-5 Array)
Chapter 4: Network Management (6 hrs)
4.1 TCP/IP Networking
4.2 Configuring a Linux Box for Networking
4.3 Configuring a Linux Box as a Router
4.4 Configuring a Web Server (Apache)
4.5 Configuring a DNS Server (BIND)
4.6 Configuring Mail Transfer Agents (Postfix)
4.7 Configuring a Proxy Caches (Squid)
4.8 Network Configuration (IP Networking and Linux Network Configuration)
4.9 Network Services
4.9.1 Dynamic Host Control Protocol (DHCP)
4.9.2 Network Time Services and Sharing Desktops with VNC
4.9.3 RPC-Based Services and INET Super Server
4.10 TCP/IP Troubleshooting: ping, traceroute, ifconfig, netstat, ipconfig
4.11 Remote Administration with SSH and SCP
4.11.1 Configuration, Telnet Replacement, Secure Copy and Rsync
4.11.2 RSA and DSA Authentication (Password-less Logins)
4.11.3 Remote Command Execution and Port Forwarding
Chapter 5: Installation of Application Server and Management (6 hrs)
5.1 DHCP, DNS, Telnet server; compare with other NOS setup of corresponding network
services
5.2 Open SSH: Secure Network Communication
5.3 FTP and Setting-up Mail Servers and Client
5.4 Network Information Service (NIS) and Sharing File systems (NFS)
5.5 SAMBA: Linux and Windows File and Printer Sharing
113
5.6 DNS/BIND: Tracking Domain Names and Address
5.7 Setting up a Firewall and a Web server
Chapter 6: Managing Network Services (4 hrs)
6.1 Maintenance Troubleshooting: Common System and Network Problems
6.2 Developing General Strategies
6.3 Resolve Boot Problems, Backup and Restore Data and System Volume
6.4 Using Event Viewer and Troubleshoot Connectivity
Chapter 7: Systems Security (4 hrs)
7.1 Overview, Application Security and Login Security
7.2 Boot Loader Security (LILO and GRUB)
7.3 TCP Wrappers Configuration
7.4 Iptables Firewalling: Preliminaries
7.5 Iptables Scenarios
7.5.1 Packet Filtering
7.5.2 Port-Forwarding/Redirection and NAT/IP Masquerading
7.6 Packet-Processing Model
7.7 Intrusion Detection and Mandatory Access Control (MAC) with LIDS
Chapter 8 - Analytical system administration (2 hrs)
8.1 System observation
8.2 Evaluation methods and problems
8.3 Evaluating a hieratical system
8.4 Faults
8.5 Deterministic and stochastic Behaviors
Lab Contents:
Window server
Part 1: Server Installation and Configuration
➢ Introducing Windows Server 2016
➢ Installing Windows Server 2016
➢ Configuring Windows Server 2016 Basic Settings
➢ Configuring Server roles and services
➢ Managing hard drives and volumes
114
Part 2: Network Users, Resources, and Special Server Roles
➢ Understanding and configuring Active Directory Domain services
➢ Creating Active Directory groups, Organizational Units, and Sites
➢ Adding client computers and member servers to the domain
➢ Deploying group policy and network access
➢ Working with network shares and the distributed file system
Part 3: Account and Security Administration, and Access Control
➢ Account and security Administration
➢ Managing files and folder permission
Part 4: Systems Security
➢ TCP Wrappers Configuration
➢ Iptables Firewalling: Preliminaries
Part 5: Analytical system administration
➢ System observation
➢ Evaluation methods and problems
Part 6: Linux Server configuration
➢ Ubuntu or Debian latest version installation
➢ Revising Linux fundamental
➢ Automating tasks using scripting language
➢ DNS Master and Slave servers
➢ Updating Microsoft DNS server
➢ Configuring and run servicer software like
o Monitoring (with Icinga and Collectd)
o Backup and restore (with Bacula)
o File serving (with Samba)
o Virtualisation (with ProxMox)
o Email (with Postfix and Dovecot or Courier)
115
Assessment methods
Assignment/quizzes 10 %
Mid semester examination 20%
Project ` 20%
Final examination 50%
Text books:
➢ Principles of Network and System Administration, (2nod Edition), John Wiley and Sons
Ltd, Mark Burgess, 2004.
References:
1. The Practice of System and Network Administration: by Thomas A. Limoncelli
Christina J. Hogan , Strata R. Chalup, (3rd Edition)
2. TCP/IP Network Administration” (3rd Edition), O’Reilly and Associates Inc., Craig
Hunt, 2002.
3. Running Linux, (5th Edition), O’Reilly and Associates Inc., Matthias Kalle Dalheimer
and Matt Welsh, 2007.
4. Essential System Administration (ESA), Aeleen Frisch, 3rd edition, O'Reilly.
5. Unix and Linux System Administration Handbook'' fourth edition by Nemeth et
6. Linux Fundamentals'', Paul Cobbaut, downloadable from http://linux-training.be.
7. Introducing Windows Server 2016 handbook published by Microsoft Press A division of
microsoft Corporation One Microsoft Way Redmond, Washington 98052-6399
116
DEBRE BERHAN UNIVERSITY Computing College
Institute of Technology Department of Computer Science
Department: Computer Science
Course Title: Introduction to Artificial Intelligence Course Code: CoSc3112
Course Load: ECTS Credit Lecture hrs. Laboratory hrs. Tutorial hrs.
5 3 2 3 2
Course Prerequisite: Data Structures and Algorithms (CoSc2092) &
Probability and Statistics (STAT2015)
Course Category: Compulsory
Instructor’s Contact Information: Course Delivery Information:
Name: _____________________ Academic Year: ____________
Office: _____________________ Year/Semester: III/II
Phone: _____________________ Meeting date: ____________
Email: _____________________ Meeting time: ____________
Office Hours: ________________ Meeting location: __________
Course Description
The purpose of this course is to give students an understanding of Artificial Intelligence
methodologies, techniques, tools and results. Students will use python programming language to
demonstrate laboratory exercises. Students will learn the theoretical and conceptual components
of this discipline and firm up their understanding by using AI and Expert System tools in
laboratory sessions, projects and home assignments.
Course objectives
At the end of this course the students will be able to:
❖ Understand reasoning, knowledge representation and learning techniques of artificial
intelligence
❖ Evaluate the strengths and weaknesses of these techniques and their applicability to
different tasks
❖ assess the role of AI in gaining insight into intelligence and perception
❖ know classical examples of artificial intelligence
❖ know characteristics of programs that can be considered "intelligent"
❖ understand the use of heuristics in search problems and games
❖ know a variety of ways to represent and retrieve knowledge and information
117
❖ know the fundamentals of artificial intelligence programming techniques in a modern
programming language
❖ consider ideas and issues associated with social technical, and ethical uses of machines
that involve artificial intelligence
❖ Introduce students for powerful learning algorithms and their applications.
❖ Letting students to develop simple AI powered applications either in robotics, NLP or
games.
Course Outline
Chapter 1: Introduction to AI (3 hrs)
1.1 Objectives/Goals of AI
1.2 Types of AI(General and Specific AI)
1.3 Approaches to AI – making computer:
1.3.1 Think like a human ( Thinking humanly)
1.3.2 Act like a human (Acting humanly)
1.3.3 Think rationally (Thinking rationally)
1.3.4 Act rationally (Acting rationally)
1.4 The Foundations of AI
1.5 Bits of History and the State of the Art
1.6 Proposing and evaluating Application of AI
Chapter 2: Intelligent Agents (4 hrs)
2.1 Foundation of Agents
2.2 Agents and Environments
2.3 Acting of Intelligent Agents (Rationality)
2.4 Structure of Intelligent Agents
2.4.1 Agent Types
2.4.2 Simple reflex agent
2.4.3 Model-based reflex agent
2.4.4 Goal-based agent
2.4.5 Utility-based agent
2.5 Multi agent systems
2.6 Learning agent
118
Chapter 3: Searching and Planning (6 hrs)
3.1 Solving Problems by Searching and planning
3.2 Constraint Satisfaction Problem
3.3 Problem Solving Agents
3.4 Problem spaces and search
3.5 Knowledge and rationality
3.6 Heuristic search strategies
3.7 Search and optimization (gradient descent)
3.8 Adversarial search
3.9 Planning and scheduling
3.10 Avoiding Repeated States
3.11 Dynamic game theory
Chapter 4: Knowledge Representation and Reasoning (8 hrs)
4.1 Logic and Inference
4.2 Logical Agents
4.3 Propositional Logic
4.4 Predicate (First-Order)Logic
4.5 Inference in First-Order Logic
4.6 Knowledge Representation
4.7 Knowledge Reasoning
4.8 Bayesian reasoning
4.9 Probabilistic reasoning
4.10 Temporal reasoning
4.11 Knowledge-based Systems
4.12 Case study: Medical diagnosis
Chapter 5: Machine Learning Basics (3 hrs)
5.1 Knowledge in Learning
5.2 Learning Probabilistic Models
5.3 Supervised learning
5.3.1 Linear classification models
5.3.2 Probabilistic models
5.4 Unsupervised learning
119
5.4.1 Clustering models
5.5 Reinforcement learning
5.6 Deep Learning
5.6.1 Neural networks and back-propagation
5.6.2 Convolution neural networks
5.6.3 Recurrent neural networks and LSTMs
Chapter 6: Natural Language Processing (NLP) Basics (3 hrs)
6.1 Intro to Natural Language Processing
6.2 Machine learning Application in NLP
6.3 Natural language interaction
6.4 Computer vision and Image processing
6.5 Case study: Sentiment Analysis, speech recognition, Chabot
Chapter 7: Robotic Sensing and Manipulation (3 hrs)
7.1 Introduction to robotics
7.1.1 Sensing
7.1.2 Manipulation
7.1.3 Human-robot interaction
7.2 Navigation and path planning
7.2.1 Autonomous robotic systems
Chapter 8: Ethical and Legal Considerations in AI (2 hrs)
8.1 Privacy
8.2 Bias
8.3 AI and the future of work
8.4 Appropriate uses of AI
120
Assessment methods
Assignment/quizzes 10 %
Mid semester examination 20%
Project ` 20%
Final examination 50%
Text books:
Russell, S. and P. Norvig (1995) Artificial Intelligence: A Modern Approach Prentice-Hall
References:
1. Luger, G. (2002) Artificial Intelligence, 4th ed. Addison-Wesley.
2. Bratko, Ivan (1990) PROLOG Programming for Artificial Intelligence, 2nd ed. Addison-
Wesley, 1990
3. Winston, P.H. (1992) Artificial Intelligence Addison-Wesley. Ginsberg, M.L. (1993)
Essentials of Artificial Intelligence. Morgan Kaufman.
121
DEBRE BERHAN UNIVERSITY Computing College
Institute of Technology Department of Computer Science
Department: Computer Science
Course Title: Computer Vision and Image Processing Course Code: CoSc4113
Course Load: ECTS Credit Lecture hrs. Laboratory hrs. Tutorial hrs.
5 3 2 3 2
Course Prerequisite: Computer Graphics (CoSc 3072) & Probability and Statistics
(STAT2015)
Course Category: Compulsory
Instructor’s Contact Information: Course Delivery Information:
Name: _____________________ Academic Year: ____________
Office: _____________________ Year/Semester: IV/I
Phone: _____________________ Meeting date: ____________
Email: _____________________ Meeting time: ____________
Office Hours: ________________ Meeting location: __________
Course Description
This is an introductory course in processing grey-scale and color images. It will introduce
students to the basic principles of processing digital signals and how those principles apply to
images. These fundamentals will include sampling theory, transforms in appearance and
geometry, filtering and object segmentation. The course will also cover a series of basic image
processing problems including enhancement, reconstruction, segmentation, feature detection,
and compression.
Course objectives
At the end of this course, students are expected to:
➢ Define fundamental concepts of computer vision and image processing system
➢ Apply pre-processing operations in image enhancement
➢ Analyze 2-dimensional signals in the frequency domain through the Fourier transform
➢ Describe the basic concepts of color image processing
➢ Apply image restoration, reconstruction and compression operations
➢ Design and implement image processing algorithm with Python.
122
Course outline
Chapter 1. Introduction to computer vision and image processing (4 hrs)
1.1 What is a computer vision?
1.2 What is image?
1.3 Related fields in CV
1.4 Computer Vision Vs image processing
1.5 Application of CV and IP
1.6 Different Image processing examples
1.7 Fundamental steps in image processing
Chapter 2: Digital image fundamentals (4 hrs)
2.1 Basic concept of image
2.2 Digital image Representation
2.3 Digital image acquisition process
2.4 Image sampling and quantization
2.5 Representation of different image type’s
2.6 Mathematical Tools used in Digital Image Processing
Chapter 3: Spatial Domain Image Processing (4 hrs)
3.1 Spatial Processing of Digital Images
3.2 Basic Intensity Transformation Functions
3.3 Histogram of images
3.4 Spatial filtering
3.5 Histogram processing
3.6 Combining Spatial Enhancement Methods
Chapter 4: Frequency Domain Image Processing (4 hrs)
4.1 Introduction to frequency domain
4.2 Frequency spectra
4.3 Fourier series
4.4 Continuous One-Dimensional Fourier Transform and Its Inverse
4.5 Discrete One-Dimensional Fourier Transform and Its Inverse
4.6 Frequency information of images
4.7 Image enhancement in frequency domain
123
Chapter 5: Image Restoration and Reconstruction (4 hrs)
5.1 Introduction
5.2 Models of images and noise
5.3 Estimation of noise parameters
5.4 Restoration in the presence of noise
Chapter 6: Image Compression (4 hrs)
6.1 Basic definition of image compression
6.2 Data redundancy
6.3 Elements of information theory
6.4 General mechanism and types of data compression and image restoration
6.5 Huffman coding
6.6 Arithmetic coding
6.7 Dictionary based coding
6.8 Bit-plane coding
Chapter 7: Color Image Processing (4 hrs)
7.1 Color Fundamentals
7.2 Color Models (color space or color system)
7.3 Basics of Full-Color Image Processing
7.4 Morphological image processing
7.5 Color Transformations
Chapter 8: Object Recognition (4 hrs)
8.1Fourier descriptors
8.2 Machine learning and deep learning for object recognition
8.3 Three-dimensional image analysis using deep learning
Lab contents: Use Python or Matlab
Lab 1: Digital image representation
Lab 2: Image enhancement in the spatial domain
Lab 3: Image restoration and reconstruction
Lab 4: Image compression
Lab 5: Color image processing
Lab 6: Morphological image processing
Lab 7: Image segmentation
124
Lab 8: Image filtering
Lab 9: Edge Detection
Lab 10: Object Recognition
Assessment methods
Assignment/quizzes 10 %
Mid semester examination 20%
Project ` 20%
Final examination 50%
Text books:
1. R.J. Schalkoff, Wiley, Digital Image Processing and Computer Vision
2. R.C.Gonzalez & P.Wintz, Digital Image Processing - 2004
3. William K. Pratt, Digital Image Processing, 3rd edition, 2001
References:
1. Computer Vision - D.H.Ballard & C.M.Brown
2. Fundamentals of Digital Image Processing - A.K. Jain
3. Digital Picture Processing - A. Rosenfeld and A.C. Kak
4. Pattern Classification and Scene Analysis - R.O. Duda and P.E. Hart
5. Object Recognition by Computer - W.E.L. Grimson
6. Syntactic Pattern Recognition : An introduction -R.C.Gonzalez and M.G.Thomason
7. Pattern Recognition - A Statistical Approach - P.A. Devijver and J. Kittler
125
DEBRE BERHAN UNIVERSITY Computing College
Institute of Technology Department of Computer Science
Department: Computer Science
Course Title: Research Methods in Computer Science Course Code: CoSc4123
Course Load: ECTS Credit Lecture hrs. Laboratory hrs. Tutorial hrs.
3 2 2 0 0
Course Prerequisite: None
Course Category: Compulsory
Instructor’s Contact Information: Course Delivery Information:
Name: _____________________ Academic Year: ____________
Office: _____________________ Year/Semester: IV/I
Phone: _____________________ Meeting date: ____________
Email: _____________________ Meeting time: ____________
Office Hours: ________________ Meeting location: __________
Course Description
The course focuses on the study of current methods and techniques in computer science
research. The major topics includes research in computing, proposal preparation, using resources
to conduct research, writing research papers and making presentations, ethical issues. The
instructional methods and techniques include traditional lectures with some assignments, student
presentations and group problem solving.
Course objectives
Upon completion of the course, the students will be able to:
➢ Describe computing research methods
➢ Develop effective research proposal
➢ Conduct research effectively in computer related fields
➢ Appropriately use resources to conduct research
➢ Organize and prepare technical papers, thesis and presentations
➢ Work and cooperate effectively with other research workers on a computing research
➢ Aware of the research ethics and other related issues
126
Course outline
Chapter 1: Introduction and Overview of Research (5 hrs)
1.1. What is Research and not Research?
1.2. Scientific Research
1.3. Objectives, Motivations and Significance of Research
1.4. Requirements and Characteristics of Research
1.5. Types and Approaches of Research
1.6. Research Methods and Problem Solving
1.7. Effective Report Writing Principles and Criteria for Good Research
1.8. Evaluating and Reviewing Research Results
1.9. What is Research in Computing?
Chapter 2: Processes in Conducting Research (6 hrs)
2.1. Overview of Current State of the Art Areas and Techniques in Computing
2.2. Actors, Roles and Relationship
2.2.1. The Student
2.2.2. The Supervisor
2.2.3. The Examiner/Evaluator
2.3. The Process
2.3.1. Developing Research Proposal
2.3.2. Developing Problem Description
2.3.3. Following the Objectives
2.3.4. Presenting and Analyzing the Data
2.3.5. Drawing Conclusion and Identifying Future Work
2.3.6. Presenting and Defending Orally
2.3.7. Preparing Final Research Documentation (Thesis)
2.4. Proposal Preparation
2.4.1. Choosing a Subject Area
2.4.2. Choosing a Problem within the Subject Area
2.4.3. Quality Assurance of Initial Ideas
2.4.4. Write Research Proposal
2.4.5. Sample and More Acceptable Research Proposal Structure
2.4.6. Research Proposal Check-list
127
2.5. Literature Reviews
2.5.1. Importance and Roles of Literature Review
2.5.2. Skills and Keys to Effective Literature Review
2.5.3. Literature Sources (Journals, Conference Proceedings, Books, Reports,
Thesis, etc)
2.5.4. Literature Review Writing
2.6. Assessment Criteria
Chapter 3: Resources to Conduct Research (5 hrs)
3.1. Digital Libraries (IEEE, ACM, Science Direct, Springer, etc.)
3.2. Documentation Tools (Ex: Latex) and Language Skill
3.3. Team Work
3.4. Datasets
3.5. Simulation, Experimental or Visualization Tools
Chapter 4: Writing Research Papers and Making Presentations (6 hrs)
4.1. Structure of Good Quality Papers, Citations and References
4.2. Making Excellent Presentation
4.3. How to Write Good Quality Thesis and Papers (Journal and Conferences)
Chapter 5: Research Ethics (4 hrs)
5.1. Ethical Issues in Research
5.2. Plagiarism, Falsification, Fabrication
5.3. Academic Honesty Related Issues – Ex. Misleading Authorship
5.4. Other Ethical Issues in Computing
Chapter 6: Data Collection and Analysis (6 hrs)
6.1 Data Collection (primary and secondary data)
6.2 Analysis of Data with case studies
Assessment methods
Assignment/quizzes 20 %
Research report 20
Mid semester examination 20%
Final examination 40%
Text books and References
General textbooks are not suitable for this course, but there are a growing number of research papers
research published in quality journals such as IEEE and ACM that explore models, frameworks as well as
contents in Computing Research Methods to help students to become an expert in computing.
128
DEBRE BERHAN UNIVERSITY Computing College
Institute of Technology Department of Computer Science
Department: Computer Science
Course Title: Final Year Project I Course Code: CoSc4125
Course Load: ECTS Credit Lecture hrs. Laboratory hrs. Tutorial hrs.
5 3 0 0 0
Course Prerequisite: Software Engineering (CoSc3061)
Course Category: Compulsory
Instructor’s Contact Information: Course Delivery Information:
Name: _____________________ Academic Year: ____________
Office: _____________________ Year/Semester: IV/I
Phone: _____________________ Meeting date: ____________
Email: _____________________ Meeting time: ____________
Office Hours: ________________ Meeting location: __________
Course Description
This course involves identifying a problem, studying the problem, gathering data and relevant
materials
and an open presentation of the development of the project work
Course objectives
At the end of project, the student will be able to formulate project problem or prove conjecture,
do independent literature reading, write project proposal, doing requirement analysis and
modeling, present project documentation (RAD & SDD).
Course outline
Chapter 1: Introduction
1.1. Background of the Organization
1.2. Statement of the Problem and Justification
1.3. Objective of the Project
1.3.1. General Objective
1. 3.2. Specific Objective (s)
1.4. Methodologies
1.5. Tools
1.6. Scope and Limitation
1.7. Significance of the Project
129
1.8. Feasibility Study
1.9. Risk Assessment
1.10. Work Break Down
Chapter 2: Requirement Analysis and Specification
2.1 Current system
2.2 Business rules
2.3 Proposed system
2.3.1 Overview
2.3.2 Functional requirements
2.3.3 Nonfunctional requirements
2.3.4 System models
2.3.4.1 Use case model
2.3.4.2 Sequence diagram
2.3.4.3 State chart diagram
2.3.4.4 Activity diagram
2.3.4.5 Class diagram
2.3.4.6 User interface prototyping
Chapter 3: System Design
3.1 Introduction
3.2 Purpose of the system
3.3 Design goals
3.4 Current software architecture
3.5 Proposed software architecture
3.5.1 Subsystem decomposition
3.5.2 Component diagram
3.5.3 Deployment diagram
3.5.4 Persistent data management
3.5.5 Access control and security
3.5.6 Global software control
3.5.7 Boundary conditions
Assessment methods
➢ Advisor evaluation – 35%
➢ Jury evaluation – 65%
130
DEBRE BERHAN UNIVERSITY Computing College
Institute of Technology Department of Computer Science
Department: Computer Science
Course Title: Computer Security Course Code: CoSc4035
Course Load: ECTS Credit Lecture hrs. Laboratory hrs. Tutorial hrs.
5 3 2 3 1
Course Prerequisite: Data Communications and Computer Networks (CoSc2032)
Course Category: Compulsory
Instructor’s Contact Information: Course Delivery Information:
Name: _____________________ Academic Year: ____________
Office: _____________________ Year/Semester: IV/I
Phone: _____________________ Meeting date: ____________
Email: _____________________ Meeting time: ____________
Office Hours: ________________ Meeting location: __________
Course Description
To familiarize students with the security issues and technologies involved in modern information
systems, including computer systems and networks and the various ways in which information
systems can be attacked and tradeoffs in protecting networks.
Course objectives
By the end of this course, students will be able to:
Understand the basic concepts in information security, including security attacks/threats,
security vulnerabilities, security policies, security models, and security mechanisms
Understand the concepts, principles and practices related to elementary cryptography,
including plain-text, cipher-text, the four techniques for crypto-analysis, symmetric
cryptography, asymmetric cryptography, digital signature, message authentication code,
hash functions, and modes of encryption operations.
Understand issues related to program security and the common vulnerabilities in
computer programs; including buffer overflow vulnerabilities, time-of-check to time-of-
use flaws, incomplete mediation.
Explain and compare security mechanisms for conventional operating systems, including
memory, time, file, object protection requirements and techniques and protection in
contemporary operating systems.
131
Understand the basic requirements for trusted operating systems, and describe the
independent evaluation, including evaluation criteria and evaluation process.
Describe security requirements for database security, and describe techniques for
ensuring database reliability and integrity, secrecy, inference control, and multi-level
databases.
Describe threats to networks, and explain techniques for ensuring network security,
including encryption, authentication, firewalls, and intrusion detection.
Explain the requirements and techniques for security management, including security
policies, risk analysis, and physical threats and controls.
Course outline
Chapter 1: Introduction to Computer Security (3 hrs)
1.1 Basic concepts of computer security
1.2 Threats, vulnerabilities, controls, risk
1.3 Goals of computer security
1.4 Security attack
1.5 Security policies and mechanisms
1.6 Prevention, detection, and deterrence
1.7 Software security assurance
Chapter 2: Computer Threat (4 hrs)
2.1 Malicious code
2.1.1 Viruses
2.1.2 Trojan horses
2.1.3 Worms
2.1.4 Spy-wares, etc.
2.2 Class of Attacks
2.2.1 Reconnaissance
2.2.2 Access
2.2.3 Denial of Service, etc.
2.3 Program flaws
2.3.1 Buffer overflows
2.3.2 Time-of-check to time-of-use flaws
2.3.3 Incomplete mediation
132
2.4 Controls to protect against program flaws in execution
2.4.1 Operating system support and administrative controls
2.5 Program Security Defenses
2.5.1 Software development controls and Testing techniques
2.5.2 Database management systems security
Chapter 3: Cryptography and Encryption Techniques (13 hrs)
3.1 Basic cryptographic terms
3.2 Historical background
3.3 Cipher Techniques
3.3.1 Transposition Cipher
3.3.2 Substitution Cipher
3.4 Conventional encryption algorithms
3.5 Cryptanalysis
3.6 Cryptographic Systems
3.6.1 Symmetric key cryptography
3.6.1.1 DES
3.6.1.2 3DES
3.6.1.3 AES
3.6.1.4 Block Cipher Modes
3.6.2 Public key cryptography
3.6.2.1 Diffie-Hellman
3.6.2.2 RSA
3.6.3 Digital Signature
3.6.3.1 Using Public Key
3.6.3.2 Using Message Digest
3.6.3.2.1 MD4family
3.6.3.2.2 SHA family
3.6.3.2.3 RIPEMD
3.6.4 Public key Infrastructure (PKI)
3.6.4.1.1 Trusted Third Party
3.6.4.1.2 Certification
3.6.4.1.3 Key Distribution
133
3.6.4.1.4 PKI Topology
3.6.4.1.5 Enrollment and Revocation Procedures
Chapter 4: Network Security (4 hrs)
4.1 Network security basics
4.2 Threats on network
4.3 Trust, Weaknesses, Risk and Vulnerabilities
4.4 TCP/IP Suit Weaknesses and Buffer Overflows
4.5 Network security protocols
4.5.1 Application layer security
4.5.1.1 Web security
4.5.1.2 E-mail security
4.5.2 Transport layer security
4.5.3 Network layer security
4.5.4 Link layer security
4.5.5 Physical security
4.6 Wireless security
Chapter 5: Security Mechanisms (3 hrs)
5.1 Firewall
5.2 Proxy server
5.3 IDS/IPS
5.4 Virtual Private network
Chapter 6: Authentication and Access control (3 hrs)
6.1 Authentication basics
6.1.1 Password and Passphrase
6.1.2 Biometrics
6.1.2.1 Fingerprint
6.1.2.2 Palm Scan
6.1.2.3 Hand Geometry
6.1.2.4 Iris Scan
6.1.2.5 Signature Dynamics
6.1.2.6 Voice Print
6.1.2.7 Facial Scan
134
6.1.2.8 Hand Typography
6.1.3 AAA server
6.1.4 Smart card and memory cards
6.1.5 Kerberos
6.2 Access control basics
6.3 Access control models
6.3.1 Discretionary Access Control (DAC)
6.3.2 Mandatory Access Control (MAC)
6.3.3 Role-Based Access Control (RBAC)
Chapter 7: Administering security (2 hrs)
7.1 Security planning
7.2 Risk analysis
7.3 Security policies
7.4 Cyber security
7.5 Ethics
Lab content: using OpenSSL
Lab 1: Installing and configuring OpenSSL
Lab 2: Introduction and commands used in OpenSSL
Lab 3: Encryption using conventional algorithms
Lab 4: Symmetric encryption with OpenSSL
Lab 5: Encrypting file using DES
Lab 6: Asymmetric encryption with OpenSSL
Lab 7: Encrypting file using RSA
Lab 8: Combination of DES and RSA
Lab 9: Digital Certification with OpenSSL
Lab 10: Digital Signature
Assessment methods
Assignment/quizzes 10 %
Mid semester examination 20%
Project ` 20%
Final examination 50%
135
Text books:
Security in Computing, Charles P. Pfleeger and Shari L. Pfleeger. (3rd edition), Prentice-
Hall, 2003
References:
1. Computer Security, Dicter Gouman, John Wiley & Sons
2. Computer Security: Art and Science, Mathew Bishop, Addison-Wesley
3. Principles of Information Security, Whitman, Thomson.
4. Network security, Kaufman, Perl man and Speciner, Pearson Education
5. Cryptography and Network Security, 5th Edition William Stallings, Pearson Education
6. Introduction to Cryptography, Buchmann, Springer.
136
DEBRE BERHAN UNIVERSITY Computing College
Institute of Technology Department of Computer Science
Department: Computer Science
Course Title: Introduction to Distributed Systems Course Code: CoSc4038
Course Load: ECTS Credit Lecture hrs. Laboratory hrs. Tutorial hrs.
5 3 2 3 2
Course Prerequisite: Operating Systems (CoSc3023) &Data Communications and Computer
Networks (CoSc2032)
Course Category: Compulsory
Instructor’s Contact Information: Course Delivery Information:
Name: _____________________ Academic Year: ____________
Office: _____________________ Year/Semester: IV/II
Phone: _____________________ Meeting date: ____________
Email: _____________________ Meeting time: ____________
Office Hours: ________________ Meeting location: __________
Course Description
A distributed system is a computer system consisting of several independent computers,
connected by a network, that can work together to perform a task or provide a service. Typical
examples include: the World Wide Web, networked file systems, DNS, and massive
multiprocessor supercomputers. In this course we will focus on the principles, techniques, and
practices relevant to the design and implementation of such systems. The course takes a
systems-oriented view of distributed systems, concentrating on infrastructure software and
providing hands-on experience of implementing distributed systems.
Course objectives
After completing this course, you will be able to:
Explain what a distributed system is, why they would design a system as a distributed
system, and what the desired properties of such systems are;
List the principles underlying the functioning of distributed systems describe the
problems and challenges associated with distributed systems, and evaluate the
effectiveness and shortcomings of their solutions;
Recognize how the principles are applied in contemporary distributed systems, explain
how they affect the software design
137
Design a distributed system that fulfills requirements with regards to key distributed
systems properties (such as scalability, transparency, etc.)
Understand and exercise on distributed system software development using basic OS
mechanisms as well as higher-level middleware and languages.
Course outline
Chapter 1: Introduction (2 hrs)
1.1. Introduction
1.2. Definition
1.3. Goals of a Distributed System
1.4. Types of Distributed Systems
Chapter 2: Architectures (4 hrs)
2.1 Introduction
2.2 Architectural Styles
2.3 System Architectures
Chapter 3: Processes (4 hrs)
3.1. Introduction to Threads
3.2. Threads in Distributed Systems
3.3. Clients
3.4. Servers
3.5. Code Migration
Chapter 4: Communication (6 hrs)
4.1. Layer protocols
4.2. Types of Communication
4.3. Remote Procedure Call
4.4. Remote Object invocation
Chapter 5: Naming (4 hrs)
5.1. Naming Entities
5.2. Flat Naming
5.3. Structured Naming
5.4. Attribute based naming
138
Chapter 6: Synchronization (4 hrs)
6.1. Overview
6.2. Clock Synchronization
6.3. Physical Clocks
6.4. Logical Clocks
Chapter 7: Consistency and Replication (4 hrs)
7.1. Introduction to Consistency
7.2. Reasons for Replication
7.3. Replication as Scaling Technique
Chapter 8: Fault Tolerance (4 hrs)
8.1. Basic Concepts
8.2. Failure Models
8.3. Process Resilience
8.4. Distributed Commit
8.5. Recovery
Lab contents: Using Java programming language
Lab 1: Implementation of socket programming
Lab 2: Implementation of Client Server based program using RMI
Lab 3: Implementation of Client Server based program using RPC
Lab 4: Implementation of Clock Synchronization (logical/physical)
Lab 5: Implementation of Election algorithm
Lab 6: Implementation of Mutual Exclusion algorithms
Lab 7: Implementation of multi-threaded client/server processes
Lab 8: Write Program to demonstrate process/code migration
Lab 9: Write a distributed application using EJB
Lab 10: Write a program using CORBA to demonstrate object brokering
Lab 11: Use .Net framework to deploy a distributed application
139
Assessment methods
Assignment/quizzes 10 %
Mid semester examination 20%
Project ` 20%
Final examination 50%
Text books:
Andrew S. Tanenbaum and Maarten van Steen, “Distributed Systems, Principles and
Paradigms”, 2nd edition, Prentice Hall, 2007.
References:
140
DEBRE BERHAN UNIVERSITY Computing College
Institute of Technology Department of Computer Science
Department: Computer Science
Course Title: Selected Topics in Computer Science Course Code: CoSc4132
Course Load: ECTS Credit Lecture hrs. Laboratory hrs. Tutorial hrs.
5 3 3 0 0
Course Prerequisite: None
Course Category: Compulsory
Instructor’s Contact Information: Course Delivery Information:
Name: _____________________ Academic Year: ____________
Office: _____________________ Year/Semester: IV/II
Phone: _____________________ Meeting date: ____________
Email: _____________________ Meeting time: ____________
Office Hours: ________________ Meeting location: __________
Course Description
The motivation for this course lies in the interest in providing a broad viewpoint on Compute
science by surveying recent developments, major results, and hot topics in today’s leading-edge
research in computer science. 2 to 3 topics of current interest in computer science have to be
selected. These topics will prepare students with the knowledge, skills, and attitudes essential for
working in the field of computer science. The course might cover topics such as semantic web,
blockchain technology, pervasive, mobile and social computing, Internet of Things, cloud
computing, neural network, Big data, etc. This course must prepare students for advancement in
this career field and should provide students with good opportunities.
Course objectives
On successful completion of the course, students will be able to understand current hot topics in
Computer science and critically discuss the selected topics.
Assessment methods
Assignment/quizzes 20 %
Mid semester examination 30%
Final examination 50%
Textbooks and References:
This course does not have a single all-encompassing textbook and references. It is, thus,
recommended that the students read appropriate books from the given reading materials.
141
DEBRE BERHAN UNIVERSITY Computing College
Institute of Technology Department of Computer Science
Department: Computer Science
Course Title: Real Time and Embedded Systems Course Code: CoSc3026
Course Load: ECTS Credit Lecture hrs. Laboratory hrs. Tutorial hrs.
5 3 2 3 2
Course Prerequisite: Microprocessor and Assembly Language Programming (CoSc 3025)
&, Operating Systems (CoSc3023)
Course Category: Compulsory
Instructor’s Contact Information: Course Delivery Information:
Name: _____________________ Academic Year: ____________
Office: _____________________ Year/Semester: III/II
Phone: _____________________ Meeting date: ____________
Email: _____________________ Meeting time: ____________
Office Hours: ________________ Meeting location: __________
Course Description
This course provides an overview of the unique concepts and techniques needed to design and
implement computer systems having real-time response requirements in an embedded
environment. It contrasts the concepts and techniques of real-time and embedded systems with
those of more traditional computer systems. Topics include Basic concepts of real-time and
embedded systems, hardware features, sensors and actuators, programming languages, real-time
operating systems, Cyclic scheduling and priority-based scheduling, concurrent multitasking,
time-sharing access to resources, real-time applications, fault- tolerance, deterministic behavior,
design with general and specific microprocessors, hardware/software integration, embedded
systems synchronization techniques, performance optimization, and current trends in real-time
and embedded systems such as incorporating internet connectivity.
Course objectives
The course provides the opportunities for students to learn major issues in real-time and
embedded system. The objectives are:
▪ To identify the major differences and design challenges for real-time and embedded
systems compared to traditional performance-based computing systems.
142
▪ To understand and be skillful in the analysis of scheduling algorithms for real-time
computing, including the techniques to evaluate worst-case delays and utilization
bounds.
▪ To be able to apply model-driven development approaches to construct target execution
environment for simulation analysis and rapid prototyping, and to verify real-time
requirements.
▪ Evaluate, compare, and contrast different scheduling algorithms and real-time and
embedded kernel designs.
▪ Apply knowledge of real-time and embedded system concepts to address an open
research question in real-time and embedded systems and related fields.
Course outline
Chapter 1: Introduction (6 hrs)
1.1 Definitions, characteristics and examples of real-time and embedded systems
1.2 Model of real time system
1.3 Types of real time tasks
1.4 Modeling timing constraints
1.5 Computer organization concepts and memory
1.6 Design process
143
3.4 Inter process communication
3.5 Real time task scheduling
3.6 Dynamic allocation of tasks
3.7 Scheduling
3.7.1 Cyclic scheduling
3.7.2 Priority-based scheduling
3.8 Multi-tasking and Concurrency issue
3.9 Handling resource sharing and dependencies
3.9.1 Priorities and reentrancy
3.9.2 Resource sharing protocols
3.10 Fault- tolerance
3.11 Synchronization techniques
3.11.1 Centralized clock synchronization
3.11.2 Distributed clock synchronization
3.12 Real-time applications
3.13 RTOS support for semaphores, queues, and events
144
Lab contents: software: Atmel Studio 7.0 or above from www.atmel.com, Proteus Professional,
and Hardware: ARDUINO328P Kit
Lab-1: Assembly language Programming with data transfer instructions
Lab-2: Assembly language Programming with Branch, call, delay, stack instructions
Lab-3: Assembly language Programming with arithmetic and logic, rotation, instructions,
BCD, ASCII conversions
Lab-4: C Programming for data transfer through ports, LED, 7-Segment display.
Lab-5: C Programming with Timer and Interrupts
Lab-6: C Programming for serial and parallel communication
Lab-7: C Programming for Interfacing Peripherals
Lab-8: Building Arduino from Scratch
Lab-9: Implement Sensor Actuator
Lab-10: Develop sample real-time application
Assessment methods
Assignment/quizzes 10 %
Mid semester examination 20%
Project ` 20%
Final examination 50%
Text books:
1. The AVR Microcontroller and Embedded Systems using assembly and C “by
Muhammed Ali Mazidi et.al. Prentice Hall, 2011.
2. Hard Real-Time Computing Systems: Predictable Scheduling Algorithms and
Applications, Giorgio C. Buttazzo, Springer, Second/Third Edition, 2004/2011.
3. Jane Liu, Real-time Systems, Prentice Hall; ISBN: 0130996513.
References:
1. Real-Time Systems, C.M. Krishna and K.G. Shin, McGraw Hill, 1997.
2. High-Embedded Computing: Architectures, Applications, and Methodologies. Wayne•
Wolf, Morgan-Kaufman, 2007.
3. “Embedded C Programming and the Atmel AVR”, Richard Barnett, Larry O’Cull, Sarah
Cox, 2nd Ed., DELMAR CENAGE Learning, 2007
4. Embedded Systems –Architecture, Programming and Design by Raj Kaml,2nd ed., Tata
McGraw Hill publication
145
DEBRE BERHAN UNIVERSITY Computing College
Institute of Technology Department of Computer Science
Department: Computer Science
Course Title: Final Year Project II Course Code: CoSc4126
Course Load: ECTS Credit Lecture hrs. Laboratory hrs. Tutorial hrs.
5 3 0 0 0
Course Prerequisite: Final Year Project I (CoSc4125)
Course Category: Compulsory
Instructor’s Contact Information: Course Delivery Information:
Name: _____________________ Academic Year: ____________
Office: _____________________ Year/Semester: IV/II
Phone: _____________________ Meeting date: ____________
Email: _____________________ Meeting time: ____________
Office Hours: ________________ Meeting location: __________
Course Description
On this phase, students have to writing the code based on the design they have created in Final
Year Project I. You can use any programming language but if the system is designed in Object
Oriented methodology, the implementation should be based on classes and hence you should use
object-oriented programming language. Testing and evaluation has to be done at the end to the
project.
Course outline
Final Year Project II is implementation and testing phase of Final Year Project I
Assessment methods
➢ Advisor evaluation – 35%
➢ Jury evaluation – 65%
146
13.2. Elective Computer Science Courses
Course Description
Today’s data acquisition devices, computers and networks are generating data to an
unprecedented level that cries for the utilization of powerful, adaptive and intelligent learning
algorithms in order to accomplish various challenging tasks such as pattern recognition, time
series modeling, optimization, decision support, diagnosis, text mining, and multimedia
searching etc. In this course, advanced methods in the context of dimension reduction, feature
extraction and selection, clustering, and classification will be explored. The interrelationship
between these methods will be addressed, and the mixture-of expert approach and classification
combination theory will be discussed.
Course objectives
On successful completion of the module students will be able to:
Understand the concept of data warehouse and data mining
Understand the different data mining functionalities: Association, Classification,
Clustering, etc
Understand the data warehouse operations: Slicing, dicing, pivoting, rolling up, rolling
down, etc
147
Understand and use data mining modeling techniques such as CRISP-DM
Develop skill on how to measure performance of data mining system
Develop skill to measure the goodness of the data set for decision making
Develop confidence in doing research in the area of data mining and data warehousing
Develop and test data mining systems
Develop team work spirit
Course outline
Chapter 1: Overview (4 hrs)
1.1 Brief description of data mining
1.2 Data warehousing, data mining and database technology
1.3 Data mining vs Statistics
1.4 Challenges in Data Mining
1.5 Application of data mining
1.6 Data mining functionality
1.7 Are all the patterns interesting?
Chapter 2: Data Warehousing and OLAP technologies (4 hrs)
2.1 What is Data Warehouse?
2.2 Data Warehouse vs. Operational DBMS
2.3 OLTP vs. OLAP
2.4 Design of a Data Warehouse
2.5 From Tables and Spreadsheets to Data Cubes
2.6 Data Cube: A Lattice of Cuboids
2.7 Conceptual Modeling of Data Warehouses
2.8 A Data Mining Query Language, DMQL
2.9 Measures in Data warehouses
2.10 Concept Hierarchy and Data Warehouses
2.11 Typical OLAP Operations
2.12 A Star-Net Query Model
2.13 Data Warehouse Design Process
2.14 Data Warehouse Models
2.15 OLAP functionalities on Data warehouses
Chapter 3: Data Preprocessing (6 hrs)
3.1 Description
3.2 Descriptive data summarization
148
3.3 Major Tasks in Data Preprocessing
3.3.1 Data cleaning
3.3.2 Data integration
3.3.3 Data transformation
3.3.4 Data reduction
3.3.5 Discretization
3.3.6 Concept hierarchy generation
Chapter 4: Association Rule Mining (6 hrs)
4.1 Description of Association Rule
4.2 Frequent Pattern and association rule mining
4.3 Association rule evaluation
4.4 Issues in Association rule mining
4.5 Classification of Frequent Pattern Mining
4.6 Mining Frequent Item set
4.7 Algorithm to find Frequent Item set
4.7.1 The Apriori Algorithm
4.8 Generating Association Rules from Frequent Item sets
4.9 Mining Multi-Level Associations Rules
4.10 Mining Multi-Dimensional Association Rule
Chapter 5: Classification and prediction (6 hrs)
5.1 Description of prediction and classification problems
5.2 Issues in Classification
5.3 Classification Algorithm
5.3.1 Decision Tree (ID3, C4.5, CART)
5.3.2 Naïve Bayesian Classification
5.3.3 Bayesian Belief Network
5.3.4 K-Nearest-Neighbor
5.3.5 Artificial Neural Network (ANN)
5.4 Dataset preparation for Classification
5.5 Building Classification Model
5.6 Evaluation of DM classification System
5.7 Evaluation of the dataset
5.8 Evaluation of Classification Performance
5.9 Linear Regression
5.10 Nonlinear Regression
149
5.11 Other Regression-Based Methods
Chapter 6: Cluster Analysis & Applications of Data Mining (6 hrs)
6.1 Introduction
6.2 Similarity and Dissimilarity between Objects
6.3 Major Clustering Approaches
6.4 Partitioning method Approach
6.4.1 The K-Means Clustering Method
6.5 Model-based
6.5.1 Expectation maximization
6.6 Hierarchy algorithms
6.7 Agglomerative Hierarchical Clustering
6.8 Divisive Hierarchical Clustering
6.9 Distance measure between clusters
6.10 Density-based
6.11 Grid-based
6.12 Data Mining for Financial Data Analysis
6.13 Retail Industry
6.14 Telecommunication Industry
6.15 Biological Data Analysis
6.16 Intrusion Detection
Assessment methods
Assignment/quizzes 10 %
Mid semester examination 20%
Project ` 20%
Final examination 50%
Text books:
Jiawei Han and MichelineKamber, Data Mining: Concepts and Techniques, 2nd edition,
Morgan Kaufmann, 2006.
References:
1. Refaat, Markus Schneider, Toby Teorey, and Ian Witten, Data Mining: Know It All,
Morgan Kaufmann, 2008.
2. K. Cios, W. Pedrycz, R. Swiniarski, L. Kurgan, Data Mining: A Knowledge Discovery
Approach, Springer, 2007.
150
DEBRE BERHAN UNIVERSITY Computing College
Institute of Technology Department of Computer Science
Department: Computer Science
Course Title: Human Computer Interaction Course Code: CoSc4075
Course Load: ECTS Credit Lecture hrs. Laboratory hrs. Tutorial hrs.
5 3 3 0 0
Course Prerequisite: None
Course Category: Elective
Instructor’s Contact Information: Course Delivery Information:
Name: _____________________ Academic Year: ____________
Office: _____________________ Year/Semester: IV/I
Phone: _____________________ Meeting date: ____________
Email: _____________________ Meeting time: ____________
Office Hours: ________________ Meeting location: __________
Course Description
A key component to the discipline of Computer Science is the understanding and the advocacy
of the user in the development of CS applications and systems. CS graduates must develop a
mind-set that recognizes the importance of users and organizational contexts. They must employ
user-centered methodologies in the development, evaluation, and deployment of Computer
applications and systems. This requires graduates to develop knowledge of HCI, including but
not limited to such areas as user and task analysis, human factors, ergonomics, accessibility
standards, and cognitive psychology.
Course objectives
At the end of the course, the student should be able to do the following:
Describe the relationship between the cognitive principles and their application to
interfaces and products.
Explain the conceptual terms for analyzing human interaction with products such as
affordance, conceptual model, and feedback.
Analyze different user populations with regard to their abilities and characteristics for
using both software and hardware products.
Describe the connection between the development of a user interface and the user’s
knowledge of an application domain.
List several of the emerging alternative I/O devices for computers
151
Course outline
Chapter 1: Introduction (4 hrs)
1.1 Definition
1.2 Historical background
Chapter 2: Human in HCI (4 hrs)
2.1 Information input/output
2.2 Memory
2.3 Reasoning, problem solving, skill and error
2.4 Emotion
2.5 Individual difference
Chapter 3: Computer in HCI (6 hrs)
3.1 Input device
3.2 Output device
3.3 Virtual reality
3.4 Physical interaction
3.5 Paper
3.6 Memory
3.7 Processing
Chapter 4: Interaction (6 hrs)
4.1 Introduction
4.2 Models of interaction
4.3 Ergonomics
4.4 Interaction styles
4.5 The context of the interactions Paradigms
Chapter 5: Interaction Design and HCI in the Software Process (6 hrs)
5.1 Interaction Design
5.2 HCI in the Software Process
Chapter 6: Design Rules and Implementation support (6 hrs)
6.1 Design Rules
6.2 Implementation Support
Chapter 7: Evaluation Techniques and Universal Design (8 hrs)
7.1 Evaluation Techniques
152
7.2 Universal Design
Chapter 8: User Support (8 hrs)
8.1 Requirements of user support
8.2 Approaches to user support
8.3 Adaptive help systems
8.4 Designing user support systems
Assessment methods
Assignment/quizzes 20 %
Mid semester examination 30%
Final examination 50%
153
DEBRE BERHAN UNIVERSITY Computing College
Institute of Technology Department of Computer Science
Department: Computer Science
Course Title: Event Driven Programming Course Code: CoSc4055
Course Load: ECTS Credit Lecture hrs. Laboratory hrs. Tutorial hrs.
5 3 2 3 1
Course Prerequisite: None
Course Category: Elective
Instructor’s Contact Information: Course Delivery Information:
Name: _____________________ Academic Year: ____________
Office: _____________________ Year/Semester: IV/I
Phone: _____________________ Meeting date: ____________
Email: _____________________ Meeting time: ____________
Office Hours: ________________ Meeting location: __________
Course Description
This is a course in event-driven programming building on prior programming experience. The
course covers topics in control arrays, exception handling, and the use of properties, controls,
and multiple forms. Introduces database manipulation and database controls, including use of
database linking and programming applications to display, edit, and update databases by use of
the data access object. This course uses advanced programming tools such as Visual Studio .Net
Course objectives
Upon successful completion of the course, the student should be able to:
Demonstrate knowledge of a high-level object oriented programming language.
Demonstrate use of data types in program and systems development.
Demonstrate knowledge of event-driven programming and systems development.
Develop well-organized, block-structured, easily read programs.
Demonstrate ability to design graphical user interfaces (GUI)
Demonstrate ability to code arithmetic instructions, conditional statements, repetition
structures, sub procedures, and control arrays in programs.
Demonstrate ability to develop programming applications to manipulate databases
(including query, display, edit, update functions).
Demonstrate ability to develop integrated multiform programs.
154
Develop appropriate testing procedures and documentation for programs
Course outline
Chapter 1: Introduction (4 hrs)
1.1 Introduction to Software Development
1.2 Software Development Approaches
1.3 Rapid Application Development
1.4 Software Development Principles
Chapter 2: Introduction to .NET (6 hrs)
2.1 The .NET Platform and Its Architecture
2.1.1 Base Class Library
2.1.2 Common Language Runtime
2.2 Uses of .NET Platform in Application Development
2.3 Introduction to Microsoft Visual Studio 2010
2.3.1 SDI and MDI Forms
2.3.2 Controls
Chapter 3: Object-Oriented Fundamentals in VB.NET (8 hrs)
3.1 Language Fundamentals
3.1.1 Variables and Data Types
3.1.2 Control Flow
3.1.3 Methods and Their Types
3.1.4 Events
3.2 Classes and Objects
3.3 Inheritance and Overloading Implementation
3.4 Classes versus Components
Chapter 4: Exception Handling (4 hrs)
4.1 Introducing Exception Handling
4.2 Structured Exception Handling
4.3 Implementing Exception Handling
Chapter 5: Manipulating Files How to open a Text File (4 hrs)
5.1 Read a file line by line in VB .NET
5.2 Write to a Text File
5.3 How to Copy, Move and Delete a File
155
Chapter 6: Database Programming (6 hrs)
6.1 The ADO.NET Architecture
6.2 LINQ Architecture
6.3 The .NET Data providers
6.4 Working with the common .NET Data providers
6.5 The Dataset Component
6.6 Using the DataGridView for database access
Assessment methods
Assignment/quizzes 10 %
Mid semester examination 20%
Project ` 20%
Final examination 50%
156
DEBRE BERHAN UNIVERSITY Computing College
Institute of Technology Department of Computer Science
Department: Computer Science
Course Title: Multimedia Course Code: CoSc4077
Course Load: ECTS Credit Lecture hrs. Laboratory hrs. Tutorial hrs.
5 3 2 3 1
Course Prerequisite: None
Course Category: Elective
Instructor’s Contact Information: Course Delivery Information:
Name: _____________________ Academic Year: ____________
Office: _____________________ Year/Semester: IV/I
Phone: _____________________ Meeting date: ____________
Email: _____________________ Meeting time: ____________
Office Hours: ________________ Meeting location: __________
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 objectives
At the end of the course, students should:
Understand the basic concepts of multimedia
Understand where and how to use multimedia systems
Design different kinds of multimedia systems
Write different kinds of code that are used in Multimedia
Course outline
Chapter 1: Introduction (4 hrs)
1.1 What is Multimedia?
1.2 History of Multimedia
1.3 Multimedia and Hypermedia
1.4 Multimedia and World Wide Web
157
Chapter 2: Multimedia Authoring and Tools (4 hrs)
2.1 What is Multimedia Authoring?
2.2 Some Useful Editing and Authoring Tools
2.3 Authoring Paradigms
Chapter 3: Data Representations (5 hrs)
3.1 Graphics/Image Data Representation
3.2 Digital audio and MIDI
3.3 Popular File Formats
Chapter 4: Image and Video (5 hrs)
4.1 Color Science
4.2 Color Models in Images
4.3 Color Models in Video
Chapter 5: Fundamental Concepts in Video (6 hrs)
5.1 Types of Video Signals
5.2 Analogue Video
5.3 Digital Video
5.4 Different TV standards
Chapter 6: Basics of Digital Audio (hrs)
6.1 Digitization of Sound
6.2 Quantization and Transmission of Audio
Chapter 7: Lossless Compression Algorithms (6 hrs)
7.1 Basics of Information Theory
7.2 Run-Length Coding
7.3 Variable-Length Coding (VLC)
7.4 Dictionary Based Coding
7.5 Huffman Coding
7.6 Arithmetic Coding
7.7 Lossless Image Compression
Chapter 8: Loss Compression Algorithms (6 hrs)
8.1 Distortion Measures
8.2 The Rate Distortion Theory Quantization
8.3 Transform Coding
158
Chapter 9: Image Compression Standards (6 hrs)
9.1 the JPEG Standard
9.2 Basic Video Compression Techniques
9.3 Introduction to Video Compression
9.4 Video Compression Based on Motion Compensation
9.5 MPEG Video and Audio Coding
9.6 Video Compression
9.7 MPEG Audio Compressions
Assessment methods
Assignment/quizzes 10 %
Mid semester examination 20%
Project ` 20%
Final examination 50%
159
DEBRE BERHAN UNIVERSITY Computing College
Institute of Technology Department of Computer Science
Department: Computer Science
Course Title: Mobile Application Development Course Code: CoSc4083
Course Load: ECTS Credit Lecture hrs. Laboratory hrs. Tutorial hrs.
5 3 2 3 1
Course Prerequisite: Object Oriented Programing (CoSc2052)
Course Category: Elective
Instructor’s Contact Information: Course Delivery Information:
Name: _____________________ Academic Year: ____________
Office: _____________________ Year/Semester: IV/I
Phone: _____________________ Meeting date: ____________
Email: _____________________ Meeting time: ____________
Office Hours: ________________ Meeting location: __________
Course Description
This course introduces mobile application development for the Android platform. Android is a
software stack for mobile devices that includes an operating system, middleware and key
applications. The Android SDK provides the tools and APIs necessary to begin developing
applications on the Android platform using the Java programming language. Students will learn
skills for creating and deploying Android applications, with particular emphasis on software
engineering topics including software architecture, software process, usability, and deployment.
Course objectives
Understand the basic principles of mobile application development using android platform
Learning Outcomes
The program provides a knowledge and understanding of the following:
● User-interface design for mobile applications
● Managing application data
● Integrating mobile application with cloud services.
● Addressing enterprise requirements in mobile applications – performance, scalability,
modifiability, availability and security.
● Testing methodologies for mobile applications.
● Publishing, deployment, maintenance and management of mobile application.
160
● Effective communication skill acquired during group work
● A hand on experience on mobile technologies
Course outline
Topic 1. Introduction
● Introduction to Android
● Android application structure
● Android UI architecture [application context, intent, activity lifecycle]
● UI Components [Text control,]
Topic 2. Notification, Menus and Dialogs
● Intents with parameter
● Notification with status bar and toast
● Localization
● Context/option menu
● Alert dialog
● Dialog as activity
Topic 3. Location and Map
● How to work with Google Map
● How to work with GPS
Topic 4. Working with Data Storage
● Shared preference
● Working with files
● Working with SQL light
Topic 5. Content Providers
● Introduction to content provider
● Query provider
Topic 6. Network Communication
● Introduction to web service
● HTTP Client
● XML and JSON
Topic 7. Service
● Service Lifecycle
● Foreground Service
161
Topic 8. Publishing
● How to prepare for publishing
● Publishing to android market
Teaching Methods
The teaching methods that shall be employed for this course are lecturing, demonstration,
classroom discussion and classroom action research.
Assessment Method
Assignment 15%
Lab assessment 15%
Project I and II 40%
Final Exam 30%
Reference
1. Ramnath, Rajiv, Roger Crawfis, and Paolo Sivilotti. Android 3 SDK programming for
dummies. Hoboken, N.J. Chichester: Wiley John Wiley distributor, 2011
2. Phillips, Bill, Chris Stewart, and Kristin Marsicano. Android programming : the Big Nerd
Ranch guide. Atlanta, GA: Big Nerd Ranch, 2017
3. Tomasz Nurkiewicz and Ben Christensen, Reactive Programming with RxJava,
O’ReillyMedia, 2016.
4. Brian Fling, Mobile Design and Development, O’Reilly Media, Inc., 2009.
5. Maximiliano Firtman, Programming the Mobile Web, O’Reilly Media, Inc., 2nd ed.,
2013.Cristian Crumlish and Erin Malone, Designing Social Interfaces, 2nd ed., O’Reilly
Media, Inc., 2014.
6. Benjamin Muschko, Gradle in Action, Manning Publications, 2014.
7. Craig Larman, Applying UML and Patterns: A Guide to Object-Oriented Analysis and
Design and Iterative Development, 3rd ed., Prentice Hall, 2004.
162
Mobile Application Lab
Week 1- Week 4 Topic 1 ,2 – Installation and
configuration
– Basics on android
studio
– UI design
– Notification and
menu
Week 5- Week 8 Topic 3,4 – Configuration of
Google map
– Working on
Google map
– Working on GPS
Week 9- Week 13 Topic 5,6 – Testing query
providers
– Using web service
,http client and
Json
Week 14- Week Topic 7,8 – -how to work on
16 foreground service
– How to publish
app
163
DEBRE BERHAN UNIVERSITY Computing College
Institute of Technology Department of Computer Science
Department: Computer Science
Course Title: Introduction to Machine Learning Course Code: CoSc4114
Course Load: ECTS Credit Lecture hrs. Laboratory hrs. Tutorial hrs.
5 3 2 3 1
Course Prerequisite: Linear Algebra (MATH2011) & Probability and Statistics (STAT2015)
Course Category: Elective
Instructor’s Contact Information: Course Delivery Information:
Name: _____________________ Academic Year: ____________
Office: _____________________ Year/Semester: IV/II
Phone: _____________________ Meeting date: ____________
Email: _____________________ Meeting time: ____________
Office Hours: ________________ Meeting location: __________
Course Description
Machine Learning is the study of how to build computer systems that learn from experience.
This course will explain how to build systems that learn and adapt using real-world applications.
Some of the topics to be covered include concept learning, neural networks, genetic algorithms,
reinforcement learning, instance-based learning, and so forth. The course will be project-
oriented, with emphasis placed on writing software implementations of learning algorithms
applied to real-world problems.
Course objectives
At the end of the course, students should:
Know about the fundamental concepts in machine learning, the different classes of
machine learning algorithms, and ways to choose and apply different basic machine
learning algorithms.
Learn about ways to evaluate the performance of learning systems.
Be able to prepare data and apply machine learning methods to achieve a learning goal
within an intelligent system.
Be able to judge the suitability of a machine learning paradigm for a given problem and
the available data, have an understanding of the capabilities and limitations of the
considered machine learning algorithms, and is able to identify problems or misleading
results.
164
Course outline
Chapter 1: Introduction (4 hrs)
1.1 What is machine learning?
1.2 History and relationships to other fields
1.3 Essential math and statistics for machine learning
1.4 Applications of machine learning
1.5 Types of machine learning techniques
Chapter 2: Supervised learning (8 hrs)
2.1 Introduction
2.2 Linear model
2.2.1 Regression
2.2.2 Understand the operation regression
2.2.2.1 Linear regression
2.2.2.2 Polynomial regression
2.2.2.3 Regularization techniques
2.2.2.4 Understand the metrics used to evaluate regression
2.2.2.5 A case study in regression
2.2.3 Classification
2.2.4 Understand the operation of classifiers
2.2.4.1 KNN
2.2.4.2 Naïve Bayes
2.2.4.3 Logistic regression
2.2.4.4 Decision trees
2.2.4.5 Random forest
2.2.4.6 Support vector machines
2.2.5 A case study in classification
2.2.6 Understand the metrics used to evaluate classifiers
2.3 How to improve supervised models
2.4 Parametric models for classification and regression
2.5 Understand the problems of over-parameterization and the curse of dimensionality
2.6 Use regularization on over-parameterized models
165
Chapter 3: Unsupervised learning (8 hrs)
3.1 Introduction
3.2 Understand the principles of unsupervised learning models
3.3 Clustering approaches
3.3.1 K-Means
3.3.2 K nearest neighbors
3.3.3 Hierarchical clustering
3.4 Correctly apply and evaluate clustering models
3.5 Association rule learning
3.5.1 Apriori algorithm
3.6 Reinforcement learning
3.6.1 Markov decision
3.6.2 Monte Carlo prediction
3.6.3 Case study
Chapter 4: Neural Network (6 hrs)
1.1 Introduction
1.1.1 Understanding the brain
1.1.2 Neural networks as a paradigm for parallel processing
1.2 The Perceptron
1.3 Training a Perceptron
1.4 Artificial neural network
1.5 Multilayer Perceptron
1.6 Back propagation algorithm
1.6.1 Nonlinear Regression
1.6.2 Two-Class Discrimination
1.6.3 Multiclass Discrimination
1.6.4 Multiple Hidden Layers
1.7 Training procedures
1.7.1 Improving convergence
1.7.2 Overtraining
1.7.3 Structuring the network
1.8 Tuning the network size
1.9 A case study in neural network
Chapter 5: Model Evaluation (6 hrs)
5.1 Data processing
166
5.2 Data cleaning and transforming
5.3 Feature selection and visualization
5.4 Model selection and tuning
5.5 Methods of dimensional reduction
5.5.1 Principal component analysis (PCA)
5.5.2 Singular value decomposition (SVD)
5.5.3 T-distributed Stochastic Neighbor Embedding (t-SNE)
5.6 Optimize the performance of the model
5.7 Control model complexity
5.8 Over-fitting and Under-fitting
5.9 Cross-Validation and Re-sampling methods
5.9.1 K-Fold Cross-Validation
5.9.2 5 ×2 Cross-Validation
5.9.3 Bootstrapping
5.10 Gradient descent (batch, stochastic)
5.10.1 Bias, variance
5.11 Performance evaluation methods
5.12 Tool kit
Assessment methods
Assignment/quizzes 10 %
Mid semester examination 20%
Project ` 20%
Final examination 50%
Text books:
Bishop, C. (2006), Pattern Recognition and Machine Learning, Berlin: Springer-Verlag
References:
1. Shalev-Schwartz & Ben-David, Understanding Machine Learning. Cambridge University Press.
2014.
2. Hastie, Tibshirani & Friedman, The Elements of Statistical Learning: Data Mining, Inference,
and Prediction, 2nd Edition, Springer, 2009
3. Goodfellow, Bengio &Courville, Deep Learning. MIT Press. 2016
167
DEBRE BERHAN UNIVERSITY Computing College
Institute of Technology Department of Computer Science
Department: Computer Science
Course Title: Introduction to Natural Language Processing Course Code: CoSc4116
Course Load: ECTS Credit Lecture hrs. Laboratory hrs. Tutorial hrs.
5 3 2 3 1
Course Prerequisite: Automata and Complexity Theory (CoSc3101)
Course Category: Elective
Instructor’s Contact Information: Course Delivery Information:
Name: _____________________ Academic Year: ____________
Office: _____________________ Year/Semester: IV/II
Phone: _____________________ Meeting date: ____________
Email: _____________________ Meeting time: ____________
Office Hours: ________________ Meeting location: __________
Course Description
This course provides an introduction to the field of computational linguistics, natural language
processing (NLP). We will learn how to create systems that can understand and produce
language, for applications such as information extraction, machine translation, automatic
summarization, question-answering, and interactive dialogue systems. The course will cover
linguistic (knowledge-based) and statistical approaches to language processing in the three
major subfields of NLP: syntax (language structures), semantics (language meaning), and
pragmatics/discourse (the interpretation of language in context).
Course objectives
To introduce the fundamental concepts and ideas in natural language processing (NLP)
To develop an in-depth understanding of both algorithms for processing linguistic
information and the underlying computational properties of natural languages.
The course considers word-level, syntactic, and semantic processing from both a
linguistic and an algorithmic perspective, aiming to get up to speed with current research
in the area
168
Course outline
Chapter 1: Introduction (2 hrs)
1.1 Natural Language Processing concepts
1.2 Ambiguity and uncertainty in language
1.3 NLP tasks in syntax, semantics, and pragmatics
1.4 Applications of NLP
Chapter 2: Machine learning for Natural Language processing (4 hrs)
2.1 Classification and Regression
2.2 Clustering
2.3 Neural Networks
Chapter 3: Words and Transducers (4 hrs)
3.1 Introduction
3.2 Finite state morphological parsing
3.3 Transducers and orthographic rules
3.4 Minimum edit distance
Chapter 4: Language Modeling (6 hrs)
4.1 Role of language models
4.2 N-grams
4.3 Parts of speech tagging (POST) and sequence labeling
4.4 Word classes
4.5 Hidden Markov (Forward and Viterbi algorithms and EM training)
4.6 Maximum entropy models
4.7 Estimating parameters and smoothing
4.8 Evaluating language models
Chapter 5: Syntactic parsing (6 hrs)
5.1 Grammar formalisms and treebanks
5.2 Efficient parsing for context-free grammars (CFGs)
5.3 Statistical parsing and probabilistic CFGs (PCFGs)
5.4 Lexicalized PCFGs
5.5 Neural shift-reduce dependency parsing
5.6 Language and complexity
169
Chapter 6: Semantic Analysis (6 hrs)
6.1 Representing meaning
6.2 Computational semantics
6.3 Lexical semantics and word-sense disambiguation
6.4 Compositional semantics
6.5 Semantic Role Labeling and Semantic Parsing
Chapter 7: Application of NLP (4 hrs)
7.1 Information extraction
7.2 Information retrieval
7.3 Machine Translation
7.4 Question-Answering and Dialogue system
7.5 Text summarization
7.6 Text classification
7.7 Speech recognition
7.8 Optical character recognition
Assessment methods
Assignment/quizzes 10 %
Mid semester examination 20%
Project ` 20%
Final examination 50%
170
DEBRE BERHAN UNIVERSITY Computing College
Institute of Technology Department of Computer Science
Department: Computer Science
Course Title: Simulation and Modeling Course Code: CoSc4079
Course Load: ECTS Credit Lecture hrs. Laboratory hrs. Tutorial hrs.
5 3 2 3 1
Course Prerequisite: None
Course Category: Elective
Instructor’s Contact Information: Course Delivery Information:
Name: _____________________ Academic Year: ____________
Office: _____________________ Year/Semester: IV/I
Phone: _____________________ Meeting date: ____________
Email: _____________________ Meeting time: ____________
Office Hours: ________________ Meeting location: __________
Course Description
Simulation is the art of using tools - physical or conceptual models, or computer hardware and
software, to attempt to create the illusion of reality. The discipline has in recent years expanded
to include the modeling of systems that rely on human factors and therefore possess a large
proportion of uncertainty, such as social, economic or commercial systems. These new
applications make the discipline of modeling and simulation a field of dynamic growth and new
research.
Course objectives
Examines the state-of-the-art in recent research into methods of approaching new
applications in the field of modeling and simulation
Provides an introduction to new modeling tools such as differential inclusions, metric
structures in the space of models, semi-discrete events, and use of simulation in
parallel optimization techniques
Discusses recently developed practical applications: for example, the PASION
simulation system, stock market simulation, a new fluid dynamics tool,
manufacturing simulation and the simulation of social structures
Illustrated throughout with a series of case studies
171
Course outline
Chapter 1: Basic Concepts and Tools (4 hrs)
1.1. Modeling and simulation: What is it?
1.2. Validity, credibility, tractability and verification
1.3. System state and causal systems
1.4. Static and dynamic systems
1.5. Classification of dynamical systems
1.6. Discrete and continuous simulation
1.7. Deterministic and stochastic systems
1.8. Evolution of simulation software
Chapter 2: Continuous simulation (4 hrs)
2.1. Introduction
2.2 Ordinary differential equations and models of concentrated parameter systems
2.3. Continuous simulation with analog computers
2.4. Numerical methods for ordinary differential equations (ODE)
2.5. Signal flow graphs
2.6. Bond graphs
2.7. Alternative modeling tools and dynamic uncertainty
2.8. Distributed parameter systems
2.9. System dynamics
2.10. Galactic simulations and the N-body problem
Chapter 3: Discrete and combined simulation (4 hrs)
3.1. Are discrete models valid?
3.2. Event modeling of discrete dynamic systems
3.3. Event graphs
3.4. PASION simulation system
3.5. Queuing Model Generator QMG
3.6. Complex system simulator of PASION
3.7. Monte Carlo Simulation
172
Chapter 4: Differential inclusions in Modeling and Simulation (4 hrs)
4.1. Differential inclusions
4.2. Possible applications
4.3. Differential inclusion solver
4.4. Application in uncertainty treatment
4.5. Uncertain future and differential inclusions
Chapter 5: Fluid dynamics (2 hrs)
5.1. Computational fluid dynamics
5.2. Numerical problems
5.3. The simulation tools
5.4. Examples
5.5. Oscillating gas flow
5.6. Two-dimensional fluid-dynamics models are invalid
Chapter 6: Simulating Phenomena of General Relativity (2 hrs)
6.1. Some basic concepts
6.3. The simulation tool and model time
6.4. Simulation experiments
Chapter 7: Interactions between hostile hierarchical structures (4 hrs)
7.1. Introduction
7.2. The model
7.3. Structures
7.4. The tool and the model implementation
7.5. Simulation of the struggle between terrorist and anti-terrorist organizations
Chapter 8: On a metric structure in the space of dynamic system models (4 hrs)
8.1. Definitions
8.2. DEVS
8.3. Distance between models
8.4. Optimization with the simplex and BFGS algorithms
8.5. A case study of a parallel optimization algorithm
Chapter 9: Multi-server models (4 hrs)
9.1. M/G/1 and other queuing models
9.2. Burke’s theorem
173
9.3. Network of queues
9.4. Jackson theorem
9.5. SimEvent tool box in MATLAB
9.6. General features of network simulation packages
9.7. Case study of OMNET++/NetSim/ NS2/NS3
Assessment methods
Assignment/quizzes 10 %
Mid semester examination 20%
Project ` 20%
Final examination 50%
Text books:
Modeling and Simulation: The Computer Science of Illusion, 2006
174
13.3. Supportive Courses
Aims
The course aims at introducing students in finding numerical solutions to problems for which
analytical solutions either do not exist or are not readily or cheaply obtainable. It enables
students to apply linear algebra and calculus. It also aims to helps student develop programming
skills.
Course description
This course covers basic concepts in error estimation, solutions of non-linear equations,
solutions of system of linear equations and non-linear equations, finite differences, numerical
interpolations, numerical differentiation and numerical integration.
Course objectives
On completion of the course, successful students will be able to:
➢ understand sources of errors
➢ identify absolute and relative errors,
➢ understand a range of iterative methods for solving linear and non-linear systems of
equations,
➢ comprehend the convergence properties of the numerical methods,
➢ understand the roles of finite differences,
175
➢ grasp practical knowledge of polynomial interpolation in numerical differentiation and
integration,
➢ appreciate the application of basic linear algebra and calculus concepts in deriving the
numerical algorithms,
➢ examine how a small change in the data and ill-conditioned algorithms affect the solution of
the mathematical problems,
➢ translate mathematical algorithms into computer programming,
➢ interpret computer outputs
Course outline
Chapter 1: Basic concepts in error estimation (12 hrs)
1.1 Sources of errors
1.2 Approximations of errors
1.3 Rounding off errors
1.4 Absolute and relative errors
1.5 Propagation of errors
1.6 Instability
Chapter 2: Nonlinear equations (8 hrs)
2.1 Locating roots
2.2 Bisection and False – position methods
2.3 Interpolation and Secant methods
2.4 Iteration Methods
2.5 Conditions for convergence
2.6 Newton-Raphson Method
Chapter 3: System of equations (9 hrs)
3.1 Revision on direct methods for system of linear equations (SLE)
3.2 Indirect methods for SLE
3.2.1 Gauss Jacobi method
3.2.2 Gauss Seidel method
3.3 Systems of non-linear equations using Newton's method
Chapter 4: Finite differences (9 hrs)
4.1 Shift operators
4.2 Forward difference operators
176
4.3 Backward difference operators
4.4 Central difference operators
Chapter 5: Interpolations (9 hrs)
5.1 Linear interpolation
5.2 Quadratic interpolation
5.3 Lagrange’s interpolation formula
5.4 Divided difference formula
5.5 Newton interpolation formula (forward and backward formulas)
Chapter 6: Application of interpolations (5 hrs)
6.1 Finding roots
6.2 Numerical Differentiation
6.3 Numerical Single Integration
6.3.1 Trapezoidal rule
6.3.2 Simpson's rule
6.3.3 Error analysis in Trapezoidal and Simpson’s rules
6.4 Numerical Double Integration
6.4.1 Trapezoidal rule
6.4.2 Simpson's rule
6.4.3 Error analysis in Trapezoidal and Simpson’s rules
Weeks Topics to be covered
1-3 Bisection and false position methods
4-5 Bisection and False-position methods
6-7 Fixed-point iteration, Netwton-Raphison and Secant methods
7-9 Gauss-Jacobi and Gauss-Seidel iteration
10 Newton’s Method for system of Nonlinear Equations
11 Newton’s forward difference and backward interpolation formulae
12-13 Lagrange’s interpolation and Newton’s divided difference interpolation formulae
14-15 Finding roots and Numerical differentiation
16 Numerical Integration
177
Teaching- learning methods
Three contact hours of lectures and two hours of computer lab per week. Students do home
assignment.
Assessment methods
➢ Computer lab assignments/quizzes 20%
➢ Mid semester examination 30%
➢ Final examination 50%
Teaching materials
Textbooks:
➢ Burden, R. L. & Faires, J. D. (2005). Numerical analysis. 8 th ed. Thomson Brooks/Cole.
➢ Chapra, S. C. & Canale, R. P. (2010). Numerical methods for engineers. Boston: McGraw-
Hill HigherEducation.
➢ Gerald, C. F. and Wheatlly, P. O. (2018). Applied Numerical analysis. 7 th ed., Edsion
Wesley, Co.
Reference:
➢ Atkinson, K. E. (2008). An introduction to numerical analysis. John wiley & sons.
➢ Chapra, S.C. and Raymond, P.C. (1998). Numerical Methods for Engineering. 9 th ed.,
McGraw-Hill, New York.
➢ Gerald, C.F. & Wheatley, P.O. (1994). Applied Numerical Analysis. 5 th ed., Edison
Wesley.
➢ Grewal, B.S. (1994). Numerical Methods in Engineering and Science. Khanna, New Delhi.
➢ Kiusalaas, J. (2005). Numerical methods in Engineering with MATLAB. Cambridge
University Press.
➢ Ralston, A., & Rabinowitz, P. (2001). A first course in numerical analysis. Courier
Corporation.
➢ Shanthakumar, M. (1987). Computer Based Numerical Analysis. Mysore.
➢ Stoer, J., & Bulirsch, R. (2013). Introduction to numerical analysis (Vol. 12). Springer
Science & Business Media.
➢ Yang, Won-young (2005). Applied Numerical Methods Using MATLAB. John Wiley &
Sons
178
DEBRE BERHAN UNIVERSITY Computing College
Institute of Technology Department of Computer Science
Department: Computer Science
Course Title: Mathematics for Natural Science Course Code: Math1011
Course Load: ECTS Credit Lecture hrs. Laboratory hrs. Tutorial hrs.
5 3 3 0 2
Course Prerequisite: None
Course Category: Supportive
Instructor’s Contact Information: Course Delivery Information:
Name: _____________________ Academic Year: ____________
Office: _____________________ Year/Semester: I/I
Phone: _____________________ Meeting date: ____________
Email: _____________________ Meeting time: ____________
Office Hours: ________________ Meeting location: __________
Aims
The course intends to prepare mathematics students in the basic concepts and materials
necessary for the study of higher mathematics courses. It treats topics rigorously in order to lay a
strong foundation for the study of all mathematics courses.
Course description
This course rigorously discusses the basic concepts of logic and set theory, the real and complex
number systems, mathematical induction, least upper bound and greatest lower bound, functions
and types of functions, polynomial and rational functions, logarithmic and exponential functions,
trigonometric functions, hyperbolic functions and their graphs, and analytic geometry.
Course objectives
On completion of the course, successful students will be able to:
➢ understand mathematical logic,
➢ apply logic in reasoning and mathematical proofs,
➢ use quantifiers in open propositions,
➢ understand concepts of sets and set operations,
➢ understand the fundamental properties of real and complex numbers,
➢ find least upper bound and greatest lower bound,
➢ use mathematical induction in proofs,
➢ write polar representation of complex numbers,
179
➢ understand different types of functions, their inverses and graphs,
➢ find zero’s of some polynomials,
➢ identify various forms of conic sections and derive their equations,
➢ use basic properties of logarithmic, exponential, hyperbolic, and trigonometric functions.
Course outline
Chapter 1: Logic and set theory (12 hrs)
1.1 Definition and examples of proposition
1.2 Logical connectives
1.3 Compound (or complex) propositions
1.4 Tautology and contradiction
1.5 Open proposition and quantifiers
1.6 The concept of a set and the underlying set operations
Chapter 2: The real and complex number systems (12 hrs)
2.1 The real number system
2.1.1 The natural numbers, Principle of mathematical induction and the Well
ordering principle
2.1.2 The integers, rational numbers and irrational numbers
2.1.3 Upper bound, lower bound, lub, glb, completeness property of the set of
real numbers, and the Archimedean principle
2.2 Complex number system
2.2.1 Definition of complex numbers and the underlying operations
2.2.2 Polar representation of complex numbers and the De-Moiver’s formula
2.2.3 Extraction of roots
Chapter 3: Functions (12 hrs)
3.1 Review of relations and functions
3.2 Real-valued functions and their properties
3.3 Types of functions (one-to-one, onto) and inverse of a function
3.4 Polynomials, zero’s of polynomials, rational functions, and their graphs
3.5 Definitions and basic properties of logarithmic, exponential, hyperbolic,
trigonometric functions, and their graphs.
Chapter 4: Analytic geometry (28 hrs)
4.1 Division of segments and various forms of equation of a line
180
4.2 Conic sections: Equation of a circle, parabola, ellipse and hyperbola
4.3 The general second-degree equation
Teaching –learning methods
Four contact hours of lectures and two hours of tutorials per week. Students do home
assignments.
Assessment methods
➢ Assignment/quizzes 20%
➢ Mid semester examination 30%
➢ Final examination 50%
Teaching materials
Textbooks:
Abera Abay (1998). An introduction to Analytic Geometry. AAU.
Alemayehu Haile and Yismaw Alemu (1993). Mathematics an Introductory course.
Department of mathematics, AAU
Reference:
Barnett, R. A. (1999). Precalculus, functions and graphs. McGram Hill.
Bettinger, M. L. (1982). Logic, proof and sets. Adddison-Wesley.
Kinfe Abraha (2002). Basic Mathematics. Mekelle University, Mega Printing Press, Mekelle,
Ethiopia.
Swokowski, E., & Cole, J. (2011). Precalculus: Functions and graphs. Cengage Learning.
Zill, D., & Dewar, J. (2011). Algebra and Trigonometry. Jones & Bartlett Publishers.
181
DEBRE BERHAN UNIVERSITY Computing College
Institute of Technology Department of Computer Science
Department: Computer Science
Course Title: Applied Mathematics I Course Code: Math1041
Course Load: ECTS Credit Lecture hrs. Laboratory hrs. Tutorial hrs.
5 3 3 0 0
Course Prerequisite: None
Course Category: Supportive
Instructor’s Contact Information: Course Delivery Information:
Name: _____________________ Academic Year: ____________
Office: _____________________ Year/Semester: I/II
Phone: _____________________ Meeting date: ____________
Email: _____________________ Meeting time: ____________
Office Hours: ________________ Meeting location: __________
Course objectives: At the end of this course, the students will be able to:
• Describe matrices, rank of matrix and determinants
• Perform different operations on matrices
• Develop techniques of solving system of linear equations
• Explain different types of matrices and their inverse
• Describe the principles of vectors and scalars
• Describe limit and continuity
• Develop different techniques and rules of differentiation and integration
• Evaluate extreme values of functions
• Compute area, volume, arc length, surface area by applying integration
Course Contents
Chapter 1: Matrices and determinants
1.1 Matrices
1.1.1 The algebra of matrices
1.1.2 Types of matrices
1.1.3 Inverse of matrix
1.1.4 Rank of a matrix
1.1.5 Systems of equations, Gaussian elimination, solving systems of equation by
Gaussian elimination
182
1.2 Determinants
1.2.1 Definition and properties of determinants
1.2.2 Cramer’s rule
Chapter 2: Vectors
2.1 Definition of vectors
2.2 Vectors in 2 and 3 spaces
2.3 Scalar product, norm of a vector
2.4 Lines and planes
2.5 Vector product
Chapter 3: Limit and continuity
3.1 Limit definitions and examples
3.2 Basic limit theorems
3.3 Different types of limits
3.4 Continuity
3.5 The intermediate value theorem
Chapter 4: Derivatives
4.1 Definitions and rules
4.2 Differentiability
4.3 The chain rule
4.4 Derivative of sum, product and quotient of functions
4.5 Derivatives of inverse functions
4.6 Higher derivatives
4.7 Implicit differentiation
Chapter 5: Application of derivative
5.1 Rates of change
5.2 Mean value theorem and their applications.
5.3 The First and second derivative test and their applications
5.4 Extreme of a function and its application
5.5 Curve sketching
5.6 L’Hôpital’s Rule
Chapter 6: The Integral
6.1 The Indefinite integrals and its properties
183
6.2 Fundamental theorems of calculus
6.3 Change of variables
6.4 Indefinite integrals
6.5 Techniques of integration
6.6 Improper integrals
6.7 Applications of integration (Area, and volume of region)
Assessment Methods
1. Quiz, Test and mid-exam …………………………………............30%
2. Assignment and Presentation ……………….…………………......20%
3. Final Exam ………………………………………………...……….50%
Total…………………………………………………………….........100%
Course policy: A student has to:
❖ Attend at least 85% of the classes,
❖ Take all continuous assessments and take final examination,
❖ Respect all rules & regulations of the university.
References
❖ R. Ellis and D. Gluck, Calculus with Analytic Geometry
❖ Edwards &Penney, Calculus with analytic geometry
❖ S.Lang: Linear Algebra, 3rd Edition
❖ Kereyszing: Advanced Engineering mathematics
184
DEBRE BERHAN UNIVERSITY Computing College
Institute of Technology Department of Computer Science
185
➢ familiarize themselves with basic concepts of probability and laws of the same;
➢ define joint, marginal and conditional distribution and independent random variables;
➢ drive functions of random variables and construct their probability distributions
➢ compute expectation, variance and correlation of random variables;
➢ Familiar with standard discrete and continuous probability distributions and their applications.
Course outline
1. Introduction (2 lecture hour)
1.1. Definitions and classification of statistics
1.2. Stages in statistical investigation
1.3. Definition of some terms
1.4. Applications, uses and limitations of statistics
1.5. Scales of measurement
2. Methods of data collection and presentation (2 lecture hour)
2.1. Methods of data collection
2.1.1. source of data
2.1.2. Types of data
2.2. Methods of data presentation
2.2.1. Introduction
2.2.2. Frequency distributions: Qualitative, quantitative (absolute, relative, percentage,
cumulative)
2.2.3. Diagrammatic presentation of data: Bar charts, pie-chart, pictogram, Steam and leaf plot
2.2.4. Graphical presentation of data: Histogram, Frequency polygon, Ogive
3. Measures of Central Tendency (4 lecture hour)
3.1 Introduction
3.2 Objectives of measuring central tendency
3.3 The summation notation
3.4 Important characteristics of measures of central tendency
3.5 Types of measures of central tendency
3.5.1. The mean (Arithmetic, weighted, Geometric and Harmonic)
3.5.2. The mode
3.5.3. The Median
3.5.4. The quantiles (quartiles, deciles, percentiles)
4. Measures of Variation (4 lecture hour)
4.1 Introduction
186
4.2 Objectives of measuring variation
4.3 Absolute and relative measures
4.4 Types of measures of variation
4.4.1 The range and relative range
4.4.2 The variance, the standard deviation and the coefficient of variation
4.5 The standard scores
5. Elementary probability (4 lecture hour)
5.1 Introduction
5.2 Definition and some concepts (Random experiment, sample space, event, equally likely
outcomes and mutually exclusive event)
5.3 Counting rules: addition, multiplication, permutation and combination rule
5.4 Approaches in probability definition (Classical and Axiomatic)
5.5 Some probability rules
5.6 Conditional probability and independence
6. Probability distributions (4 lecture hour)
6.1 Definition of random variables and probability distributions
6.2 Introduction to expectation: mean and variance of a random variable
6.3 Common discrete probability distributions: Binomial and Poisson
6.4 Common continuous probability distributions: normal
7. Sampling and sampling distribution of the sample mean (4 lecture hour)
7.1 Basic concepts: population, sample, parameter, statistic, sampling frame, sampling units
7.2 Reasons for sampling
7.3 Types of sampling techniques
7.3.1 Non-probability sampling: Basic concepts and definitions
7.3.2 Probability sampling: Basic concepts and definitions
7.4 Sampling distribution of the sample mean
7.5 The central limit theorem
8. One sample inference (4 lecture hour)
8.1 Introduction
8.2 Estimation
8.2.1 point estimation of population mean
8.2.2 Interval estimation of population mean
187
8.3 Hypothesis testing
8.3.1 Important concepts in testing statistical hypothesis
8.3.2 Hypothesis testing about population mean
8.3.3 Tests of association
9. Simple Linear Regressions and Correlation (4 lecture hour)
9.1 Introduction
9.2 Fitting simple linear regression
9.3 The covariance and the correlation coefficient
9.4 The rank correlation coefficient
Assessment methods
Assignment/quizzes 20 %
Mid semester examination 30%
Final examination 50%
Text books:
Bluman, A.G. (1995). Elementary Statistics: A Step by Step Approach (2nd edition).Wm. C.
Brown Communications, Inc.
References:
1. Coolidge, F.L.(2006). Statistics: A Gentle Introduction (2nd edition).
2. David, S.M., McCabe, P. and Craig, B. (2008). Introduction to the Practice of Statistics
(6th edition). W.H. Freeman
3. EshetuWencheko (2000). Introduction to Statistics. Addis Ababa University Press.
4. Freund, J.E and Simon, G.A. (1998). Modern Elementary Statistics (9th Edition).
5. Gupta, C.B. and Gupta, V. (2004). An Introduction to Statistical Methods. Vikas
Publishing House, Pvt. Ltd, India.
6. Snedecor, G.W and Cochran, W.G. (1980). Statistical Methods (7th edition).
7. Spiegel, M.R. and Stephens, L.J. (2007). Schaum's Outline of Statistics, Schaum's
Outline Series (4th edition). McGraw-Hill.
188
DEBRE BERHAN UNIVERSITY Computing College
Institute of Technology Department of Computer Science
191
DEBRE BERHAN UNIVERSITY Computing College
Institute of Technology Department of Computer Science
Department: Computer Science
Course Title: Discrete Mathematics and Combinatorics Course Code: Math 2052
Course Load: ECTS Credit Lecture hrs. Laboratory hrs. Tutorial hrs.
5 3 3 0 1
Course Prerequisite: None
Course Category: Supportive
Instructor’s Contact Information: Course Delivery Information:
Name: _____________________ Academic Year: ____________
Office: _____________________ Year/Semester: II/II
Phone: _____________________ Meeting date: ____________
Email: _____________________ Meeting time: ____________
Office Hours: ________________ Meeting location: __________
Course description
This course deals with review of mathematics sets and functions, fundamental principles of
counting, generating functions and recurrence relations, graph theory and its application.
Course objectives
On completion of the course, successful students will be able to:
➢ Know basic concept of logic and mathematical proof
➢ know basic concepts of discrete mathematics,
➢ understand the principles of counting, recurrence relations and generating functions,
➢ understand the basic concepts of graph and their types,
➢ know the basic algorithms on graphs,
➢ use the methods and principles of Combinatorics,
➢ apply Combinatorics in counting problems,
➢ solve simple counting problems,
➢ construct graphs with given degree patterns,
➢ apply graph theory to solve network-oriented problems.
192
Course outline
Chapter 1: Introduction to logic and mathematical proof (6hr)
1.1 Introduction to logic and statement
1.2 Propositional and predicate logic
1.3 Methods of proof
1.4 Elementary number properties
Chapter 2: Elementary counting principles (8 hrs)
2.1 Basic counting principle
2.2 Permutations and combinations
2.3 The inclusion-exclusion principles
2.4 The pigeonhole principle
2.5 The binomial theorem
Chapter 3: Elementary probability theory (7 hrs)
3.1 Sample space and events
3.2 Probability of an event
3.3 Conditional probability
3.4 Independent events
3.5 Random variables and expectation
Chapter 4: Recurrence relations (7 hrs)
4.1 Definition and examples
4.2 Linear recurrence relations with constant coefficient
4.3 Solutions of linear recurrence relations
4.4 Solutions of homogeneous and non - homogeneous recurrence relations
Chapter 5: Elements of graph theory (7 hrs)
5.1 Definition and examples of a graph
5.2 Matrix representation of a graph
5.3 Isomorphic graphs
5.4 Path and connectivity of a graph
5.5 Complete, regular and bipartite graphs
5.6 Eulerian and Hamiltonian graphs
5.7 Trees and forests (Rooted and Binary trees)
5.8 Planar graphs
5.9 Graph coloring
Chapter 6: Directed graphs (6 hrs)
6.1 Definition and examples of digraphs
193
6.2 Matrix representation of digraphs
6.3 Paths and connectivity
Chapter 7: Weighted graphs and their applications (7 hrs)
7.1 Weighted Graphs
7.2 Minimal Spanning trees
7.3 Shortest path problem
7.4 Critical Path Problem
Teaching- learning methods
Three contact hours of lectures and two hours of tutorials per week. Students do home assignments.
Assessment methods
Assignments/quizzes 20%
Mid semester examination 30%
Final examination 50%
Teaching materials
Text Books:
➢ Mattson, H. F. (1993). Discrete mathematics with applications. John Wiley & Sons, Inc.
➢ Roman, S. A. (1986). An introduction to Discrete mathematics. Saunders College Publishing.
➢ Rosen, K. H., & Krithivasan, K. (2012). Discrete mathematics and its applications: with
combinatorics
➢ and graph theory. Tata McGraw-Hill Education.
References:
➢ Ensley, Douglas E.and J. WinstonCrawley,Discrete Mathematics: Mathematical Reasoning and
Proof with Puzzles, Patterns, and Games, Wiley, 2005.
➢ Epp, S. S. (2010). Discrete mathematics with applications. Cengage learning.
➢ Harris, B. (1970). Graph Theory and its applications. Academic press.
➢ Iyengar, S.N. (2004). Discrete mathematics. Vikas publishing house PVT LTD.
➢ Lipschutz, S. (2016). Schaum's Outlines of Theory and Problems of Discrete Mathematics.
➢ Liu, C. L. (1986). Elements of discrete mathematics. Tata McGraw-Hill Education.
➢ Ore, O. (1974). Theory of graphs. American mathematical Society.
➢ Roman, S. (1986). An introduction to discrete mathematics. CBS College publishing.
194
DEBRE BERHAN UNIVERSITY Computing College
Institute of Technology Department of Computer Science
Department: Computer Science
Course Title: Digital Logic Design Course Code: EENG2041
Course Load: ECTS Credit Lecture hrs. Laboratory hrs. Tutorial hrs.
5 3 2 3 0
Course Prerequisite: None
Course Category: Supportive
Instructor’s Contact Information: Course Delivery Information:
Name: _____________________ Academic Year: ____________
Office: _____________________ Year/Semester: II/I
Phone: _____________________ Meeting date: ____________
Email: _____________________ Meeting time: ____________
Office Hours: ________________ Meeting location: __________
Course Description
This course provides an overview of the principles underlying Number systems, arithmetic operations,
decimal codes, alphanumeric codes, Boolean algebra, Karnaugh maps, implementation of digital logic
gates using universal gates (NAND and NOR gates), exclusive-OR gates, integrated circuits,
combinational circuits, decoders, encoders, multiplexers, Demultiplexers adders, subtractors, multipliers,
sequential circuits, latches, flip-flops, sequential circuits analysis, and counters. Finally, under this
course, Analysis and design of combinational and sequential logic systems will be done.
Course objectives
Upon the completion of the module, Students will be able to:
• Convert between decimal, binary, octal, and hexadecimal number systems.
• Differentiate different Codes in digital system.
• Perform two-level logic minimization using Boolean algebra and Karnaugh maps minimization
method.
• Analyze the properties and realization of the various logic gates.
• Perform binary addition and subtraction.
• Implement the Boolean Functions using NAND and NOR gates.
• Incorporate medium scale integrated circuits, like decoders, encoders, multiplexers, etc., into
circuit design.
• Differentiate and Design Combinational and Sequential circuits.
• Design and analyze clocked sequential circuits.
• Use various types of latches and flip-flops to build binary memory and counters.
195
• Perform asynchronous and synchronous sequential logic analysis
Course outline
1. Introduction to Digital Systems (2 lecture hour)
1.1 Digital and analogue quantities
1.2 Binary digit logic level and digital waveform
2. Number system, operations and codes (2 lecture hour)
2.1 Decimal number
2.2 Binary number
2.3 Decimal to binary conversation
2.4 1’s and 2’s compliment of binary number
2.5 Signed number
2.6 Hexadecimal number
2.7 Octal number
2.8 BCD
3. Logic gates (2 lecture hour)
3.1 The inverter
3.2 The AND gate
3.3 The OR gate
3.4 The NAND gate
3.5 The NOR gate
3.6 The Exclusive OR and Exclusive NOR gates
4. Boolean algebra and Logic simplification (4 lecture hour)
4.1 Boolean operation and expression
4.2 Laws and rules of Boolean algebra
4.3 De Morgan Theorems
4.4 Boolean analysis of logic circuit
4.5 The K-map
5. Combinational logic (6 lecture hour)
5.1 Functions of combinational logic
5.2 Basic combinational logic circuits
5.3 Implementing Combinational logic
5.4 Universal property of NAND and NOR gates
5.5 Adders, decoders, encoders, multiplexers and de multiplexers
196
6. Flip flops (4 lecture hour)
6.1 Latches
6.2 Edge triggered flip flops
6.3 Master slave flip flops
6.4 Applications
7. Counters (4 lecture hour)
7.1 Synchronous counters
7.2 Asynchronous counters
7.3 Up/down counters
7.4 Design of synchronous counters
8. Shift registers (4 lecture hour)
8.1 Basic shift registers
8.2 Serial in serial out registers
8.3 Serial in parallel out Registers
9. Memory and storage (4 lecture hour)
9.1 Basics of semiconductor Memory
9.2 Random access memory (RAM’s)
9.3 Read only memory (ROM’s)
9.4 Programmable ROMs (PROM, EEPROM)
9.5 Flash memories
Assessment Methods
Assignment/quizzes 10 %
Project 20%
Mid semester examination 20%
Final examination 50%
Text books and References:
1. Morris M. Mano: Digital Design (3rd Edition)
2. R. J. Tocci and N. S. Widmer: Digital Systems – Principles and Applications, 9th Ed, Prentice Hall,
2004
3. T.L. Floyd: Digital Fundamentals, 9th edition ,Prentice Hall
4. Stephen Brown, ZvonkoVranesic: Fundamentals of Digital Logic with Verilog Design, McGraw-
Hill Science/Engineering/Math; 1st edition 2002
5. R.P. Jain: Modern Digital Electronics, raw-Hill Science/Engineering/Math; 1 edition, (August 21,
2006)
6. AnantAgarwal and Jeffrey Lang: Foundations of Analog and Digital Electronic Circuits, Morgan
Kaufmann Series, Jul 15, 2005
197
13.4. Common Courses
Course description:
Communicative English Skills is a course designed to enable students to communicate in English
intelligibly with acceptable accuracy, fluency and ability to use English appropriately in
different contexts. The course exposes students to English language learning activities designed
to help students use English for their academic and social needs. Students would be engaged in
language learning development activities through doing and reflection on action. This includes
grammar and vocabulary as used in communicative events and all skills and their sub-kills:
speaking, listening, reading and writing. The language and skills are integrated where one
becomes a resource to the other. There are six units covering topics related to the life world of
students as well as of societal relevance.
Course Objectives:
At the end of this course, students will be able to:
➢ Express themselves in social and academic events in English--Use English intelligibly
with reasonable level of curacy and fluency
➢ Listen and comprehend to talks related to social and academic events given in English
➢ Read and understand texts written in English –texts on academic and social matters
➢ Write in English as academically and socially desirable.
198
➢ Learn and develop their English on their own—learning to learn: the language and Write
clear reports and assignments in academic contexts, and the skills
Course Outline
1. Introducing Oneself
1.1. Listening
1.1.1. Introducing oneself (who you are, where you came from, where you finished your
primary and secondary school), what you intend to study and why Vocabulary
1.2. Reading
1.2.1. Reading a short biography written in simple English: using background
knowledge, reading with comprehension, making notes while reading, guessing
meanings, attending to reference words & discussing notes,
2. Study Skills
2.1. Listening
2.1.1. listening to a talk on habits of successful students: reflecting on one’s study skills,
taking notes while listening, discussing notes, answering listening comprehension
questions, discussing answers
2.1.2. Giving advice using tips from the listening text: using the language of giving
advice
2.2. Reading
2.2.1. Reading an expository essay on study skills: reading with comprehension,
attending to new vocabulary, writing notes while reading, writing brief summaries
from notes
2.2.2. Studying the present perfect tense and the past perfect tense: form, use and
meaning of conditionals
3. Sports and Health
3.1. Listening
3.1.1. Listening about Zinedine Zidan (who he is, his childhood, his professional career):
using prior knowledge (talking about a famous football player), predicting what
comes next and checking prediction, taking notes while listening, discussing notes,
presenting oral summary), asking and answering Wh-questions
3.1.2. Studying conditionals (form, use and meaning)
3.2. Reading
199
3.2.1. Reading a short expository passage on sports and health: discussing how sports
improve health, reading for main ideas, making notes while reading, developing notes
into short summaries, comparing summaries
3.2.2. Working on vocabulary: using word formation
4. Cultural Values
4.1. Listening
4.1.1. Listening about cultural tourism: discussing how culture attracts tourists, listening
with comprehension, taking notes while listening, discussing notes, developing notes
into one-paragraph summaries
4.2. Reading
4.2.1. Reading an expository text on cultural values: reading with comprehension,
writing notes while reading, answering comprehension questions, summarizing the
text based on notes made while reading, discussing summaries
4.2.2. Revision simple present, simple past, present perfect and past perfect tenses:
revising form, use and meanings of these tenses, writing short meaningful sentences
using simple present, simple past, present perfect and past perfect forms of verbs
5. Tourism and Wildlife
5.1. Listening
5.1.1. Listening about human-wildlife conflict (argumentative text): using prior
knowledge, listening with comprehension, making notes while reading, writing
summaries using the notes, discussing the summaries
5.2. Reading
5.2.1. Reading a text on tourism and wildlife: using visual, reading with comprehension,
guessing meanings of words based on context, writing brief notes while reading,
discussing notes and developing them into summaries, discussing summaries
5.2.2. Working on denotative and connotative meanings
5.2.3. Revising conditionals: constructing meaningful sentences based on pictures
6. Population
6.1. Listening
6.1.1. Listening about population density: learning the meanings of ‘population’,
‘density’ and ‘population density’, predicting what comes in the talk and checking
200
prediction, listening with comprehension, taking notes while listening, discussing
notes, writing short paragraphs using the notes and discussing them
6.2. Reading
6.2.1. Reading a text on population pyramid: interpreting tables, graphs and pie charts,
reading with comprehension, making notes while reading, discussing notes,
developing notes into paragraphs, discussing and improving paragraphs
6.2.2. Studying collocation: learning the definition of collocation, identifying words that
collocate with ‘population’, doing exercise on collection, using collection in
vocabulary study
6.2.3. Working on active and passive constructions (form, use, meaning): noticing
grammar pattern in example sentences, listening to a brief lecture, writing lectures
notes, discussing notes, identifying active and passive constructions, completing
contextualized exercise, reading independently and compiling portfolio on passive
constructions
Instructional Methods and Strategies: Providing brief introductory notes, Pair and group
discussions, Presentation, independent reading, encouraging independent learning, giving
individual and group works are some of the major teaching methods to be used.
Teacher’s activities: Interactive lecture methods followed by discussion, demonstration, etc.
and guide students in project work. And also permitting the students to voice and defend their
own opinions and enhancing the students’ commitment to individual study and acquiring
knowledge are among the activities.
Students’ activities: Active involvement of learners is required at each phase. This is done
through questioning and answering, reflection, reporting, solving problems associated with the
respective topics. The students individually and in peer practice and learn through project and
practical work. Each practical will result in a report for assessment.
Assessment Strategies and Techniques: At least 50% continuous assessments (quizzes, tests,
assignments, Valuing Active Participation, Oral presentation, Valuing Attendance and/or mid-
examination) and 50% final examination
Instructional Resources (Materials and Equipment): LCD, computer (desktop or laptop),
course outlines, markers, flip charts, white board, chalk board, duster.
201
References
1. Alfassi, M. 2004. Reading to learn: Effects of combined strategy instruction on high school
students. Journal of Educational Research, 97(4):171- 184.
2. Anderson, N. 1999. Exploring second language reading: Issues and strategies.
Toronto:Heinle&Heinle Publisher.
3. Bade, M. 2008. Grammar and good language learners.In C. Griffiths (Eds.). Lessons from good
language learners (pp. 174-184). Cambridge University Press.
https//doi.org/10.107/CBO9780511497667.016
4. Bouchard, M. 2005. Reading comprehension strategies for English language learners: 30research-
based reading strategies that help students read, understand and really learncontent from their
textbooks and other nonfiction materials. New York: Scholastic.
5. Cameron, L. 2001. Teaching languages to young learners. Cambridge: Cambridge University
Press.
6. Chamot, A.U. 1987. The learning strategies of ESL students. In A. Wenden & J. Rubin (Eds.).
Learner strategies in language learning (PP 71-85). Prentice-Hall: Hemel Hempstead.
7. Gairns, R. & Redman, S. 1986. Working with words: A guide to teaching and learning vocabulary.
Cambridge University Press.
8. Department of Foreign Language and Literature. 1996. College English (Volume I and Volume II).
Addis Ababa University Press.
9. McNamara, D.S. (Ed.). 2007. Reading comprehension strategies: Theories, interventions,
andtechnologies. New York: Erlbaum.
10. Tilfarlioğlu, Y. 2005. An Analysis of the relationshipbetweenthe use of grammar learning
strategiesandstudent achievement at English preparatory classes.Journal of Language and Linguistic
Studies 1: 155-169.
11. Murphy R. (?). Essentials of English grammar in use: A self-study reference and practice book for
intermediate students of English (2nd Ed.). Cambridge University Press.
12. Murphy R. 2004. English grammar in use: A self-study reference and practice book for intermediate
students of English (3rd Ed.). Cambridge University Press.
13. Zhang, L. J. 2008.Constructivist pedagogy in strategic reading instruction:Exploring pathways
tolearnerdevelopment in the English as a second language (ESL) classroom. Instructional Science,
36(2): 89-116.https://doi.org/10.1007/s11251-007-9025-6.
202
DEBRE BERHAN UNIVERSITY Computing College
Institute of Technology Department of Computer Science
Department: Computer Science
Course Title: General Physics Course Code: Phys 1011
Course Load: ECTS Credit Lecture hrs. Laboratory hrs. Tutorial hrs.
5 3 2 1 2
Course Prerequisite: None
Course Category: Common Course
Instructor’s Contact Information: Course Delivery Information:
Name: _____________________ Academic Year: ____________
Office: _____________________ Year/Semester: I/I
Phone: _____________________ Meeting date: ____________
Email: _____________________ Meeting time: ____________
Office Hours: ________________ Meeting location: __________
Course Description:
This module will be taught in an introductory undergraduate level and is primarily designed for
a broader audience of science students. The goal of the course is to give an overview of the
various physics-based analysis and dating techniques used in science and technology. High
school mathematics and physics concepts are enough as prerequisite for this course. Laws,
principles, and methods of physics will be taught in a more descriptive manner using simple
mathematics. The course covers preliminaries, mechanics, fluid mechanics, electromagnetism
and electronics, thermodynamics, oscillations and waves, and cross-cutting applications of
physics in different areas of science and technology.
Course Objectives:
Upon completion of this course students should be able to:
➢ Discuss basic physics by refreshing and summarizing the previous preparatory physics
concepts before tackling the advanced physics courses.
➢ Explain the kinematics and dynamics of particles in one and two dimensions.
➢ State principles of fluids in equilibrium and solve problems applying Pascal’s principle,
Archimedes’, principles and Bernoulli’s equation in various situations.
➢ Explain the basic concepts of charges, fields and potentials.
➢ Analyze direct and alternating current circuits containing different electric elements and
solve circuit problems.
203
➢ Demonstrate the use and the working system of cells (batteries), resistors, generators,
motors and transformers.
➢ Explain the first law of thermodynamics for a closed system and apply it to solve
problems.
➢ Discuss systems that oscillate with simple harmonic motion.
➢ Explain the application of physics in different sciences and technology fields.
➢ Apply and describe a variety of experimental techniques and grasp the general guidelines
of laboratory.
➢ Develop the skill of laboratory work.
Course Outline:
1. Preliminaries
1.1. Physical Quantities and Measurement
1.1.1. Physical quantities
1.1.2. SI Units: Basic and Derived Units
1.1.3. Conversion of Units
1.2. Uncertainty in Measurement and Significant Digits
1.2.1. Significant digits
1.3. Vectors: composition and resolution
1.3.1. Vector Representation
1.3.2. Vector Addition
1.3.3. Components of Vector
1.4. Unit Vector
1.4.1. Vector addition in Unit Vector Notation
1.4.2. Finding a Unit Vector
2. Kinematics and Dynamics of Particles
2.1. Kinematics in One and Two Dimensions
2.1.1. Displacement, velocity and Acceleration in 1D and 2D
2.1.2. Motion with Constant Acceleration
2.1.3. Free Fall Motion
2.1.4. Projectile Motion
2.2. Particle Dynamics and Planetary Motion
2.2.1. The Concept of Force as A Measure of Interaction
204
2.2.2. Type of Forces
2.2.3. Newton’s Laws of Motion and Applications
2.2.4. Uniform Circular Motion
2.2.5. Newton’s Law of Universal Gravitation
2.2.6. Kepler’s Laws, Satellites Motion and Weightlessness
2.3. Work, Energy and Linear Momentum
2.3.1. Work and Energy
2.3.2. Power
2.3.3. Linear Momentum
2.3.4. Collisions
2.3.5. Center of Mass
3. Fluid Mechanics
3.1. Properties of Bulk Matter
3.2. Density and Pressure in Static Fluids
3.3. Buoyant Force and Archimedes’ Principles
3.3.1. Archimedes’ principle
3.4. Moving Fluids and Bernoulli Equations (Fluid Dynamics)
3.4.1. Bernoulli’s Equation
4. Heat and Thermodynamics
4.1. The concept of Temperature and the Zeroth law of Thermodynamics
4.2. Thermal Expansion
4.3. The Concept of Heat, Work and Internal Energy
4.4. Specific Heat and Latent Heat
4.5. Heat Transfer Mechanisms
4.6. The First Law of Thermodynamics
5. Oscillations, Waves and Optics
5.1. Simple Harmonic Motion
5.1.1. Periodic and Oscillatory Motion
5.1.2. Displacement, Velocity and Acceleration in a SHM
5.2. The simple Pendulum
5.3. Wave and Its Characteristics
5.4. Resonance
205
5.5. The Doppler Effect
5.6. Image Formation by Thin Lenses and Mirrors
6. Electromagnetism and Electronics
6.1. Coulomb’s Law and Electric Fields
6.2. Electric Potential
6.3. Current, Resistance and Ohm’s Law
6.4. Electrical Energy and Power
6.5. Equivalent Resistance and Kirchhoff’s Rule
6.6. Magnetic Field and Magnetic Flux
6.7. Electromagnetic Induction
6.8. Insulators, Conductors and Semiconductors
6.9. Diodes
6.10. Transistors
7. Cross Cutting Applications of Physics
7.1. Physics in Agriculture and Environment
7.2. Physics in Industries
7.3. Physics in Health Sciences and Medical Imaging
7.4. Physics and Archeology
7.5. Application in Earth and Space Sciences
7.6. Applications in Power
Instructional Methods and Strategies:
Students’ Activities: Students should read the module and/or reference materials and do the assignments
on time. Practice with solved problems and come to office hours to get concepts clarified. Review and
extra problems will be given through worksheets. Students are also expected to have worked through the
problems in the worksheets before the tutorial sessions. Attendance at lectures and Laboratory is
expected for all students. Attendance records will be taken at all times. It is the students chance to ask
questions, solve problems and work in team.
Assessment Strategies and Techniques: At least 50% continuous assessments (quizzes, tests,
assignments, project work and/or mid-examination) and 50% final examination
Instructional Resources (Materials and Equipment):
LCD, computer (desktop or laptop), course outlines, markers, flip charts, white board, chalk board,
duster.
206
Recommended Laboratory Activities
For this course a total of 10 experiments relevant to Mechanics, Electricity and Magnetism, and
Electronics will be carried out.
I. List of Experiments from Mechanics
✓ Measurements of basic constants, length, mass and time
✓ Free fall
✓ Hook’s law
✓ Density of liquids
✓ Simple pendulum
II. List of Experiments from Electricity and Magnetism
✓ Calibration of voltmeter and ammeter from galvanometer
✓ Ohm’s law, parallel and series combination of resistors
III. List of Experiments from electronics
✓ V-I characteristics of diode
✓ Rectification
✓ Logic gate
From these recommended experiments, at least six experiments to be performed. Simulation
experiments from the Internet can be used to supplement laboratory activities whenever possible.
References
1. Serway, R. A. and Vuille, C., 2018, College Physics, 11th ed., Cengage Learning, Boston, USA
2. University Physics with Modern Physics by Young, freedman and Lewis Ford
3. Physics for Scientists and Engineers with Modern Physics by Douglas C. Giancoli
4. Fundamentals of physics by David Halliday, Robert Resnick and Gearl Walker
5. College Physics by Hugh D. Young Sears Zemansky, 9th edition.Herman Cember and Thomas A.
Johnson, Introduction to Health Physics, 4th ed., (2008).
6. William R. Hendee and E. Russell Ritenour, Medical Imaging Physics, 4th ed., (2002).
7. Tayal D.C. Basic Electronics. 2nd ed. Himalaya Publishing House Mumbai, (1998).
8. Theraja B.L., R.S. Sedha. Principles of Electronic Devices and Circuits, S.Chand and Company
Ltd, New Delhi, (2004).
9. Introduction to Space Physics, M. G. Kivelson and C. T. Russell, Cambridge University Press,
1995.
10. Stacey, Frank D.: Physics of the earth. 2nd Ed.,Wiley, 1977.
207
DEBRE BERHAN UNIVERSITY Computing College
Institute of Technology Department of Computer Science
Department: Computer Science
Course Title: Critical Thinking Course Code: LoCT 1011
Course Load: ECTS Credit Lecture hrs. Laboratory hrs. Tutorial hrs.
5 3 3 0 0
Course Prerequisite: None
Course Category: Common Course
Instructor’s Contact Information: Course Delivery Information:
Name: _____________________ Academic Year: ____________
Office: _____________________ Year/Semester: I/I
Phone: _____________________ Meeting date: ____________
Email: _____________________ Meeting time: ____________
Office Hours: ________________ Meeting location: __________
Course Description:
The course, Logic and Critical Thinking, is a high-level thought course in the discipline of
philosophy. It is a philosophical inquiry that takes argumentation and reasoning as its basic
objects of investigation and attempts to introduce the fundamental concepts of logic and
methods of logical argumentation and reasoning and critical thinking. It includes evaluation of
the methods by which we form beliefs, weigh evidence, assess hypotheses and arguments, and
analyze reasoning. Logic is concerned with the study of arguments, and it seeks to establish the
conditions under which an argument may be considered as acceptable or good. It includes the
development of standard methods and principles of arguments. Critical thinking is an exercise, a
habit, a manner of perception and reasoning that has principles of logic as its fulcrum, and
dynamically involves various reasoning skills that ought to be human approach to issues and
events of life. Critical thinking means correct thinking in the pursuit of relevant and reliable
knowledge about the world.
Course Objectives:
After the successful accomplishment of the course, students will able to:
➢ Understand the basic essence and areas of philosophy, and the necessity of learning it;
➢ Recognize the components and types of arguments;
➢ Develop the skill to construct and evaluate arguments;
➢ Understand the relationship between logic and language;
208
➢ Recognize the forms of meanings of words and terms;
➢ Comprehend the types, purposes and techniques of definitions;
➢ Understand the concept, principles, and criteria of critical thinking;
➢ Cultivate the habits of critical thinking and develop sensitivity to clear and accurate
usage of language;
➢ Recognize the various forms of formal and informal fallacies; and
➢ Understand the components, attributes and representations of categorical propositions
Course Outline:
Chapter One: Introducing Philosophy
1.1. Chapter Overview
1.2. Meaning and Nature of Philosophy
1.3. Basic Features of Philosophy
1.4. Metaphysics and Epistemology
1.4.1. Metaphysics
1.4.2. Epistemology
1.5. Axiology and Logic
1.6. Logic
1.7. Importance of Learning Philosophy
Chapter Two: Basic Concepts of Logic
1.1. Chapter Overview
1.2. Basic Concepts of Logic: Arguments, Premises and Conclusions
1.3. Techniques of Recognizing Arguments
1.4. Types of Arguments: Deduction and Induction
1.5. Evaluating Arguments
Chapter Three: Logic and Language
1.1. Philosophy of Language: An overview
1.2. Logic and Meaning
1.3. Meaning, Types, and Purposes of Definitions
1.4. Techniques of Definition
1.5. Criteria for Lexical Definitions
Chapter Four: Basic Concepts of Critical Thinking
4.1. Meaning of Critical Thinking
4.2. Standards of Critical Thinking
4.3. Codes of Intellectual Conduct for Effective Discussion
209
4.4. Characteristics of Critical Thinking
4.5. Barriers to Critical Thinking
4.6. Benefits of Critical Thinking
Chapter Five: Informal Fallacies
5.1. Fallacy in General
5.2. Fallacies of Relevance
5.3. Fallacies of Weak Induction
5.4. Fallacies of Presumption
5.5. Fallacies of Ambiguity and Grammatical Analogy
Chapter Six: Categorical Propositions
6.1. General Introduction
6.2. Attributes of Categorical Propositions: Quality, Quantity, and Distribution
6.3. Venn Diagrams and the Modern Square of Opposition
6.4. Evaluating Immediate Inferences: Using Venn Diagrams and Square of Oppositions
Teaching-learning methods
Three hours of lectures and two hours of tutorials per week. Students do home assignments.
Assessment methods
➢ Assignments/quizzes 20%
➢ Mid semester examination 30%
➢ Final examination 50%
Teaching Materials:
Reference Books:
Copi, Irving M.and Carl Cohen, (1990) Introduction to Logic, New York: Macmillan Publishing
Company.
Damer, Edward. (2005). Attacking faulty reasoning. A practical guide to fallacy free argument.
Wadsworth Cengage learning, USA.
Fogelin, Robert, J, (1987) Understanding Arguments: An Introduction to Informal Logic, New York:
Harcourt Brace Jvanovich Publisher.
Guttenplan, Samuel: (1991) The Language of Logic. Oxford: Blackwell Publishers
Simico, N.D and G.G James. (1983) Elementary Logic, Belmont, Ca: Wadsworth Publishing Company.
Stephen, C. (200) The Power of Logic. London and Toronto: Mayfield Publishing Company.
Walelign, Emuru, (2009) Freshman Logic, Addis Ababa.
210
DEBRE BERHAN UNIVERSITY Computing College
Institute of Technology Department of Computer Science
Department: Computer Science
Course Title: Physical Fitness Course Code: SpSc 1011
Course Load: ECTS Credit Lecture hrs. Laboratory hrs. Tutorial hrs.
0 0 2 0 0
Course Prerequisite: None
Course Category: Common Course
Instructor’s Contact Information: Course Delivery Information:
Name: _____________________ Academic Year: ____________
Office: _____________________ Year/Semester: I/I
Phone: _____________________ Meeting date: ____________
Email: _____________________ Meeting time: ____________
Office Hours: ________________ Meeting location: __________
Course Description
This course will provide the students with basic concepts of the five components of health
related physical fitness (cardiovascular, muscular strength and endurance, flexibility, and body
composition), conditioning, hypokinetic disease and general principles of training. It is mainly
practical oriented. As a result, the students will be exposed to various exercise modalities, sport
activities, minor and major games, and various training techniques as a means to enhance health
related physical fitness components. In addition, they will develop the skills to assess each
component of fitness and will practice designing cardiovascular, muscular strength and
endurance, and flexibility programs based on the fitness assessment. The course serves as an
introduction to the role of exercise in health promotion, fitness, performance including the acute
and chronic responses of the body to exercise.
Course Objectives:
By the end of this course the students will be able to:
➢ Recognize the immediate and long-term responses of the body to various types of exercise.
➢ Understands the basic concepts of physical fitness and conditioning exercises.
➢ Understand the concept of hypokinetic disease and conditions.
➢ Distinguish the general principles of fitness training
➢ Develop conditioning programs to enhance the components of health related physical
finesses.
211
➢ Participate in conditioning programs which may help to develop the components of health-
related physical finesses.
➢ Understand health issues in relation to excess body fatness and excessively low body fat.
➢ Develop skills to assess health related physical fitness components.
➢ Develop healthy body weight management skill.
➢ Appreciate and value the benefits of regular physical exercise to healthy living.
➢ Develop interest to engage in a regular physical exercise program as a life time activity.
➢ Develop self-confidence and effective communication skills in and out of the school
environment.
Course Outline
1. Concepts of physical fitness and conditioning
1.1. Meanings and definitions of terms
1.1.1. physical fitness
1.1.2. physical conditioning
1.1.3. Physical Activity,
1.1.4. Physical exercise and
1.1.5. Sport
1.2.General principles of fitness training
2. The Health Benefits of Physical Activity
2.1. Physical Activity and Hypokinetic Diseases/Conditions
2.2. Physical Activity and Cardiovascular Diseases
2.3. physical activity and postural deformity
3. Making Well-Informed Food Choices
3.1. Sound Eating Practices
3.2. Nutrition and Physical Performance
4. Health Related Components of Fitness
4.1. Cardiovascular fitness
4.1.1. Meaning and concepts of cardiovascular fitness
4.1.2. Means and methods of developing cardiovascular fitness
4.2. Muscle fitness
4.2.1. Meaning and concepts of muscle fitness
4.2.2. Means and methods of developing muscle fitness
212
4.3. Flexibility
4.3.1. Meaning and types of flexibility
4.3.2. Means and methods of developing flexibility
4.4. Body composition
4.4.1. Meaning of body composition
4.4.2. Health risks associated with over fatness
4.4.3. Health risks associated with excessively low body fatness
5. Assessment of Fitness Components
5.1. Assessment of cardiovascular fitness
5.2. Assessment of muscle fitness
5.3. Assessment of flexibility
5.4. Assessment of body composition
6. Development and Assessment of the Health Related Components of Fitness
Instructional Methods and Strategies: The course will involve deploying different teaching
methods that attempt to make the teaching-learning process as effective as possible. the course
delivery techniques will generally involve the following items: Lecture, Questioning and
answering, Group discussions, Field Practice, Explanation and Demonstration
Teacher’s activities: Provide maximum physical activity time within the class period, promote
equal participation of all students in the course, Teach skills and activities that transfer in to
lifetime physical activity, Motivate students to be active participants in the course and Praise for
active participation
Students’ activities: The success of this course and students learning experience is dependent
on active engagement and participation of the students in all the spectrum of the course. Students
are expected to come well prepared/dressed and constructively engage in class.
Class Discipline: “In each and every aspect of life, discipline comes first and worth a lot”. This
is what department of Sport Science reflects. As a result of this, any noise, chatting, chewing
gum and the like are prohibited in every sessions of the course. In addition to these portable
electronic media and communicative devices such as cell phones, pagers, MP3 players, I pods
etc are not be used during the class for any reason. Thus, these devices should be switched off
and kept out of sight.
213
Assessment Strategies and Techniques: At least 60% continuous assessments (quizzes, tests,
assignments, project work and/or mid-examination) and 40% Final exam practical group
assignment (peer training on the five components of fitness)
Instructional Resources (Materials and Equipments): LCD, computer (desktop or laptop),
course outlines, markers, flip charts, white board, chalk board, duster, Sport field, and fitness
equipments.
References
1. Charles B. Corbin, Gregory J. Weik, William R. Corbin and Karen A. Welk. (2006).
Concepts of fitness and wellness: a comprehensive lifestyle approach. 6th edt.
2. Schott k. Powers, Stepheen L. Dod and Virginia J. (2006), Total Fitness and Wellness.
3. Paul M, and Walton T. (2006), Core Concepts in Health, 10th edit.
4. Charles B. Corbin and Ruth Lindsey (1990), Fitness for life, 3rd Edition, Scott.
214
DEBRE BERHAN UNIVERSITY Computing College
Institute of Technology Department of Computer Science
Department: Computer Science
Course Title: Geography of Ethiopia and the Horn Course Code: GeES 1011
Course Load: ECTS Credit Lecture hrs. Laboratory hrs. Tutorial hrs.
5 3 3 0 0
Course Prerequisite: None
Course Category: Common Course
Instructor’s Contact Information: Course Delivery Information:
Name: _____________________ Academic Year: ____________
Office: _____________________ Year/Semester: I/I
Phone: _____________________ Meeting date: ____________
Email: _____________________ Meeting time: ____________
Office Hours: ________________ Meeting location: __________
Course Description:
This course attempts to familiarize students with the basic geographic concepts particularly in
relation to Ethiopia and the Horn of Africa. It is also intended to provide students a sense of
place and time (geographic literacy) that are pivotal in producing knowledgeable and competent
citizens that are able to comprehend and analyze problems and contribute to their solutions. The
course consists of four parts. The first part provides a brief description on the location, shape and
size of Ethiopia as well as basic skills of reading maps. Part two introduces the physical
background and natural resource endowment of Ethiopia and the Horn which includes its
geology and mineral resources, topography, climate, drainage and water resources, soil, fauna
and flora. The third part of the course focuses on the demographic characteristics of the country
and its implications on economic development. The fourth component of the course offers
treatment of the various economic activities of Ethiopia and the Horn which include agriculture,
manufacturing and service sectors. Moreover, Ethiopia in a globalizing world is treated in the
perspectives of the pros and cons of globalization on its natural resources, population and socio
economic conditions.
Course objectives:
At the end of this course, students will be able to:
➢ Acquire basic knowledge on the geographic attributes of Ethiopia and Horn
➢ Develop a sense of appreciation and tolerance of cultural diversities and their interactions
215
➢ Acquire general understanding of physical geographic processes, and human-
environment relationships
➢ Develop ethical aptitudes and dispositions necessary to live in harmony with the natural
environment
➢ Develop an understanding of national population distributional patterns and dynamics
➢ Conceptualize the comparative advantages of economic regimes; and understand the
impacts of globalization.
➢ Understand their country’s overall geographic conditions and opportunities; and be proud
of the natural endowments and cultural richdom that help them develop a sense of being
an Ethiopian.
Course Outline:
1. Introduction
1.1. Geography: Definition, scope, themes and approaches
1.2. Location, Shape and Size of Ethiopia and the Horn
1.2.1. Location and its effects
1.2.2. The shape of Ethiopia and its implication
1.2.3. The size of Ethiopia and its implications
1.3. Basic Skills of Map Reading
2. The Geology of Ethiopia and the Horn
2.1. Introduction
2.2. The Geologic Processes: Endogenic and Exogenic Forces
2.3. The Geological Time scale and Age Dating Techniques
2.4. Geological Processes and the Resulting Landforms
2.4.1. The Precambrian Era geologic processes and resultant features
2.4.2. The Paleozoic Era geologic processes and resultant features
2.4.3. The Mesozoic Era geologic processes and resultant features
2.4.4. The Cenozoic Era geologic processes and resultant features
2.5. Rock and Mineral Resources of Ethiopia
3. The Topography of Ethiopia and the Horn
3.1. Introduction
3.2. Physiographic Divisions
3.2.1. The Western Highlands and Lowlands
3.2.2. The Southeastern Highlands and Lowlands
3.2.3. The Rift Valley
216
3.3. The Impacts of Relief on Biophysical and Socioeconomic Conditions
4. Drainage Systems and Water Resources of Ethiopia and the Horn
4.1. Introduction
4.2. Major Drainage Systems of Ethiopia
4.3. Water Resources: Rivers, Lakes, and Subsurface Water
4.4. General Characteristics of Ethiopian Rivers
4.5. Water Resources Potentials and Development in Ethiopia
5. The Climate of Ethiopia and the Horn
5.1. Introduction
5.2. Elements and Controls of Weather and Climate
5.3. Spatiotemporal Patterns and Distribution of Temperature and Rainfall in Ethiopia
5.4. Agro-ecological Zones of Ethiopia
5.5. Climate and its Implications on Biophysical and Socioeconomic Aspects
5.6. Climate Change/Global Warming: Causes, Consequences and Response Mechanisms
6. Soils, Natural Vegetation and Wildlife Resources of Ethiopia and the Horn
6.1. Introduction
6.2. Ethiopian Soils: Types, Degradation and Conservation
6.3. Types and Distribution of Natural Vegetation in Ethiopia
6.4. Natural vegetation: Uses, Degradation and Conservation Strategies
6.5. Wildlife Resources of Ethiopia: Types, Importance, and Conservation Strategies
7. Population of Ethiopia and the Horn
7.1. Introduction
7.2. Population Data: Uses and Sources
7.3. Population Dynamics: Fertility, Mortality and Migration
7.4. Population Distribution and Composition
7.5. Sociocultural Aspects of Ethiopian Population: Education, Health and Languages
7.6. Settlement Types and Patterns
8. Economic Activities in Ethiopia
8.1. Introduction
8.2. Mining, Fishing and Forestry
8.3. Agriculture in Ethiopian
8.3.1. Contributions, potentials and characteristics of agriculture in Ethiopia
8.3.2. Agricultural systems in Ethiopia
8.3.3. Major problems of Ethiopian agriculture
8.4. Manufacturing in Ethiopia
217
8.4.1. Manufacturing: essence and contributions
8.4.2. Types, characteristics and distribution of manufacturing
8.4.3. Industrial development in Ethiopia: Challenges and Prospects
8.5. The Service Sector in Ethiopia
8.5.1. Transportation and communication in Ethiopia: types, roles and characteristics
8.5.2. Trade in Ethiopia: types, contributions and characteristics
8.5.3. Tourism in Ethiopia: Types, major tourist attraction sites, challenges and prospects
Instructional Methods and Strategies: Gap Lecture, Peer/ group Discussion and Reflection, Reading
Assignment, etc. are some of the major teaching methods to be used.
Teacher’s activities: Interactive lecture methods followed by discussion, demonstration, etc. and guide
students in project work. And also permitting the students to voice and defend their own opinions and
enhancing the students’ commitment to individual study and acquiring knowledge are among the
activities.
Students’ activities: Active involvement of learners is required at each phase. This is done through
questioning and answering, reflection, reporting, solving problems associated with the respective topics.
The students individually and in peer practice and learn through project and practical work. Each
practical will result in a report for assessment.
Assessment Strategies and Techniques: At least 50% continuous assessments (quizzes, tests,
assignments, and/or mid-examination) and 50% final examination
Instructional Resources (Materials and Equipment): LCD, computer (desktop or laptop), course
outlines, markers, flip charts, white board, chalk board, duster.
References
1. A.D. Tathe. (2012). Lecture Notes on Climatology: For Intermediate Met Training Course, Indian
Meteorological Department. Addis Ababa University (2001). Introductory Geography of Ethiopia,
Teaching Text, Department of Geography.
2. Assefa M., Melese W., Shimelis G. (2014). Nile River Basin; Ecohydrological Challenges, Climate
Change and Hydropolitics. Springer International Publishing, Switzerland.
3. B. D, Ray (1989). Economics for Agriculture: Food, Farming and the Rural Economy. Macmillan.
4. CSA 1994 & 2007. Population and Housing Census Results. CSA: A.A.
5. Diao, Xinshen, 2007. The Role of Agriculture in Economic Development: Implications for Sub
Saharan Africa. Sustainable Solutions for ending Hunger and Poverty, Research Report 153.
IFPRI.Ethiopia.
6. Engdawork Assefa (2015). Characterization and classification of major agricultural soils in CASCEP
intervention weredas in the central highlands of Oromia Region, Ethiopia, Addis Ababa University
218
7. FDRE.2001 Ministry of Water Resources, National Metrological Survey, A.A. Girma Kebede
(2017). Society and Environment in Ethiopia
8. Hartshorne, T. & J. Alexander (1988). Economic Geography, 3rd Ed.
9. Hooguelt, A (2001). Globalization and the post-colonial world. The New Political Economy of
Development. Basingstoke plagrave.
10. Hurni. H. 1988. Ecological Issues in the Creation of Ethiopia. Paper presented in the National
Conference on Disaster prevention and preparedness Strategy for Ethiopia, A.A
11. International Centre for Migration Policy Development (ICMPD) (2008). East Africa Migration
Route Initiative Gaps & Needs Analysis Project Country Reports: Ethiopia, Kenya, Libya. Vienna
12. Laurence G., Jeremias M., Tilahun A., Kenneth M. (2012). Integrated Natural Resource Management
in The Highlands of Eastern Africa; From Concept to Practice. New York, Earthscan.
13. Lloyd, P. & P. Dickens (1977). Location in Space. Harper @ Row. Mesfin Woldemariam (1972).
Introduction to Ethiopian Geography, Addis Ababa,
14. Ministry of Agriculture/MOA/ (1998). Agro-ecological zones of Ethiopia: Natural Resources
Management and Regulatory Department, Addis Ababa
15. Morgan R.P.C (2005). Soil Erosion and Conservation. National Soil Resources Institute, Carnfield
University. Blackwell Publishing, Oxford, UK.
16. Oxfam (2018). Horn of Africa climate crisis response. Regional summary
17. Pausewang, Siegfried (1990), Ethiopian Rural Development Options.
18. Plant genetic resource center (1995). Ethiopia: country report to the FAO International Technical
Conference on Plant Genetic Resource, Addis Ababa
19. Robert, E.G, James, F. P & L. Michael T. (2007). Essentials of Physical Geography. Thomson
Higher Education, Belmont, 8th edition.
20. UNDP, FAO (1984) Ethiopia Forest Resources and Potential for Development; An assistance to land
use planning.
21. United Nations Framework Convention on Climate Change (2007). Climate Change; Impacts
Vulnerabilities and Adaptations in Developing Countries.
22. Waugh, D. (1990). Geography: An Integrated Approach. Nelson: London.
219
DEBRE BERHAN UNIVERSITY Computing College
Institute of Technology Department of Computer Science
Department: Computer Science
Course Title: Communicative English Language Skills II Course Code: ELEn 1012
Course Load: ECTS Credit Lecture hrs. Laboratory hrs. Tutorial hrs.
5 3 3 0 0
Course Prerequisite: Communicative English Language Skills (FLEn 1011)
Course Category: Common Course
Instructor’s Contact Information: Course Delivery Information:
Name: _____________________ Academic Year: ____________
Office: _____________________ Year/Semester: I/II
Phone: _____________________ Meeting date: ____________
Email: _____________________ Meeting time: ____________
Office Hours: ________________ Meeting location: __________
Course Description
A Writing Proficiency course is one in which the development of writing skills is an integral
part of the course objectives. These/This courses/course provide/provides students with
opportunities to develop basic writing skills and learn the process of writing as practiced by a
particular academic discipline or profession. The course predominantly focuses on academic
writing, presentation, reports, and appraisal of academic discourses. The course intends to
introduce students to the basic functions of English in the areas stated below: note taking from
lectures, identifying structure of lectures, identifying focuses of lectures, discriminating major
and minor ideas in lectures, distinguishing lecturers’ opinions from academic facts, writing
reports, writing summaries and reviews in academic writing, showing probability and certainty
in academic reports, describing and reporting visuals such as tables, graphs etc
Course Objectives
At the end of this course, students will be able to:
➢ Identify the structure and emphasis of academic lectures,
➢ Distinguish the different meaning levels in academic texts,
➢ Interpret visuals like tables, charts, graphs etc. in academic texts,
➢ Conduct oral presentations in academic contexts with confidence,
➢ Debate logically about different issues with their friends,
➢ Express their ideas effectively in various communicative contexts,
220
➢ Master skills of persuasive arguments
➢ Describe visuals in paragraphs,
➢ Write clear reports and assignments in academic contexts, and
➢ Summarize, review and critique academic texts.
Course Outline
1. Indigenous Knowledge
1.1. Speaking
1.1.1. Discussing on the term 'Indigenous Knowledge'
1.2. Listening
1.2.1. Predicting and checking the prediction
1.3. Vocabulary
1.3.1. Dealing with words that collocate
1.4. Reading
1.4.1. Finding out inferences and references
1.5. Writing
1.5.1. Writing for or against "Indigenous Knowledge"
1.6. Grammar
1.6.1. Using appropriate tenses for planning and reporting
2. Environmental Protection
1.7. Listening
1.7.1. Listening text
1.7.2. Discourse markers showing contrast and addition
1.8. Reading
1.8.1. An article on measures to protect the environment
1.8.2. Gap-fill exercises for verbs formed form adjectives and the adjectives
themselves
1.8.3. Comprehension questions
1.9. Speaking
1.9.1. Words and phrases for expressing cause and effect
1.9.2. Conditional sentence type
1.9.3. Future tense
1.9.4. Simple present
221
1.9.5. Expressions of hopes and fears, agreeing and disagreeing
1.10. Writing
1.10.1. A five-paragraph essay
1.10.2. An article to be summarized
3. Digital Technology
1.11. Listening
1.11.1. A TED Talk on the dangers of digital technology
1.12. Reading
1.12.1. Magazine article
1.13. Speaking
1.13.1. Phrases for asking for and giving reasons.
1.13.2. Comparative and superlative forms
1.13.3. 'Wh' questions
1.13.4. Modals
1.14. Writing
1.14.1. Questionnaire for a survey
1.14.2. A 2-3 pages long report on the results of a questionnaire
1.14.3. Oral presentations of the results of the survey
1.14.4. Sample survey report for analysis
2. Lifelong Learning
2.1. Speaking and listening
2.2. Listening
2.3. Vocabulary
2.4. Grammar
2.5. Reading
2.6. Writing
4. Wonders of the World
11.1 Listening
2.6.1. Listening text describing a wonder of the world
11.2 Reading
11.2.1 A story about national heritage that the government of Ethiopia is campaigning for
its recognition by UNESCO
222
11.2.2 An article that contains the history of world heritage sites registered by UNESCO
11.2.3 A table containing nouns, verbs and adverbs used to describe statistical
information
11.3 Speaking
11.3.1 Expressions for suggestions or recommendations, agreement and disagreement
11.3.2 Language of descriptions
11.3.3 A sample descriptive essay
11.4 Writing
11.4.1 Gap-fill exercise on prepositions
11.4.2 Sample descriptive essay
12 Mindset
12.1 Listening
12.2 Reading
12.3 Speaking
12.4 Writing
Instructional Methods and Strategies: Providing brief introductory notes, Pair and group
discussions, facilitating interactive work, encouraging independent learning, giving individual
and group works are some of the major teaching methods to be used.
Teacher’s activities: Interactive lecture methods followed by discussion, demonstration, etc.
and guide students in project work. And also permitting the students to voice and defend their
own opinions and enhancing the students’ commitment to individual study and acquiring
knowledge are among the activities.
Students’ activities: Active involvement of learners is required at each phase. This is done
through questioning and answering, reflection, reporting, solving problems associated with the
respective topics. The students individually and in peer practice and learn through project and
practical work. Each practical will result in a report for assessment.
Assessment Strategies and Techniques: At least 50% continuous assessments (quizzes, tests,
assignments, project work, Valuing Active Participation, Valuing Attendance and/or mid-
examination) and 50% final examination
Instructional Resources (Materials and Equipment): LCD, computer (desktop or laptop),
course outlines, markers, flip charts, white board, chalk board, duster.
223
References
1. Alfassi, M. 2004. Reading to learn: Effects of combined strategy instruction on high school students.
Journal of Educational Research, 97(4):171- 184.
2. Anderson, N. 1999. Exploring second language reading: Issues and strategies.
Toronto:Heinle&Heinle Publisher.
3. Bade, M. 2008. Grammar and good language learners.In C. Griffiths (Eds.). Lessons from good
language learners (pp. 174-184). Cambridge University Press.
https//doi.org/10.107/CBO9780511497667.016
4. Bouchard, M. 2005. Reading comprehension strategies for English language learners: 30research-
based reading strategies that help students read, understand and really learncontent from their
textbooks and other nonfiction materials. New York: Scholastic.
5. Cameron, L. 2001. Teaching languages to young learners. Cambridge: Cambridge University
Press.
6. Chamot, A.U. 1987. The learning strategies of ESL students. In A. Wenden & J. Rubin (Eds.).
Learner strategies in language learning (PP 71-85). Prentice-Hall: Hemel Hempstead.
7. Gairns, R. & Redman, S. 1986. Working with words: A guide to teaching and learning vocabulary.
Cambridge University Press.
8. Department of Foreign Language and Literature. 1996. College English (Volume I and Volume II).
Addis Ababa University Press.
9. McNamara, D.S. (Ed.). 2007. Reading comprehension strategies: Theories, interventions,
andtechnologies. New York: Erlbaum.
10. Tilfarlioğlu, Y. 2005. An Analysis of the relationshipbetweenthe use of grammar learning
strategiesandstudent achievement at English preparatory classes.Journal of Language and Linguistic
Studies 1: 155-169.
11. Murphy R. (?). Essentials of English grammar in use: A self-study reference and practice book for
intermediate students of English (2nd Ed.). Cambridge University Press.
12. Murphy R. 2004. English grammar in use: A self-study reference and practice book for intermediate
students of English (3rd Ed.). Cambridge University Press.
13. Zhang, L. J. 2008.Constructivist pedagogy in strategic reading instruction:Exploring pathways
tolearnerdevelopment in the English as a second language (ESL) classroom. Instructional Science,
36(2): 89-116.https://doi.org/10.1007/s11251-007-9025-6.
224
DEBRE BERHAN UNIVERSITY Computing College
Institute of Technology Department of Computer Science
Department: Computer Science
Course Title: Social Anthropology Course Code: Anth 1012
Course Load: ECTS Credit Lecture hrs. Laboratory hrs. Tutorial hrs.
3 2 2 0 0
Course Prerequisite: None
Course Category: Common Course
Instructor’s Contact Information: Course Delivery Information:
Name: _____________________ Academic Year: ____________
Office: _____________________ Year/Semester: I/II
Phone: _____________________ Meeting date: ____________
Email: _____________________ Meeting time: ____________
Office Hours: ________________ Meeting location: __________
Course Description:
This course is designed to introduce the anthropology of Ethiopian societies and cultures to first
year students of Higher Learning Institutions (HLIs). It covers basic concepts of anthropology
such as culture, society and humanity. It also discusses themes including unity and diversity;
kinship, marriage and family; indigenous knowledge systems and local governance, identity,
multiculturalism, conflict, conflict resolution and peacemaking system; intra and inter-ethnic
relations of Ethiopian peoples. In addition, the course explores culture areas of Ethiopia such as
plough culture, enset culture and pastoralism. The course further covers marginalized minority
and vulnerable groups in terms of age, gender, occupation and ethnicity by taking ethnographic
case studies into account and discuss ways of inclusive growth.
Course objectives:
Up on the successful completion of the course, students will be able to:
➢ Develop an understanding of the nature of anthropology and its broader scope in making
sense of humanity in a global perspective;
➢ Understand the cultural and biological diversity of humanity and unity in diversity across
the world and in Ethiopia;
➢ Analyze the problems of ethnocentrism against the backdrop of cultural relativism;
➢ Realize the socially constructed nature of identities & social categories such as gender,
ethnicity, race and sexuality;
225
➢ Explore the various peoples and cultures of Ethiopia;
➢ Understand the social, cultural, political, religious& economic life of different
ethnolinguistic & cultural groups of Ethiopia;
➢ Understand different forms marginalization and develop skills inclusiveness;
➢ Appreciate the customary systems of governance and conflict resolution institutions of
the various peoples of Ethiopia;
➢ Know about values, norms and cultural practices that maintain society together;
➢ Recognize the culture area of peoples of Ethiopia and the forms of interaction
developed over time among themselves; and
➢ Develop broader views and skills to deal with people from a wide variety of
socioeconomic and cultural backgrounds.
Course Outline
1. Introducing Anthropology and Its Subjects
1.1. What is anthropology – a Mirror for Humanity?
1.1.1. Sketching the subject matter, scope and concerns of anthropology
1.1.2. Anthropological imagination: asking questions and seeing the world
anthropologically.
1.1.3. Defining Features of Anthropology- holism, relativism & comparative
perspectives
1.1.4. Methods of Research in anthropology: ethnography & ethnographic methods
1.2. Sub-fields of Anthropology: Four Mirrors for Understanding Humanity
1.3. The relation between anthropology and other disciplines
2. Human Culture and Ties that Connect
2.1. Conceptualizing Culture: What Culture Is and What Culture Isn’t?
2.2. Characteristics features of culture: what differentiates culture from other traditions?
2.3. Aspects of Culture –Material & Non-material (values, beliefs & norms)
2.4. Levels of culture: universality, generality and particularity (cultural diversity)
2.5. Ethnocentrism, Cultural relativism, and human rights
2.5.1. Discussion- Debating cultural relativism: Human rights law and the demonization
of culture and anthropology along the way
2.5.2. Cultural Change: what is cultural change?
2.5.3. Cultural Diffusion versus Cultural Assimilation
226
2.5.4. Innovation
2.5.5. Discussion - Contesting culture as sharply bounded versus unbounded ‘cultural
flows’ or as ‘fields of discourse’ in the context of globalization.
2.6. Ties that Connect: Marriage, Family and Kinship
2.6.1. Marriage -rules, functions and forms of Marriage
2.6.2. Family -types and functions of Family
2.6.2.1. Q. How families and marriage differ in different societies?
2.6.3. Kinship System -types of kin groups and rules of descent
2.6.4. Kinship and Gender Across Cultures
2.6.4.1. Sex and Gender: Mapping differences in cross cultural perspective
2.6.4.2. Gender –as power relations
2.7. Cultural practices, norms and values that maintain society together
3. Human Diversity, Culture Areas, and Contact in Ethiopia
3.1. Human Beings & Being Human: What it is to be human? –(a bio-cultural animal?)
3.2. Origin of the Modern Human Species: Homo sapiens sapiens (that’s you!)
3.2.1. Religious, biological & evolutionary (paleo-anthropological) explanations
3.3. The Kinds of Humanity: human physical variation
3.3.1. Q. Why isn’t everyone the same?
3.3.2. Q. Why do people worldwide have differences in their phenotypic attributes?
3.4. Human Races: the history of racial typing
3.4.1. The Grand Illusion: Race, turns out, is arbitrary
3.4.2. Q. What can we say for sure about human races?
3.5. Why is Everyone Different? Human Cultural Diversity - anthropological explanations
3.5.1. Q. Why don’t others do things the way we/I do?
3.6. Culture areas and cultural contacts in Ethiopia
3.6.1. Plough culture area
3.6.2. Enset culture area
3.6.3. Pastoral societies culture area
3.6.4. Historical and social interactions between culture areas
4. Marginalized, Minorities, and Vulnerable Groups
4.1. Gender based marginalization
4.2. Occupational cast groups
227
4.3. Age based vulnerability (children and old age issues)
4.4. Religious and ethnic minorities
4.5. Human right approaches and inclusive growth, anthropological perspectives
5. Theories of Inter-Ethnic Relations and Multiculturalism in Ethiopia
5.1. The Scales of Human Identity: Who am I? - Understanding ‘self’ & ‘other’
5.1.1. Q- What are the ways we tell for others who we are?
5.2. Ethnicity and Race: What’s in a name?
5.3. Ethnic Groups & Ethnic Identity
5.3.1. Q. What is the basis of one’s ethnic identity?
5.3.2. Q. Is ethnicity a fundamental aspect of human nature & self-consciousness,
essentially unchanging and unchangeable identity? Or
5.3.3. Q. Is it, to whatever extent, socially constructed, strategically or tactically
manipulable, and capable of change at both the individual and collective levels?
5.4. Race –the social construction of racial identity
5.4.1. Q. Do the claims of some people/groups about superior & inferior racial groups
have any scientific validity?
5.5. Primordialism; Instrumentalism; Social constructivism
5.6. Debates on inter-ethnic relations and identities
6. Customary and Local Governance Systems and Peace Making
6.1. Indigenous knowledge systems and local governance
6.2. Intra and inter-ethnic conflict resolution institutions Ethnographic cases: commonalities
and shared practices (e.g., Oromo and Somali, Afar and Tigray; Gedeo and Oromo;
Guraghe and Siltie; Amara and Tigray)
6.3. Customary/Local governance systems Ethnographic cases: Oromo Geda; Somali-Gurti;
Gamo, Gofa, Wolayita-Woga; Guraghe-Sera
6.4. Legal pluralism: interrelations between customary, religious and state legal systems
Instructional Methods and Strategies: This course will be delivered based on learner centered
approach. Therefore, the main instructional strategies of the course are pair & group discussions;
interactive teaching; brainstorming; icebreaker; debating & role-play.
Teacher’s activities: An instructor of this course is expected to be honest to the content,
policies and guidelines of this course. He/she is also expected to be well prepared on the course
228
as well as prepare course outlines & teaching materials, follow up and assess students as per the
guidelines.
Students’ activities: Students are expected to attend regularly. If students miss more than 20% of
the classes, he/she will not sit for final exam. Punctuality is mandatory and late coming student
should not be allowed to enter the class.
Assessment Strategies and Techniques: Based on the progressive understandings of the
course, students will be evaluated continuously through both non-graded assignments /
activities, like (reading assignments) and graded assignments/activities and assessments
including class discussion & participation, Test, Term Paper & presentation, Home Taken
Exam/case studies and Final Exam. At least 50% continuous assessments (quizzes, tests,
assignments, and/or mid-examination) and 50% final examination
Instructional Resources (Materials and Equipments): LCD, computer (desktop or laptop),
course outlines, markers, flip charts, white board, chalk board, duster.
References
1. Asmarom Legesse (2006). Oromo Democracy: an Indigenous African Political System. The
Red Sea Press, Inc.
2. Cameron, M. Smith and Evan T. Davies (2008). Anthropology for Dummies. Wiley
Publishing, Inc., Indianapolis, Indiana.
3. Clifored Geertz. (1973). The Interpretation of Cultures. A division of Harper Collins
Publishers.
4. Donald Donham. (1986). Marxist Modern. The Ethnographic History of Marxist Ethiopia.
5. Donald N. Levine. (1974). Greater Ethiopia: The Evolution of A Multiethnic Society.
Chicago & London., University of Chicago.
6. Dunif-Hattis and Howard C. (1992). Anthropology: Understanding Human Adaptation. New
York: Harper Collins, Inc.
7. Eriksen, T. H. (2001). Small Places, larger Issues: An introduction to social and cultural
anthropology. London: Pluto Press.
8. Eriksen, T. H. (2004). What is anthropology? London: Pluto Press.
9. Eriksen, T. Hylland. (2002). Ethnicity and Nationalism. London; Pluto Press.
10. Eriksen, T.H. and Nielsen, F.S. (2001). A History of Anthropology. London: Pluto Press.
11. Hallpike, Christopher R. (1972). The Konso of Ethiopia: A Study of the Value of a Cushitic
People. Oxford: Clarendon Press.
229
12. Hamer, John. (1970). The Sidama Generational Class Cycles: A Political Geronotocracy.
Africa 40,I (Jan,1970): 50-70.
13. Haviland, WA, (1999). Cultural Anthropology (9th ed.). Fort Worth: Harcourt and Brace
College Pub.
14. Kottak, C. P. (2004) – Anthropology: the Exploration of Human Diversity (10th ed.).
McGraw Hill, New York.
15. Lavenda, R. and Emily S. (2015). Anthropology. What Does It Mean to Be Human?
(3rded.). Oxford. Oxford University Press.
16. Pankhurst, R. (2001). Historic Images of Ethiopia. Shamans Books. Addis Ababa, Ethiopia.
17. Richard Jenkins. (2006). Rethinking Ethnicity. London Sage Publication.
18. Rosman, A., Rubel, P.G. and Weisgrau, M. (2009). The Tapestry of Culture: An Introduction
to Social Anthropology. Lanham: Rowman and Little field.
19. Scupin and DeCorse (1988). Anthropology: A Global Perspective (2nd ed.). New Jersey:
Prentice Hall.
20. Shack, William S. (1966). The Gurage: A People of the Enset Culture. London: Oxford
University Press.
21. Triulzi et al. (2002). Remapping Ethiopia Easer African Studies: Addis Ababa: AAU
230
DEBRE BERHAN UNIVERSITY Computing College
Institute of Technology Department of Computer Science
231
➢ Comprehend the features of Ethiopian federalism.
➢ Conceptualize constitution, its classification and unique features.
➢ Define the term human rights, the unique features and its classifications.
➢ Differentiate the teleological, deontological and virtue theories.
Course Outline:
1. Understanding Civics and Ethics
1.1. Chapter introduction
1.2. Defining Civics, Ethics and Morality
1.3. Ethics and Law
1.4. The importance/goal of moral and civic education
2. Approaches to Ethics
2.1. Chapter introduction
2.2. Normative ethics
2.3. Non-normative ethics
3. Ethical Decision Making and Moral Judgements
3.1. Chapter introduction
3.2. How can we make ethical decisions and actions?
3.3. To whom or what does morality apply?
3.4. Who is morally/ethically responsible?
3.5. Why should human beings be moral?
4. State, Government and Citizenship
4.1. Chapter introduction
4.2. Understanding state
4.3. Rival theories of state
4.4. The role of the state
4.5. Understanding government
4.6. Understanding citizenship
5. Constitution, Democracy and Human Rights
5.1. Chapter introduction
5.2. Constitution and constitutionalism
5.3. Constitutionalism
5.4. The constitutional experience of Ethiopia: Pre and post 1931.
232
5.5. Democracy and democratization
5.6. Human Rights: concepts and theories
Instructional method and strategies
Teacher’s activities: Introducing objectives to the students, asking brain storming questions,
Defining terms and concepts in global affairs, brief introduction to the sub topics, Giving class
room and home based works, Checking, evaluating, and giving feedback to students’ work and
Summarizing the chapters
Students’ activities: Active involvement of learners is required at each phase. This is done
through questioning and answering, brainstorming, reflection, reporting, solving problems
associated to the respective topics.
Assessment Strategies and Techniques: At least 50% continuous assessments (quizzes, tests,
assignments, project work and/or mid-examination) and 50% final examination
Instructional Resources (Materials and Equipments): LCD, computer (desktop or laptop),
course outlines, markers, flip charts, white board, chalk board, duster.
References
1. Bunbongkarn, S., 2001. The role of civil society in democratic consolidation in Asia. Center
for International Exchange, p.230.
2. Camara, M. S. (2008). Media, civil Society and political culture in West Africa, African
Journalism Studies, 29(2), 210-229.
3. Dorsen, N., Rosenfeld, M., Sajó, A., & Baer, S. (2003). Comparative constitutionalism:
cases and materials.
4. Gashaw, A. (2015) Constitution, constitutionalism and foundation of democracy in
Ethiopia.
5. Getahun, K. (2007). Mechanisms of Constitutional Control: A preliminary observation of
the Ethiopian system. Afrika Focus, 20(1-2).
233
DEBRE BERHAN UNIVERSITY Computing College
Institute of Technology Department of Computer Science
Department: Computer Science
Course Title: Economics Course Code: ECON 2013
Course Load: ECTS Credit Lecture hrs. Laboratory hrs. Tutorial hrs.
5 3 3 0 0
Course Prerequisite: None
Course Category: Common Course
Instructor’s Contact Information: Course Delivery Information:
Name: _____________________ Academic Year: ____________
Office: _____________________ Year/Semester: II/I
Phone: _____________________ Meeting date: ____________
Email: _____________________ Meeting time: ____________
Office Hours: ________________ Meeting location: __________
Course Description:
This course provides a general introduction to economics combining elements of micro and
macro fundamentals. The first part of the course focuses on partial equilibrium aspects of
theories of consumer behaviour, producer behaviour as well as on the arrangements and
implications of different market structures. It will also cover the neoclassical theory of product
and/or service pricing for perfectly competitive, monopolistic, oligopoly, and monopoly market
structures. In addition, topics covered will include factor market pricing, general equilibrium
analysis and distortions which relate to asymmetric information and moral hazard problems. The
second part will discuss elements of macroeconomics that revolve around issues of measurement
of aggregate economic activities, unemployment, and inflation. Emphasis will also be given to
sources, consequences and policy responses to economic fluctuations. In the first part the course
commences by highlighting the underlying assumptions behind each theory followed by in-
depth analyses of the decisions of economic units subject to resource constraints in an effort to
realize their respective objectives assuming the prevalence of market clearing situation. Finally,
students will be able to contextualize the key analytical instruments with stylized facts from the
Ethiopian economy.
234
Course Objectives
After completing introduction to economics, students will be able to:
➢ Describe the major economic units constituting a given society and their
corresponding roles
➢ Explain the objective functions of consumers and how they attain this
objective under resource constraints
➢ Define producers’ objective functions, describe their cost structures in the
short and the long run, and apply partial equilibrium approaches to find
optimal prices and quantities under different degrees of competition.
➢ Tabulate markets into different categories on the basis of the number of
buyers and sellers and outline the various social welfare implications of
each market structure.
➢ Elaborate the concept of general equilibrium analysis, identify its merits
and demerits, and discuss the various market failures due to distortions
arising from imperfect information and cultivate the corresponding possible
remedial measures
➢ Understand how aggregate economic measures are constructed, their
weaknesses, and alternative measures of national wellbeing
➢ Identify the sources and adverse effects of economic crises and describe
the pool of policy instruments that can be deployed to mitigate the
consequences of these crises.
➢ Contextualize the key analytical instruments with stylized facts from the
Ethiopian economy
Course outline
1. Theory of Consumer Behavior and Demand
1.1. consumer preferences and choices
1.1.1. Consumer preference
1.1.2. Utility
1.2. Approaches to measuring utility
1.2.1. The cardinal utility approach
1.2.2. Assumptions of cardinal utility theory
1.2.3. Total and marginal utility
235
1.2.4. Law of diminishing marginal utility (LDMU)
1.2.5. Equilibrium of a consumer
1.2.6. Derivation of the cardinalist demand
1.3. The ordinal utility approach
1.3.1. Assumptions of ordinal utility approach
1.3.2. Indifference set, curve and map
1.3.3. Properties of indifference curves
1.3.4. The marginal rate of substitution (MRS)
1.3.5. Types of indifference curves
1.4. The budget line or the price line
1.4.1. Factors affecting the budget line
1.4.1.1. Effects of changes in income
1.4.1.2. Effects of changes in price
1.5. Optimum of the consumer
1.5.1. Effects of changes in income and prices on consumer optimum
1.5.1.1.Changes in income: income consumption curve and the Engel curve
1.5.1.2.Changes in price: price consumption curve (PCC)
1.5.2. Decomposition of income and substitution effects (normal, inferior or giffen
goods)
1.5.3. Derivation of market demand curve
1.6. Elasticity of demand
2. The Theory of Production
2.1. Production function
2.2. Stages and laws of production
2.3. The law of variable proportions
2.4. Laws of returns to scale
2.5. Choice of optimal combination of factors of production
2.6. Short run and long run production functions
3. Theory of Costs.
3.1. Definition and types of costs
3.2. Short-run costs
3.3. Long-run costs
236
3.4. Derivation of cost functions from production functions
3.5. Dynamic changes in costs- the learning curve
4. Perfect Competition Market
4.1. The concept of market in physical and digital space (e.g. Amazon, Alibaba,etc..)
4.2. The welfare costs, benefits of e-markets and their implication for regulatory
mechanisms
4.3. Competitive markets, short- run equilibrium of the firm, industry, and market
4.4. The long-run equilibrium of the firm, industry and market
5. Pure Monopoly Market
5.1. Characteristics and source of monopoly
5.2. Short run and long-run equilibrium
5.3. Price discrimination
5.4. Multi-plant monopolist
5.5. Social cost of monopoly power
6. Monopolistic Competition
6.1. Assumptions
6.2. Product differentiation, the demand curve and cost of the firm
6.3. The concept of industry and product ‘group’
6.4. Short-run and long-run equilibrium of the firm excess capacity and welfare loss
6.5. Brief introduction to oligopoly markets
7. Fundamentals of Macroeconomics
7.1. The concepts of GDP and GNP
7.2. Approaches of measuring national income (GDP/GNP)
7.3. Other social accounts (GNP, NNP, NI, PI and DI)
7.4. Nominal versus real GDP
7.5. The GDP deflator and the consumer price index
7.6. GDP and welfare
7.7. The business cycle
7.8. Unemployment and inflation
7.9. Technology (. e.g. Robots) and unemployment
7.10. Role of exchange rate, terms of trade, and other external shocks
7.11. Brief introduction to the Ethiopian Economy
237
Instructional Methods and Strategies: The course will involve deploying different teaching methods
that attempt to make the teaching-learning process as effective as possible. For most part of the course,
delivery method will be arranged as to make the process student-centered. There shall be full and active
participation from students and they are strongly encouraged to ask questions, to reflect on brain-
storming queries, and be involved actively and attentively in take-home assignments and peer discussions
that appear during the semester both within and outside class-room sessions. While there is no limit to the
imagination and flexibility of the instructor, the course delivery techniques will generally involve the
following items: Lecture, Brain-storming sessions, Group discussions and Individual and group
assignments
Students’ Activities: Preparedness: You must come to class prepared by bringing with you the
appropriate materials like handouts, worksheets and exercises given, text books and completed
assignments. Complete the individual and group assignments and other activities on time. You must plan
your own learning through reading various course related materials and chapters in books. You are
expected to work much individually to meet the requirement of the course. You have to use your time for
group work and home study effectively.
Participation: Make active participation during discussions (you must participate in class). You are not
participating if you are simply talking to a friend, doing homework, daydreaming, or not doing what the
rest of the class is doing. If you are working in a group or with a partner, you must talk to your group
members or partner and be a part of the group. Always be ready and willing to give constructive feedback
to partners’/group members and to listen to their comments on your work
Assessment Strategies and Techniques: At least 50% continuous assessments (quizzes, tests,
assignments, project work and/or mid-examination) and 50% final examination
Instructional Resources (Materials and Equipments): LCD, computer (desktop or laptop), course
outlines, markers, flip charts, white board, chalk board, duster.
References
1. Koutsoyiannis, Modern Microeconomics
2. D.N.Dwivedi, 1997, Micro Economic Theory, 3rd Ed., Vikas Publishing
3. R.S. Pindyck& D.L. Rubinfeld,Microeconomics.
4. Hal R. Varian, Intermediate Microeconomics: A Modern Approach, 6th Ed.
5. C.L.Cole, Micro Economics: A Contemporary Approach.
6. Ferguson & Gould’s, 1989, Microeconomic Theory, 6th Ed.
7. N.GregoryMankiw, 2007, Macroeconomics 4th edition
8. William H. Branson, 2006 Macroeconomic Theory and Policy
238
DEBRE BERHAN UNIVERSITY Computing College
Institute of Technology Department of Computer Science
Department: Computer Science
Course Title: Global Trends Course Code: GLTr1012
Course Load: ECTS Credit Lecture hrs. Laboratory hrs. Tutorial hrs.
4 2 2 0 0
Course Prerequisite: None
Course Category: Common Course
Instructor’s Contact Information: Course Delivery Information:
Name: _____________________ Academic Year: ____________
Office: _____________________ Year/Semester: I/II
Phone: _____________________ Meeting date: ____________
Email: _____________________ Meeting time: ____________
Office Hours: ________________ Meeting location: __________
Course Description
The course is designed to equip students with the basics of international relations so that they
will be exposed to global challenges and perspectives. The course is very comprehensive, broad
and multidisciplinary in its nature. Perhaps you may find it as an ice-breaking course since it
touches up on wide range of issues, concepts, theories, approaches and debates that are helpful
in understanding the contemporary international relations. Concepts, such as national interest,
foreign policy, actors, globalization, balance of power, cold war, multi-polar systems,
international law and other relevant concepts are being introduced. Different debates and
approaches to the study of international relations including realism, liberalism are also given due
emphasis.
Course Objectives
After completing this course, students will be able to:
➢ Understand nations, nationalism and states
➢ Explain the nature and historical development of international relations
➢ Examine the extent and degree of influence of state and non-state actors in the
international system
➢ Gain basic knowledge of the major theories of International Relations and develop the
ability to critically evaluate and apply such theories
➢ Elucidate national interest, foreign policy and diplomacy
239
➢ Assess the overriding foreign policy guidelines of Ethiopia in the past and present
➢ Explicate the nature and elements of international political economy
➢ Examine the roles major international and regional institutions play in world politics
➢ Explore Ethiopia’s role in regional, continental and global institutions and affairs
➢ Critically evaluate the major contemporary global issues
Course Outline
1. Understanding International Relations
1.1. Conceptualizing Nationalism, Nations and States
1.2. Understanding international relations
1.3. The nature and evolution of international relations
1.4. Actors in international relations
1.5. Levels of analysis in international relations
1.6. The structure of international relations
1.7. Theories of international relations
2. Understanding Foreign Policy and Diplomacy
2.1. Defining national interests
2.2. Understanding foreign policy and foreign policy behaviors
2.3. Overview of foreign policy of Ethiopia
3. International Political Economy (IPE)
3.1. Meaning and nature of international political economy (IPE)
3.2. Theoretical perspectives of IPE
3.3. Survey of the most influential national political economy systems in the
world
3.4. Core issues, governing institutions and governance of international
political economy
3.5. Exchange rates and the exchange rate system
4. Globalization and Regionalism
4.1. Defining globalization
4.2. The globalization debates
4.3. Globalization and its impacts on Africa
4.4. Ethiopia in a globalized world
4.5. Pros and Cons of globalization
240
4.6. Defining regionalism and regional integration
4.7. Major theories of regional integration
4.8. Selected cases of regional integration
4.9. Regionalization versus globalization and states
4.10. The relations between regionalization and globalization
4.11. Regionalization, globalization and the state
5. Major Contemporary Global Issues
5.1. Survey of major contemporary global issues
Instructional method and strategies: Introducing objectives to the students, asking brain
storming questions, Defining terms and concepts in global affairs, brief introduction to the sub
topics, Giving class room and home based works, Checking, evaluating, and giving feedback to
students’ work and Summarizing the chapters
Students’ activities: Active involvement of learners is required at each phase. This is done
through questioning and answering, brainstorming, reflection, reporting, solving problems
associated to the respective topics.
Assessment Strategies and Techniques: At least 50% continuous assessments (quizzes, tests,
assignments, project work and/or mid-examination) and 50% final examination
Instructional Resources (Materials and Equipments): LCD, computer (desktop or laptop),
course outlines, markers, flip charts, white board, chalk board, duster.
References
1. Balaam, David N., and Bradford Dillman. 2011. Introduction to International Political
Economy. Boston: Longman.
2. Bates, R. (1982). Markets and States in Tropical Africa. Berkeley: University of California
Press.
3. Baylis, J. and Steve S. 2001. The Globalization of World Politics: An Introduction to
International Relations. Oxford University Press: New York.
4. Booth, K. and Smith, S. (eds), International Relations Theory Today (Cambridge: Polity)
5. Brown, Chris, Understanding International Relations (London, Macmillan, 1977)
241
DEBRE BERHAN UNIVERSITY Computing College
Institute of Technology Department of Computer Science
Department: Computer Science
Course Title: Entrepreneurship & Business Development Course Code: MGMT3102
Course Load: ECTS Credit Lecture hrs. Laboratory hrs. Tutorial hrs.
5 3 3 0 0
Course Prerequisite: None
Course Category: Common Course
Instructor’s Contact Information: Course Delivery Information:
Name: _____________________ Academic Year: ____________
Office: _____________________ Year/Semester: III/II
Phone: _____________________ Meeting date: ____________
Email: _____________________ Meeting time: ____________
Office Hours: ________________ Meeting location: __________
Course description
This interdisciplinary course is designed to introduce students to meaning and the concept of
entrepreneurship vs entrepreneur, creativity and innovation and their manageable processes that
can be applied across careers and work settings. It focuses on building entrepreneurial attitudes
and behaviors that will lead to creative solution within community and organizational
environments. Course topics include the history of entrepreneurship, the role of entrepreneurs in
the 21st century global economy, and the identification of entrepreneurial opportunities. The
elements of creative problem solving, the development of a business ideas, products and
services, marketing and developing new ventures, the examination of feasibility studies and the
social and moral implications of entrepreneurship will be incorporated. Besides, issues related to
starting and financing a new venture are included. Finally, managing growth and through
merger, acquisitions, licensing, outsourcing, franchising etc. And forms of business
organizations, legal and regulatory frameworks of governing the whole system are also
encompassed in the course syllabus.
Course objectives:
After completing the course learners will be able to understand:
➢ Meaning of the term entrepreneurship within the context of society; organizations and
individuals.
➢ The role of entrepreneurship on the economy.
➢ Developing a concept for an innovative idea, product or service in one’s own area of
242
interest.
➢ How to develop elements of the entrepreneurial mindset and discuss the implications for
functioning as a successful entrepreneur.
➢ The way how to prepare business plan as roadmap.
➢ The basic concepts of risk, its type & classification
➢ How to develop market and new venture
➢ How to explore alternative sources of financing the new venture
➢ How to form business organizations and consider practical ethical issues during the
process
Course Outline
1. Overview of Entrepreneurship
1.1. What is entrepreneurship?
1.2. Definition and philosophy of entrepreneurship vs entrepreneur
1.3. Historical origin of entrepreneurship
1.4. Role within the economy
1.5. Entrepreneurship, creativity and innovation
2. Business Development
2.1. Definition and importance
2.2. Economic, social & political aspects of business enterprises
2.3. Business Failure factors.
2.4. Problems of small-scale businesses in Ethiopia
2.5. Setting up small scale businesses
2.5.1. Basic business ideas
2.5.2. the ways of organizing business ideas that an entrepreneur should have
2.5.3. Definition of industry and small-scale industry
2.5.4. Steps in setting up a small-scale business
3. Business Planning
3.1. The concept of business planning
3.2. Feasibility planning
3.3. The business plan
3.4. Developing a business plan
243
4. Conception of Idea, Product or Services
4.1. Idea, Product or Service Technology
4.2. Idea, product or service development process
4.3. Idea, product or service protection
4.3.1. Patents
4.3.2. Trademarks
4.3.3. Copyrighting
5. Marketing and new venture development
5.1. What is market?
5.2. Marketing research
5.3. Marketing intelligence
5.4. Competitive analysis
5.5. Marketing strategies
5.6. International markets
6. Organizing and financing the new venture
6.1. Entrepreneurial team and business formation
6.2. Sources of financing
6.2.1. Asset management
6.2.2. Equity Financing
6.2.3. Venture Capital
6.2.4. Debt financing
6.2.5. Government financing e.g. Omo, Dev’t Bank etc…
6.2.6. NGO financing e.g. Germany supports for disabilities interest free loan
disbursement
7. Managing Growth and Transaction
7.1. Preparing for the launch of the venture
7.2. Managing early growth of venture
7.3. New venture expansion strategies and Issues (Mergers, Acquisitions, licensing and
Franchising)
7.4. Legal and regulatory frameworks of growth & transaction of new venture
244
Instructional Methods and Strategies: The course will involve deploying different teaching
methods that attempt to make the teaching-learning process as effective as possible. For most
part of the course, delivery method will be arranged as to make the process student-centered.
There shall be full and active participation from students and they are strongly encouraged to ask
questions, to reflect on brain-storming queries, and be involved actively and attentively in take-
home assignments and peer discussions that appear during the semester both within and outside
class-room sessions. While there is no limit to the imagination and flexibility of the instructor,
the course delivery techniques will generally involve the following items: Lecture, Brain-
storming sessions, Group discussions and Individual and group assignments
Students’ Activities: Preparedness: You must come to class prepared by bringing with you the
appropriate materials like handouts, worksheets and exercises given, text books and completed
assignments. Complete the individual and group assignments and other activities on time. You must plan
your own learning through reading various course related materials and chapters in books. You are
expected to work much individually to meet the requirement of the course. You have to use your time for
group work and home study effectively.
Participation: Make active participation during discussions (you must participate in class). You are not
participating if you are simply talking to a friend, doing homework, daydreaming, or not doing what the
rest of the class is doing. If you are working in a group or with a partner, you must talk to your group
members or partner and be a part of the group. Always be ready and willing to give constructive feedback
to partners’/group members and to listen to their comments on your work
Assessment Strategies and Techniques: At least 50% continuous assessments (quizzes, tests,
assignments, project work and/or mid-examination) and 50% final examination
Instructional Resources (Materials and Equipment): LCD, computer (desktop or laptop), course
outlines, markers, flip charts, white board, chalk board, duster.
References:
1. Hailay Gebretinsae, Entrepreneurship and Small Business Management, 2nd Edition.
2. Hodgetts, Richard M.Kurakto, DonaldF. “Entrepreneurship: A contemporary approach “. Fourth
Edition, the Dryden Press, 1998.
3. Hirsh Robert D. D. and Peters Michael P. “Entrepreneurship” Fifth Edition, Tata McGraw Hill
Edition, 2002.
4. Holt David H. “Entrepreneurship – New venture Creation “Eastern Economy Edition, 2000.
5. Donald F. Kutatko and Richard M. Hodgetts, “Entrepreneurship: A Cotemporary Approach Fourth
Edition.
245
DEBRE BERHAN UNIVERSITY Computing College
Institute of Technology Department of Computer Science
Department: Computer Science
Course Title: Introduction to emerging technologies Course Code: EmTe1012
Course Load: ECTS Credit Lecture hrs. Laboratory hrs. Tutorial hrs.
5 3 3 0 2
Course Prerequisite: None
Course Category: Compulsory
Instructor’s Contact Information: Course Delivery Information:
Name: _____________________ Academic Year: ____________
Office: _____________________ Year/Semester: I/II
Phone: _____________________ Meeting date: ____________
Email: _____________________ Meeting time: ____________
Office Hours: ________________ Meeting location: __________
Course Description
This course will enable students to explore current breakthrough technologies in the areas of
Artificial Intelligence, Internet of Things and Augmented Reality that have emerged over the
past few years. Besides helping learners become literate in emerging technologies, the course
will prepare them to use technology in their respective professional preparations.
Objective of the course
Up on the completion of this course students will be able to:
➢ Identify different emerging technologies
➢ Differentiate different emerging technologies
➢ Select appropriate technology and tools for a given task
➢ Identify necessary inputs for application of emerging technologies
246
Syllabus Components
Course Contents, Methods & strategies, and learning outcomes
Time Content & sub-contents Methods & Students Task Learning
Strategies Outcomes:
At the end of this
chapter students
will be able to
Chapter 1: Introduction to Emerging • Listening • Attend the • Develop
Technologies • Note-taking lesson knowledge of IR
1.1 Evolution of Technologies • Brainstorming • Listen and take • Identifies
1.1.1 Introduction to • Reading notes programmable
Industrial revolution (IR) • Individual • Answer device
1.1.2 Historical Background work questions • Develop the
(IR 1.0, IR 2.0, IR 3.0) • Group • Read knowledge how
1.1.3 Fourth Industrial discussion • Doing class computer interact
Revolution (IR 4.0) • Reflections works and with machine
1.2 Role of Data for Emerging
• Gapped home works, • Develop general
Technologies • Reflects knowledge about
Lecture
1.3 Enabling devices and network emerging
Week 1-2
247
Chapter 3: Artificial Intelligence (AI) • Listening • Attend the • Develop the
3.1. Introduction to AI • Note-taking lesson knowledge of AI
3.1.1. What is • Brainstorming • Listen and • Know how
AI • Gapped take short where to use AI
3.1.2. History of Lecture notes,
AI • Group • Asking and
3.1.3. Levels of discussion answering
AI • Class work questions,
3.1.4. Types of AI • Tutorials • Doing class
3.2. Applications of
• Reflections works and
AI home works,
3.2.1. • Participating
Agriculture in group
3.2.2. Health discussions.
3.2.3. Business (Emerging market) • Reflects
3.2.4. Education
3.3. AI tools and platforms
Week 5 – 7
(e.g.: scratch/object
tracking)
3.4. Sample application with hands on
activity (simulation based)
Chapter 4: Internet of Things (IoT) • Listening • Attend the • Develop the
4.1. Overview of IoT • Note-taking lesson general
4.1.1. What is IoT? • Brainstorming • Listen and knowledge of
4.1.2. History of IoT • Reading take short IOT.
4.1.3. Advantage of IoT • Individual notes, • know how IoT
4.2. How IoT Works work • Asking and works and where
4.2.1. Architecture of IoT • Group answering to Put on
4.2.2. Device and Network discussion questions,
4.3. IOT tools and platforms (e.g.: KAA • Reflections • Doing class
IoT /Device Hive/Zetta/Things
• Gapped works and
Board…) home works,
Lecture
Week 8 – 10
248
Chapter 5: Augmented Reality(AR) • Listening • Attend the • Develop the
5.1. Introduction to AR • Note-taking lesson knowledge of AR
5.2. Virtual reality (VR), Augmented • Listen
• Brainstorming and • Identify and
Reality (AR) vs mixed reality (MR) • Reading take short differentiate about
5.3. Architecture of AR systems. • Individual notes, VR, AR and MR
5.4. Application of AR systems work • Asking and • Develop the
(education, medical, assistance, • Group answering knowledge of AR
entertainment) workshop-oriented discussion questions, architecture and its
hands demo • Doing class
• Reflections Application area.
• Gapped works and
home works,
Week 11-12
Lecture
• Participating
in group
discussions.
• Reflects
Chapter 6: Ethics and professionalism • Listening • Attend the • Develop general
of emerging technologies • Note-taking lesson knowledge on
6.1. Technology and ethics • Brainstorming • Listen and ethics and
6.2. Digital privacy • Reading take short professionalism
6.3. Accountability and trust • Individual notes, of emerging
6.4. Treats and challenges work • Asking and technologies
• Group answering
discussion questions,
• Reflections • Doing class
• Gapped works and
Lecture home works,
• Participating
Week 13
in group
discussions.
• Reflects
Chapter 7: Other Emerging • Listening • Attend the • Know how about
Technologies • Note-taking lesson currently
7.1. Nanotechnology • Brainstorming • Listen and available
7.2. Biotechnology • Reading take short emerging
7.3. Blockchain technology • Individual notes, technologies
7.4. Cloud and quantum computing work • Asking and
7.5. Autonomic computing • Group answering
7.6. Computer vision discussion questions,
7.7. Embed systems • Reflections • Doing class
7.8. Cyber security
• Gapped works and
Week 14 – 15
249
DEBRE BERHAN UNIVERSITY Computing College
Institute of Technology Department of Computer Science
Department: Computer Science
Course Title: General Psychology Course Code: Psyc1011
Course Load: ECTS Credit Lecture hrs. Laboratory hrs. Tutorial hrs.
5 3 3 0 0
Course Prerequisite: None
Course Category: Common Course
Instructor’s Contact Information: Course Delivery Information:
Name: _____________________ Academic Year: ____________
Office: _____________________ Year/Semester: I/I
Phone: _____________________ Meeting date: ____________
Email: _____________________ Meeting time: ____________
Office Hours: ________________ Meeting location: __________
Course description
This introductory course will provide students with an overview of the current body
of knowledge and the science of psychology. This course examines the role of
environmental factors and the interaction of nature and nurture in determining
behaviors and mental processes. Areas to be discussed will include; the essence
psychology, human development, theories of learning, memory and forgetting,
motivation and emotion, psychological disorder and treatments. The course will also
focus on how to develop life skills based on the theories and principles of psychology
where self-development, academic and social skills shall be given due attention.
Course Rationale
The course General Psychology and Life skills encompasses the fundamental
concepts and principles of psychology which have immense application to human life
problems. Hence, this course is intended to introduce students to the basic concepts of
psychology and acquaint them with how to apply psychological knowledge,
principles, and theories to real life situation and problems. So it is of paramount
importance for students of any field of study to be effective in their personal, social,
and professional life. Apart from that, it is to introduce students to the core set of life
skills, which are important in realizing holistic development of students (i.e sense of
250
well-being, confidence and academic performance) so that they can lead happy,
healthy, successful, and productive life.
Learning outcomes
Up on the completion of this course, students will be able to:
• Describe basic psychological concepts.
• Compare and contrast the major theoretical perspectives in psychology.
• Discuss different aspects of human development
• Compare and contrast different learning theories
• Summarize motivational and emotional processes
• Demonstrate social and interpersonal skills in everyday life.
• Set an adaptive goal and plan for future.
• Apply knowledge of psychology to one’s own life & to develop life skills.
251
2.5. Personality Development
2.5.1. Meaning of Personality
2.5.2. Trait theories of Personality
2.5.3. Humanistic theories of Personality
Week 4 & 5 Chapter Three: Learning and Theories of
Learning
3.1 Definition, Principles and Characteristics of
Learning
3.2 Factors Influencing Learning
3.3 Theories of Learning and their Applications
3.3.1. Behavioral Theory of Learning
3.3.2. Social Learning Theory
3.3.3. Cognitive Learning Theory
252
7.2. Goals of Life Skills
7.3. Components of Life Skills
Week 10-12 Chapter Eight: Intra-personal and Personal Skills
8.1. Self-Concept and Self-Awareness
8.2. Self-Esteem and Self-Confidence
8.3. Self-Control
8.4. Emotional Intelligence and Managing Emotion
8.6. Resilience and Coping with Stress
8.7. Anger Management
8.8. Critical and Creative Thinking
8.9. Problem Solving and Decision Making
Week 13 Chapter Nine: Academic Skills
9.1. Time Management
9.2. Note-taking and Study Skills
9.3. Test-Taking Skill
9.4. Test Anxiety and Overcoming Test Anxiety
9.5. Goal Setting
9.6. Career Development Skill
Week 14 & Chapter Ten: Social Skills
15 10.1. Understanding Intercultural Diversity and
Diversity Management
10.2. Gender and Social Inclusion
10.3. Interpersonal Communication Skills
10.4. Social Influences and Peer Pressure
10.5. Assertiveness
10.6. Conflict and Conflict Resolution
10.6. Team Work
10.7. Overcoming Risky Behavior
Week 16 is Reserved For Final Examination
Teaching Learning Methods
Classroom lessons will be mainly lectures preceded by activities (leading questions followed by
brainstorming) and pair or group discussions followed by presentations with amendments by the
instructor. Students will be given cases in light of the theories covered and asked to analyze
cases form the perspectives of the course objectives and make presentations. At the start of every
lesson, students will be requested to give brief summaries of the previous lesson. At the end of
each unit, they will be requested to prepare exit slips where they reflect on what they have
learned and what aspects of the unit need further consideration. In this way continuous
253
assessment of students’ understanding will be held and remedial actions taken. Whatever so,
below is listed some general approaches:
• Gapped Lecturing
• Brainstorming
• Collaborative learning
• Discussion
• Independent learning
• Reading assignment and presentation
• Role play
Assessment & Evaluation Techniques
1. Continuous Assessment 50 %
▪ Test: 20 %
▪ Group assignment- 10 %
▪ Individual assignment- 10 %
▪ GroupPresentation-10 %
2. Final exam 50%
Course Policy
Responsibilities of the Students:
All students are expected to abide by the code of conduct of students as per the Legislation of
the respective university throughout the course. Academic dishonesty, including cheating, being
late, fabrication and plagiarism will not be tolerated and will be reported to the concerned bodies
for disciplinary action. Regular attendances, class activities (questions), doing assignments and
submitting them on time are indispensable vehicles for the successful accomplishment of the
course. Moreover, mobile cell phones are to be switched off so as to avoid distractions in the
teaching learning activities including examination time. Lastly, but not least, note that all issues
discussed in the class will be incorporated in quiz, tests or final exams.
Responsibilities of the Instructor
➢ Planning learning activities needed for the successful accomplishment and realization of
the course objectives
➢ Running classes according to the official instructional schedule for successful coverage
of the designed course contents within the planned instructional time
➢ Regularly planning assessment activities and designing relevant (reliable, valid, and
254
usable) assessment tools to realize the objectives of continuous assessment
➢ Providing timely and constructive feedbacks on students’ performance on every
assessment activities
➢ Being good role model for the students in the issues like punctuality, objectivity,
honesty, transparency, fairness, humbleness, tolerance, devotion to one’s duty, mercy,
dressing/neatness etc.
References
Coon, D. & Mitterer, J.O. (2008). Introduction to psychology: Gateways to mind and
behavior (12th ed). New York, NY: McGraw Hill.
Feldman, R.S. (2018). Essentials of understanding psychology (13th ed). New York, NY:
McGraw Hill.
Gray, P. & Bjorklund, D.F. (2017). Psychology (7th ed). New York, NY: Worth Publishers.
Kalat,
J.W. (2013). Introduction to psychology (13th ed). New York, NY: McGraw Hill.
Lahey, B.B. (2008). Psychology: An introduction (10th ed). New York, NY:
McGrawHill.
Lilienfeld, S.O., Lynn, S.J., Namy, L.L. & Woolf, N.J. (2017). Psychology: From Inquiry to
understanding (3rd ed). Upper Saddle River, NJ: Pearson Education.
Meyers, D.G. & DeWall, C.N. (2016). Exploring psychology in modules (10th ed). New York,
NY: Worth publishers.
Weiten, W. (2014). Psychology: Themes and variations (briefer version, 9th ed). Belmont, CA:
Wadsworth Publishing.
Burnard, P. (1989). Teaching interpersonal skills: A handbook of experiential learning for
health professionals. London, UK: Chapman and Hall.
Cotnell, S. (2013). The study skills handbook. New York, NY: Palgrave MacMillan.
Haddon, P.F. (1990). Mastering personal and interpersonal skills: Key techniques and
personal success. London, UK: Thorogood Ltd.
Hays, J. (2002). Interpersonal skills at work (2nd ed). New York, NY: Routledge.
Pavord, E. & Donnely, E. (2015). Communication and interpersonal skills (2nd ed).
Banbury, UK: Lantern publishing.
255
DEBRE BERHAN UNIVERSITY Computing College
Institute of Technology Department of Computer Science
Department: Computer Science
Course Title: Inclusiveness Course Code: SINE2011
Course Load: ECTS Credit Lecture hrs. Laboratory hrs. Tutorial hrs.
4 2 2 0 0
Course Prerequisite: None
Course Category: Common Course
Instructor’s Contact Information: Course Delivery Information:
Name: _____________________ Academic Year: ____________
Office: _____________________ Year/Semester: II/I
Phone: _____________________ Meeting date: ____________
Email: _____________________ Meeting time: ____________
Office Hours: ________________ Meeting location: __________
1. Introduction
Development efforts of any organization need to include and benefit people with disabilities
through providing education, creating employability, promoting prosperity, reducing poverty
and enhancing stability. Unfortunately, this has not been the practice for the majority of people
with disabilities due to unfavorable attitude, negligence and exclusion from all development
endeavors. It is obvious that people with disabilities are the large stand most disadvantaged
minority in the world. They are about 15 percent of the global population (about one billion
people), and 17.6 million in Ethiopia, with most extended families including someone with a
disability (World Health Organization and World Bank and 2011). Exclusion practices of this
large number of persons with disabilities in Ethiopia seem undermines their potential/ability to
contribute to poverty reduction and economic growth within their household, their community
and the country. It is clear that it is not impairment, but, the exclusion practices that has
contributed for poverty aggravation for persons with disabilities. Exclusion practices of persons
with disabilities have a long history, affecting the life of people with disabilities and the society
at large. In the past and even today people have been discriminated due to their disabilities.
256
and benefit from the developments. Genuine inclusion of people with disabilities allow them
actively participate in development processes and eliminate dependence syndrome, leads to
broader benefits for families and communities, reduces the impacts of poverty, and positively
contributes to a country’s economic growth. All stages of development processes of any
organization should be inclusive through creating equal access to education, health care
services, work and employment, social protection and all development center of human being.
2. Course Description
Special needs education refers to people with divers’ disabilities, gifted and talented, and
divers’ population being at risk of education and development. As per the institutional reform
that is focusing on enhancing development for all population, the field of inclusive education is
taking center stage in institutional planning and improvement. This course introduces the
process of achieving inclusion with all appropriate accessibility and established support system
at institutional level.
In this course, the higher education students will learn how to assess, understand and address
the needs of persons with disabilities and provide relevant support or seek extra support form
experts. He/she also learns how to adapt and implementing services for an inclusive
environment that aimed to develop holistic development such as affective, cognitive and
psychosocial skills of the population with disabilities. Identification and removal/management
of environmental barriers would find a crucial place in the course. The students learn how to
give more attention and support for students with; hearing impairments, visual impairment,
deaf-Blind, autism, physical and health impairments, intellectually challenged, emotional and
behavior disorders, learning difficulty, communication disorders, gifted and talented student,
and those at risk due to different reason (population who are environmentally and culturally
deprived, abused, torched, abandoned, and orphaned and vulnerable..etc.). All University
students will be given the chance to study the specific developmental characteristics of each
group of students with disabilities and come up with appropriate intervention strategies in
inclusive settings of their respective professional environment and any development settings
where all citizens are equally benefited.
257
3. Learning outcome of the course
The goal of this course is to provide the tools and strategies that help to create a convenient
environment that accommodates population with divers’ disabilities and potential. This course
encourages exploring the benefits of collaborating with colleagues to design and implement
inclusion an all sphere of life. It also guides the discovery of ways to modify environment as
well as services and practices to meet the needs of all persons with disabilities in inclusive
environment.
As a result of reviewing various reading materials, completing the assignments, engaging in
related discussions, and strongly workings on activities, towards the completion of the course,
the University students of all fields in Ethiopia will be able to:
1. Aware the needs of people with special needs, their potential and include all aspects of
developmental needs
2. Identify population with special needs, their potentials and the learning and working
styles of all population with special needs in their environment.
3. Demonstrate desirable attitude towards all population with special needs in their learning,
working and living environment
4. Apply various assessment strategies for evidence-based planning to meet their needs
5. Attempt to adapt environments they are working and living in according to the need and
potential of the population with special needs
6. Develop an accommodative and inclusive attitude help to think for the wellbeing and
development of population with special needs.
7. Identify and select appropriate support and services method that addresses the life needs
of population with special needs individually and on group bases.
8. Collaborate with experts and relevant others for the life success of all persons with
disabilities in all environments.
9. Create and maintain successful inclusive environment
258
4. Detailed Syllabus components
Unit 1. Understanding students with diverse needs/special needs
Time allotted: 10 contact hours
Unit objectives
At the end of completing this unit, the students will be able to:
1. Brief historical trends of special needs population and their holistic development
2. Describe the effect of negative attitude on educational and life success of people
with special needs
3. Describe the nature of difficulties, preventable causes, identification, and
assessment, of students with various impairments that affect their daily learning.
4. Identify students with special needs whose daily life and functioning is challenged
and those students who are at risk.
5. Describe the need and characteristics of gifted and talented population
259
General Approach/Methods/Strategies
This section is flexible to involve the instructor’s creativity in identifying selecting and
adapting the instructional method to the context of the learner. Some general approaches are
listed below. The instructor can select among this and add his own that he/she feels appropriate
13. Interactive lectures
14. Collaborative learning
15. Independent/self-learning
16. Institutional/school visits and practicum
17. Individual and group assignments and presentation
18. Seminars
19. Expert consultancy
20. Group participation
21. Guest practitioners
22. Others…
Detailed activities
Students’ Activities
2. Reading the materials delineated for this purpose
3. Discus and/or report the diversities of learners in the classroom and report
4. Conduct mini case studies of students with divers needs
5. Visit schools that integrate students with special needs and report the
teaching and learning experience at school.
6. Find out gifted and talented students and gather facts on the teaching and
learning experience at school.
7. Find out evidence the effective instructional approach from existing
experience and literature.
Instructors Activities
1. Facilitate students learning by posing questions and guiding their activities
2. Provide some examples of students with special needs and their success.
260
5. Facilitate dialogue among learners to find out effective instructional approach
that address divers learning needs.
Assessment Strategies and Techniques
23. Recording attendance
Upon accomplishing this unit, the teacher candidates will be able to perform the following
activities.
1. Organize and implement inclusion for people with varying special needs
2. Demonstrate understanding of the principles of an inclusive environment,
the rationale for inclusion, and its effect on education, and development.
3. Define terms associated with inclusion and its practices
4. Recognize what an inclusive environment looks and sounds like
5. Respect rights of students with special needs along with the disability
convention ratified by the Ethiopian Government
6. Identify the benefits and challenges of inclusion
7. Modify environment to meaningfully accommodate population with
special needs in all environments
Unit Contents and sub contents
8. Definition of inclusive environment and the support system
9. Elements of Inclusive environment
10. Characteristics of inclusive environment
11. Special needs population’s right in the inclusive environment
12. Benefits and Challenges of Inclusion
261
13. Strategies in addressing individual needs.
14. Policies, legislations, strategies, legal framework and other related
documents.
General Approach/Methods/Strategies
This section is flexible to involve the instructor’s creativity in identifying selecting and
adapting the instructional method to the context of the learner. Some general approaches are
listed below. The instructor can select among this and add his own that he/she feels appropriate.
15. Interactive lectures
16. Group task
17. Collaborative/cooperative learning
18. Independent/self-learning
19. Institutional visits and practicum
20. Individual and group assignments and presentation
21. Seminars
22. Expert consultancy
23. other…
Detailed activities
Students’ Activities
1. Discuss; define what inclusive environment and the support system for
population with divers needs
2. Discus and list elements and characteristics of inclusive enviroment
262
11. Stabilize the learning by summarizing core points
12. Demonstrate the importance and application of adapted technology
13. Introduce Web sites devoted to technology use in the inclusive classroom.
14. Introduce software and multimedia applications.
Assessment Strategies and Techniques
24. Recording attendance
25. Recording group and individual participation
26. Recording the product of students
27. Test at the end of the unit
28. Assignment and visit reports
Unit 3: Identification of population with special needs
Time allotted: 5 hours
Unit objectives
2. Identify different needs among population with special needs and use various
strategies that support their developmental needs. Demonstrate the process of
identifying students who need special support and the options available for
serving these students’ educational needs
Unit Contents and sub contents
3. Development of checklists for identification of various difficulties.
4. Procedure of identification
5. Identifying learners needs, potentials and difficulties in learning
General Approach/Methods/Strategies
This section is flexible to involve the instructor’s creativity in identifying selecting and
adapting the instructional method to the context of the learner. Some general approaches are
listed below. The instructor can select among this and add his own that he/she feels appropriate.
6. Interactive lectures
7. Group activities.
8. Collaborative learning
263
9. Independent/self-learning
10. Institutional/school visits and practicum
11. Individual and group assignments and presentation
12. Seminars
13. Expert consultancy
14. Others…
Detailed activities
Students’ Activities
264
At the end of this unit, the students will be able to:
1. Adapt assessments for students with special needs
learning difficulty, communication disorders, and students at risk and gifted and talented
students.
8. Assess and design on elimination of social and environmental barriers that
would facilitate inclusive education
Unit Contents and sub contents
9. Strategy and procedure to develop assessment instrument.
10. Relevant components of assessment instrument.
11. Progressive assessments
12. Portfolios
13. Implication of assessment
General Approach/Methods/Strategies
This section is flexible to involve the instructor’s creativity in identifying selecting and
adapting the instructional method to the context of the learner. Some general approaches are
listed below. The instructor can select among this and add his own that he/she feels appropriate.
14. Assignment
15. Group and individual presentations
16. Collaborative learning
265
17. Independent/self-learning
18. Institutional/school visits and practicum
19. Individual and group assignments and presentation
20. Seminars
21. Expert consultancy
22. Others….
Detailed activities
Students’ Activities
1. Identify and discus some basic assessments techniques for students with
special needs and their challenges
2. Exercise how to assessments progresses of all students
3. Discus how to use portfolios for all students
4. Practice to develop assessment tools
Instructors Activities
5. Facilitate students learning by posing questions and guiding their activities
6. Provide activity guide for the students
7. Encourage all students to work on the activities in cooperative manner
8. Provide special support for those with difficulties or special need
9. Provide feedback on the students’ various activities
Assessment Strategies and Techniques
23. Recording attendance
24. Recording group and individual participation
25. Recording the product f students
26. Test at the end of the unit
Unit 5: Differentiated services for populations of special needs
Time allotted: 5 hours
Unit Objectives
At the end of this unit, the students will be able to involve effectively in the following
activities:
1. Demonstrate understanding of the individualized services plan for
population with special needs as a means of ensuring that these
266
populations receive services opportunities tailored to their needs
2. Describe the purpose of an individualized services plan
3. Identify the components of an individualized services plan
267
19. Group activities
20. Collaborative learning
21. Independent/self-learning
22. Institutional/school visits and practicum
23. Individual and group assignments and presentation
24. Seminars
25. Guest lecture
26. Others…
Detailed activities
Students’ Activities
1. Define what individualized services plan mean
2. Discus the purposes of individualized services plan
3. List the components of individualized services plan
4. Discuss how individualized services plan could be realized in the school
5. Design and present single case individualized services plan.
6. Develop group intervention plan
Instructors Activities
7. Facilitate students learning by posing questions and guiding their activities
8. Provide activity guide for the students
9. Encourage all students to work on the activities in cooperative manner
10. Give assignments
11. Provide special support for those with who need it
12. Provide feedback on the students’ various activities
13. Design and present the sample for good individualized services plan and
group educational intervention.
Assessment Strategies and Techniques
27. Recording attendance
28. Recording group and individual participation
29. Recording the product of the students
30. Test at the end of the unit
31. Assignment
268
Unit 6. Promoting Positive Behaviors Institution-wide
Time allotted: 5 hours
Unit objectives
Upon the accomplishing this unit, the Higher education students will be able to perform the
following activities.
1. Implement strategies for managing an inclusive environment effectively
2. Describe behavior management modifications in an inclusive environment
3. Use strategies to increase desirable behaviors while decreasing undesirable
behaviors
4. Develop effective techniques for responding to inappropriate behavior both
in and out of the classroom
5. Build positive social relationships between all populations with special
needs.
6. Demonstrate understanding of the importance of collaboration in an
inclusive environment
Unit Contents and sub contents
7. Behavior management modifications
269
16. Expert consultancy
17. Discussion
18. Others….
Detailed activities
Students’ Activities
1. Discuss how to learn ways to create an inclusive community.
2. Explore how to modify the current environment.
3. Discuss techniques for relationship building in the inclusive environment.
Instructors Activities
4. Facilitate students learning by posing questions and guiding their activities
5. Encourage interactive approach.
6. Provide activity guide for the students
7. Encourage all students to work on the activities in cooperative manner
8. Provide special support for those with who need it
9. Provide feedback on the students’ various activities
Assessment Strategies and Techniques
19. Recording attendance
20. Recording group and individual participation
21. Recording the product f students
22. Test at the end of the unit
Unit 7: Resources for the Inclusive environment
Time allotted: 5 hours
Unit objectives
At the end of this unit, the students will be able to accomplish the following tasks:
1. Apply constructivist techniques to create a conducive climate to diverse
populations’ success.
2. Find out existing resource that enhances success of inclusive environment.
4. Adapt communication for people with special needs education, such as,
Braille, augmentative communication and Sign Language
270
Unit Contents and sub contents
5. Modification of environment and materials
1. Review some high school curriculum in group and exercise how to adapt
for learners
2. Adapting instructional techniques and present them in the classroom
Instructors Activities
3. Facilitate students learning by posing questions and guiding their activities
4. Provide activity guide for the students
5. Encourage all students to work on the activities in cooperative manner
271
6. Provide special support for those with difficulties and special needs
7. Provide feedback on the students’ various activities
Assessment Strategies and Techniques
8. Recording attendance
9. Recording group and individual participation
10. Recording the product of students
11. Test at the end of the unit
Unit 8: Collaborative Partnerships with stakeholders
Time allotted: 5 hours
Unit objectives
272
14. Institutional/school visits and practicum
15. Individual and group assignments and presentation
16. Seminars
17. Individual and group presentations
18. Expert consultancy
19. Others…
Detailed activities
Students’ Activities
Profile of teacher educator teaching this course must be the right professional in Special needs
education. In the past, it was observed that non-special needs educators used to teach similar course. In
order to produce quality teachers, this course should be offered only by teacher educator, MEd/or MA
273
or PhD in special needs education. To meet the learning outcome aforementioned and enhance
teachers’ quality, the special needs teacher educator will have the following major responsibilities.
1. Advise students on all the aspects of the course
2. Provide the students with the syllabus and other materials well ahead of the
delivery of it
3. Conduct the interactive lectures as per the plan
4. Facilitate students’ individual assignments, group assignments, field works,
practicum, seminars, presentations, and collaborative learning
5. Periodically assess the students’ work
6. Provide the students with timely feedbacks on their graded and ungraded academic
works
7. Follow on students’ progress and communicate to the students
8. Keep student records on the whole work of the students
9. Design and execute students’ consultation program
General Responsibilities of Students
This course is designed for would teachers after completion of Bachelor degree in various fields. For
successful completion of this course the teacher candidates would have the following responsibilities
10. Students are expected to actively and fully attend and participate all the in class
and outclass learning activities. Missing a single class will cost students 2 points.
11. Carry out individual assignments, group assignments, field works,
practicum as per the details and deadlines
12. Students are expected to read given materials before class
13. Students are expected to read selected books and ten articles
14. Actively participate in the planning, organizing and conducting of all the
seminars and presentations
15. Reflect on feedbacks and initiate actions on them
274
teacher educators teaching load)
2. Group assignment: 20%
11. References
1. Alemayehu Teklemariam and Temsegen Fereja (2011). Special Need Education in
Ethiopia: Practice of Special Needs Education around the World. Washington: Gallaudet
University Press.
2. Alemayehu Teklemariam (2019). Inclusive Education in Ethiopia: WILEY and
Blackwell: Singapore
3. A Teachers Guide (2001). UNESCO. Inclusive Education and Classroom Practice in
Secondary Education (2004).
4. Berit H. Johanson and Alemayehu Teklemariam (2006). Towards Special Needs Education
as a University Discipline: An Important step on the way to Education for All. In When All
Means All. Hakapaino Oy: Helsinki
5. Tirussew Teferra and Alemayehu Teklemariam (2007). Including the Excluded: Integrating
disability into EFA Fast Track Initiative Process and National Education Plans in Ethiopia.
World Vision
6. MOE (2007). School Improvement Program
8. MOE (Ministry of Education). (2006). Special Needs Education Program Strategy. Addis
Ababa
9. Understanding and responding to children’s need in inclusive classroom (2010).
www.european-agency.org
10. ዓለማየሁ ትክለማርያም (2009). በመተባበር መማር፡- አንድ ለሁሉም፣ ሁሉም ለአንድ፣ አዲስ
11. ዓለማየሁ ትክለማርያም (2011). አካቶ ትምህርት ለምን፣ምን፣ለነማን እንዴት፤ አዲስ አበባ፡- ፋርኢስት
አታሚ
275
References
Ministry of Education (2013). Harmonized Modular Curriculum for B. Sc Degree Program in
Computer Science. Addis Ababa Ethiopia.
Ministry of Education (2018). Ethiopian Education Development Roadmap (2018-30): An
integrated Executive Summary. Addis Ababa, Ethiopia.
MoSHE (2019). Course Catalogue for BSC Degree in Computer Science. Addis Ababa,
Ethiopia.
College of Computing and Informatics, Haramaya University (2016). Practical attachment
guideline. Haramaya, Ethiopia.
276