0% found this document useful (0 votes)
41 views

Computer Science BSC Course Syllabus (Exit Competency)

Uploaded by

Yonathan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
41 views

Computer Science BSC Course Syllabus (Exit Competency)

Uploaded by

Yonathan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 77

Computer Science Exit Competency Syllabus

የኮምፒውተር ሳይንስ መውጫ ፈተና ትምህርቶች ሥርዓተ ትምህርት


List of selected Courses for Exit Exam

No Course Name ECTS


1 Computer Programming 5
2 Database System (Fundamental & Advanced Database System) 10
3 Object Oriented Programming 5
4 Operating System 5
5 Software Engineering 5
6 Automata and Complexity Theory 5
7 Computer Security 5
8 Computer Organization and Architecture 5
9 Data Communication and Computer Network 5
10 Data Structure and Algorithm 5
11 Web Programming 7
12 Design and Analysis of Algorithm 5
13 Introduction to Artificial Intelligence 5
14 Network and System Administration 5
15 Compiler Design 5

Table 1 Competence Courses organized into themes

Theme Courses
Software Engineering
System Development Web Programming
Database Systems
Computer Programming
Object Oriented Programming
Programming and Algorithms
Design and Analysis of Algorithms
Data Structure and Algorithms
Data Communication and Computer Networking
Computer Networking and Security Computer Security
Network and System Administration
Intelligent Systems Introduction to Artificial Intelligence
Computer Architecture and Operating Operating System
Systems Computer organization and architecture
Automata and Complexity Theory
Compiler and Complexity
Compiler Design

2
Course Syllabus
University: Dilla University
College/Faculty: School of Computing and Informatics
Course Title: Computer Programming
Course Code: Comp2064
Credit Hours: 3 ECTS: 5 Lecture hrs: 2 Lab hrs: 3 Tutorial hrs: 1
Prerequisite: None
Course Category: Compulsory
The course will be given on Year: I Semester: II

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), Concrete examples enable the students to write
programs and use data structure elements in the programs.

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 logic and control structures (such as „if‟ and „for‟ statements), data manipulation and
presentation (loading data files, computing simple statistics and graphing data), and proper
programming techniques
 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

3
Course outline
Chapter 1: Introduction to Computer Science and Its Application (4 hrs)
 Definition of Computer Science and Its application
 Basic organization of Computer System (Hardware & Software)
Chapter 2: Data Representation and Concepts of Programming (4 hrs)
 Basic data representation (Types number system)
 Binary Arithmetic
 Definition and basic concepts of programming
Chapter 3: Introduction to Computer Programming (6 hrs)
 Introduction to programming
 Problem solving techniques
 Flowchart
 Pseudo code
 Algorithms
Chapter 4: Basics of programming (8 hrs)
 Structure of a Program
 C++ IDE
 Showing Sample program
 Keywords, Identifiers, Inputs, Outputs, Comments, Parts of a program
 Data Types
 Variables
 Constants
 Operators
o Assignment Operators
o Compound Assignment Operators
o Arithmetic Operators
o Relational Operators
o Increment and Decrement Operators
o Infix and postfix types
o Precedence of Operators
Chapter 5: Control Statements (8 hrs)
 If…. else statement
 If… elseif… else statement

4
 Switch statement
 For loop statement
 While loop statement
 Do…while statement
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 Colleg
3. E.Balagurusamy, “Programming with C++”, Tata Mc. Grew Hill Company

Laboratory Course Outline


Week 1 - 2
 Operate basic Microsoft application
Week 3 - 4
 Lab Environment setup
 Building blocks of a code
 First code “Hello, World”
Week 5 - 6
 Data types and variables
 Using variables and constants
 Statements
Week 7-8
 Operators
 Basic arithmetic operators
 Arithmetic and logical operations
Week 9 - 12
 If
5
 If…else
 If...elseif...else
 Nested if ...else statements
 Switch statement
 For loop statement
 While loop statement
 Do…while statement
 Nested loops

6
University: Dilla University
College/Faculty: School of Computing and Informatics
Course Title: Computer Programming-II
Course Code: CoSc2011
Credit Hours: 3 ECTS: 5 Lecture hrs: 2 Lab hrs: 3 Tutorial hrs: 1
Prerequisite: Comp2064, Computer Programming
Course Category: Compulsory
The course will be given on Year: II Semester: I

Course Description
This course teaches structured data types, subprograms, file management; recursive functions; overloaded
functions; linking multiple source files; and data structures. Concrete examples enable the students to
write programs and use data structure elements in the programs.

Course objectives
On completion of the course successfully, students will be able to:
 Apply programming skills to solve problems
 Learn data structures (such as strings, matrices and arrays), data manipulation and presentation
(loading data files, computing simple statistics and graphing data), and proper programming
techniques (writing modular, well-commented code)
 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
Chapter 1: Arrays, Pointers & Strings (8 hrs)
 One-dimensional array
 Multi-dimensional array
 Address and pointer
 Pointer and array
 Pointer and function
 Pointer and string
Chapter 2: Function and Passing argument to function (8 hrs)

7
 Definition of function
 Declaration of function
 Passing value of a function by Value
 Passing value of a function by reference
Chapter 3: Structure (8 hrs)
 Specifying simple structure
 Defining a structure variable
 Accessing structure variable
Chapter 4: File (8 hrs)
 File and file management
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-3
 Definition of function
 Declaration of function
Week 4-5
 Passing value of a function by Value
 Passing value of a function by reference

8
Week 6-7
 One-dimensional array
Week 8
 Multi-dimensional array
Week 9
 Pointer and array
Week 10
 Pointer and function
 Pointer and string
Week 11-12
 Specifying simple structure
 Defining a structure variable
 Accessing structure variable
Week 13
 File and file management

9
University: Dilla University
College/Faculty: School of Computing and Informatics
Course Title: Fundamentals of Database Systems
Course Number: CoSc2041
Credit Hours: 3 ECTS: 5 Lecture: 2hrs Laboratory: 3hrs Tutorial: 2hrs
Prerequisite: None
The course will be given on year II and semester I

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

10
Chapter 1: Introduction to Database Systems (2 hours)
 Overview
 Basics of Database
 File organization verses Database approach
 Users and actors of Database system
 Characteristics of the Database Approach
 Actors on the Scene
Chapter 2: Database System Architecture (2 hours)
 Data models, Schemas, and Instances
 Over view of data models
 Architecture and Data Independence
 Database Language and Interface
 The Database System Environment
 Classification of DBMS
Chapter 3: Database Modeling(6 hours)
 The Entity Relationship (ER) Model
 The high-level conceptual model
 Entities, Attributes, and Keys
 Relationships, Associations, and Constraints
 The ER Diagrams
 Mapping ER-models to relational tables
 Enhanced Entity Relationship (EER) Model
 Inheritance
 Union
 Aggregation and Association
 Mapping EER model to relational model
 The Relational Database Model
 The Relational Model Concepts
 The Relational Constraints and Relational Database Schemas
 The Relational Operations
Chapter 4: Functional Dependency and Normalization (4 hours)
 Functional Dependency
 Normal Forms
 First Normal Form
11
 Second Normal Form
 Third Normal Form
 Boyce Codd Normal Form
Chapter 5: Record Storage and Primary File Organization (6 hours)
 Introduction
 Operations on Files
 Files of Unordered Records (Heap Files)
 Files of Ordered Records (Sorted Files)
 Hashing Techniques
 Index Structure for Files
 Types of Single Level Ordered Index
 Dynamic Multilevel indexes using B-Trees and B+ Trees
 Indexes on Multiple Indexes
Chapter 6: The Relational Algebra and Relational Calculus (5 hours)
 Introduction
 Relational Algebra
 The Relational Calculus
Chapter 7: The SQL Language (7 hours)
 Structured Query Language
 Datatypes
 DDL, DML, TCL and DCL
 Basic Queries in SQL
 Nested Queries in SQL
 Views
 Comments
 Constraints

12
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.J. Date. (2019).
2. Database Design and Relational Theory. 2nd Edition. Apress, Berkeley, CA.
3. Anthony Hack. (2019). SQL Computer Programming for Beginners. Independently published

Laboratory Course Outline


Week1: Database modeling
Week 2: Introduction and Software Installation
 (Microsoft SQL Server or Oracle DB)
 Data Definition Language
 Data definition and data types in SQL
Week 3: Data Manipulation Language
 Specifying Constraints in SQL
 Querying from tables (insert, select, delete, update)
Week 4: More Complex SQL Retrieval Queries 1
 Sorting (ascending, descending) using ORDER BY, DESC and ASC
 group by, order by, having, wildcards, and regular expressions
Week 5: More Complex SQL Retrieval Queries 2
 Aggregate Functions in SQL
 Null value & Keywords in SQL
 Auto Increment, alter, drop, rename in SQL
Week 6: More Complex SQL Retrieval Queries 3

13
 Joins
Week 7: More Complex SQL Retrieval Queries 4
 Unions, intersections, differences
Week 8: Views
Week 9: SQL Functions 1
 String Functions
Week 10: SQL Functions 2
 Numeric/Math Functions
Week 11: SQL Functions 3
 Date/Time Functions
Week 12: SQL Functions 4
 Conversion Functions
Week 13: SQL Functions 5
 Advanced Functions in SQL
Week 14: Complex SQL Queries
Week 15: File Organization and Indexes

14
University: Dilla University
College/Faculty: School of Computing and Informatics
Course Title: Advanced Database Systems
Course Number: CoSc3045
Credit Hours: 3 ECTS: 5 Lecture: 2hrs Laboratory: 3hrs Tutorial: 2hrs
Prerequisite: CoSc2041 Fundamentals of Database Systems
The course will be given on Year III semester I

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

Course outline
Chapter 1: Concepts for Object-Oriented Databases (2 hours)
 Overview of Object-Oriented Concepts
 Object Identity, Object Structure, and Type Constructors
 Encapsulation of Operations, Methods, and Persistence
 Type Hierarchies and Inheritance
Chapter 2: Query processing and Optimization (4 hours)
 Translating SQL Queries into Relational Algebra
 Basic Algorithms for Executing Query Operations
 Using Heuristic in Query Optimization

15
 Using Selectivity and Cost Estimates in Query Optimization
 Semantic Query Optimization
Chapter 3: Transaction Processing Concepts (6 hours)
 Introduction
 Transaction and System Concepts
 Properties of Transaction
 Schedules and Recoverability
 Serializability of Schedules
 Transaction Support in SQL
Chapter 4: Concurrency Control Techniques (6 hours)
 Locking Techniques for Concurrency Control
 Concurrency Control Based ON Timestamp Ordering
 Multi-version Concurrency Control Techniques
 Validation (Optimistic) Concurrency Control Techniques
 Granularity of Data Items and Multiple Granularity Locking
 Using Locks for Concurrency Control in Indexes
Chapter 5: Database Recovery Techniques (5 hours)
 Backup and Recovery Concepts
 Recovery Concepts Based on Deferred Update
 Recovery Concepts Based on Immediate Update
 Shadow Paging
 The ARIES Recovery Algorithm
 Recovery in Multi database Systems
Chapter 6: Database Security and Authorization (5 hours)
 Introduction to DB Security Issues
 Discretionary Access Control Based on Granting /Revoking of Privileges
 Mandatory Access Control for Multilevel Security
 Statistical DB Security
Chapter 7: Distributed Database System (4 hours)
 Distributed Database Concepts
 Data Fragmentation, Replication, and Allocation Techniques for Distributed Database Design
 Types of Distributed Database Systems
 Query Processing in Distributed Databases
16
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.C. J. Date. (2019).
2. Database Design and Relational Theory. 2nd Edition. Apress, Berkeley, CA.Anthony Hack.
(2019).
3. SQL Computer Programming for Beginners. Independently published

Laboratory Course Outline


Week 1: Introduction and Software Installation
 (Microsoft SQL Server or Oracle DB)
Week 2: Objet-Oriented Database
 Object Identity
 Object Query Language (OQL)
Week 3: Query Processing and Optimization
 Query Execution Plan
 Query Optimization
Week 4: Transaction Management
 Basic Syntax of Transactions

17
 What are Transactions
 Beginning Transaction
 Committing or Rolling Back
 Creating Named Transactions
Week 5: Transaction Management
 Making Use of Transactions
 Conditionally Committing or Rolling Back
 Transactions with Error Handlers
Week 6: Transaction Management
 Automatic Rollback
 Nested Transactions
Week 7: Transaction Management
 Using Save points
 Transactions in Stored Procedures
Week 8: Concurrency Control Techniques
 Locking
 Timestamping
Week 9: Concurrency Control Techniques
 Multi-version Concurrency Control
 Locks for Indexes
Week 10: Database Recovery Techniques
 Backup and Recovery Concepts
 Backup and Recovery
Week 11: Database Security and Authorization
 List the different Types of Accounts in SQL Server or Oracle DB
 Explain the use of Server Roles
 Demonstrate how to Grant and Deny Permissions
 Describe Database Roles
 Describe How to Work with Database Permissions
Week 12: Distributed Database
 Distributed Database Concepts
 Data Fragmentation and Replication
 Allocation Techniques
18
 Query Processing in Distributed Databases
Week 13: Triggers
 Triggers
Week 14: Stored Procedures
 Stored Procedures

19
University: Dilla University
College/Faculty: School of Computing and Informatics
Course title: Software Engineering
Course code: CoSc3061
Credit hours: 3 ECTS: 5 Contact hrs: 3 hrs Laboratory: 0 hrs Tutorial: 2hrs
Prerequisite: None
Course category: compulsory
The course will be given on Year: III Semester: I

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

20
Course outline
Chapter 1: Introduction (6 hrs)
 Two Orthogonal view of software.
 software development process models
 Software Process
 Software life cycle and process models
 Process assessment models
 Software process metrics
 Object oriented system development methodology.
 Why an object oriented
 Overview of the unified approach.
 An object oriented philosophy
 Basic concepts of an object
 Attributes of an object, its state and properties.
Chapter 2: Unified Modeling Language (UML) (8 hours)
 Where Can the UML Be Used
 Building Blocks of the UML.
 Relationships in the UML
 Diagrams in the UML.
 Use Case Diagrams
 Class Diagrams
 Sequence diagrams
 State chart diagrams
 Activity diagrams
 Component diagram
 Deployment diagram
 Diagram extensions
Chapter 3: Requirements Elicitation (6 hours)
 An overview of requirements elicitation.
 Requirements elicitation concepts
 Functional requirements
 Nonfunctional and pseudo requirements
 Levels of description

21
 Correctness, completeness, consistency, clarity, and realism
 Verifiability and traceability
 Requirements elicitation activities.
 Identifying actors
 Identifying scenarios
 Identifying use cases
 Refining use cases
 Identifying relationships among actors and use cases
 Identifying initial analysis objects
 Identifying nonfunctional requirements
 Managing requirements elicitation
 Eliciting information from users:
 Validating requirements: Usability testing
 Documenting requirements elicitation
Chapter 4: Software Project management (6 hours)
 Responsibility of Software Project Managers
 Project Planning
 The organization of SPMP document
 Project Size Estimation Metrics
 Project Estimation Techniques
 Scheduling, Organization and Team Structures
 Staffing
 Risk Management
 Quality Assurance
 Project Monitoring Plans
Chapter 5: Analysis (8 hours)
 Analysis Concepts
 Entity, Boundary, and Control Objects
 Association Multiplicity Revisited
 Qualified Associations
 Generalization
 Analysis Activities: From Use Cases to Objects
 Identifying Entity Objects

22
 Identifying Boundary Objects
 Identifying Control Objects
 Modeling Interactions between Objects: Sequence Diagrams
 Identifying Associations.
 Identifying Attributes
 Reviewing the Analysis Model
Chapter 6: Object Oriented System Design (8 hours)
 An overview of system design.
 System design concepts.
 System design activities: From objects to subsystems
 Documenting system design
 An overview of object design
 Object design concepts
 Object design activities
 Managing object design
 Documenting object design
Chapter 7: Software Quality Assurance (6 hours)
 An overview of testing
 Testing concepts
 Testing activities
 Managing testing
 Impact of object oriented testing
 Types of Testing
Text Book
 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)

23
Quizzes, assignments and tests 10%
Mid Exam 20
Projects 20%
Final Exam 50%

24
University: Dilla University
College/Faculty: School of Computing and Informatics
Course title: Object Oriented Programming
Course code: CoSc2052
Credit hours: 3 ECTS: 5 lecture hrs: 2 Lab hrs: 3 Tutorial hrs: 2
Prerequisite: CoSc2011, Computer Programming II
Course category: Compulsory
The course will be given on Year: II Semester: II
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)
 Types of programming paradigms
 Overview of OO principles
 Editing, Compiling and Interpreting
Chapter 2: Objects and Classes (6 hrs)
 Defining a class
 Creating an Object
 Instantiating and using objects
 Printing to the Console
 Methods and Messages

25
 Parameter Passing
 Comparing and Identifying Objects
 Destroying Objects
 Enumerated Types
 Instance fields
 Constructors and Methods
 Access Modifiers
 Encapsulation
Chapter 3: Inheritance and Polymorphism (8 hrs)
 Inheritance
 Casting
 Method Overriding and Overloading
 Polymorphism
 Super
 The Object Class
 Abstract Classes
 Interfaces
 Using Interfaces
Chapter 4: Exception Handling (4 hrs)
 Exceptions Overview
 Catching Exceptions
 The finally Block
 Exception Methods
 Declaring Exceptions
 Defining and Throwing Exceptions
 Errors and Runtime Exceptions
Chapter 5: Packages (4 hrs)
 Packages
 The import Statement
 Static Imports
 CLASSPATH and Import
 Defining Packages
 Package Scope
26
Chapter 6: Data structures (6 hrs)
 The Set
 Set Implementation Classes
 The List
 List Implementation Classes
 The Queue
 Queue Implementation Classes
 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

27
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
 Type Conversion/ Casting Chapter
 Decision Statements
 If statement
 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
28
 Interfaces
 Using Interfaces
Week 11: Exception Handling
 Exceptions Overview
 Catching Exceptions
 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

29
University: Dilla University
College/Faculty: School of Computing and Informatics
Course title: Data Communication and Computer Networks
Course code: CoSc2034
Credit hours: 3 ECTS: 5 Contact hours: 2 Lab hrs: 3 Tutorial hrs: 2
Prerequisite: None
Course category: Compulsory
The course will be given on Year: II Semester: II

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
Course outline
Chapter 1: Data Communication and Computer Networking Basics (5 hours)
 Data Communication
 Definition of Data Communication
 Communication Basics
 Data Representation techniques
 Digital Data Transmission formats
 Transmission Impairments

30
 Modes of Data transmission
 Elements of Data Communication
 Protocols and standards
 Circuit switching and Packet switching,
 Computer Network
 Network Definition
 Network Applications
 Network Types
 Geographical Area
o PAN
o LAN
o MAN
o WAN
 Architecture
o Peer-to-Peer
o Client/server
 Network Components
 Hardware Components
 Software Components
 Network Topology
 Physical
 Logical
 Network Models
 OSI Reference Model
 TCP/IP Protocol Suite
 Transmission Media
 Guided
o Twisted Pair Cable
o Coaxial Cable
o Fiber Optics/Optical Fiber Cable
 Unguided
o Wireless LAN
o Radio Communication

31
o Microwave Communication
o Infrared Communication
o Wi-Fi
o Bluetooth Technology
o Satellite communication
Chapter 2: Application, Session and Presentation Layers (5 hours)
 Application Layer Introduction
 Client-Server Model
 Application Protocols
 Network Services
 Session Layer
 Presentation Layer
Chapter 3: Transport Layer (6 hours)
 Segmentation
 Addressing
 Multiplexing and DE-multiplexing
 Connectionless/Connection-Oriented
 Unreliable/ Reliable
 Protocols in Transport Layer.
 UDP
 TCP
o Flow control
o Error Control
o Congestion control
o TCP Variants
Chapter 4: Network Layer Addressing and Routing (8 hours)
 NIC addressing
 Packetizing
 IP addressing
 IPv4
 Sub-netting,
 Classfull Addressing
 Classless Inter Domain Routing(CIDR)
 Private and Public IP addresses
32
 NAT
 PAT
 Address Mapping
 Logical to Physical Address Mapping –ARP
 Physical to Logical Address Mapping –RARP
 ICMP:
 Types of Messages
 Message Format
 Error Reporting and Query
 ICMPv6
 IGMP:
 Group Management
 IGMP Messages
 Message Format
 IGMP Operation
 Encapsulation
 Netstat
 Routing and forwarding
 Routing algorithms
 Routing in the Internet
 Unicasting, Multicasting and Broadcasting
 IPv6
 structure
 Address space
Chapter 5: Link Layer and Physical Layer (8 hours)
 Link layer services
 Faming
 Multiple Access Protocols
o CSMA/CD and CSMA/CA
 Link layer addressing
o MAC address
 Data Link Sub Layers
o Logical Link Control(LLC) and Data Link Control
 Data Link and its responsibilities
33
o Data Link Control,
o Error detection and correction
o Data Link Layer Protocols
 Physical Layer Services
 Bits
 Ethernet,
 Point-to-Point Protocol
 LAN Devices: Repeaters, Hubs, Bridges and switches
 WAN Devices Routers, Layer 3 Switches and Gateways
 Signaling and encoding
o Signal Encoding Techniques
 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%
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
 Crossover cable
 Straight-through cable
 Rollover cable
Week 2: Creating Peer to Peer network
 Building a Switched based network
 Sharing Files and Printers between Windows OSs
34
 Sharing Files between Windows OSs
Week 3: Study of IPv4 Address
 Classification of IP Addresses
 Subnetting
 Supernetting
 NIC addressing
Week 4: Study of Basic Network Configuration commands
 ping
 tracert/traceroute
 ifconfig/ipconfig
 netstat
 telnet
 ssh
 ftp
 nslookup
 pathping
Week 5: Configuring a Switch
Week 6: Configuring a VLAN
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)

35
University: Dilla University
College/Faculty: School of Computing and Informatics
Course Title: Operating System
Course Code: CoSc3023
Credit Hrs. 3 ECTS: 5 Lecture Hrs. 2 Lab Hrs. 3 Tutorial Hrs. 2
Prerequisite: CoSc2022, Computer Organization and Architecture
Course Category: Compulsory
The course will be given on Year III Semester I

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
 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)
 Role and purpose of operating systems
 History of operating system development
 Types of operating systems

36
Chapter 2: Processes and process management (7hr)
 Process and Thread
 The concept of multi-threading
 Inter process communication
 Race conditioning
 Critical Sections and mutual exclusion
 Process Scheduling
 Preemptive and Computer organization and Architecture non preemptive scheduling
 Scheduling policies
 Dead lock
 Deadlock prevention
 Deadlock detection
 Deadlock avoidance
Chapter 3: Memory Management (7hr)
 Over view of physical memory and memory management
 Hardware overlays
 Swapping
 Partitioning
 Paging and Segmentation
 Page replacement and replacement policies
 Working sets and thrashing
 Caching
Chapter 4: Device Management (4hr)
 Characteristics of parallel and serial devices
 Buffering strategies
 Direct memory access
 Recovery from failure
Chapter 5: File Systems (6hr)
 Fundamental concepts on file
 Data and meta data
 Operations, organization and buffering in file
 Sequential Vs Consequential data
 Content and structure of directories
 File system techniques

37
 Partitioning
 Mounting and unmounting
 Virtual file system
 Memory-mapped files
 Special purpose file systems
 Naming, searching and backup strategies
Chapter 6: Security and protection (4hr)
 Overview of system security
 Policies and mechanism of system security
 System protection, authentication
 Models of protection
 Memory protection
 Encryption
 Recovery management
Teaching - Learning methods Assessment method
Test #1 10%
Test # 2 10%
Lab Examination 10%
Assignments (two) 20%
Quizzes, reading assessment and tutorial contributions 15%
Final examination 35%
Total 100%

Teaching materials Required Texts:


 Andrew Tanenbaum, Modern Operating Systems, 2nd Edition, USA,Prentice-Hall, 2001
Reference books:
1. William Stallings, operating Systems: Internals and Design Principles, 5th Edition, Prentice-Hall,
2005
2. Abraham Silberschatz, P.B. Galvin and G. Gagne, Operating Systems Concepts, 6 th Edition,
John Wiley &Sons ,2006

38
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

39
University: Dilla University
College/Faculty: School of Computing and Informatics
Course Title: Computer Organization and Architecture
Course Code: CoSc 2022
Credit Hrs. 3 ECTS: 5 Lecture Hrs. 3 Lab Hrs. 0 Tutorial Hrs. 2
Prerequisite: EENG2041-Digital Logic Design
Course Category: Compulsory
The course will be given on Year II Semester II

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
 Understand basic concepts of circuits and their design

Course Outline
Chapter 1: Introduction (4hr)
 Logic gates and Boolean algebra
 Combinational circuit
 Flip flops
 Sequential circuit

40
Chapter 2: Number system and codes (4hr)
 Data types
 Complements
 Fixed and floating point representation
 Codes
Chapter 3: Common digital components (6hr)
 Integrated circuit
 Decoder, multiplexer and registers
 Binary counter
 Memory units
Chapter 4: Register Transfer Language and Micro Operations (6hr)
 Register transfer languages
 Bus and memory transfer
 Arithmetic and logic operations
 Shift micro operations
Chapter 5: Basic Computer Organization and Design (6hr)
 Instructional code
 Computer Register
 Computer Instructions
 Timing and control
 Memory reference instructions
 Design of Basic computers
 Design of accumulator logic
Chapter 6: Central processing unit (4hr)
 General register organization
 Stack organization
 Instruction formats
 Addressing modes
 Data transfer and manipulation
 Program control
 Characteristics of RISC and CISC
Chapter 7: Memory Organization (6hr)
 Memory Hierarchy
 Main memory

41
 Cache memory
 Mapping functions
 Direct mapping
 Associative mapping
 Set associative mapping
 External memory
 Magnetic disks
 RAID technology
 Optical disks
 Magnetic tapes
Chapter 8: Input-Output Organization (4hr)
 Peripheral devices
 Input-output interface
 Asynchronous data transfer
 Mode of transfer
 Priority interrupts
 Direct memory access (DMA)
 Input-Output Controller (IOC)
 Serial communication
Chapter 9: Pipeline and Vector Processing (4hr)
 Pipeline
 Parallel Processing
 Arithmetic Pipeline
 Instruction Pipeline
 Vector Processing
 Array Processing
Chapter 10: Multiprocessors (4hr)
 Multiprocessor and its Characteristics
 Interconnection Structures for Multiprocessor
 Inter Processor Communication and Synchronization

42
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:
1. Andrew S. Tannenbaum, Structured Computer Organization, 4 th Edition, Prentice Hall, 1999
2. Mano M, Morris, Computer System Architecture, 3rd Edition, 1993
3. Ram, Computer Fundamentals, Architecture and Organization, 2007

43
University: Dilla University
College/Faculty: School of Computing and Informatics
Course Title: Automata and Complexity Theory
Course Code: CoSc 3101
Credit Hrs. 3 ECTS: 5 Lecture Hrs. 2 Lab Hrs. 3 Tutorial Hrs. 2
Prerequisite: None
Course Category: Compulsory
The course will be given on Year III Semester I

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.
 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)
 Alphabets and strings
 Languages and Grammars
 Automata

44
 Finite automata, Deterministic and Non-deterministic finite automata
Chapter 2: Regular Expression and Regular languages (4hr)
 Regular expressions
 Connection between regular expression and regular languages
 Regular grammar
 Pumping lemma and non-regular language grammars
Chapter 3: Context free languages (6hr)
 Context free languages
 Parsing and ambiguity
 Sentential forms
 Derivation tree or parse tree
 Left most and right most derivations
 Simplification of context free grammar
 Methods for transforming grammars
 Chomsky‟s hierarchy of grammars
Chapter 4: Push down automata (4hr)
 Non-deterministic pushdown automata
 Push down automata and context free languages
 Deterministic push down automata
 Deterministic context free languages
Chapter 5: Turing machines (4hr)
 Standard TM
 Construction of TM
 Turing Decidable and Turing Acceptable
 Undecidable problems
Chapter 6: Computability (4hr)
 Recursive functions
 Recursive languages and recursive Enumerable languages
Chapter 7: Computational complexity (6hr)
 Big-O notaions
 Class P vs class NP
 Polynomial time reduction and NP-complete problems
 Cook‟s Theorem

45
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:
1. An Introduction to Formal Languages and Automata, Third Edition, Peter Linz, 2001
2. An Introduction to Formal Language Theory that Integrates Experimentation and Proof Allen
Stoughton, 2004.
3. Complexity Theory: A Modern Approach Sanjeev Arora and Boaz Barak

46
University: Dilla University
College/Faculty: School of Computing and Informatics
Course Title: Data Structures and Algorithms
Course Code: CoSc2092
Credit Hrs. 3 ECTS: 5 Lecture Hrs. 2 Lab Hrs. 3 Tutorial Hrs. 2
Prerequisite: CoSc2011 Computer Programming II & MATH 2053-Discrete Mathematics and
Combinatorics
Course Category: Compulsory
The course will be given on Year II Semester II

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

Course outline
Chapter 1: Introduction to Data Structures and Algorithms (4hr)
 Introduction to Data Structures
 Abstract data Types
 Abstraction
 Algorithms
 Properties of an algorithm
 Algorithm analysis concepts
 Complexity analysis
 Asymptotic Analysis

47
Chapter 2: Simple Sorting and Searching Algorithms (4hr)
 Sorting Algorithms
 Insertion sort
 Selection Sort
 Bubble sort
 Pointer sort
 Searching Algorithms
 Linear Search (Sequential search)
 Binary Search
Chapter 3: Linked Lists (4hr)
 Review on Pointer and Dynamic Memory allocation
 Singly Linked List and Its Implementation
 Doubly Linked List and Its Implementation
 Circular Linked Lists and Its Implementation
Chapter 4: Stacks (4hr)
 Properties of Stack
 Array Implementation of Stack
 Linked List Implementation of Stack
 Application of Stack
 Evaluation of Algebraic Expression
 Infix and Post fix (RPN) conversion
 Function calls
Chapter 5: Queue (4hr)
 Properties of Queue
 Array Implementation of Queue
 Linked List Implementation of Queue
 Double Ended Queue (Deque)
 Priority Queue
 Application of Queues
Chapter 6: Trees (4hr)
 Binary Tree and Binary Search Trees
 Basic Tree Operations
 Traversing in a Binary tree
 General Trees and Their Implementations

48
Chapter 7: Graphs (4hr)
 Introduction
 Directed vs Undirected graph
 Traversing Graph
Chapter 8: Advanced Sorting and Searching algorithms (4hr)
 Advanced Sorting
 Shell sort
 Quick sort
 Heap Sort
 Merge sort
 Advanced Searching
 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%
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
 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

49
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)

50
University: Dilla University
College/Faculty: School of Computing and Informatics
Course Title: Web Programming
Course Code: CoSc3086
Credit Hrs. 4 ECTS: 7 Lecture Hrs. 3 Lab Hrs. 3 Tutorial Hrs. 1
Prerequisite: None
Course Category: Compulsory
The course will be given on Year III Semester II
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
 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)
 Course overview
 The Internet and World Wide Web

51
 Web Hosting and Domain Name Registration
Chapter 2: Hyper Text Markup Language (HTML) (10hr)
 Introduction to HTML
 HTML tags
 Basic HTML tags (HTML, HEAD, BODY,TITLE)
 Meta tag
 HTML Comments
 HTML Link
 HTML Text Formatting tags
 HTML image inserting tag
o IMG tag and its attribute
o Inserting Image Map
 HTML Table
 Ordered and Unordered List in HTML
 HTML Frames
o Frame Set
o Internal Frame
 HTML Form and Form Controls
 Inserting Multimedia in HTML
o Embed vs Video and Audio tags
 HTML Graphics
o HTML Canvas
o HTML SVG
Chapter 3: Cascading Style Sheet (CSS) (10hr)
 CSS Basics
 Introduction to CSS
 CSS Syntax (CSS Selectors and Declarations)
 Attaching CSS with HTML (External , Embedded and Inline)
 Style Sheet Rules
 Style Inheritance
 Style Rules Precedence
 Style Properties
 Foreground and Background Properties
 Font and Text Properties

52
 CSS Box Model
 Table Styling Properties
 More On Styling List (Creating Navigation bars)
 Layout and Positioning Properties
 CSS Measuring Units
Chapter 4: Client Side Scripting (JavaScript) (8hr)
 Introduction to JavaScript
 JavaScript Basic
 JavaScript Syntax
 Attaching JavaScript to HTML (External, Embedded, Inline)
 JavaScript Comments
 Basic JavaScript Input Output
 JavaScript Data Types and Variables
 JavaScript Data types
 Variable declaration in JavaScript
 Data Type Conversion
 Arithmetic and Logical Operators in JavaScript
 Control Structures (Conditional and Looping Statements)
 Array in JavaScript
 JavaScript Functions
 JavaScript DOM (Document object Model)
 Accessing HTML elements in JavaScript
 CSS in JavaScript
 Events in JavaScript
 Handling Exception in JavaScript
 Form Processing using JavaScript
 JavaScript BOM (Browser Object Model)
 JavaScript Window
 JavaScript Location
 JavaScript Location
 JavaScript Cookies
Chapter 5: Server-Side Scripting (PHP) (8hr)
 Introduction to PHP
 Basic PHP Syntax

53
 PHP Comments
 Predefined and User Variables in PHP
 PHP Output Statements
 Data Types and Variables in PHP
 Arithmetic and Logical Operators
 Conditional Statements
 Loop Statements in PHP
 Arrays in PHP
 PHP Functions
 Form Processing using PHP
 PHP File Upload
 PHP Cookies and Session
 Database Programming using PHP
 Overview on MySQL database
 Creating Database Connection in PHP
 Sending Query to MySQL Database using PHP
 Processing Query Result.
 PHP File Input-Output
 PHP Date and Time
 PHP Mathematical Functions
 PHP OOP
Chapter 6: Advanced JavaScript and XML (AJAX) (4hr)
 Introduction to AJAX
 XMLHttpRequest Object
 Sending Request to PHP server
 Handling Response from Server
Chapter 7: Introduction to web development frameworks (4hr)
 Bootstrap & jQuery
 Node.js
 Angular.js
 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.

54
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
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)

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

56
University: Dilla University
College/Faculty: School of Computing and Informatics
Course Title: Design and Analysis of Algorithms
Course Code: CoSc 3094
Credit Hrs. 3 ECTS: 5 Lecture Hrs. 2 Lab Hrs. 0 Tutorial Hrs. 0
Prerequisite: CoSc 2092-Data Structure and Algorithms
Course Category: Compulsory
The course will be given on Year III Semester II

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

Course Outline
Chapter 1: Introduction and Elementary Data Structures (6hr)
 Introduction to Algorithm analysis
 Asymptotic Notations
 Analysis of Algorithm
 Review of elementary Data Structures
 Heaps
 Hashing
 Set Representation
o UNION, FIND Operation
Chapter 2: Divide and Conquer (6hr)

57
 The General Method of Divide and Conquer
 Binary Search
 Finding Maximum and Minimum
 Merge Sort
 Quick Sort
 Selection Sort
Chapter 3: Greedy Algorithms (6hr)
 General Characteristic of Greedy Algorithms
 Graph Minimum Spanning Tree (MST) - Kruskal‟s and Prims‟s Algorithms
 Shortest Paths
 Scheduling
Chapter 4: Dynamic Programming (6hr)
 Introduction to Dynamic Programming
 All pairs Shortest Path - Floyd-Warshall Algorithm
 Shortest Path - Dijkstra Algorithm
 0/1 Knapsack
 Depth First Search
Chapter 5: Back Tracking (6hr)
 Queens Problem
 Graph Coloring
 Hamiltonian Cycle
 Knapsack Problems
 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.

58
 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.

59
University: Dilla University
College/Faculty: School of Computing and Informatics
Course Title: Compiler Design
Course Code: CoSc 4104
Credit Hrs.: 3 ECTS: 5 Lecture Hrs.: 2 Lab Hrs.: 3 Tutorial Hrs. 2
Prerequisite: CoSc 3101-Automata and Complexity Theory
Course Category: Compulsory
The course will be given on Year IV Semester II

Course Description
The course builds on the student's core knowledge of languages, grammars and programming and
provides an opportunity to see how these core areas can come together to form an application area. Also it
imparts the knowledge about the following
To learn basic techniques used in compiler construction such as lexical analysis, top-down and bottom-up
parsing, context-sensitive analysis, and intermediate code generation.
To learn basic data structures used in compiler construction such as abstract syntax trees, symbol tables,
three-address code, and stack machines.
To learn software tools used in compiler construction such as lexical analyzer generators, and parser
generators.

Course 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...).

Course Outline
Chapter 1: Introduction (2hr)
 Phases of a Compiler
 Computer Language Representation
 Compiler Construction Tools
Chapter 2: Lexical Analysis (4hr)
 Token Specification
 Recognition of Tokens

60
 Recognition of Machines
 NFA to DFA Conversion
 Error Recovery
 A typical Lexical Analyzer Generator
 DFA Analysis
Chapter 3: Syntax Analysis (6hr)
 Parsing
 Top-down Parsing
 Predictive Parsing
 Top-down Parsing principles of CFG
 Regular Expression Vs Context Free Grammar (CFG)
 Top-down Parsing Implementation - Recursive Decent parsing
 Non-Recursive Predictive Parsing
 LL(1) Grammar
 Bottom-Up Parsing
 Handles
 Stack Implementation of Shift Reduce Parsing
 LR Parers-Implementation - LR Parsing Algorithms
 SLR, CLR and LALR parser
 Error Recovery
 Parser Generator
Chapter 4: Syntax Directed Translation (4hr)
 Syntax Directed Definitions (SDD)
 Evaluation Order for SDD
 Construction of Syntax Trees
Chapter 5: Type Checking (4hr)
 Rules of Type Checking
 Type Conversions
Chapter 6: Intermediate Languages (4hr)
 Three Address Code Rules
 Quadruples
 Declarations
 Declarations in Procedures
 Flow Control Statements

61
 Back Patching
 Procedure Calls
Chapter 7: Run time- Environments (4hr)
 Symbol table
 Hash Table
 Representing Scope Information
Chapter 8: Code Generation and Optimization (4hr)
 Simple Code Generation
 Register Allocation
 DAG Representation
 Peephole Optimization Techniques

Teaching - Learning methods


Assessment method
Quizzes 20%
Assignments 10%
Project/Lab 20%
Final Exam 50%
Total 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

62
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

63
University: Dilla University
College/Faculty: School of Computing and Informatics
Course title: Network and System Administration
Course code: COSC4036
Credit hours: 3 ECTS: 5 Contact hrs: 2 Lab hrs: 3 Tutorial hrs: 1
Prerequisite: CoSc2034-Data Communication and Computer Networks, CoSc3023-Operating
system Course category: compulsory
The course will be given on Year: IV Semester: II

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
 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)
 Objectives/Goals, Challenges and Common Practices
 Overview of the OSs
 Unix-like Systems Vs Windows Systems
 Linux Distributions and UIs

64
 Linux Operations Review
 File system Hierarchy and Standard
o Single-rooted hierarchy, Seamless and Extensible File systems
o Mounting Additional File systems
o File system Object Oriented Design and File system Standard
o Unix File and Directory Permissions
 Essential Shell Commands
o Basic File Manipulation Commands and Directory Navigation Commands
o Advanced File Manipulation Commands (Init, Processes, and Threads)
 Advanced Shell Features
Chapter 2: Account and Security Administration, and Access Control (DAC, RBAC) (3 hrs)
 Account and security Administration
 User and Group Concepts, and User Private Group Scheme
 User Administration, Modifying Accounts and Group Administration
 Password Aging and Default User Files
 Managing files and folder permission
 Managing File Ownership
 Controlling Access to files
 Managing Disk Quotas
Chapter 3: File Systems and Management of Data Storages (4hr)
 File system Administration
 Partitioning Disks with fdisk and parted
 Creating, Mounting and Maintaining File systems
 Swap
 Determining Disk Usage With df and du
 Configuring Disk Quotas
 Logical Volume Management (LVM) and RAID
 Implementing LVM, Creating Logical Volumes (LVs), Manipulating VGs & LVs
 Advanced LVM Concepts (i.e. system-config-lvm)
 RAID Concepts (Creating and Managing a RAID-5 Array)
Chapter 4: Network Management (6 hrs)
 TCP/IP Networking
 Configuring a Linux Box for Networking
 Configuring a Linux Box as a Router

65
 Configuring a Web Server (Apache)
 Configuring a DNS Server (BIND)
 Configuring Mail Transfer Agents (Postfix)
 Configuring a Proxy Caches (Squid)
 Network Configuration (IP Networking and Linux Network Configuration)
 Network Services
 Dynamic Host Control Protocol (DHCP)
 Network Time Services and Sharing Desktops with VNC
 RPC-Based Services and INET Super Server
 TCP/IP Troubleshooting: ping, traceroute, ifconfig, netstat, ipconfig
 Remote Administration with SSH and SCP
 Configuration, Telnet Replacement, Secure Copy and Rsync
 RSA and DSA Authentication (Password-less Logins)
 Remote Command Execution and Port Forwarding
Chapter 5: Installation of Application Server and Management (6 hrs)
 DHCP, DNS, Telnet server; compare with other NOS setup of corresponding network services
 Open SSH: Secure Network Communication
 FTP and Setting-up Mail Servers and Client
 Network Information Service (NIS) and Sharing File systems (NFS)
 SAMBA: Linux and Windows File and Printer Sharing
 DNS/BIND: Tracking Domain Names and Address
 Setting up a Firewall and a Web server
Chapter 6: Managing Network Services (4 hrs)
 Maintenance Troubleshooting: Common System and Network Problems
 Developing General Strategies
 Resolve Boot Problems, Backup and Restore Data and System Volume
 Using Event Viewer and Troubleshoot Connectivity
Chapter 7: Systems Security (4 hrs)
 Overview, Application Security and Login Security
 Boot Loader Security (LILO and GRUB)
 TCP Wrappers Configuration
 Iptables Firewalling: Preliminaries
 Iptables Scenarios
 Packet Filtering

66
 Port-Forwarding/Redirection and NAT/IP Masquerading
 Packet-Processing Model
 Intrusion Detection and Mandatory Access Control (MAC) with LIDS
Chapter 8 - Analytical system administration (2 hrs)
 System observation
 Evaluation methods and problems
 Evaluating a hieratical system
 Faults
 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
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

67
 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)
Assessment methods

Assignment/quizzes 10 %
Mid semester examination 20%
Project 20%
Final examination 50%

Text books:

o 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

68
University: Dilla University
College/Faculty: School of Computing and Informatics
Course title: Introduction to Artificial Intelligence
Course code: COSC3112
Credit hours: 3 ECTS: 5 Contact hrs: 2 Lab hrs: 3 Tutorial hrs: 2
Prerequisite: CoSc2092-Data Structures and Algorithms, STAT2016- Probability and Statistics
Course category: compulsory
The course will be given on Year: III Semester: II

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
 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)
 Objectives/Goals of AI
 Types of AI(General and Specific AI)

69
 Approaches to AI – making computer:
 Think like a human ( Thinking humanly)
 Act like a human (Acting humanly)
 Think rationally (Thinking rationally)
 Act rationally (Acting rationally)
 The Foundations of AI
 Bits of History and the State of the Art
 Proposing and evaluating Application of AI
Chapter 2: Intelligent Agents (4 hrs)
 Foundation of Agents
 Agents and Environments
 Acting of Intelligent Agents (Rationality)
 Structure of Intelligent Agents
 Agent Types
 Simple reflex agent
 Model-based reflex agent
 Goal-based agent
 Utility-based agent
 Multi agent systems
 Learning agent
Chapter 3: Searching and Planning (6 hrs)
 Solving Problems by Searching and planning
 Constraint Satisfaction Problem
 Problem Solving Agents
 Problem spaces and search
 Knowledge and rationality
 Heuristic search strategies
 Search and optimization (gradient descent)
 Adversarial search
 Planning and scheduling
 Avoiding Repeated States
 Dynamic game theory
Chapter 4: Knowledge Representation and Reasoning (8 hrs)
 Logic and Inference

70
 Logical Agents
 Propositional Logic
 Predicate (First-Order)Logic
 Inference in First-Order Logic
 Knowledge Representation
 Knowledge Reasoning
 Bayesian reasoning
 Probabilistic reasoning
 Temporal reasoning
 Knowledge-based Systems
 Case study: Medical diagnosis
Chapter 5: Machine Learning Basics (3 hrs)
 Knowledge in Learning
 Learning Probabilistic Models
 Supervised learning
 Linear classification models
 Probabilistic models
 Unsupervised learning
 Clustering models
 Reinforcement learning
 Deep Learning
 Neural networks and back-propagation
 Convolution neural networks
 Recurrent neural networks and LSTMs
Chapter 6: Natural Language Processing (NLP) Basics (3 hrs)
 Intro to Natural Language Processing
 Machine learning Application in NLP
 Natural language interaction
 Computer vision and Image processing
 Case study: Sentiment Analysis, speech recognition, Chabot
Chapter 7: Robotic Sensing and Manipulation (3 hrs)
 Introduction to robotics
 Sensing
 Manipulation

71
 Human-robot interaction
 Navigation and path planning
 Autonomous robotic systems
Chapter 8: Ethical and Legal Considerations in AI (2 hrs)
 Privacy
 Bias
 AI and the future of work
 Appropriate uses of AI

Lab contents: With python or prolog


Lab 1: Tool installation and configuration, introduction to the tool
Lab 2: Implementing search strategies
Lab 3: Knowledge representation
Lab 4: Knowledge Reasoning
Lab 5: Implementing knowledge base system
Lab 6: Implementing neural network
Assessment methods

Assignment/quizzes 10%
Mid semester examination 20%
Project/Lab 20%
Final examination 50%
Total 100%

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.

72
University: Dilla University
College/Faculty: School of Computing and Informatics
Course title: Computer Security
Course code: CoSc4031
Credit hours: 3 ECTS: 5 Contact hrs: 2 Lab hrs: 3 Tutorial hrs: 1
Prerequisite: CoSc2034-Data Communications and Computer Networks
Course category: compulsory
The course will be given on Year: IV Semester: I
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.
 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

73
analysis, and physical threats and controls.

Course Outline
Chapter 1: Introduction to Computer Security (3 hrs)
 Basic concepts of computer security
 Threats, vulnerabilities, controls, risk
 Goals of computer security
 Security attack
 Security policies and mechanisms
 Prevention, detection, and deterrence
 Software security assurance
Chapter 2: Computer Threat (4 hrs)
 Malicious code
 Viruses
 Trojan horses
 Worms
 Spy-wares, etc.
 Class of Attacks
 Reconnaissance
 Access
 Denial of Service, etc.
 Program flaws
 Buffer overflows
 Time-of-check to time-of-use flaws
 Incomplete mediation
 Controls to protect against program flaws in execution
 Operating system support and administrative controls
 Program Security Defenses
 Software development controls and Testing techniques
 Database management systems security
Chapter 3: Cryptography and Encryption Techniques (13 hrs)
 Basic cryptographic terms
 Historical background
 Cipher Techniques

74
 Transposition Cipher
 Substitution Cipher
 Conventional encryption algorithms
 Cryptanalysis
 Cryptographic Systems
 Symmetric key cryptography
o DES
o 3DES
o AES
o Block Cipher Modes
 Public key cryptography
o Diffie-Hellman
o RSA
 Digital Signature
o Using Public Key
o Using Message Digest
 MD4family
 SHA family
 RIPEMD
 Public key Infrastructure (PKI)
o Trusted Third Party
o Certification
o Key Distribution
o PKI Topology
o Enrollment and Revocation Procedures
Chapter 4: Network Security (4 hrs)
 Network security basics
 Threats on network
 Trust, Weaknesses, Risk and Vulnerabilities
 TCP/IP Suit Weaknesses and Buffer Overflows
 Network security protocols
 Application layer security
o Web security
o E-mail security

75
 Transport layer security
 Network layer security
 Link layer security
 Physical security
 Wireless security
Chapter 5: Security Mechanisms (3 hrs)
 Firewall
 Proxy server
 IDS/IPS
 Virtual Private network
Chapter 6: Authentication and Access control (3 hrs)
 Authentication basics
 Password and Passphrase
 Biometrics
o Fingerprint
o Palm Scan
o Hand Geometry
o Iris Scan
o Signature Dynamics
o Voice Print
o Facial Scan
o Hand Typography
 AAA server
 Smart card and memory cards
 Kerberos
 Access control basics
 Access control models
 Discretionary Access Control (DAC)
 Mandatory Access Control (MAC)
 Role-Based Access Control (RBAC)
Chapter 7: Administering security (2 hrs)
 Security planning
 Risk analysis
 Security policies

76
 Cyber security
 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 L
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 /Lab 20%
Final examination 50%
Total 100%

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
th
5. Cryptography and Network Security, 5 Edition William Stallings, Pearson Education
6. Introduction to Cryptography, Buchmann, Springer.

77

You might also like