Software Enginnering
Software Enginnering
Software Enginnering
March 2013
addis ababa, EthiOpia
Contents
1. Background ............................................................................................................................... 2
2. Objective of the Program........................................................................................................... 3
3. Program learning outcomes ..................................................... Error! Bookmark not defined.
4. Graduate Profile ........................................................................................................................ 5
5. Academic Requirements............................................................................................................ 5
5.1
5.2
5.3
Graduation Requirements..................................................................................... 5
5.4
Medium of Instruction.......................................................................................... 6
1. Background
Nowadays, software plays a central role in almost all aspects of daily life: in government,
banking and finance, education, transportation, entertainment, medicine, agriculture, and law. The
number, size, and application domains of computer programs have grown dramatically; as a
result, hundreds of billions are being spent on software development, and the livelihood and lives
of most people depend on the effectiveness of this development. Software products have helped
us to be more efficient and productive. They make us more effective problem solvers, and they
provide us with an environment for work and play that is often safer, more flexible, and less
confining. Software engineering is a discipline, which involves the specification, design,
construction and verification of large software systems.
Although the field of Software Engineering was established more than 30 years ago, Bachelor
degree programs in Software Engineering in Ethiopia came into existence in the last few years.
According to the GTP (Growth and Transformation Plan) goals and strategies set by the ministry
of Communication and Information Technology, the ministry emphasizes the fact that it will
work extensively towards creating an enabling environment for ICT professionals to be engaged
in innovation, creativity, and research activities. So that the ministry can effectively support GTP
reform to ensure sustainable development, poverty eradication, human resource development,
capacity development and good governance through well developed information communication
technology involvement. Hence, the department of computing has opened a new program in
Software Engineering aiming to produce skilled graduates in the field of Software Engineering to
fill the demand of manpower in the field at national level.
The Software Engineering program was started during the 2012-2013 academic year, with a
target of admitting students in the regular program from the year 2012 onwards, under the
department of Computing at School of Engineering. This degree program is a four year program
designed for students who wish to pursue careers as professional software engineers in industry
and commerce.Graduates of this program may pursue career opportunities in a variety of entrylevel positions, including software developer, software programmer, application developer, Web
application developer, software engineer, software applications analyst, Software Project
Manager, Software Tester and Web applications analyst.
Knowledge and understanding of the essential facts, concepts, principles and theories related to
Software Engineering.
Ability to show the mastery of the software engineering knowledge and skills, and professional
issues necessary to bring practice as software engineer
Ability to work as an individual and as a part of team to develop and deliver quality software
products.
Ability to design appropriate solutions in one or more application domains using software
engineering approaches that integrate ethical, social, legal and economic concerns.
Ability to learn new models, techniques and technologies as they emerge and appreciate the
necessity of such continuing professional development.
Study of advanced courses from basic and preliminary courses that will make the students to
understand all dimensions of the field (Software Engineering) thoroughly.
Acquiring practical skills and knowledge in all dimensions of Software Engineering field by
being involved in several group/individual projects.
3. Objective of the Program
To provide education for the students with at most quality and thereby to cultivate confidence in
the students to serve the country better
Assisting Governments policy of increasing trained manpower, thereby reducing the shortage of
skilled manpower that are required for different organizations, to develop the nation
Assisting the industrial community and institutions around in the region to achieve excellence
4. Resources
In order to run software engineering department, we need excellent number of staff such as
M.Sc and above holder. We need also facility such as libraries, laboratory, workshops and
good internet facility for both staffs and students.
5.
Professional profile.
6. Graduate Profile
The graduates of the program will be able to:
To make rational and justified decisions regarding the selection of methods, tools and
techniques for the development of an application.
Design, develop and maintain good quality software by applying software engineering
principles
Selecting the appropriate software model to develop software based on the type of project.
Ability to design the test cases for the application and test the application either by
performing manual testing or automation testing using the appropriate testing tools
Ability to design and develop advanced web sites using client side scripting and server side
scripting languages
Ability to assist in the software industry to produce good quality software by applying the
software quality techniques.
7. Academic Requirements
5.1 Admission Requirements
o
The requirements for admission to the program are as per the Ministry of Education &
Universities admission requirement.
Practical Abilities: Practical Abilities are assessed mostly by continuous assessment. Some of
practical abilities are assessed as part of group project module.
Transferable skills: some skills, like the use of software tools and ability to communicate orally
and in written form are directly assessed, in assignments or projects, other skills are not directly
assessed but their effective use will enhance the students overall performance.
Evaluation will be done based on the midterm exam, assignments, laboratory sessions
demonstrations, Project work, and final exam and etc
For any course having lecture, laboratory/practice and tutorial, raw mark
independently from 100 %.
ii.
The final number grade for a course is obtained based on the weighted average of lecture,
laboratory/practice and tutorial.
In order to maintain the level of courses, course description are prepared in detail containing
course objectives, learning outcome, course outline, textbooks, references and laboratory tasks.
With regard to instruction performance, in line with the University policy, student evaluations are
taken into account. The feedbacks from the students are used to improve the quality of
instruction.
Examinations are assessed by Department Graduation Committee to verify the level of the
courses instruction.
Industry feedback will be an integral part of the process of quality assurance. The quality of
graduates is measured with the feedback obtained from the employers and stakeholders who are
the immediate beneficiaries of the program and also the graduates who are able to rate their own
confidence in meeting the challenges they encounter after graduation.
Title
Status
ECTS
Cr.
Lec
Lab
Tut
H/S
and Computing
EnLa202
Compulsory
EnLa201
Communicative English
Compulsory
CvEt1201
Compulsory
Math 161
Calculus
Compulsory
EEng 1202
Compulsory
34
23
Total
Title
Status
ECTS
Lec
Lab
Tut
H/S
r.
Math 192
Discrete Mathematics I
Compulsory
SE 1021
Programming Fundamentals I
Compulsory
SE 1022
Programming Fundamentals II
Compulsory
SE 1023
22
13
Architecture
Total
Title
Status
ECTS
Cr
Lec
Lab
Tut
H/S
SE 2031
Compulsory
Math 292
Discrete Mathematics II
Compulsory
SE 2032
Compulsory
SE 2033
Compulsory
`4
SE 2034
Mobile Programming
Compulsory
29
17
Total
Title
Status
ECTS
Cr
Lec
SENG2041
Compulsory
SENG3042
Compulsory
SENG2043
Operating Systems
Compulsory
SENG2044
System Programming
Compulsory
26
15
Total
Lab
Tut
H/S
Title
Status
SE 3051
ECTS
Cr
Lec
Lab
Tut
H/S
12
Networks
SE 4052
Information Security
Compulsory
Total
Module 06: Database Systems
Course No
Title
Status
ECTS
Cr
Lec
Lab
Tut
H/S
SE 2061
Compulsory
SE 3062
Distributed Systems
Compulsory
SE 3064
Database Administration
Compulsory
17
13
Total
Module 07 : Web Technology
Course No
Title
SE 3071
SE 2072
WEB Service
Status
ECTS
Cr
Lec
Lab
Tut
H/S
Compulsory
12
Total
Module 08: Software Requirement Modeling and Analysis
Course No
Title
Status
SE 2081
ECTS
Cr.
Lec
Lab
Tut
H/S
modeling
SE 3082
Compulsory
Total
10
Title
Status
ECTS
Cr.
Lec
Lab
Tut
H/S
SE 3091
Compulsory
SE 3092
Compulsory
and Compulsory
20
12
SE 3096
Software
engineering
tools
practices
Total
Module 10 System Modeling and simulation
Course No
Title
Status
ECTS
Cr
Lec
La
Tut
H/S
b
SE 3101
Graphics
Compulsory
SE 3102
Multimedia System
Compulsory
Stat 173
Compulsory
SE 3103
Compulsory
20
12
Total
Module 11: Software Management
SE 4112
Status
GE 302
Entrepreneurship
Compulsory
SE 4113
Compulsory
SE 4111
Process management
Compulsory
20
12
Cr.
Lec
Total
Title
Status
11
ECT
La
Tut
H/S
S
SE 4122
SE 4123
Software
Compulsory
Engineering
Capstone Compulsory
Engineering
Capstone Compulsory
19
11
project I
SE 4124
Software
project II
SE 4121
Engineering
Total
Module Name
Code
Category
Weight (ECTS)
Module Objective
Module Competence
Module Description
Title
Introduction to Software Engineering and
Computing
EnLa202
EnLa201
Communicative English
CvEt1201
Math 161
Calculus
EEng 1202
Econ 101
Engineering
Economics/
Principal
of
Accounting
Mode of delivery
Teaching Methods
Block
Assessment Methods
Module Name
Code
Category
Weight (ECTS)
Basic programming
02
Compulsory
22
Able to assist in an organization for tasks like solving
problems and assist in computer based applications
through on line and off line. Data entry, organizing data
and storage, systematic way of analysis and programming
in a commercial Application for standalone domain.
Junior Programmer
Module Objective
Module Competence
Module Description
Mode of delivery
Teaching Methods
Assessment Methods
Module Name
Code
Category
Weight (ECTS)
Module Objective
Course No
Math 192
SE 1021
SE 1022
SE 1023
Block
Title
Discrete Mathematics I
Programming Fundamentals I
Programming Fundamentals II
Computer Organization and Architecture
Module Competence
Module Description
Title
Object Oriented Programming
Math 292
Discrete Mathematics II
SE 2032
13
Mode of delivery
Teaching Methods
Assessment Methods
SE 2033
SE 2034
Mobile Programming
Block
Module Name
Code
Category
Weight (ECTS)
Module Objective
Module Competence
Module Description
Course No
SENG3042
SENG2043
SENG2044
System Programming
SENG2041
Mode of delivery
Teaching Methods
Assessment Methods
Title
Block
Module Name
Code
Category
Weight (ECTS)
Computer Networking
05
Compulsory
12
Module Objective
Network Administrator
Module Description
Course No
SE 3051
Data
Title
Communication
and
Computer
Networks
SE 4052
Mode of delivery
Teaching Methods
Assessment Methods
Information Security
Block
Module Name
Database Systems
Code
Category
Weight (ECTS)
06
Compulsory
22
To enable students design and administer database for
an organization.
To expand students knowledge on database that helps
them in developing applications that incorporate
database with some Programming tool.
Introduce concepts and applications of Data mining and
warehousing.
Database Manager
Module Objective
Module Competence
Module Description
Mode of delivery
Teaching Methods
Assessment Methods
Course No
SE 2061
Title
Database Management Systems
SE 3062
Distributed Systems
SE 3064
Database Administration
Block
Module Name
Web Technology
Code
Category
Weight (ECTS)
07
Compulsory
12
Module Objective
Module Competence
Website Developer
Module Description
Course No
SE 3071
Title
Web Design and Programming
SE 2072
WEB Service
Mode of delivery
Teaching Methods
Assessment Methods
Block
Module Name
Code
Category
Weight (ECTS)
08
Compulsory
10
Module Objective
Module Competence
System Analyst
Module Description
Course No
SE 2081
Mode of delivery
Teaching Methods
SE 3082
Block
Title
Object Oriented System analysis and
modeling
Software Requirements Engineering
16
Assessment Methods
Assignments/mid exam/final
exam/projects/laboratory exercises
Module Name
Software Design
Code
Category
Weight (ECTS)
09
Compulsory
20
Module Objective
Module Competence
System Designers
Module Description
Course No
SE 3091
Title
Software Design and Architecture
SE 3092
Software
Engineering
approaches
to
Mode of delivery
Teaching Methods
Assessment Methods
SE 3095
SE 3096
Block
Module Name
Code
Category
Weight (ECTS)
10
Compulsory
20
Module Objective
Graphics Developer
Module Description
Course No
SE 3101
Graphics
SE 3102
Multimedia System
Stat 173
SE 3103
Mode of delivery
Teaching Methods
Assessment Methods
Title
Block
Module Name
Software Management
Code
Category
Weight (ECTS)
11
Compulsory
20
Module Objective
Module Description
Course No
SE 4112
Title
Software Project Management
GE 302
Entrepreneurship
SE 4113
SE 4111
Process management
Mode of delivery
Teaching Methods
Assessment Methods
Block
Module Name
Code
Category
Weight (ECTS)
12
Compulsory
19
19
Module Objective
Module Competence
Software Engineers
Module Description
Course No
SE 4122
Title
Seminar in Software Engineering
SE 4123
SE 4124
SE 4121
Research
methodology
in
Software
Engineering
Mode of delivery
Teaching Methods
Assessment Methods
Block
20
Year I Semester I
Module
Course Code
ECTS
Course Title
Cr
No of
weeks
No
01
EnLa 201
Math 101
SE 1011
Communicative English
5
Calculus
7
Introduction to Software Engineering and 7
Delivery
3
4
4
16
16
16
Parallel
Parallel
Parallel
Computing
02
EEng 1202
16
parallel
SWEG 1021
Fundamentals of Programming I
Total
16
Parallel
29
17
Year I Semester II
Modul
Course
e No
Code
01
CP
Cr.
No of
Delivery
Weeks
CvEt 201
EnLa.202
SE 1022
Math 192
SE 1023
02
Course Title
5
5
5
5
and 5
3
3
3
3
3
16
16
16
16
16
Parallel
Parallel
Parallel
Parallel
Parallel
16
Parallel
16
Parallel
Architecture
01
Econ 101
30
18
Year II Semester I
Module
No
03
04
Course No
Title
SE 2031
No of
Weeks
16
SE 2032
16
Parallel
Math 292
Discrete Mathematics II
16
Parallel
SENG 2043
Operating Systems
16
Parallel
SENG 2041
Total
CP
Cr.
31
21
Delivery
Parallel
Parallel
18
Year II Semester II
Module
No
Course
No
SE 2033
No of
Week
s
16
SE 2034
Mobile Programming
16
Parallel
04
SENG3
042
16
Parallel
06
SE 2061
16
Parallel
03
Title
Total
CP
Cr.
26
Delivery
Parallel
15
Course Code
Course Title
Cp
Cr.
No of
No
Delivery
Weeks
08
SE 3081
16
Parallel
SE 3062
Object
Oriented
Software 5
Requirement Analysis and modeling
Distributed Systems
5
06
16
Parallel
05
SE 3051
16
Parallel
16
Parallel
Networks
07
SE 3071
SE 3101
Total
Year III
29
16
17
Semester II
Module No
Course Code
07
SE 4052
08
Course Title
CP
Cr.
Information Security -
SE 3074
SE 3082
5
5
3
3
Parallel
Parallel
Stat 173
16
Parallel
SE 4095
Process Management
SE 3091
Total
30
Year IV Semester I
22
No of
Weeks
2
Delivery
Parallel
Parallel
16
18
Parallel
Modul
e No
09
Course
Code
SE 4091
12
SE 4123
Course Title
CP
Cr.
3
No of
Weeks
2
Delivery
Parallel
16
Parallel
16
Parallel
Parallel
I
SE 4121
SE 4102
3
3
2
1
SE 3095
SE 3084
Total
28
Parallel
16
Parallel
16
Year IV Semester II
Modul
Course
e No
Code
09
12
Course Title
CP
Cr.
No of
Delivery
Weeks
SE 4094
SE 4113
GE 302
Entrepreneurship
SE 3083
Multimedia System
SE 4123
SE 4122
Total
27
23
16
Parallel
Parallel
16
Parallel
Parallel
16
Parallel
Parallel
17
Course Name
Total
24
CrHr
ECTS
Program of Study
Courses code
Courses Title
Degree Program
Module name
Module number
Course chair
Instructor/Tutor
Lecture days,
hours,& room
Tutorial /lab days &
hour
Target group
Year /semester
Pre-requisites
Status of the course
Lectures
3
Tutorials &
seminars
0
Laboratory &
workshop
0
Home Study
5
Total
08
I / II
Introduction to Computing
Compulsory
Course Description:
Principles of software engineering: Requirements, design and testing. Review of principles of
object orientation. Object oriented analysis using UML. Frameworks and APIs. Introduction to
the client-server architecture. Analysis, design and programming of simple servers and clients.
Introduction to user interface technology
Course Objectives:
Upon completion of this course, students will have the ability to:
Develop clear, concise, and sufficiently formal requirements for extensions to an existing
system, based on the true needs of users and other stakeholders
Apply design principles and patterns while designing and implementing simple distributed
systems-based on reusable technology
Create UML class diagrams which model aspects of the domain and the software architecture
Create UML sequence diagrams and state machines that correctly model system behavior
Implement a simple graphical user interfaces for a system
Apply simple measurement techniques to software
Demonstrate an appreciation for the breadth of software engineering
Course Schedule, topics, activities, and readings
Week
Topic
1
Software engineering and its place as an engineering
discipline
Software development process models
2
Requirement elicitation, analysis and specification
25
Activities
Reading
3
4
5
Courses code
Courses Title
Degree Program
Module name
Module number
Course chair
Instructor/Tutor
5 (3)
Lecture days,
hours,& room
Tutorial /lab days &
hour
Target group
Year /semester
Pre-requisites
Status of the course
Lectures
2
Tutorials &
seminars
1
Laboratory &
workshop
2
Home Study
5
Total
10
1/1
None
Compulsory
Course Description:
This course introduces the fundamental concepts of procedural programming. Topics include data types,
control structures, functions, arrays, files, and the mechanics of running, testing, and debugging.
Course Objectives:
After completing this course students should be able to:
Analyze and explain the behavior of simple programs involving the fundamental programming constructs
Choose appropriate conditional and iteration constructs for a given programming task.
Design, implement, test, and debug a program that uses each of the following fundamental programming
constructs: basic computation, simple I/O, standard conditional and iterative structures, and the definition
of functions.
Course Schedule, topics, activities, and readings
Week
Topic
Activities Reading
1-2
Algorithms and problem-solving: Problem-solving strategies; the
role of algorithms in the problem-solving process; implementation
strategies for algorithms; debugging strategies; the concept and
properties of algorithms
3-4
5-6
7-8
9 - 11
12-14
27
Courses code
Courses Title
Degree Program
Module name
Module number
Course chair
Instructor/Tutor
28
Lecture days,
hours,& room
Tutorial /lab days &
hour
Target group
Year /semester
Pre-requisites
Status of the course
5 (3)
Lectures
Tutorials &
seminars
Laboratory &
workshop
Home
Study
5
Total
10
Year: I Semester: II
Fundamentals of Programming I
Compulsory
Course Description:
This course starts with overviewing functions and discusses the concept of arrays, Strings, pointers,
structures and files in detail. It also discusses about the mechanics of running, testing, and debugging
programs and introduces object oriented programming.
Course Objectives:
After completing this course students should be able to:
Apply the techniques of structured (functional) decomposition to break a program into smaller pieces.
Implement string, array, structures in simple programs
Able to allocate and release memory locations dynamically
Apply basic file I/O in programs
Understands the differences between structural and object oriented programming paradigms.
Course Schedule, topics, activities, and readings
Week
Topic
1
Over view of functions:
2-3
4-6
7-8
9 - 10
11
12-14
Activities
29
Reading
Courses code
Courses Title
Degree Program
Module name
Module number
Course chair
Instructor/Tutor
Lecture days,
hours,& room
Tutorial /lab days
&hour
Target group
Year /semester
Pre-requisites
Status of the course
6 (4)
Lectures
Tutorials &
seminars
Laboratory &
workshop
Home
Study
6
Total
12
Year: II Semester:I
Fundamentals of Programming II
Compulsory
Course Description:
The courses discusses about design of classes, Inheritance, Polymorphism, Static and dynamic binding,
Abstract classes, Exception handling, java File I/O, Interfaces, inner classes and generics in detail. It also
introduces event-driven programming and collections and iterators.
Course Objectives:
After completing this course students should be able to:
Justify the philosophy of object-oriented design and the concepts of encapsulation, abstraction,
inheritance, and polymorphism.
Design, implement, test, and debug simple programs in an object-oriented programming language.
Describe how the class mechanism supports encapsulation and information hiding.
Design, implement, and test the implementation of is-a relationships among objects using a class
hierarchy and inheritance.
Compare and contrast the notions of overloading and overriding methods in an object-oriented language.
Explain the relationship between the static structure of the class and the dynamic structure of the instances
of the class.
Describe how iterators access the elements of a container.
Course Schedule, topics, activities, and readings
Week
Topic
Activities
Introduction:
Fundamental
Programming
Structures
in
Java
(The
1
main() method, Primitive Data Types, Variables, Constants,
Assignments, Initializations, Operators, Strings, Control Flow), OOP
paradigms, Arrays, Strings
Classes and Objects: Classes & Objects, reference variables vs
2-3
primitive variables, Instance Variables, Class Variables,
Constructors, Instance Methods, Class Methods, Access specifies,
Method Overloading, The this keyword, Passing and returning
objects, Garbage Collection
Inheritance and Polymorphism:-An introduction to inheritance,
4-5
Composition, polymorphism,Superclasses and subclasses, Protected
members, Relations between super- and subclasses, Constructors in
superclasses, Method Overriding, The super keyword, hiding, the
Object class.
31
Reading
6-7
8-9
9 - 10
11-12
13
14
32
Program of Study
Courses code
Courses Title
Degree Program
Module name
Module number
Course chair
Instructor/Tutor
6 (4)
Lecture days,
hours,& room
Tutorial /lab days &
hour
Target group
Year /semester
Pre-requisites
Status of the course
Lectures
Tutorials &
seminars
Laboratory &
workshop
Home
Study
6
Total
12
Course Description:
This course explores advanced Java language features and packages. The course begins with introducing
applets. Multithreading, network programming and Database programming using JDBC is covered in
depth. Distributed programming in Java is introduced using RMI. Reflection in Java and JAR files are
covered. Server-side Web programming is introduced using servlets and JSP. Java security is covered.
There is also an introduction to JavaBeans.
Course Objectives:
After completing this course students should be able to:
Write Client Server applications using sockets.
Write multi-threaded Java applications..
Perform database queries and updates using JDBC.
Develop distributed applications using RMI
Develop component-based Java software using JavaBeans
Develop server side programs in the form of servlets and JSP
Learn Java's security model and how to do security programming in Java
Course Schedule, topics, activities, and readings
Week
Topic
Introduction to Applet programming: Introduction; Running
1
applets; Applet life cycle, Applet and JApplet classes, the <applet>
tag;
33
Activities
Reading
23
45
67
89
9 10
11-12
13
14
Mid exam
Final exam
Total
Grading: as per-the harmonized academic policy
Course policy:
Texts and references:
Java how to program, Dietel&Dietel (seventh edition)
Program of Study
Courses code
Courses Title
Degree Program
Module name
Module number
Course chair
Instructor/Tutor
Lecture days,
hours,& room
Tutorial /lab days &
hour
Target group
Year /semester
Pre-requisites
Status of the course
Lectures
4
Tutorials &
seminars
0
Laboratory &
workshop
0
Home Study
7
III / II
Object Oriented Software Engineering
Compulsory
Course Description:
An in-depth look at software design. Continuation of the study of design patterns, frameworks,
and architectures. Survey of current middleware architectures. Design of distributed systems
using middleware. Component based design. Measurement theory and appropriate use of metrics
in design. Designing for qualities such as performance, safety, security, reusability, reliability,
etc. Measuring internal qualities and complexity of software. Evaluation and evolution of
designs. Basics of software evolution, reengineering, and reverse engineering.
Course Objectives:
Upon completion of this course, students will have the ability to:
Design and implement software using several different middleware technologies
35
Total
11
Activities
36
Reading
Ed Downs, Peter Clare and Jan Coe, "Structured System Analysis and Design Methods Application and
Context", Prentice Hall, 1998.
Mary Shaw David Garlan, "Software Architectural Perspectives on an Emerging Discipline", EEE, PHI,
1996.
Bass L, Clements P, and Kazman R, "Software Architecture in Practices", 2nd edition, SEI series in
Software Engineering, PEI, Addison Wesley, 2003.
Program of Study
Courses code
Courses Title
Degree Program
Module name
Module number
Course chair
Instructor/Tutor
Lecture days,
hours,& room
Tutorial /lab days &
hour
Target group
Year /semester
Pre-requisites
Status of the course
Lectures
3
Tutorials &
seminars
0
Laboratory &
workshop
0
Home Study
7
IV / I
Object Oriented Software Engineering
Compulsory
Course Description:
Quality: how to assure it and verify it, and the need for a culture of quality. Avoidance of errors
and other quality problems. Inspections and reviews. Testing, verification and validation
techniques. Process assurance vs. Product assurance.Quality process standards. Product and
process assurance. Problem analysis and reporting. Statistical approaches to quality control.
Course Objectives:
Upon completion of this course, students will have the ability to:
Conduct effective and efficient inspections
Design and implement comprehensive test plans
Apply a wide variety of testing techniques in an effective and efficient manner
Compute test coverage and yield, according to a variety of criteria
Use statistical techniques to evaluate the defect density and the likelihood of faults
Assess a software process to evaluate how effective it is at promoting quality
37
Total
10
Activities
Reading
Courses code
Courses Title
Degree Program
Module name
Module number
Course chair
Instructor/Tutor
Lecture days,
hours,& room
Tutorial /lab days &
hour
Target group
Year /semester
Pre-requisites
Status of the course
Lectures
2
Tutorials &
seminars
0
Laboratory &
workshop
3
Home Study
5
Total
10
III / I
Introduction to Sooftware Engineering, District Mathematics I and II
Compulsory
Course Description:
General principles and techniques for disciplined low-level software design. BNF and basic
theory of grammars and parsing. Use of parser generators. Basics of language and protocol
design. Formal languages.State-transition and table-based software design. Formal methods for
software construction. Techniques for handling concurrency and inter-process communication.
Techniques for designing numerical software.Tools for model-driven construction. Introduction
to Middleware. Hot-spot analysis and performance tuning.
Course Objectives:
Upon completion of this course, students will have the ability to:
Apply a wide variety of software construction techniques and tools, including state-basedand table-driven
approaches to low-level design of software
Design simple languages and protocols suitable for a variety of applications
Generate code for simple languages and protocols using suitable tools
Create simple formal specifications of low-level software modules, check the validity ofthese
specifications, and generate code from the specifications using appropriate tools
Design simple concurrent software
Analyze software to improve its efficiency, reliability, and maintainability
Course Schedule, topics, activities, and readings
Week
Topic
Activities
Reading
Basics of formal languages; syntax and semantics;
1
grammars; Backus Naur Form. Parsing;
Regular expressions and their relationship to state diagrams
2
Lexical Analysis; tokens; more regular expressions and
transition networks; principles of scanners
Using tools to generate scanners; applications of scanners.
3
39
Program of Study
Courses code
Courses Title
Degree Program
Module name
Module number
Course chair
Instructor/Tutor
Lecture days,
hours,& room
Tutorial /lab days &
hour
Target group
Year /semester
Pre-requisites
Status of the course
Lectures
2
Tutorials &
seminars
0
Laboratory &
workshop
3
Home Study
6
Total
11
III / II
Object Oriented Programming, Object Oriented SAD
Compulsory
Course Description:
This course provides an introduction to the software engineering tools and practices - a look at typical
approach software engineers use to create applications in practice. Topics include requirements analysis,
high-level design, detail-level design, UML modeling, code generation, application building, and revision
management. Laboratory assignments provide an opportunity for students to develop an understanding of
these tools and how they are used in actual practice.
Course Objectives:
Upon successful completion of this course, the student will be able to:
Transform requirements documented as use cases into UML design models
Generate source code from UML design models, and synchronize subsequent changes
Create user interfaces using a visual design tool
Maintain source code and related design documents in a revision control system
Create a deployable software package using an automated build tool
Track software defects using a change management system
Be able to create an installable software package using an automated build tool
Course Schedule, topics, activities, and readings
Week
Topic
1
Introduction to software engineering practices
Source code generation from UML models
2
Synchronizing source code with UML models
Use of a revision control system to archive source code and
related documentation
3
Graphical UI layout (1 class)
Use of a change management system for tracking software
defects
4
Use of an automated build tool for software package
41
Activities
Reading
Courses code
Courses Title
Degree Program
Module name
Module number
Course chair
Instructor/Tutor
5
Tutorials &
Laboratory &
42
week
Lectures
2
Lecture days,
hours,& room
Tutorial /lab days &
hour
Target group
Year /semester
Pre-requisites
Status of the course
seminars
0
workshop
3
Home Study
5
Total
10
III / II
Object Oriented Analysis and Design, Object Oriented Programming, Data
Structures and Algorithms
Compulsory
Course Description:
This course deals with the design and implementation of software subsystems. The concept of design
patterns is introduced and common patterns are applied to the development of software components.
Laboratory projects provide an opportunity for teams of students to implement components and to
integrate them into complete systems.
Course Objectives:
Upon successful completion of this course, the student will:
apply object-oriented design patterns in software application-specific contexts
determine the appropriate design pattern to apply in a specific context
design and implement small software components and systems
apply UML class and sequence diagrams in the process of designing and documenting software
applications
use computer-aided software engineering (CASE) tools in the design and software documentation process
conduct independent research on software design patterns
document software design patterns in both written and oral reports
Course Schedule, topics, activities, and readings
Week
Topic
Introduction to course and design patterns
1
2
3
4
5
6
43
Activities
Reading
Courses code
Courses Title
Degree Program
Module name
Module number
Course chair
Math 192
Discrete Mathematics I
BSc in Software Engineering
Supportive Course
10
Contact address:
Instructor/Tutor
5 (3)
Lecture days,
hours,& room
Tutorial /lab days
& hour
Target group
Year /semester
Pre-requisites
Status of the
course
Lectures
Tutorials &
seminars
Laboratory &
workshop
Course Description:
44
Home
Study
5
Total
9
This courses introduces the foundations of discrete mathematics as they apply to computer science,
focusing on providing a solid theoretical foundation for further work. Topics include functions, relations,
sets, simple proof techniques, Boolean algebra, propositional logic, digital logic, elementary number
theory, the fundamentals of counting,
Course Objectives:
After completing this course students should be able to:
Explain with examples the basic terminology of functions, relations, and sets.
Perform the operations associated with sets, functions, and relations.
Apply formal methods of symbolic propositional and predicate logic.
Describe how formal tools of symbolic logic are used to model algorithms and real life situations.
Outline the basic structure of and give examples of different proof techniques.
Discuss which type of proof is best for a given problem.
Compute permutations and combinations of a set, and interpret the meaning in the context of the
particular application.
Solve a variety of basic recurrence equations.
Course Schedule, topics, activities, and readings
Week Topic
Introduction to logic and proofs: Direct proofs; proof by contradiction;
1-2
mathematical induction
Fundamental structures: Functions (surjections, injections, inverses,
3-4
composition); relations (reflexivity, symmetry, transitivity, equivalence
relations); sets (Venn diagrams, complements, Cartesian products,
power sets); pigeonhole principle; cardinality and countability
Boolean algebra: Boolean values; standard operations on Boolean
5-6
values; de Morgan's laws
Propositional logic: Logical connectives; truth tables; normal forms
7-8
(conjunctive and disjunctive); validity
9 - 10 Digital logic: Logic gates, flip-flops, counters; circuit minimization
Elementary number theory: Factorability; properties of primes; greatest
11 common divisors and least common multiples; Euclid's algorithm;
12
modular arithmetic; the Chinese Remainder Theorem
Basics of counting: Counting arguments; pigeonhole principle;
13 permutations and combinations; binomial coefficients
14
45
Activities Reading
Test#2
Mid exam
Final exam
Total
Grading: as per-the harmonized academic policy
Course policy:
Texts and references:
Text-Book:
Discrete Mathematics For Computer Scientists, (Chapter 1-5) By J L Mott, Akandel And T P Baker
Reference Books :
Discrete Mathematical Structure - (Tmh) By Trembley And Manohar
Discrete Mathematics With Algorithms - (John Wiley) By M.O.Albertson And J.P.Hutchinson
Elements Of Discrete Mathematics-(Tmh, Second Edition) By C.L.Liu
Discrete Mathematics - (Phi, Third Edition) By BurnordKolman
Discrete Mathematics By KhRossen (Tmh)
Discrete Mathematics By S Lipschutz And M. Lipson Schaums Gen (Tmh)
Discrete Mathematics For Computer Science By Garrry Haggard, J. Schilpf& S White Sides (Thomson
Press)
Discrete & Combinatorial Mathematics By Ralph P Grimaldi (Pearson Education)
Discrete Mathematical Structures By Ds Mallik& M K Sen (Thomson Press)
Program of Study
Courses code
Courses Title
Degree Program
Module name
Module number
Course chair
Math 292
Discrete Mathematics II
BSc in Software Engineering
Supportive Course
10
Contact address:
Instructor/Tutor
5 (3)
Lectures
Tutorials &
seminars
Laboratory &
workshop
Lecture days,
hours,& room
46
Home
Study
5
Total
9
Course Description:
Continues the discussion of discrete mathematics introduced in Math 192. Topics in thesecond course
include predicate logic, recurrence relations, graphs, trees, matrices,computational complexity,
elementary computability, and discrete probability.
Course Objectives:
After completing this course students should be able to:
Illustrate by example the basic terminology of graph theory, and some of the properties and special cases
of each.
Demonstrate different traversal methods for trees and graphs.
Model problems in computer science using graphs and trees.
Course Schedule, topics, activities, and readings
Week
Topic
Activities
Reading
Predicate logic: Universal and existential quantification; modus
1-2
ponens and modus tollens; limitations of predicate logic
Recurrence relations: Basic formulae; elementary solution
3-4
techniques
Graphs and trees: Fundamental definitions; simple algorithms ;
5-6
traversal strategies; proof techniques; spanning trees; applications
Matrices: Basic properties; applications
7-8
Computational complexity: Order analysis; standard complexity
9 - 10
classes
Elementary computability: Count ability and unaccountability;
11 - 12
diagonalization proof to show uncountability of the reals; definition
of the P and NP classes; simple demonstration of the halting
problem
Discrete probability: Finite probability spaces; conditional
13 - 14
probability, independence, Bayes rule; random events; random
integer variables; mathematical expectation
Total
Lecture
Test#2
Mid exam
Final exam
Total
Grading: as per-the harmonized academic policy
Course policy:
Texts and references:
Text-Book:
Discrete Mathematics For Computer Scientists, (Chapter 1-5) By J L Mott, Akandel And T P Baker
Reference Books :
Discrete Mathematical Structure - (Tmh) By Trembley And Manohar
Discrete Mathematics With Algorithms - (John Wiley) By M.O.Albertson And J.P.Hutchinson
Elements Of Discrete Mathematics-(Tmh, Second Edition) By C.L.Liu
Discrete Mathematics - (Phi, Third Edition) By BurnordKolman
Discrete Mathematics By KhRossen (Tmh)
Discrete Mathematics By S Lipschutz And M. Lipson Schaums Gen (Tmh)
Discrete Mathematics For Computer Science By Garrry Haggard, J. Schilpf& S White Sides (Thomson
Press)
Discrete & Combinatorial Mathematics By Ralph P Grimaldi (Pearson Education)
Discrete Mathematical Structures By Ds Mallik& M K Sen (Thomson Press)
Program of Study
Courses code
Courses Title
Degree Program
Module name
Module number
Course chair
SE 3074
Software Engineering Approaches to Human Computer Interaction
BSc in Software Engineering
Software Design
04
Contact address:
Instructor/Tutor
5 (3)
Lectures
Tutorials &
seminars
Laboratory &
workshop
Lecture days,
hours,& room
Tutorial /lab days
& hour
48
Home
Study
5
Total
10
Target group
Year /semester
Pre-requisites
Status of the
course
Course Description:
The course presents a comprehensive introduction to the principles and techniques of human computer
interaction. It also discusses about designing user interfaces for different types of applications.
Course Objectives:
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.
Explain the importance of the user abilities and characteristics in the usability of products.
Course Schedule, topics, activities, and readings
Week
Topic
Activities
Foundations of human-computer interaction: Motivation; contexts
1-2
for HCI; human centered development and evaluation; human
performance models; human performance models; accommodating
human diversity; principles of good design and good designers;
engineering tradeoffs; introduction to usability testing
Human-centered software evaluation: Setting goals for evaluation;
3-4
evaluation without users; evaluation with users
Human-centered software development: Approaches, characteristics,
5-6
and overview of process; functionality and usability; specifying
interaction and presentation; prototyping techniques and tools
Graphical user-interface design: Choosing interaction styles and
7-8
interaction techniques; HCI aspects of common widgets; HCI
aspects of screen design; handling human failure; beyond simple
screen design; multi-modal interaction; 3D interaction and virtual
reality
Graphical user-interface programming: Dialogue independence and
9 - 10
levels of analysis; widget classes; event management and user
interaction; geometry management; GUI builders and UI
programming environments; cross-platform design
HCI aspects of multimedia systems: Categorization and architectures
11 - 12
of information; information retrieval and human performance; HCI
design of multimedia information systems; speech recognition and
natural language processing; information appliances and mobile
computing
HCI aspects of collaboration and communication: Groupware to
13 - 14
support specialized tasks; asynchronous group communication;
synchronous group communication; online communities; software
characters and intelligent agents
49
Reading
Courses code
Courses Title
Degree Program
Module name
Module number
Course chair
Instructor/Tutor
Lecture days,
hours,& room
Tutorial /lab days &
hour
Target group
Year /semester
Pre-requisites
Status of the course
Lectures
2
Tutorials &
seminars
0
Laboratory &
workshop
3
II / II
Compulsory
50
Home Study
5
Total
10
Course Description:
Course Objectives:
Course Schedule, topics, activities, and readings
Week
Topic
1
HTML Common tags- List, Tables, images, forms,
Frames; Cascading Style sheets;
Introduction to Java Scripts, Objects in Java Script,
Dynamic HTML with Java Script, CSS
2
XML: Document type definition, XML Schemas,
Document Object model, Presenting XML, Using
XML Processors: DOM and SAX
Review of Applets, Class, Event Handling, AWT
Programming. Introduction to Swing: JApplet,
Handling Swing Controls like Icons Labels
Buttons Text Boxes Combo Boxes Tabbed
Pains Scroll Pains Trees Tables Differences
between AWT Controls & Swing Controls
Developing a Home page using Applet & Swing
3
Java Beans: Introduction to Java Beans, Advantages
of Java Beans, BDK Introspection, Using Bound
properties, Bean Info Interface, Constrained
properties Persistence, Customizes, Java Beans API.
Web servers: Tomcat Server installation & Testing.
Introduction to Servelets: Lifecycle of a Serverlet,
JSDK The Servelet API, The javax.servelet Package,
Reading Servelet parameters, Reading Initialization
parameters.
4
More on Servlets: The javax.servelet HTTP package,
Handling Http Request & Responses, Using CookiesSession Tracking, Security Issues.
Introduction to JSP: The Problem with Servelet. The
Anatomy of a JSP Page, JSP Processing. JSP
Application Design with MVC architecture. AJAX.
5
JSP Application Development: Generating Dynamic
Content, Using Scripting Elements
Implicit JSP Objects, Conditional Processing
Displaying Values Using an Expression to Set an
Attribute, Declaring Variables and Methods Error
Handling and Debugging Sharing Data Between JSP
pages, Requests, and Users Passing Control and Date
between Pages Sharing Session and Application
Data Memory Usage Considerations
6
Database Access Database Programming using
JDBC Studying Javax.sql.* package Accessing a
Database from a JSP Page Application Specific
Database Actions Deploying JAVA Beans in a JSP
Page
51
Activities
Reading
52
Program of Study
Courses code
Courses Title
Degree Program
Module name
Module number
Course chair
Instructor/Tutor
Lecture days,
hours,& room
Tutorial /lab days &
hour
Target group
Year /semester
Pre-requisites
Status of the course
Lectures
3
Tutorials &
seminars
0
Laboratory &
workshop
3
Home Study
5
Total
11
II / II
Data Structures and Algorithms
Compulsory
Course Description:
This course examines basic issues in operating system design and implementation. The discussion is to
cover the tradeoffs that can be made between performance and functionality during the design and
implementation of an operating system. Particular emphasis will be given to the major OS subsystems:
process management (processes, threads, CPU scheduling), Memory management, file and I/O device
management and deadlock), memory management (segmentation, paging, swapping) and file systems.
Course Objectives:
After completing this course students should be able to:
Explain the objectives and functions of modern operating systems.
Describe how operating systems have evolved over time from primitive batch systems to sophisticated
multiuser systems.
Analyze the tradeoffs inherent in operating system design.
Describe the functions of a contemporary operating system with respect to convenience, efficiency, and
the ability to evolve.
Identify potential threats to operating systems and the security features design to guard against them.
Describe how issues such as open source software and the increased use of the Internet are influencing
operating system design.
Course Schedule, topics, activities, and readings
Week
Topic
Activities
Reading
Overview: Role and purpose of operating systems; history
1
of operating systemdevelopment; functionality of a typical
operating system; design issues (efficiency,robustness,
53
54
Mid exam
Final exam
Total
Grading: as per-the harmonized academic policy
Course policy:
Texts and references:
Textbook:
Andrew S.Tanenbaum, Modern Operating System, Third edition.
References
William Stalling, Operating System, Principles & Deign Implementation
P.Balakrishna Prasad, Operating system & Systems Programming
Program of Study
Courses code
Courses Title
Degree Program
Module name
Module number
Course chair
Instructor/Tutor
Lecture days,
hours,& room
Tutorial /lab days &
hour
Target group
Year /semester
Pre-requisites
Status of the course
Lectures
2
Tutorials &
seminars
0
Laboratory &
workshop
3
Home Study
5
Total
10
II / II
Data Communication and Computer Networks
Compulsory
Course Description:
Course Objectives:
Course Schedule, topics, activities, and readings
Week
Topic
Security Goals, Security Attacks (Interruption, Interception,
1
Modification and Fabrication), Security Services
55
Activities
Reading
Program of Study
Courses code
Courses Title
Degree Program
Module name
Module number
Course chair
Instructor/Tutor
Lecture days,
hours,& room
Tutorial /lab days &
hour
Target group
Year /semester
Pre-requisites
Status of the course
Lectures
3
Tutorials &
seminars
0
Laboratory &
workshop
0
III / I
Object Oriented Software Engineering
Compulsory
57
Home Study
6
Total
09
Course Description:
Domain engineering.Techniques for discovering and eliciting requirements.Languages and models for
representing requirements. Analysis and validation techniques, including need, goal, and use case
analysis. Requirements in the context of system engineering. Specifying and measuring external qualities:
performance, reliability, availability, safety, security, etc. Specifying and analyzing requirements for
various types of systems: embedded systems, consumer systems, web-based systems, business systems,
systems for scientists and other engineers. Resolving feature interactions.Requirements documentation
standards.Traceability.Human factors.Requirements in the context of agile processes. Requirements
management: Handling requirements changes.
Course Objectives:
Upon completion of this course, students will have the ability to:
Discover or elicit requirements using a variety of techniques
Organize and prioritize requirements
Apply analysis techniques such as needs analysis, goal analysis, and use case analysis
Validate requirements according to criteria such as feasibility, clarity, freedom from ambiguity, etc.
Represent functional and non-functional requirements for different types of systems using formal and
informal techniques
Specify and measure quality attributes
Negotiate among different stakeholders in order to agree on a set of requirements
Detect and resolve feature interactions
Course Schedule, topics, activities, and readings
Week
Topic
1
Basics of software requirements engineering
58
Activities
Reading
Program of Study
Courses code
Courses Title
Degree Program
Module name
Module number
Course chair
SE 3081
Introduction to Artificial Intelligence
B.Sc. in Software Engineering
Information Systems Course
Instructor/Tutor
Lecture days,
hours,& room
Tutorial /lab days &
hour
Target group
Year /semester
Pre-requisites
Status of the course
Contact address:
Lectures
2
Tutorials &
seminars
0
Laboratory &
workshop
2
Home Study
5
Total
09
III / I
Data structures and Algorithms
Compulsory
Course Description:
Course Objectives:
At the completion of the course the students should able to:
Define the term artificial intelligence given different scholars
Briefly discuss the difference between Expert system and other systems
Define what an agent is in general, Rational agent, autonomous agent
Differentiate between omniscient agent and rational agent.
Describe types of agents, types of environment, types of problem based on environment type. and the type
of agent that solve problem by searching
Formulate problem and goal
Discuss various techniques of search strategies
Discuss about knowledge representation, general Idea about Logic, Kinds of logic, propositional
(Boolean) logic, types of sentences in Logic (Equivalence, validity, satisfiability), Entailment, Inference
rules, theorem proving , Logical equivalence, Forms of logical expression, generalized resolution for
Prepositional logic.
Give example of Prepositional logic Knowledge representation and infringing (The Wumpus world)
Identify limitations of Proposition Logic, power of predicate logic
Discuss first order logic function and predicate symbol, Syntax and semantics of FOPC, FOL sentence,
Quantifier in FOL, Property of Quantifier, Free and bounded variable, Well formed formula, Normal
forms, Conversion into CNF (with out removing quantifiers), Substitution, Inference Rules Involving
Quantifiers , Unification, Skolen functions, Generalized modus ponens, Generalized resolution,
Conversion into CNF (with removing quantifiers), and Backward and forward chaining
Course Schedule, topics, activities, and readings
Week
Topic
Concept of Artificial intelligence an early attempts in the
1
60
Activities
Reading
2
3
4
5
6
Courses code
Courses Title
Degree Program
Module name
Module number
Course chair
Instructor/Tutor
5
Lectures
2
Tutorials &
seminars
1
Laboratory &
workshop
2
Home Study
5
Total
10
III / II
Data Structures and Algorithms
Compulsory
Course Description:
Course Objectives:
To enable students to design efficient algorithms through a variety of well known techniques.To enable
students to analyze a given algorithm and compute its time and space complexities, hence its category, to
determine its suitability for a given application.
Course Schedule, topics, activities, and readings
Week
Topic
Activities
Reading
1
Introduction:
Analyzing algorithms-Designing algorithms-Asymptotic
notation-Standard notations and
common functions-The substitution method-The recursion
tree method-The master method
2
Sorting and Order statistics:
Heaps-maintaining the heap property-building a heap-The
heapsort algorithm-description of quick sort-performance of
quicksort-A randomized version of quicksort-Analysis of
quicksort- Lower bounds for sorting-Counting sort-Radix
sort-Bucket sort-Minimum and Maximum- Selection in
expected and worst case linear times
3
Dynamic Programming:
Assembly-line scheduling-Matrix chain multiplicationelements of dynamic programminglongest common
subsequence-Optimal binary search trees
Greedy algorithms
An activity selection problem-Elements of greedy strategy4
Huffman codes Graph algorithms: Representation of graphsBreadth first search-Depth first search-Topological sortstrongly connected components- Growing a minimum
spanning tree-Kruskal and Prims algorithms.
Single source shortest paths in directed acyclic graphs-The
5
Bellman-Ford Algorithm-Dijkstras Algorithm. All pairs
shortest paths and matrix multiplication- The FloydWarshall algorithm- Johnsons algorithm for sparse
matrices-Flow networks- The Ford-Fulkerson method62
Program of Study
Courses code
Courses Title
Degree Program
Module name
Module number
Course chair
Instructor/Tutor
Lecture days,
hours,& room
Tutorial /lab days &
hour
Target group
Year /semester
Pre-requisites
Status of the course
Lectures
0
Tutorials &
seminars
3
Laboratory &
workshop
0
Home Study
5
Total
8
IV / I
All Senior Standing Courses
Compulsory
Course Description:
This module is intended to provide a skill in reviewing recently published works and prepare review
report in a selected area of Software Engineering.
Course Objectives:
On successful completion of the module students will be able to critically review and discuss Software
Engineering articles
Course Schedule, topics, activities, and readings
Week
Topic
Activities
Reading
1
2
3
Students critically and scientifically evaluate published
4
works in current research issues and results in selected areas
5
of Software Engineering.
6
Teaching and learning methods
Assessment & Evaluation Methods
Summary of Course assignments, tests and exam
Laboratory
Test #1
Assignment #1
Seminar
Lab report
Total
Lecture
Test#2
Mid exam
64
Final exam
Total
Grading: as per-the harmonized academic policy
Course policy:
Texts and references:
Vary depending on the selected topics.
Program of Study
Courses code
Courses Title
Degree Program
Module name
Module number
Course chair
Instructor/Tutor
Lecture days,
hours,& room
Tutorial /lab days &
hour
Target group
Year /semester
Pre-requisites
Status of the course
Lectures
2
Tutorials &
seminars
0
Laboratory &
workshop
3
Home Study
5
Total
10
IV / I
Data Structures and Algorithms
Compulsory
Course Description:
The module deals with the principles and current technologies of multimedia systems. It incorporates
topics such as multimedia standards, tools and systems, current issues and trends of research in
Multimedia systems. It is designed to raise students understanding of multimedia data and multimedia
systems and initiate them for research in the domain
Course Objectives:
On successful completion of the module students will be able to:
Get acquainted with the principles and current technologies of multimedia systems;
Develop a comprehensive understanding of multimedia standards, tools and systems;
Develop students understanding on the current issues and trends of research in Multimedia systems,
65
Enable students gain hands-on experience in multimedia capturing, processing, retrieval and multimedia
system development;
Course Schedule, topics, activities, and readings
Week
Topic
Activities
Reading
Introduction
1
Overview
Multimedia Applications
Multimedia Research: - Motivation
Multimedia System Projects
Multimedia Authoring
Virtual Reality
Multimedia Data Representation
2
Images and Graphics
Color in Image and Video
Fundamentals of Video
Basics of Digital Audio
Programming Media
3
Programming media
Operating Systems
Languages
Tools
Multimedia Data Compression
4
Introduction
Lossless Compression Techniques
Lossy Compression Techniques
Image, Video, and Audio Compression Techniques
Standards of Multimedia data Description
5
MPEG-7
MPEG-21
Multimedia Communications
6
Characteristics of Multimedia Data
Multimedia over IP
Networked Multimedia Applications
Media-on-Demand (MOD)
Multimedia Data Retrieval and Management
7
Multimedia DBMS - Overview
Multimedia Data Indexing
Content-based media retrieval
Oracle InterMedia
Teaching and learning methods
Lecture, assignments, projects and exercises
Assessment & Evaluation Methods
Assignment 10%, Lab Exercise &Project 25%,Mid Exam 25%, Final Exam 40%
Summary of Course assignments, tests and exam
Laboratory
Test #1
Assignment #1
Seminar
66
Lab report
Total
Lecture
Test#2
Mid exam
Final exam
Total
Grading: as per-the harmonized academic policy
Course policy:
Texts and references:
ZeNian Li and M. S. Drew, Fundamentals of Multimedia, Prentice Hall, 2004.
Guojun Lu, Multimedia Database Management Systems, Artech House, 1999.
K.R. Rao, Zoran S. Bojkovic, Dragorad A. Milovanovic; Multimedia Communication Systems; Prentice
Hall, 2002.
Resources on the Web to be announced in class.
Program of Study
Courses code
Courses Title
Degree Program
Module name
Module number
Course chair
Instructor/Tutor
Lecture days,
hours,& room
Tutorial /lab days &
hour
Target group
Year /semester
Pre-requisites
Status of the course
Lectures
3
Tutorials &
seminars
0
Laboratory &
workshop
0
Home Study
7
IV /II
Software Requirements Analysis
Compulsory
Course Description:
The module discusses about the role and functions of software project management.
67
Total
10
Course Objectives:
On successful completion of the module students will be able to:
Describe software project management tasks
Estimate software project costs
Prepare planning documents: SPMP, RMP, SCMP, and SQAP
Manage and assess real projects
Develop team work spirit
Course Schedule, topics, activities, and readings
Week
Topic
Overview
1
Project management Fundamentals
Software project management tasks
Software Project Planning
2
Software Project Management Plan
WBS and Schedule
3
Work Breakdown Structure
Scheduling
Software Project Estimation
4
Estimation Approaches
Risk and Change Management
Software Risks
Risk Management
Change Control management
Software Quality Assurance
5
QA Activities
Team Management
6
Activities
68
Reading
Program of Study
Courses code
Courses Title
Degree Program
Module name
Module number
Course chair
Instructor/Tutor
Lecture days,
hours,& room
Tutorial /lab days &
hour
Target group
Year /semester
Pre-requisites
Status of the course
Lectures
2
Tutorials &
seminars
0
Laboratory &
workshop
3
Home Study
7
Total
10
IV /I
Compulsory
Course Description:
Course Objectives:
Course Schedule, topics, activities, and readings
Week
Topic
1
2
3
Activities
4
5
6
Teaching and learning methods
69
Reading
Courses code
Courses Title
Degree Program
Module name
Module number
Contact address:
Course chair
Instructor/Tutor Contact address and Consultation Hours:
ECTS credit
(CP)
Contact hours
per week
Lecture days,
hours,& room
Tutorial /lab
days & hour
Target group
Year /semester
Pre-requisites
Status of the
Tutorials &
seminars
Lectures
2
Programming Fundamentals
70
Home
Study
5
Total
course
Course
Objectives:
Course
Description:
Fundamental computing
algorithms
9-10
Recursion
Reading
11-13
Basic algorithmic
analysis
14-16
Algorithmic strategies
recursion
Asymptotic analysis of upper and average
complexity bounds; identifying differences
among best, average, and worst case behaviors;
big "O," little "o," omega, and theta notation;
standard complexity classes; empirical
measurements of performance; time and space
tradeoffs in algorithms; using recurrence
relations to analyze recursive algorithms
Brute-force algorithms; greedy algorithms;
divide-and-conquer; backtracking; branch-andbound; heuristics; pattern matching and
string/text algorithms; numerical approximation
algorithms
Grading:
Course policy:
Texts and
references:
Text Books:
Data Structures A Pseudocode Approach With C ++ By Richard F. Gilber. Behrouz A.
Forouzan (Thomson Press)
Data Structures & Algorithm Analysis In C ++ By Mark Allen Weiss.
Reference Books:
SartajSahni, Data Structures, Algorithms, And Applications In C ++ , Tmh
Gregory L. Heileman, Data Structures, Algortihms, And Object Oriented Programming,
Tmh.
Michael Main Walter Savitch, Data Structures And Other Objects Using C ++, Pearson.
72
Program of
Study
Courses code
Courses Title
Degree Program
Module name
Module number
Contact address:
Course chair
Instructor/Tutor Contact address and Consultation Hours:
ECTS credit
(CP)
Contact hours
per week
Lecture days,
hours,& room
Tutorial /lab
days & hour
Target group
Year /semester
Pre-requisites
Status of the
course
Course
Objectives:
Course
Description:
Lectures
Tutorials &
seminars
Home
Study
5
Total
Operating system
73
Introduction to
Computer Networks
5-6
Data Communication
and Transmission
Medias
7-9
TCP/IP Model
LAN hardware devices, Repeaters,
Hubs, Bridges and Switches, LAN
Technology Options, Ethernet
LAN, Fast Ethernet LAN,
Gigabits Ethernet LAN, Wireless
LAN (WLAN), Overview of
WAN, Differences between LAN
and WAN, WAN Hardware
devices, Router and Gateways,
Routing Technologies, WAN
Technology Options, Dialup,
Leased Line, ISDN, ADSL, Cable
Modem and VSAT
12-13
Internet Protocol (IP)
IP as a Routed Protocol, Packet
and IP Addressing
Propagation, IP Addressing
Scheme, Class A, Class B and
Class C, Subnet Mask, Fixed
Length and Variable Length
Subnetting, Address Resolution
Protocol (ARP), Reverse Address
Resolution Protocol (RARP),
Internet Control Message Protocol
(ICMP), Internet Group Message
Protocol (IGMP)
14-16
Computer Network
The importance of Network
Security Basics
Security, Techniques of Network
Security, Encryption and
Decryption Techniques, Access
Control and Firewalls, Attacks and
Countermeasures
Teaching and learning methods: Lecturing, laboratory session and project work
Assessment &
Summary of Course assignments, tests and exam
Evaluation
Laboratory
Test #1 :
Methods
Assignment #1 :
Seminar :
Lab report :
Total:
Lecture
Test#2 :
Mid exam :
Final exam :
Total :
10-11
Grading:
Course policy:
75
Texts and
references:
Reference:
Data Communications and Networking (4th Edition), Behrouz A. Forouzan, et al,
(McGraw Hill: Higher Education), 2007
Computer Networks (3rd edition), Tanenbaum Andrew S., International edition, 1996.
Data Communications, Computer Networks and Open Systems (4th edition), Halsall
Fred, 2000, Addison Wesley, Low Price Edition.
Business Data Communications, Fitzgerald Jerry.
Computer Networks A System Approach, Larry L. Peterson & Bruce S. Davie, 2nd
Edition
Computer Networking ED Tittel, 2002, T.M.H.
Program of Study
Courses code
Courses Title
Degree Program
Module name
Module number
Course chair
Instructor/Tutor
ECTS credit (CP)
Contact hours per
week
Lecture days,
hours,& room
Tutorial /lab days
& hour
Target group
Year /semester
Pre-requisites
Status of the
course
Course Objectives:
Course Description:
Contact address:
Contact address and Consultation Hours:
Lectures
Tutorials &
seminars
Laboratory &
workshop
Home
Study
5
Total
Advanced Programming
The course aims at developing necessary and critical skills for students to
effectively use and produce multimedia elements and products. The class begins
with the overview of the multimedia concepts and elements. The course will cover
the recent technology of the multimedia software, tools and hardware. For this
purpose, students will be exposed by using
thenecessary hardware, tools and software to be used in developingmultimedia
products and projects.
Introduction to Multimedia system
2. Issues in Multimedia Applications Design.
3. Multimedia Data Processing and Representations.
4. Multimedia Compression Standards (Text, Image, Video and Audio).
5. Multimedia Content Representation.
76
6.
7.
Grading:
Course policy:
Texts and
references:
77
Program of Study
Courses code
Courses Title
Degree Program
Module name
Module number
Course chair
Instructor/Tutor
ECTS credit (CP)
Contact hours per
week
Lecture days,
hours,& room
Tutorial /lab days
& hour
Target group
Year /semester
Pre-requisites
Status of the
course
Course Objectives:
Course
Description:
Contact address:
Contact address and Consultation Hours:
Tutorials &
seminars
Lectures
3
Home
Study
5
Total
78
9-10
11-12
13
Combined simulation
14
model validity
15
Simulation results
16
Teaching and learning methods : : Lecturing, laboratory session and project work
Assessment Summary of Course assignments, tests and exam
&
Laboratory
Test #1 :
Evaluation
Assignment #1 :
Methods
Seminar :
Lab report :
Total:
Lecture
Test#2 :
Mid exam :
Final exam :
Total :
Grading:
79
Reading
Course
policy:
Texts and
references:
Program of Study
Courses code
Courses Title
Degree Program
Module name
Module number
Course chair
Instructor/Tutor
Lecture days,
hours,& room
Tutorial /lab days
& hour
Target group
Year /semester
Pre-requisites
Status of the
course
Course Objectives:
Contact address:
Contact address and Consultation Hours:
Lectures
Tutorials &
seminars
Laboratory &
workshop
Home
Study
5
Total
Upon completion of this course, students will have the ability to:
Develop a comprehensive project plan for a significant development effort
Apply management techniques to projects that follow agile methodologies, as
well as methodologies involve larger-scale iterations or releases
Effectively estimate costs for a project using several different techniques.
Apply function point measurement techniques
Measure project progress, productivity and other aspects of the software process
Apply earned-value analysis techniques
Perform risk management, dynamically adjusting project plans
Use configuration management tools effectively, and apply change management
processes properly
Draft and evaluate basic software licenses, contracts, and intellectual property
agreements, while recognizing the necessity of involving legal expertise
Use standards in project management, including ISO 10006 (project management
quality) and ISO 12207 (software development process) along with the SEIs
80
Course Description:
CMM model
Project planning, cost estimation and scheduling. Project management tools.
Factors influencing productivity and success. Productivity metrics. Analysis of
options and risks. Planning for change. Management of expectations. Release and
configuration management. Software process standards and process
implementation. Software contracts and intellectual property. Approaches to
maintenance and long-term software development. Case studies of real industrial
projects.
Suggested sequence of teaching modules:
1. Basic concepts of project management
2. Managing requirements
3. Software lifecycles
4. Software estimation
5. The project plan
6. Monitoring the project
7. Risk analysis
8. Managing quality
9. People problems
Sample labs and assignments:
Use a commercial project management tool to assist with all aspects of software
project management. This includes creating Gantt, PERT, and Earned Value
charts
Make cost estimates for a small system using a variety of techniques
Developing a project plan for a significant system
Writing a configuration management plan
Using change control and configuration management tools
Evaluating a software contract or license
81
Reading
Assessment &
Evaluation
Methods
Grading:
Course policy:
Texts and
references:
Program of Study
Courses code
Courses Title
Degree Program
Module name
Module number
Course chair
Instructor/Tutor
Lecture days,
hours,& room
Tutorial /lab days
& hour
Target group
Year /semester
Pre-requisites
Contact address:
Contact address and Consultation Hours:
Lectures
Tutorials &
seminars
Laboratory &
workshop
Advanced Programming
82
Home
Study
5
Total
Status of the
course
Course Objectives:
Course Description:
Upon completion of this course, students will have the ability to:
Develop clear, concise, and sufficiently formal requirements for extensions to an
existing system, based on the true needs of users and other stakeholders
Apply design principles and patterns while designing and implementing simple
distributed systems-based on reusable technology
Create UML class diagrams which model aspects of the domain and the software
architecture
Create UML sequence diagrams and state machines that correctly model system
behavior
Implement a simple graphical user interfaces for a system
Apply simple measurement techniques to software
Demonstrate an appreciation for the breadth of software engineering
83
Grading:
Reading
Course policy:
Texts and
references:
Text Book:
Software Engineering By R.S. Pressman (Mc. Graw Hill Sixth Edition)
Reference Books:
Software Engineering By Ghezzi (Phi)
Software Engineering Fundamentals By Behforooz And Hudsonoxford
University Press
Software Engineering By Fairley (Mc.Graw Hill)
Software Engineering Theory & Practice By Pfleeger (Pearson)
Software Engineering By Kr Agarwal&Yogesh Singh (New Age)
Software Engineering.( Schaums Series Tmh)
Object Oriented Software Engineering By SrSchach (Tmh
84
Program of
Study
Courses
code
Courses
Title
Degree
Program
Module
name
Module
number
Course
chair
Instructor/
Tutor
ECTS
credit (CP)
Contact
hours per
week
Contact address:
Contact address and Consultation Hours:
Lectures
Tutorials &
seminars
Laboratory &
workshop
Home
Study
5
Total
3
1
2
Lecture days, hours,& room
Tutorial /lab days & hour
Target
group
Year
/semester
Prerequisites
Status of
the course
Course
At the end of the design course the students should able:
Objectives:
To differentiate traditional file organization with the modern database system
To know the concept of a database
To distinguish different types of data models
To manipulate data bases with database definition and manipulation language.
Analyzing a given situation/problem and design a decent database
Course
Introduces the concepts and techniques of database systems.
Description: Syllabus:
Information models and systems: History and motivation for information systems;
information storage and retrieval; information management applications;
information
capture and representation; analysis and indexing; search, retrieval, linking,
navigation; information privacy, integrity, security, and preservation; scalability,
85
86
Reading
Assessment
&
Evaluation
Methods
Grading:
Course policy:
CordonC.Everest(2001) Database Management.
Texts and
Elmasri and Navathe, Fundamentals of Database Systems, 3rd ed.,Benjamin
references:
Cummings, 2000
Siberschatz,H.F .Korth&S.Sudarshan.(1999) Database system Concepts 3rd Ed
87
88
Program of
Study
Courses code
Courses Title
Degree
Program
Module name
Module
number
Course chair
Instructor/Tut
or
ECTS credit
(CP)
Contact hours
per week
Lecture days,
hours,& room
Tutorial /lab
days & hour
Target group
Year /semester
Pre-requisites
Status of the
course
Course
Objectives:
Contact address:
Contact address and Consultation Hours:
Lectures
Home
Study
5
Total
Communication
layered protocols
client-server TCP
89
5-6
Processes
7-8
Naming
9-10
Synchronization
11-13
Consistency and
Replication
14-16
Fault Tolerance
middleware protocols
remote procedure call and remote object
invocation
message oriented and stream oriented
communication
Quality of Service
threads and their implementation
clients and servers and design issues
object servers and adaptors
code migration
software agents and agent technology
agent communication languages
naming entities
name spaces and name resolution; DNS
and X.500
different approaches in locating mobile
entities
identifying and removing (unreferenced)
unreachable entities
clock synchronization, physical clocks
and clock synchronization algorithms
logical clocks and time stamps
global state
distributed transactions and concurrency
control
election algorithms
mutual exclusion and various algorithms
to achieve mutual exclusion
reasons for replication and object
replication
replication as scaling technique
data-centric and client-centric
consistency models
distribution and consistency protocols
implementation example: Orca
basic concepts
failure modes
failure masking by redundancy
process resilience
reliable client-server and group
communication
distributed commit
recovery
90
Grading:
Course policy:
Text Book
Texts
S. Tanenbaum and Maarten van Steen, Distributed Systems, Principles and Paradigms, Prentice
and
reference Hall, 2002
Reference:
s:
S. Mullender, Distributed Systems, 2nd edition, Addison-Wesley, 1993
K. Birman, Building Secure and Reliable Network Applications, Manning Publications Co.,
1996
Course 1:
Course description/course
contents
Prerequisite
Semester
Chapter-1
: Introduction to the Theory of
Computation
1.1 Sets
1.2 Functions and Relations
1.3 Graphs and Trees
1.4 Languages
1.5 Grammars
1.6 Automata
Chapter-2
: Finite Automata
2.1 Deterministic Finite Automata
2.2 Nondeterministic Finite Automata
2.3 Equivalence of Deterministic and Non-deterministic Finite
Automata
2.4 Reducing number of states in Finite Automata
Chapter-3
: Regular Languages and Regular
Grammars
3.1 Regular Expressions
3.2 Connection between Regular Expressions and Regular
Languages
3.3 Regular Grammars
Chapter-4
: Context Free Languages
4.1 Context Free Grammars
4.2 Parsing and Ambiguity
4.3 Context Free Grammars and Programming Languages
Chapter-5
: Simplification of Context Free
Grammars and Normal Forms
5.1 Methods for Transforming Grammars
5.2 Normal Forms
5.2.1 Chomsky Normal Form
5.2.2 Greibach Normal Form
Chapter-6
: Push Down Automata
6.1 Nondeterministic Push down Automata
6.2 Push down Automata and Context Free Languages
6.3 Deterministic Push down Automata and Deterministic
Context Free Languages
Chapter-7
: Turing Machines
7.1 The Standard Turing Machine
7.2 Combining Turing Machines for complicated tasks
3
92
Course type
Teaching learning methods
Compulsory
Class room lectures, group work and presentation student
centered learning approaches.
Assessment/Evaluation and
Mid Exam 30%
grading system
Quizzes 10%
Final Exam 60%
Attendance requirements
A student is expected to attend a total of 75% or above
attendance to be eligible for course exam and to be graded.
Text books/references
Text Books
1.
Peter Linz, An Introduction to Formal Languages and
Automata, D.C.Heath and Company.
References:
K.L.P. Mishra, N.Chandrasekaran, Theory of Computer
Science (Automata, Languages and Computation), Prentice
Hall of India, 2003 Second Edition
Course 2:
Prerequisite
Semester
Course type
Teaching learning methods
Assessment/Evaluation and
grading system
Attendance requirements
Text books/references
Course code
Course title
Degree Program
Module Number and
name
Module coordinator
Instructor
ECTS
Contact hours per week
Course objective and
competencies to be
acquired
Course
description/course
contents
Part I Theory
Chapter 1- Introduction to OS
What is an operating system?
Types of operating systems
History of operating systems
Computer Hardware overview
Operating system concepts
Message passing
2.3.1. Inter Process communication problems
2.4. Scheduling
Chapter 3. Deadlocks
3.1. Introduction to dead lock
3.2. Deadlock Detection & Recovery
3.3. Deadlock Avoidance- the ostrich algorithm
3.4. Deadlock prevention
3.5. Two phase locking, non-resource Deadlocks & starvation.
Chapter 4. Memory Management
4.1. Basics
4.2. Swapping
4.3. Virtual memory paging & page tables.
4.4. Page Replacement algorithms
4.5. Segmentation
Chapter 5. Input /Output device management
5.1. Principles of I/0 Hardware
5.2. Principles of I/0 soft ware
5.3. Disks & clocks
Chapter 6. File systems
Chapter 7. Operating system design
Part II Practice
Chapter 8- Getting started with Linux
Disk partitioning
Specifying options
96
Wildcards
(chmod, chown)
Prerequisite
None
Semester
Course type
Compulsory
Teaching learning
methods
Assessment/Evaluation
and grading system
97
Attendance requirements
Text books/references
Course 4:
3
Compulsory
Class room lectures, laboratory practical work, group work and
presentation, student centered learning approaches.
Project 30%
Assignment 20%
Final Exam 50%
A student is expected to attend a total of 75% or above attendance
to be eligible for course exam and to be graded.
TEXT:
Leland L. Beck, "System Software - An
Introduction to Systems Programming",
3rd Pearson Education Asia.
REFERENCES:
D. M. Dhamdhere, "Systems Programming and
Operating Systems", Second Revised Edition, Tata
McGraw-Hill.
1.
99
2.
Course 5:
Prerequisite
Semester
Course type
Teaching learning methods
Assessment/Evaluation and
grading system
Attendance requirements
Text books/References
Course code
Course title
Degree Program
Module Number and
name
101
Module coordinator
Instructor
ECTS
Contact hours per
week
Course objective and
competencies to be
acquired
Course
description/course
contents
TBA
TBA
7
TH
3
LAB
TUT
HS
3
2
2
Enables the students to have had practical experience of using
the Internet
Let the students know how to design simple web pages
using HTML
Enables the students to develop Web-site using HTML,
Java Script and
FrontPage
102
Prerequisite
Semester
Course type
Compulsory
Teaching learning
Class room lectures, laboratory practical work, group work and
methods
presentation, student centered learning approaches.
Assessment/Evaluation
Practical Assignment 20%
and grading system
Project 40%
Final Exam 40%
Attendance
requirements
Text books/references
103
Signature_________________________________.
104