Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Download as pdf or txt
Download as pdf or txt
You are on page 1of 105

NATIONAL HARMONIZED

4 YEar MOdULar sOFtWarE


ENGiNEEriNG
cUrricULUM

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

Admission Requirements ..................................................................................... 5

5.2

Duration of Study ................................................................................................. 5

5.3

Graduation Requirements..................................................................................... 5

5.4

Medium of Instruction.......................................................................................... 6

6. Course Coding ........................................................................................................................... 6


7. Assessment and Evaluation ....................................................................................................... 6
7.1 Mode of Assessment .......................................................................................................... 7
7.2 Grading System ................................................................................................................. 7
8. Degree Nomenclature ................................................................................................................ 7
9. Teaching-Learning Methods and Materials............................................................................... 8
10. Quality Assurance ..................................................................................................................... 8
11. List of Modules ......................................................................................................................... 9
12. Course/Module Breakdown .................................................................................................. 21
13. Module hand book ................................................................................................................... 24
14. Course guide book ................................................................................................................... 24

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.

2. Rationale for the program


Program learning outcome specifies the expectation of the program at the end of educational process
in the department of the Software Engineering. This clearly state what our students able to perform at the
end of successful completion of the course work. This mainly focuses on the achievable output unlike the
intention described as part of the program aim.

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 reconcile conflicting project activities, finding acceptable compromises within


limitations of cost, time, knowledge, existing systems and organizations

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.

Assist the ICT related tasks in an Organization


Make rational and justified decisions regarding the selection of methods, tools and
programming techniques for the development of a computer application.
Design software architecture for software development.
Develop quality software in various domain
Handle system programming tasks.
Use CASE tools for software productivity.
Develop web sites for network based applications.
Design and develop database applications.
Maintain and re-engineer the industry software projects.
Operate and design hardware systems.
Apply the acquired skill professionally to problem solving in a real world
environment.
Manage the process of software quality management and Assurance.

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 design, develop and maintain database systems.

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.

5.2 Duration of Study


Under normal circumstances, four years of study are required to complete the program.

5.3 Mode of delivery


-

Mode of delivery should be parallel to make fruitful student learning situation.

5.4 Graduation Requirements


The major graduation requirements of the program include:

Fulfilling the graduation requirements set by Xx Science and Technology University.

Successful completion of a total of 246 credit points as per this curriculum;

5.5 Medium of Instruction


The medium of instruction for the program is ENGLISH
8. Course Coding
The course code will have four-digit number like SEabcd. The first digit, a, indicates the year of the
course offering (1 for 1st year, '2' for 2nd year, 3 for 3rd year and 4 for 4th year courses);the middle
numbers, bc, indicate the module number in the program; thelast number, d, indicates order of the
course within the module.
9. Assessment and Evaluation
The different abilities that graduates of this program must acquire are assessed as followed.

Cognitive Abilities: Cognitive abilities are assessed by a combination of traditional written


examinations and continuous assessment, including marked essays, class tests and computer
programming problems.

Practical Abilities: Practical Abilities are assessed mostly by continuous assessment. Some of
practical abilities are assessed as part of group project module.

Transferable skills: some skills, like the use of software tools and ability to communicate orally
and in written form are directly assessed, in assignments or projects, other skills are not directly
assessed but their effective use will enhance the students overall performance.

Evaluation will be done based on the midterm exam, assignments, laboratory sessions
demonstrations, Project work, and final exam and etc

7.1 Mode of Assessment


Mode of assessment is tobe treated as followed
For any course having lecture, laboratory/practice and tutorial, continuous assessment shall be used for
each of them.
i. A student shall not score less than 50% in each lecture, laboratory/practice and tutorial assessments. If a
student scores less than 50% in the assessments indicated in Art. (ii above), the instructor shall give
additional assignment. However, if a student fails to score the pass mark (50%) the instructor shall
convert the grade into F.
ii. For courses having lecture, laboratory and practicum, each will be evaluated out of 100%. The relative
weight for each of these methods shall be proportional to their credit point. Such course shall be
assessed by at least five assessments.
iii. For courses having laboratory and practical activities, each will be evaluated out of 100%. The relative
weight for each of these methods shall be proportional to their credit point. Such course shall be
assessed by at least five assessments.
iv. For courses having lecture, laboratory, practical and tutorial each will be evaluated out of 100%. The
relative weight for each of these methods shall be proportional to their credit point. Such course shall
be assessed by at least nine assessments.
v. For a course to be delivered by lecture method only; 50% shall be assessed by continuous assessment
constituting four assessments; while 40% shall be allotted for final exam.

7.2 Grading System


Grading is done as per the University Grading System. However; during Grading be sure that the following points
are considered.
i.

For any course having lecture, laboratory/practice and tutorial, raw mark
independently from 100 %.

evaluation should be treated

ii.

The final number grade for a course is obtained based on the weighted average of lecture,
laboratory/practice and tutorial.

10. Degree Nomenclature


The degree awarded to a student who has completed all the required courses of the program reads,

Bachelor of Science Degree in Software Engineering


yYNSClR !G bFT&Rx!NJnNG

11. Teaching-Learning Methods and Materials


The basic teaching method is lecture supported by tutorial, design projects, practical laboratory exercises
and, in some cases, by simulation. E-learning and audio-visual aids are also used to support lectures.
Students are assigned to work on projects to enable them enhance innovative and independent working
ability. The industry internship is also an integral part of the teaching/learning process. Students are
provided with handouts and teaching materials.
12. Quality Assurance
Quality assurance can be used as an instrument to improve the system continuously, install accountability
and enable compatibility with other higher education systems. The quality of the program is assessed in
terms of the instruction performance and impact of program on the quality of graduates looking for a job
or further studies. The following factors help to ensure the quality of the education:

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.

13. List of Modules


Module 01: Software Engineering Basics
Course No
SE 1012

Title

Status

Introduction to Software Engineering Compulsory

ECTS

Cr.

Lec

Lab

Tut

H/S

and Computing
EnLa202

Basic Writing Skills

Compulsory

EnLa201

Communicative English

Compulsory

CvEt1201

Civics and Ethics

Compulsory

Math 161

Calculus

Compulsory

EEng 1202

Digital Logic Design

Compulsory

34

23

Total

Module 02: Basic programming


Course No

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

Computer Organization and Compulsory

22

13

Architecture
Total

Module 03: Advanced Programming


Course No

Title

Status

ECTS

Cr

Lec

Lab

Tut

H/S

SE 2031

Object Oriented Programming

Compulsory

Math 292

Discrete Mathematics II

Compulsory

SE 2032

Data structures and Algorithms

Compulsory

SE 2033

Advanced programming in java

Compulsory

`4

SE 2034

Mobile Programming

Compulsory

29

17

Total

Module 04: System Software Development


Course No

Title

Status

ECTS

Cr

Lec

SENG2041

Compulsory

SENG3042

Formal Language and Automata


Theory
Principles of Compiler Design

Compulsory

SENG2043

Operating Systems

Compulsory

SENG2044

System Programming

Compulsory

26

15

Total

Lab

Tut

H/S

Module 05: Computer Networking


Course No

Title

Status

SE 3051

Data Communication and Computer Compulsory

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

Database Management Systems

Compulsory

SE 3062

Distributed Systems

Compulsory

SE 3064

Database Administration

Compulsory

17

13

Total
Module 07 : Web Technology
Course No

Title

SE 3071

Web Design and Programming

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

Object Oriented System analysis and Compulsory


10

ECTS

Cr.

Lec

Lab

Tut

H/S

modeling
SE 3082

Software Requirements Engineering

Compulsory

Total

10

Module 09: Software Design


Course No

Title

Status

ECTS

Cr.

Lec

Lab

Tut

H/S

SE 3091

Software Design and Architecture

Compulsory

SE 3092

Software Engineering approaches to Compulsory

Compulsory

and Compulsory

20

12

Human Computer Interaction


SE 3095

Software Component Design

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

Probability and Statistics

Compulsory

SE 3103

Simulation and Modeling

Compulsory

20

12

Total
Module 11: Software Management
SE 4112

Software Project Management

Status

GE 302

Entrepreneurship

Compulsory

SE 4113

Software Quality Assurance and Testing

Compulsory

SE 4111

Process management

Compulsory

20

12

Cr.

Lec

Total

Module 12: Research and Project Works


Course No

Title

Status

11

ECT

La

Tut

H/S

S
SE 4122

Seminar in Software Engineering

SE 4123

Software

Compulsory

Engineering

Capstone Compulsory

Engineering

Capstone Compulsory

Research methodology in Software Compulsory

19

11

project I
SE 4124

Software
project II

SE 4121

Engineering
Total

14. Module profile

Module Name
Code
Category
Weight (ECTS)
Module Objective

Module Competence

Module Description

Software Engineering Basics


01
Compulsory
39
Enables students to understand basic computer skills.
Different Applications in software development.
To introduce common Skills required for software
engineering.
Computer Application Development
Course No
SE 1012

Title
Introduction to Software Engineering and
Computing

EnLa202

Basic Writing Skills

EnLa201

Communicative English

CvEt1201

Civics and Ethics

Math 161

Calculus

EEng 1202

Digital Logic Design

Econ 101

Engineering

Economics/

Principal

of

Accounting
Mode of delivery
Teaching Methods

Block

Lecture based laboratory supported offering,


student centered approach
Students should work projects in solving real
world problems
group discussion and presentation on
assignments
12

Assessment Methods

Assignments/mid exam/final exam/projects/laboratory


exercises

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

Lecture based laboratory supported offering,


student centered approach
Students should work projects in solving real
world problems
group discussion and presentation on
assignments
Assignments/mid exam/final exam/projects/laboratory
exercises
Advanced Programming
03
Compulsory
29
To design and implement different software and desktop
applications,

Module Competence

Module Description

Develop client server programs


Connecting application programs to a
database
Creating a simple server page
Senior Programmer
Course No
SE 2031

Title
Object Oriented Programming

Math 292

Discrete Mathematics II

SE 2032

Data structures and Algorithms

13

Mode of delivery
Teaching Methods

Assessment Methods

SE 2033

Advanced programming in java

SE 2034

Mobile Programming

Block

Lecture based laboratory supported offering,


student centered approach
Students should work projects in solving real
world problems
group discussion and presentation on
assignments
Assignments/mid exam/final
exam/projects/laboratory exercises

Module Name
Code
Category
Weight (ECTS)

System Software Development


04
Compulsory
26

Module Objective

Able to operate on different operating system.


Develop software for graphical user interface
programming environment and design and develop
system software application.

Module Competence

System Software Development

Module Description

Course No

SENG3042
SENG2043

Formal Language and Automata


Theory
Principles of Compiler Design
Operating Systems

SENG2044

System Programming

SENG2041

Mode of delivery
Teaching Methods

Assessment Methods

Title

Block

Lecture based laboratory supported offering,


student centered approach
Students should work projects in solving real
world problems
group discussion and presentation on
assignments
Assignments/mid exam/final
exam/projects/laboratory exercises

Module Name
Code
Category
Weight (ECTS)

Computer Networking
05
Compulsory
12

Module Objective

To design and configure network installations for


14

different organizations like switch, routers, and hubs.


To maintain security of networking environment.
Module Competence

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

Lecture based laboratory supported offering,


student centered approach
Students should work projects in solving real
world problems
group discussion and presentation on
assignments
Assignments/mid exam/final
exam/projects/laboratory exercises

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

Lecture based laboratory supported offering,


student centered approach
Students should work projects in solving real
world problems
group discussion and presentation on
assignments
Assignments/mid exam/final
exam/projects/laboratory exercises
15

Module Name

Web Technology

Code
Category
Weight (ECTS)

07
Compulsory
12

Module Objective

Able to design and develop network based website


application development for various domains.
Design and develop E-commerce application by
applying appropriate security services.

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

Lecture based laboratory supported offering,


student centered approach
Students should work projects in solving real
world problems
group discussion and presentation on
assignments
Assignments/mid exam/final
exam/projects/laboratory exercises

Module Name

Software Requirement Modeling and Analysis

Code
Category
Weight (ECTS)

08
Compulsory
10

Module Objective

To analyze software by following object oriented


software development approach, like blueprint to our
system.

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

Lecture based laboratory supported offering,


student centered approach
Students should work projects in solving real
world problems
group discussion and presentation on
assignments

16

Assessment Methods

Assignments/mid exam/final
exam/projects/laboratory exercises

Module Name

Software Design

Code
Category
Weight (ECTS)

09
Compulsory
20

Module Objective

To design a big software by using the concept of


object oriented and system analysis design

Module Competence

System Designers

Module Description

Course No
SE 3091

Title
Software Design and Architecture

SE 3092

Software

Engineering

approaches

to

Human Computer Interaction

Mode of delivery
Teaching Methods

Assessment Methods

SE 3095

Software Component Design

SE 3096

Software engineering tools and practices

Block

Lecture based laboratory supported offering,


student centered approach
Students should work projects in solving real
world problems
group discussion and presentation on
assignments
Assignments/mid exam/final
exam/projects/laboratory exercises

Module Name

System Modeling and simulation

Code
Category
Weight (ECTS)

10
Compulsory
20

Module Objective

Able to apply hardware concepts to design new


embedded system development and programming
17

and computer graphics programming.


Module Competence

Graphics Developer

Module Description

Course No
SE 3101

Graphics

SE 3102

Multimedia System

Stat 173

Probability and Statistics

SE 3103

Simulation and Modeling

Mode of delivery
Teaching Methods

Assessment Methods

Title

Block

Lecture based laboratory supported offering,


student centered approach
Students should work projects in solving real
world problems
group discussion and presentation on
assignments
Assignments/mid exam/final
exam/projects/laboratory exercises

Module Name

Software Management

Code
Category
Weight (ECTS)

11
Compulsory
20

Module Objective

Able to apply the software process and project


management to industry level quality software
18

development application and to develop a real world


project in a professional way.
Module Competence

Software Project Manager

Module Description

Course No
SE 4112

Title
Software Project Management

GE 302

Entrepreneurship

SE 4113

Software Quality Assurance and Testing

SE 4111

Process management

Mode of delivery
Teaching Methods

Assessment Methods

Block

Lecture based laboratory supported offering,


student centered approach
Students should work projects in solving real
world problems
group discussion and presentation on
assignments
Assignments/mid exam/final
exam/projects/laboratory exercises

Module Name

Research and Project Works

Code
Category
Weight (ECTS)

12
Compulsory
19

19

Module Objective

Able to develop quality software, Converting a given


design into implementation, testing and deploying in
Final Year project I.

Module Competence

Software Engineers

Module Description

Course No
SE 4122

Title
Seminar in Software Engineering

SE 4123

Software Engineering Capstone project I

SE 4124

Software Engineering Capstone project II

SE 4121

Research

methodology

in

Software

Engineering
Mode of delivery
Teaching Methods

Assessment Methods

Block

Lecture based laboratory supported offering,


student centered approach
Students should work projects in solving real
world problems
group discussion and presentation on
assignments
Assignments/mid exam/final
exam/projects/laboratory exercises

20

15. Course/Module Breakdown

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

Digital Logic Design

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

Civics and Ethics


Basic writing skills
Fundamentals of Programming II
Discrete Mathematics I
Computer
Organization

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

Engineering Economics/ Accounting


Total

30

18

Year II Semester I
Module
No
03

04

Course No

Title

SE 2031

Object Oriented Programming

No of
Weeks
16

SE 2032

Data structures and Algorithms

16

Parallel

Math 292

Discrete Mathematics II

16

Parallel

SENG 2043

Operating Systems

16

Parallel

SENG 2041

Formal Language and Automata


Theory

Total

CP

Cr.

31

21

Delivery
Parallel

Parallel
18

Year II Semester II
Module
No

Course
No
SE 2033

Advanced programming in java

No of
Week
s
16

SE 2034

Mobile Programming

16

Parallel

04

SENG3
042

Principles of Compiler Design

16

Parallel

06

SE 2061

Database Management Systems

16

Parallel

03

Title

Total

CP

Cr.

26

Delivery

Parallel

15

Year III Semester I


Module

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

Data Communication and Computer 7

16

Parallel

16

Parallel

Networks
07

SE 3071

Web Design and Programming

SE 3101

Graphics/ Database administration

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

Human Computer Interaction Software Requirements Engineering -

5
5

3
3

Parallel
Parallel

Stat 173

Probability and Statistics

16

Parallel

SE 4095

Process Management

SE 3091

Software Design and Architecture -

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

Software Engineering Tools and 5


Practices
Software Engineering Capstone project 7

Cr.
3

No of
Weeks
2

Delivery
Parallel

16

Parallel

16

Parallel
Parallel

I
SE 4121
SE 4102

Research Methodology in SEu


Seminar in Software Engineering

3
3

2
1

SE 3095

Software Component Design

SE 3084

Simulation and Modeling

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

Software Project Management

SE 4113

Software Quality Assurance and Testing

GE 302

Entrepreneurship

SE 3083

Multimedia System

SE 4123

Software Engineering Capstone Project II

SE 4122

Seminar in Software Engineering

Total

27

23

16

Parallel
Parallel

16

Parallel
Parallel

16

Parallel
Parallel

17

16. Module hand book


Xx Science & Technology University
School of Engineering
BSc. in Software Engineering
Program of Study
Module number
Module name
Number of ECTS credits for the module
Module description

Objectives/ Competences to be developed of


the Module

Courses in the module


Course number

Course Name

Total

17. Course guide book

24

CrHr

ECTS

Program of Study

Courses code
Courses Title
Degree Program
Module name
Module number
Course chair

Xx Science & Technology University


School of Engineering
BSc. in Software Engineering
SE 1012
Introduction to Software Engineering
B.Sc. in Software Engineering
Software Engineering Basics
01
Contact address:

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

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

Design concepts: Abstraction, information hiding, cohesion,


coupling
Design using formal methods and UML
Implementation coding standards, stepwise refinement
Testing methods, metrics, verification and validation
Reusable technologies as a basis for software engineering:
Frameworks and APIs.
Software architecture: Distributed architectures, pipe-andfilter, model-view-controller, etc.
Maintenance and Evolution
Introduction to project management: roles, activities and
deliverables in each life cycle phases
Sample labs and assignments:
Evaluating the performance of various simple software
designs
Testing a system to verify conformance to test cases
Numerous exercises building models in UML, particularly
class diagrams and state machines

Teaching and learning methods


Lecture, assignments, projects and exercises
Assessment & Evaluation Methods
Assignment 15%, Exercise 10%, Mid Exam 30%, Final Exam 45%
Summary of Course assignments, tests and exam
Laboratory
Test #1
Assignment #1
Seminar
Lab report
Total
Lecture
Test#2
Mid exam
Final exam
Total
Grading: as per universitys regulation
Course policy:
Texts and references:
Program of Study

Courses code
Courses Title
Degree Program
Module name
Module number
Course chair

Xx Science & Technology University


School of Engineering
BSc. in Software Engineering
SE 1021
Fundamentals of Programming I
BSc in Software Engineering
Programming
01
Contact address:
26

Instructor/Tutor

Contact address and Consultation Hours:

ECTS credit (CP)


Contact hours per
week

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

Basic concepts and Definitions: What is a Program?, "Hello, world",


The Programming Process, Program Files and Program Execution,
Programming Languages, Compiler Errors vs. Runtime Errors,
Development Environments, Reading Input, Formatting Output,
Commenting Your Source Code, Good Programming Style
Data Types, Constants, and variables: Computer Memory, Variables,
Literal Data, key words, operators, Expressions
Decision Making: Sequential Execution, What is Decision Making?,
Simple Decisions: if, Two-Way Decisions: else, Code Blocks,
Nesting Control Statements, Multi-Way Decisions: switch
Looping: Kinds of Loops, Iterative Loops, Code Blocks and Loops,
Nested Loops, Conditional Loops, Infinite Loops
Function: Definition, Reusable Code in a Subroutine, the Starting
Point, Variable Visibility, Parameters, Returning a Value, recursive
functions, inline functions, default parameters, Libraries

27

Teaching and learning methods:


Lecture, laboratory work, assignments, projects and exercises
Assessment & Evaluation Methods:
The students are evaluated by test, exam, assignment, project
Summary of Course assignments, tests and exam
Laboratory
Test #1
Assignment #1
Seminar
Lab report
Total
Lecture
Test#2
Mid exam
Final exam
Total
Grading: as per - the harmonized academic policy
Course policy:
Texts and references:
Exploring Programming And Computer Science With C ++ By - Owen L. Astrachan (McGraw Hill)
C++ How To Program By Deitel&Deitel - (Addison Wesely)
Teach Yourself C++ By - Herbert Schildt - (Tmh)
Thinking In C++ By - Bruce Eckel - (Pearson Education, Second Edition)
Standard C++ With Object-Oriented Programming By - Paul S Wang - (Vikas Pub.)
Fundamental Of Computing With C ++ By - J.R. Hubbard, Schaums Series
Complete Reference C ++ -By- Schildt (Tmh)
C++ Programming, By Al Stevens Wiley, Dream Tech
C ++ Programming - By - Ds. Mallik (Thomson Learning)
C ++ Programming -By-Herbert Schildt(Dream Tech Press)
Starting Out With C ++ By - Tony Gaddis (Dream Tech Press)
Program of Study

Courses code
Courses Title
Degree Program
Module name
Module number
Course chair

Xx Science & Technology University


School of Engineering
BSc. in Software Engineering
SE 1022
Fundamentals of Programming II
BSc in Software Engineering
Programming
01
Contact address:

Instructor/Tutor

Contact address and Consultation Hours:

28

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

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

Arrays and Strings: Array definition, array declaration, Array


Initialization, Accessing Array Elements, Multidimensional Arrays,
string definition, string manipulation, getting string from keyboard,
arrays as parameters.
Pointers: Definition, The address-of operator &, Pointers and
arrays, Pointers and functions, Pointers and strings, Memory
management: new and delete, pointer manipulation
Structures and Classes: definition of structure, defining a
structures, records, accessing, defining class, Using Arrays with
structures, Linked lists
Working with files: File I/O, Opening Files, Opening a File for
Writing, Opening a File for Reading, Checking for File Open Errors,
Closing a File, Text Files vs. Binary Files
Debugging: What is Debugging? Commenting Out Code, Simple
Debugging with Print Statements, Making Debugging Print
Statements Conditional, Programs that Help You Debug Programs
Introduction to Object oriented programming:

29

Reading

Teaching and learning methods:


Lecture, laboratory work, assignments, projects and exercises
Assessment & Evaluation Methods:
The students are evaluated by test, exam, assignment and project
Summary of Course assignments, tests and exam
Laboratory
Test #1
Assignment #1
Seminar
Lab report
Total
Lecture
Test#2
Mid exam
Final exam
Total
Grading: as per-the harmonized academic policy
Course policy:
Texts and references:
Exploring Programming And Computer Science With C ++ By - Owen L. Astrachan (McGraw Hill)
C++ How To Program By Deitel&Deitel - (Addison Wesely)
Teach Yourself C++ By - Herbert Schildt - (Tmh)
Thinking In C++ By - Bruce Eckel - (Pearson Education, Second Edition)
Standard C++ With Object-Oriented Programming By - Paul S Wang - (Vikas Pub.)
Fundamental Of Computing With C ++ By - J.R. Hubbard, Schaums Series
Complete Reference C ++ -By- Schildt (Tmh)
C++ Programming, By Al Stevens Wiley, Dream Tech
C ++ Programming - By - Ds. Mallik (Thomson Learning)
C ++ Programming -By-Herbert Schildt(Dream Tech Press)
Starting Out With C ++ By - Tony Gaddis (Dream Tech Press)
Program of Study

Courses code
Courses Title
Degree Program
Module name
Module number
Course chair

Xx Science & Technology University


School of Engineering and IT
BSc. in Software Engineering
SE 2031
Object Oriented Programming
BSc in Software Engineering
Programming
02
Contact address:

Instructor/Tutor

Contact address and Consultation Hours:


30

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

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

Interfaces and Packages:-, abstract classes and methods, interfaces,


Purpose of Interfaces, When to use them, Interface Declaration,
Implementing an Interface, Interface Inheritance, Final methods and
classes, inner classes
Generics:- Generic methods, generic classes, wild cards in generic
methods.
Exception Handling:- Why Exceptions, Standard Exception
Handling Options, Exception Class Hierarchy, Checked vs.
Unchecked Exceptions, Catching an Exception, the throws clause,
Handling vs. Declaring Exceptions, System Exceptions vs.
Application Exceptions, Writing Custom Exceptions
Java I/O:- Streams & Files, Input & Output Streams, File Streams,
Object Streams, Object Serialization, Readers & Writers, The Java
New I/O (NIO) API
Java Collections:- The Java Collections Framework, Collections
Interfaces, Concrete Collections, Iterating through Collections
Introduction to Graphical User Interface

Teaching and learning methods:


Lecture, laboratory work, assignments, projects and exercises
Assessment & Evaluation Methods:
The students are evaluated by test, exam, assignment and project
Summary of Course assignments, tests and exam
Laboratory
Test #1
Assignment #1
Seminar
Lab report
Total
Lecture
Test#2
Mid exam
Final exam
Total
Grading: as per-the harmonized academic policy
Course policy:
Texts and references:
Understanding Object-Oriented Programming With Java By Timothy Budd(Pearson)
The Complete Reference Java 2 (Fourth Edition) By - Patrick Naughton&HerbetSchildt (Tmh)
Programming Java - Decker&Hirsh Field VikasPublisking (2001) (Thomson Learning ) (2/e)
Object Oriented Programming Through Java 2 By - Thamus Wu (Mc.Graw Hill)
Java 2 - Dietel&Dietel (Pearson Education)

32

Program of Study

Courses code
Courses Title
Degree Program
Module name
Module number
Course chair

Xx Science & Technology University


School of Engineering and IT
BSc. in Software Engineering
SE 2034
Advanced Programming
BSc in Software Engineering
Programming
02
Contact address:

Instructor/Tutor

Contact address and Consultation Hours:

ECTS credit (CP)


Contact hours per
week

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

Year: III Semester: I


Object Oriented Programming
Compulsory

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

Multithreading: Introduction; thread states; priorities and thread


scheduling; creating and Executing threads; thread synchronization;
Producer Consumer relationships; Multithreading with GUI; dead
locks
Networking: Introduction; Manipulating URLs; Reading a file on a
web server; Establishing server using stream socket; establishing
client using stream socket; client server interaction with stream
sockets; connectionless client/server interaction with UDP datagram

67

Java Database Connectivity JDBC: Introduction; Manipulating


database with JDBC; Row set Interface; Prepared Statements; Stored
procedures; Transaction Processing

89

Servlet: Introduction; Servlet Overview and Architecture; Interface


Servlet and the Servlet Life Cycle; Compile Servlets, Describe an
HTTP Servlet, Define Session Tracking, Describe InterServlet
communication, Use a servlet to access a database
Java Server Pages (JSP): Introduction; Java Server Pages
Overview; Implicit Objects; Scripting; Standard Actions;
Directives; Custom Tag Libraries, expression language, MVC
architecture
Remote Method Invocation (RMI):- Introduction; creating a
distributed system using RMI; Defining the Remote Interface;
Implementing the remote interface; Compiling and Executing the
Server and the Client

9 10

11-12

13

JavaBeans:- The Basic Bean, Bean Properties, Bound Properties,


Constrained Properties, Visual Beans, Packaging Beans

14

Java Security:- The Java Security Model, Policy Entries, Policy


Files, Using the Policy Tool, Security Managers, Default Applet
Security

Teaching and learning methods:


Lecture, laboratory work, assignments, projects and exercises
Assessment & Evaluation Methods:
The students are evaluated by test, exam, assignment and project
Summary of Course assignments, tests and exam
Laboratory
Test #1
Assignment #1
Seminar
Lab report
Total
Lecture
Test#2
34

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

Xx Science & Technology University


School of Engineering
BSc. in Software Engineering
SE 3073
Software Design and Architecture
B.Sc. in Software Engineering
Software Design
07
Contact address:

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

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

Apply a variety of frameworks, and architectural styles in designing a widevariety of software


Use sound quality metrics as objectives for designs, and then measure and assess designs to
ensure the objectives have been met
Modify designs using sound change control approaches
Use reverse engineering techniques to recapture the design of software
Course Schedule, topics, activities, and readings
Week
Topic
Structural and behavioral design descriptions and
1
specifications
General and domain specific design principles
Object oriented design concepts(abstract types, interfaces,
2
polymorphism, delegation vs sub classing, generics)
Architecturestyles (pipe and filter, event-based, layered etc)
3
and Architectural view models)
In-depth study of middleware architectures including COM,
4
CORBA, and .Net
Extensive case studies of real designs
5
Basics of software metrics; measuring software qualities
Reengineering and reverse engineering techniques.
6
Sample labs and assignments:
Building a significant project using one or more well
known middleware architectures.

Activities

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
Final exam
Total
Grading: as per-the harmonized academic policy
Course policy:
Texts and references:
David Budgen, "Software Design", Addison Wesley, 1994.
Pressman R.S, "Software Engineering", 4th edition, McGraw Hill Inc, 1996.

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

Xx Science & Technology University


School of Engineering
BSc. in Software Engineering
IT4093
Software Quality Assurance and Testing
B.Sc. in Software Engineering
Software Testing and Quality assurance
05
Contact address:

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

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

Course Schedule, topics, activities, and readings


Week
Topic
Introduction to software quality assurance(terms like faults,
1
errors, debugging and quality standards)
Principles of software validation and Software verification
2
Software Testing (unit testing, regression testing, system
testing, integration testing)
White-box and black-box testing (state transition, equivalent
3
partitioning, static and dynamic testing etc)
Control flow oriented test construction techniques, McCabe
4
Cyclomatic complexity
Data flow oriented test construction techniques
Exploratory Testing
5
Code and Fix programming paradigm (test plan, test case
design specification, etc)
Introduction to Software Reliability and default density
6
Sample labs and assignments:
Basic Testing with automated testing tools like JUnit
Logic coverage testing
Code coverage tool usage
Mutation Testingusing a mutation testing tool
Mock object testing using mock object testing tool
State transition testing
Input space partitioning testing
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
Final exam
Total
Grading: as per-the harmonized academic policy
Course policy:
Texts and references:
Program of Study

Xx Science & Technology University


School of Engineering
38

Activities

Reading

Courses code
Courses Title
Degree Program
Module name
Module number
Course chair

BSc. in Software Engineering


SE 3071
Software Construction I
B.Sc. in Software Engineering
Software Design
04
Contact address:

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

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

Relation of scanners and compilers


Parsing concepts; parse trees; context free grammars, LL
Parsing
Overview of principles of programming languages. Criteria
for selecting programming
languages and platforms
Tools for automating software design and construction.
Modeling system behavior with
extended finite state machines
SDL
Representing concurrency, and analyzing concurrent designs
Sample labs and assignments:
Use of software engineering tools to create designs
Use of parser generators to generate languages

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
Final exam
Total
Grading: as per-the harmonized academic policy
Course policy:
Texts and references:

Program of Study

Courses code

Xx Science & Technology University


School of Engineering
BSc. in Software Engineering
SE 4091
40

Courses Title
Degree Program
Module name
Module number
Course chair

Software Engineering Tools and Practices


B.Sc. in Software Engineering
Software Management
06
Contact address:

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

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

creation: meta-languages, scripts, rules, targets, actions


Software requirements analysis: reading use case scenarios
and use case textual analysis
High-level design: requirements coverage,
communication diagrams
Detailed design: class, communication, activity, state, and
sequence diagrams
Laboratory topics
Development of various small software projects to facilitate
practice and with integrated tool usage

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
Final exam
Total
Grading: as per-the harmonized academic policy
Course policy:
Texts and references:
Program of Study

Courses code
Courses Title
Degree Program
Module name
Module number
Course chair

Xx Science & Technology University


School of Engineering
BSc. in Software Engineering
SE 3075
Software Component Design
B.Sc. in Software Engineering
Software Design
04
Contact address:

Instructor/Tutor

Contact address and Consultation Hours:

ECTS credit (CP)


Contact hours per

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

Threading and thread synchronization


Inter-thread and inter-process communication using shared
memory, pipes, and sockets
Design patterns
Pattern application issues
Anti-patterns
Laboratory topics
Investigation of multi-threaded data collections
Application of specific design patterns
Development of application to demonstrate the use of a
chosen design pattern
Demonstration of example application

Teaching and learning methods


Assessment & Evaluation Methods

43

Activities

Reading

Summary of Course assignments, tests and exam


Laboratory
Test #1
Assignment #1
Seminar
Lab report
Total
Lecture
Test#2
Mid exam
Final exam
Total
Grading: as per-the harmonized academic policy
Course policy:
Texts and references:
Head First Design Patterns Freeman and Freeman, OReilly, 2004
Program of Study

Xx Science & Technology University


School of Engineering
BSc. in Software Engineering

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

Contact address and Consultation Hours:

ECTS credit (CP)


Contact hours per
week

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

First year Software Engineering Students


Year I, Semester II
None
Compulsory

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

Teaching and learning methods:


Lecture, assignments and exercises
Assessment & Evaluation Methods
Summary of Course assignments, tests and exam
Laboratory
Test #1
Assignment #1
Seminar
Lab report
Total
Lecture

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

Xx Science & Technology University


School of Engineering
BSc. in Software Engineering

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

Contact address and Consultation Hours:

ECTS credit (CP)


Contact hours per
week

5 (3)
Lectures

Tutorials &
seminars

Laboratory &
workshop

Lecture days,
hours,& room
46

Home
Study
5

Total
9

Tutorial /lab days


& hour
Target group
Year /semester
Pre-requisites
Status of the
course

Second year Software Engineering Students


Year II, Semester I
Discrete Mathematics I
Compulsory

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

Teaching and learning methods:


Lecture, assignments and exercises
Assessment & Evaluation Methods
Summary of Course assignments, tests and exam
Laboratory
Test #1
Assignment #1
Seminar
Lab report
47

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

Xx Science & Technology University


School of Engineering
BSc. in Software Engineering

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

Contact address and Consultation Hours:

ECTS credit (CP)


Contact hours per
week

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

Third year Software Engineering Students


Year III, Semester I
Object Oriented Software Analysis and Design
Compulsory

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

Teaching and learning methods:


Lecture, assignments and exercises
Assessment & Evaluation Methods
Summary of Course assignments, tests and exam
Laboratory
Test #1
Assignment #1
Seminar
Lab report
Total
Lecture
Test#2
Mid exam
Final exam
Total
Grading: as per-the harmonized academic policy
Course policy:
Texts and references:
Program of Study

Courses code
Courses Title
Degree Program
Module name
Module number
Course chair

Xx Science & Technology University


School of Engineering
BSc. in Software Engineering
SE 2035
Web Designing and Programming
B Sc in Software Engineering
Information System Courses
Contact address:

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

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

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
Lab report
Total
Lecture
Test#2
Mid exam
Final exam
Total
Grading: as per-the harmonized academic policy
Course policy:

Texts and references:


TEXT BOOKS:
1. Web Programming, building internet applications, Chris Bates 2nd edition,
WILEY Dreamtech (UNIT 1,2)
2. The complete Reference Java 2 Fifth Edition ,PatrickNaughton and Herbert Schildt., TMH (Chapters:
25) (UNIT 2,3)
3. Java Server Pages Hans Bergsten, SPD OReilly (UNITs 3,4,5)
REFERENCE BOOKS:
Programming world wide web-Sebesta,Pearson
Core SERVLETS ANDJAVASERVER PAGES VOLUME 1: CORE
TECHNOLOGIES , Marty Hall and Larry Brown Pearson
Internet and World Wide Web How to program ,Dietel and Nieto PHI/Pearson.
Jakarta Struts Cookbook , Bill Siggelkow, S P D OReilly for chap 8.
Murachs beginning JAVA JDK 5, Murach, SPD
An Introduction to web Design and Programming Wang-Thomson
Professional Java Server Programming,S.Allamaraju and othersApress(dreamtech).
Java Server Programming ,Ivan Bayross and others,The X Team,SPD
Web Warrior Guide to Web Programmming-Bai/Ekedaw-Thomas
Beginning Web Programming-Jon Duckett WROX.
Java Server Pages, Pekowsky, Pearson.
Java Script,D.Flanagan,OReilly,SPD.

52

Program of Study

Courses code
Courses Title
Degree Program
Module name
Module number
Course chair

Xx Science & Technology University


School of Engineering
BSc. in Software Engineering
SE 2041
Operating System
B.Sc. in Software Engineering
Computer Science Courses
Contact address:

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

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

flexibility, portability, security, compatibility)


Basic principles: Structuring methods; abstractions,
processes, and resources; device organization; interrupts;
user/system state transitions
Concurrency: The idea of concurrent execution; states and
state diagrams; implementation structures (ready lists,
process control blocks, and so forth); dispatching and
context switching; interrupt handling in a concurrent
environment
Mutual exclusion: Definition of the mutual exclusion
problem; deadlock detection and prevention; solution
strategies; models and mechanisms (semaphores, monitors,
condition variables, rendezvous); producer-consumer
problems; synchronization; multiprocessor issues
Scheduling: Preemptive and non-preemptive scheduling;
scheduling policies; processes and threads; real-time issues
Memory management: Review of physical memory and
memory management hardware; overlays, swapping, and
partitions; paging and segmentation; page placement and
replacement policies; working sets and thrashing; caching
Device management: Characteristics of serial and parallel
devices; abstracting device differences; buffering strategies;
direct memory access; recovery from failures
File systems: Fundamental concepts (data, metadata,
operations, organization, buffering, sequential vs.
nonsequential files); content and structure of directories;
file system techniques (partitioning, mounting and
unmounting, virtual file systems); memory-mapped files;
special-purpose file systems; naming, searching, and access;
backup strategies
Security and protection: Overview of system security;
policy/mechanism separation; security methods and devices;
protection, access, and authentication; models of protection;
memory protection; encryption; recovery management

Teaching and learning methods


Lecture, assignments, projects and exercises
Assessment & Evaluation Methods
Assignment 15%, Exercise 10%,Mid Exam 30%, Final Exam 45%
Summary of Course assignments, tests and exam
Laboratory
Test #1
Assignment #1
Seminar
Lab report
Total
Lecture
Test#2

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

Xx Science & Technology University


School of Engineering
BSc. in Software Engineering
SE 4092
Information Security
B.Sc. in Software Engineering
Computer Science Courses
Contact address:

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

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

(Confidentiality, Authentication, Integrity, Non-repudiation,


access Control and Availability) and Mechanisms
A model for Internetwork security, Internet Standards
and RFCs, Mathematical Tools for Cryptography:
Introduction to number theory, prime & relative
numbers, modular arthimetic, Fermats and Eulers
theorems, testing for primality, Chinese remainder
theorem, Discrete logarithms
Conventional Encryption Principles &Algorithms(DES,
AES, RC4), Block Cipher Modes of Operation, Location
of Encryption Devices, Key Distribution,Public key
cryptography principles, public key cryptography
algorithms(RSA, RABIN, ELGAMAL, Diffie-Hellman,
ECC), Key Distribution
Approaches of Message Authentication, Secure Hash
Functions(SHA-512, WHIRLPOOL) and HMAC Digital Signatures: Comparison, Process- Need for Keys,
Signing the Digest, Services, Attacks on Digital
Signatutres, Kerberos, X.509 Directory Authentication
Service
Network Management, Basic concepts of SNMP, SNMPv1
Community facility and SNMPv3
OS Security, OS Security Functions, Separation, Memory
Protection, Access Control, Trusted Operating System:
MAC, DAC, Trusted path, Trusted Computing Base
Viruses and related threats, Anatomy of Virus, Virus
Counter Measures - Software Flaws: Buffer Overflow,
Incomplete Mediation, Race Conditions, Malware: Brain,
Morris Worm, Code Red, Malware Detection - Firewalls,
Design principles, Types of Firewalls, Firewall
Architectures, Trusted Systems.

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
Lab report
Total
Lecture
Test#2
Mid exam
Final exam
Total
56

Grading: as per-the harmonized academic policy


Course policy:
Texts and references:
Textbook:
Network Security Essentials (Applications and Standards) by William Stallings, Pearson Education.
Information Security Principles & Practice, Mark Stamp, WILEY INDIA 2006.
References
Cryptography and network Security, Fourth edition, Stallings, PHI/Pearson
Cryptography & Network Security by Behrouz A. Forouzan, TMH 2007.
Network Security: The complete reference, Robert Bragg, Mark Rhodes, TMH
Computer Security Basics by Rick Lehtinen, Deborah Russell &G.T.Gangemi Sr., SPD OREILLY 2006.
Modern Cryptography by Wenbo Mao, Pearson Education 2007.

Program of Study

Courses code
Courses Title
Degree Program
Module name
Module number
Course chair

Xx Science & Technology University


School of Engineering
BSc. in Software Engineering
SE 3031
Software Requirements Analysis
B.Sc. in Software Engineering
Software Modeling and Analysis
Contact address:

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

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

Requirements engineering process: requirements elicitation,


specification, analysis, and management
Types of requirements: functional, non-functional, quality
attributes
Requirements elicitation: identifying needs, goals, and
requirements. Customers and other stakeholders. Interviews
and observations
Requirements specification: textual and graphical notations
and languages (UML, User Requirements notation).
Techniques to write high-quality requirements.
Documentation standards
Requirements analysis: inspection, validation, completeness,
detection of conflicts and inconsistencies. Feature
interaction analysis and resolution
Goal- and use-case-oriented modeling, prototyping, and
analysis techniques
Requirements for typical systems: embedded systems,
consumer systems, web-based systems, business systems,
systems for scientists and other engineers
Requirements management: traceability, priorities, changes,
baselines, and tool support

58

Activities

Reading

Requirements negotiation and risk management


Integrating requirements analysis and software processes
(including agile ones)
Sample labs and assignments:
Writing good requirements.
Analysis of a wide variety of existing software systems:
Measuring qualities, and reverse engineering requirements.
Interviewing users, and translating the results into
prototypes iteratively
Use of tools for managing requirements.
Modeling, prototyping, and analyzing requirements with
UML/URN tools
Resolving feature interactions

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
Lab report
Total
Lecture
Test#2
Mid exam
Final exam
Total
Grading: as per-the harmonized academic policy
Course policy:
Texts and references:
Ian Somerville and Pete Sawyer, "Requirements Engineering: A Good Practice Guide", 6th edition,
Pearson Education, 2004.
Dean Leffingwell and Don Widrig, "Managing Software Requirements: A Use Case Approach", 2nd
edition, Addison Wesley, 2003.
Karl Eugene Wiegers, "Software Requirements", Word Power Publishers,
2000.

Program of Study

Xx Science & Technology University


School of Engineering
BSc. in Software Engineering
59

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

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

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

natural language understanding


Intelligence and knowledge deductive& procedural
programming methods..
Data structure: terms, lists, trees and their manipulation in
logic programs
Problem solving: search methods, heuristics and other
searching algorithms;
Knowledge and Reasoning: Logical agent First order Logic,
Inference in First order Logic, and Concepts of expert
systems and knowledge representation

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
Lab report
Total
Lecture
Test#2
Mid exam
Final exam
Total
Grading: as per-the harmonized academic policy
Course policy:
Texts and references:
Textbook:
S. Russel and P. Norvig.: Artificial Intelligence: A Modern Approach. 2nd edition ,Prentice Hall, 2003;
References:
G. Luger, Artifcial Intelligence 4th edition, Addison Weslesy, 2002
Program of Study

Courses code
Courses Title
Degree Program
Module name
Module number
Course chair
Instructor/Tutor

Xx Science & Technology University


School of Engineering
BSc. in Software Engineering
SE 2036
Design and Analysis of Algorithms
B.Sc. in Software Engineering
Computer Science Course
Contact address:
Contact address and Consultation Hours:
61

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

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

Maximum bipartite matching NP-completeness


Polynomial time and its verification-NP-completenessreducibility-proofs and NP-complete problems- The vertex
cover problem-The travelling salesmans problem-The set
cover problem- Randomization and linear programmingThe subset-sum problem

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
Lab report
Total
Lecture
Test#2
Mid exam
Final exam
Total
Grading: as per-the harmonized academic policy
Course policy:
Texts and references:
Text Book:
Introduction to Algorithms, by Thomas H. Corman, Charles E. Leiserson, Ronald R. Rivest&
Clifford Stein, Prentice Hall of India, New Delhi, New Delhi.
Reference Books:
1. The Design and Analysis of computer Algorithms, by Aho, Hopcroft& Ullman,
Pearson Education
2. Algorithm Design by Michel T. Goodrich & Roberto Tamassia, , John Weily and
sons
3. Fundamentals of sequential and parallel algorithms, by Kenneth A. Berman &
Jerome L. Paul, Vikas Publishing House

Program of Study

Courses code
Courses Title
Degree Program

Xx Science & Technology University


School of Engineering
BSc. in Software Engineering
SE 4102
Seminars in Software Engineering
B.Sc. in Software Engineering
63

Module name
Module number
Course chair

Research and Project Work


07
Contact address:

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

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

Xx Science & Technology University


School of Engineering
BSc. in Software Engineering
SE 3083
Multimedia System
B.Sc. in Software Engineering
Information System Courses
Contact address:

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

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

Xx Science & Technology University


School of Engineering
BSc. in Software Engineering
SE 4094
Software Project Management
B.Sc. in Software Engineering
Software Management
06
Contact address:

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

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

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
Lab report
Total
Lecture
Test#2
Mid exam
Final exam
Total
Grading: as per-the harmonized academic policy
Course policy:

68

Reading

Texts and references:


Steve McConnell, Software Project Survival Guide, Microsoft Press.
Walker Royce, Software Project Management, Pearson.
Robert K. Wysocki, Effective Software Project Management, Wiley.
E-Book on OO Software Project Management.

Program of Study

Courses code
Courses Title
Degree Program
Module name
Module number
Course chair

Xx Science & Technology University


School of Engineering
BSc. in Software Engineering
SE 4095
Processing Management
B.Sc. in Software Engineering
Information System Courses
Contact address:

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

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

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
Lab report
Total
Lecture
Test#2
Mid exam
Final exam
Total
Grading: as per-the harmonized academic policy
Course policy:
Texts and references:
Program of
Study

Xx Science and Technology University, School of Engineering


Department of Software engineering
SE 2032
Data Structures and Algorithms
BSc in Software engineering

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

Laboratory & workshop

Lectures
2

Programming Fundamentals

70

Home
Study
5

Total

course
Course
Objectives:

Course
Description:

After completing this course students should be able to:


Discuss the representation and use of primitive data types and built-in data structures.
Describe how the data structures in the topic list are allocated and used in memory.
Describe common applications for each data structure in the topic list.
Implement the user-defined data structures in a high-level language.
Compare alternative implementations of data structures with respect to performance.
Write programs that use each of the following data structures: arrays, records, strings,
linked lists, stacks, queues, and hash tables.
Compare and contrast the costs and benefits of dynamic and static data structure
implementations.
Choose the appropriate data structure for modeling a given problem.
Builds on the foundation provided by the computing & fundamental of programming
introduce the fundamental concepts of data structures and the algorithms that proceed
from them. Topics include recursion, fundamental data structures (including stacks,
queues, linked lists, hash tables, trees, and graphs), the basics of algorithmic analysis,
sorting and searching algorithms
Syllabus:
Review of elementary programming concepts
Fundamental data structures: Stacks; queues; linked lists; hash tables; trees; graphs
Fundamental computing algorithms: O(N log N) sorting algorithms; hash tables,
including collision-avoidance strategies; binary search trees; representations of graphs;
depth- and breadth-first traversals
Recursion: The concept of recursion; recursive mathematical functions; simple recursive
procedures; divide-and-conquer strategies; recursive backtracking; implementation of
recursion
Basic algorithmic analysis: 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
Algorithmic strategies: Brute-force algorithms; greedy algorithms; divide-and-conquer;
backtracking; branch-and-bound; heuristics; pattern matching and string/text algorithms;
numerical approximation algorithms

Course Schedule, topics, activities, and readings


Week
Topic
Activities
Review of elementary
1-2
programming concept
Fundamental data
Stacks; queues; linked lists; hash tables; trees;
3-5
structures
graphs
6-8

Fundamental computing
algorithms

9-10

Recursion

O(N log N) sorting algorithms; hash tables,


including collision-avoidance strategies; binary
search trees; representations of graphs; depthand breadth-first traversals
The concept of recursion; recursive
mathematical functions; simple recursive
procedures; divide-and-conquer strategies;
recursive backtracking; implementation of
71

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

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 :
Final exam :
Total :

Grading:

as per-the harmonized academic policy

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

Xx Science and Technology University, School of Engineering


Department of Software engineering
SE 2043
Data communication and Computer Networks
BSc in Software engineering

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:

Laboratory & workshop

Lectures

Tutorials &
seminars

Home
Study
5

Total

Operating system

After completing this course students should be able to:


Discuss important network standards in their historical context.
Describe the responsibilities of the different layers of the ISO reference model and
TCP/IP model.
Discuss the differences between circuit switching and packet switching along with the
advantages and disadvantages of each.
Explain how a network can detect and correct transmission errors.
Illustrate how a packet is routed over the Internet.
Install a simple network with two clients and a single server using standard host
configuration software tools such as DHCP.
Data Communication Basics
Communication Basics, Data Representation techniques, Digital Data Transmission
formats, Modes of Data transmission, Signal Encoding Techniques, Data Transmission
Error Detection and Correction
Introduction to Computer Networks
Computer Network and its Applications, Computer Network Types, Computer Network
Topologies, Computer Network Components, Computer Network Models
Data Communication and Transmission Medias
Guided Media Types, Twisted Pair cable, Coaxial Cable and Fiber Optic Cable,
Unguided Media Types, Wireless Media, Wireless LAN, Terrestrial Microwave and
Satellite communication

73

The OSI and the TCP/IP Communication Models


Communication and Layer Architecture, Open System Interconnection (OSI) Model, The
Seven Layers of an OSI Model, The Physical, Data-link, Network, Transport, Session,
Presentation, and Application Layers, The TCP/IP Model
LAN Technologies
LAN hardware devices, Repeaters, Hubs, Bridges and Switches, LAN Technology
Options, Ethernet LAN, Fast Ethernet LAN, Gigabits Ethernet LAN, Wireless LAN
(WLAN)
WAN Technologies
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
Internet Protocol (IP) and IP Addressing
IP as a Routed Protocol, Packet 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)
Computer Network Security Basics
The importance of Network Security, Techniques of Network Security, Encryption and
Decryption Techniques, Access Control and Firewalls, Attacks and Countermeasures
Course Schedule, topics, activities, and readings
Week
Topic
Activities
Reading
1-2
Data Communication
Communication Basics, Data
Basics
Representation techniques, Digital
Data Transmission formats,
Modes of Data transmission,
Signal Encoding Techniques, Data
Transmission Error Detection and
Correction
3-4

Introduction to
Computer Networks

5-6

Data Communication
and Transmission
Medias

7-9

The OSI and the TCP/IP


Communication Models

Computer Network and its


Applications, Computer Network
Types, Computer Network
Topologies, Computer Network
Components, Computer Network
Models
Guided Media Types, Twisted
Pair cable, Coaxial Cable and
Fiber Optic Cable, Unguided
Media Types, Wireless Media,
Wireless LAN, Terrestrial
Microwave and Satellite
communication
Communication and Layer
Architecture, Open System
Interconnection (OSI) Model, The
Seven Layers of an OSI Model,
The Physical, Data-link, Network,
Transport, Session, Presentation,
and Application Layers, The
74

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

LAN and WAN


Technologies

Grading:

as per-the harmonized academic policy

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:

Xx Science and Technology University, School of Engineering


Department of Software engineering
SE 3083
Multimedia System
BSc in Software engineering

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.

Content-based Multimedia Retrieval.


Multimedia Network Communications.

Course Schedule, topics, activities, and readings


Week
Topic
Activities
Reading
Introduction to Multimedia system;
1-2
Issues in Multimedia Applications
Design.
Multimedia Data Processing and
3-4
Representations.
Multimedia Compression Standards
5-8
(Text, Image, Video and Audio).
9-10
Multimedia Content
Representation.
11-13
Content-based Multimedia Retrieval.
14-16
Multimedia Network
Communications.
Teaching and learning methods: Lecturing, laboratory session and project work
Assessment &
Evaluation Methods

Summary of Course assignments, tests and exam


Laboratory
Test #1 :
Assignment #1 :
Seminar :
Lab report :
Total:
Lecture
Test#2 :
Mid exam :
Final exam :
Total :

Grading:

as per-the harmonized academic policy

Course policy:
Texts and
references:

Text - Video Digital Communication and Production by Jim Stinson. Published


by The Goodheart-Willcox Company.
Chapman, N & Chapman, J. (2004) Digital Multimedia. John Wiley and Sons.
Dastbaz, Mohammad. (2002). Design and development of interactivemultimedia
systems.
New York: McGraw Hill. Human, Jim. (2003). Multimedia concepts enhanced
edition Massachusetts:International Thomson Publishing Company.Vaug
Software: Microsoft Publisher, Adobe Flash, Blender, Audacity, Fruity Loops,
GarageBand, iMovie, Moviemaker, Pinnacle Studio, Avid Express, Choices
Planner.

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:

Xx Science and Technology University, School of Engineering


Department of Software engineering
SE 3084
Modeling and Simulation
BSc in Software engineering

Contact address:
Contact address and Consultation Hours:
Tutorials &
seminars

Laboratory & workshop

Lectures
3

Home
Study
5

Total

Graphics and advanced programming

. Attain generic learning outcomes and competences:


Understand the principles of simulation
Create simulation model of various types
Verify, and validate simulation models.
Introduction to modeling and simulation.
System analysis, classification of systems. System theory basics, its relation to simulation.
Model classification: conceptual, abstract, and simulation models. Heterogeneous models.
Methodology of model building.
Simulation systems and languages, means for model and experiment description.
Principles of simulation system design.
Parallel process modeling. Using Petri nets and finite automata in simulation.
Models of queuing systems. Discrete simulation models. Model time, simulation
experiment control.
Continuous systems modelling. Overview of numerical methods used for continuous
simulation.
Combined simulation. The role of simulation in digital systems design.
Special model classes, models of heterogeneous systems.
Checking model validity, verification of models. Analysis of simulation results.
Simulation results visualization. Interactive simulation, virtual reality.
Design and control of simulation experiments. Model optimization.
Generating, transformation, and testing of pseudorandom numbers. Stochastic models,
Monte Carlo method.
Overview of commonly used simulation systems.

78

Course Schedule, topics, activities, and readings


Week Topic
Activities
Introduction to modeling and
1-2
simulation.
System Analysis
System analysis, classification of
3-4
systems. System theory basics, its
relation to simulation.
Model classification
conceptual, abstract, and simulation
5-6
models. Heterogeneous models.
Methodology of model building.
7-8

Simulation systems and languages

9-10

Parallel process modeling

11-12

Models of queuing systems.

13

Combined simulation

14

model validity

15

Simulation results

16

Stochastic models and Monte Carlo


method.

Model and experiment description.


Principles of simulation system
design.
Using Petri nets and finite automata
in simulation.
Discrete simulation models. Model
time, simulation experiment
control; Continuous systems
modeling. Overview of numerical
methods used for continuous
simulation.
The role of simulation in digital
systems design
Verification of models. Analysis of
simulation results.
Visualization; Interactive
simulation, virtual reality;
Design and control of simulation
experiments. Model optimization
Generating, transformation, and
testing of pseudo random numbers

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:

as per-the harmonized academic policy

79

Reading

Course
policy:
Texts and
references:

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:

Xx Science and Technology University, School of Engineering


Department of Software engineering
SE 4094
Software Project Management
BSc in Software engineering

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

Course Schedule, topics, activities, and readings


Week
Topic
Activities
1-2
Basic concepts of project
management
3-4
Software lifecycles
5-6
Managing requirements
7-8
The project plan
9-10
Monitoring the project
10-11
Risk analysis
12-13
Managing quality
14
People(Team)
management
15-16
Configuration
management
Teaching and learning methods

81

Reading

Assessment &
Evaluation
Methods

Summary of Course assignments, tests and exam


Laboratory
Test #1 :
Assignment #1 :
Seminar :
Lab report :
Total:
Lecture
Test#2 :
Mid exam :
Final exam :
Total :

Grading:

as per-the harmonized academic policy

Course policy:
Texts and
references:

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

Xx Science and Technology University, School of Engineering


Department of Software engineering
SE 3062
Object Oriented Software analysis and design
BSc in Software engineering

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

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.
Syllabus:
Software engineering and its place as an engineering discipline
Review of the principles of object orientation
Reusable technologies as a basis for software engineering: Frameworks and APIs.
Introduction to client-server computing
Requirements analysis
UML class diagrams and object-oriented analysis; introduction to formal
modeling using OCL
Examples of building class diagrams to model various domains
Design patterns (abstraction-occurrence, composite, player-role, singleton,
observer, delegation, faade, adapter, observer, etc.)
Use cases and user-centered design
Representing software behavior: Sequence diagrams, state machines, activity
diagrams General software design principles: Decomposition, decoupling,
cohesion, reuse, reusability, portability, testability, flexibility, etc.
Software architecture: Distributed architectures, pipe-and-filter, model-viewcontroller, etc.
Sample labs and assignments:
Evaluating the performance of various simple software designs
Adding features to an existing system
Testing a system to verify conformance to test cases
Building a GUI for an application
Numerous exercises building models in UML, particularly class diagrams and
state machines
Developing a simple set of requirements (to be done as a team) for some
innovative clientserver application of very small size
Implementing the above, using reusable technology to the greatest extent possible

83

Course Schedule, topics, activities, and readings


Week
Topic
Activities
1-2
Software engineering
concepts
3-4
Review of the principles
of object orientation
5-6
Reusable technologies
7-9
Requirements analysis
10
Use cases and usercentered design
11-13
System Design and
architecture
14
Coding techniques
Testing
15
deployment
16
maintenance
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 :
Final exam :
Total :

Grading:

as per-the harmonized academic policy

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

Xx Science and Technology University, School of Engineering


Department of Software engineering
SE 2051
Data Base system
BSc in Software engineering

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

efficiency, and effectiveness


Database systems: History and motivation for database systems; components of
database systems; DBMS functions; database architecture and data independence
Data modeling: Data modeling; conceptual models; object oriented model;
relational data model
Relational databases: Mapping conceptual schema to a relational schema; entity
and referential integrity; relational algebra and relational calculus
Database query languages: Overview of database languages; SQL; query
optimization; 4th-generation environments; embedding non-procedural queries in
a procedural language; introduction to Object Query Language
Relational database design: Database design; functional dependency; normal
forms; multivalued dependency; join dependency; representation theory
Transaction processing: Transactions; failure and recovery; concurrency control
Physical database design: Storage and file structure; indexed files; hashed files;
signature files; b-trees; files with dense index; files with variable length records;
database efficiency and tuning
Transaction processing, concurrency control: data storage; query processing;
transaction model; concurrency control; homogeneous and heterogeneous
solutions; client-server
Course Schedule, topics, activities, and readings
Week
Topic
Activities
1-2
Information models and
systems
3-4
Data representation
5-6
Database systems
7-8
Data modeling
9-10
Relational database
design
11
Relational algebra
12
Database query
languages
13-14
Transaction processing
15-16
congruency controlling
techniques
Teaching and learning methods

86

Reading

Assessment
&
Evaluation
Methods

Summary of Course assignments, tests and exam


Laboratory
Test #1 :
Assignment #1 :
Seminar :
Lab report :
Total:
Lecture
Test#2 :
Mid exam :
Final exam :
Total :

Grading:

as per-the harmonized academic policy

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:

Xx Science and Technology University, School of Engineering


Department of Software engineering
SE 3052
Distributed system
BSc in Software engineering

Contact address:
Contact address and Consultation Hours:

Lectures

Tutorials & Laboratory & workshop


seminars

Home
Study
5

Total

Database management system, operating system

Objective; communication; processes and synchronization; naming; consistency and


replication; fault tolerance;; distributed file systems (only Sun); shared data and
distributed transactions (with respect to consistency and replication).
Course
Introduction to distributed system
Description:
Communication
Processes
Naming
Synchronization
Consistency and Replication
Fault Tolerance
Course Schedule, topics, activities, and readings
Week
Topic
Activities
Reading
Introduction to
definition
1-2
distributed system
characteristics
organization and goals of distributed
systems
hardware and software concepts
the client-server model
3-4

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

Teaching and learning methods

90

Assessme Summary of Course assignments, tests and exam


nt &
Laboratory
Evaluatio Test #1 :
Assignment #1 :
n
Methods Seminar :
Lab report :
Total:
Lecture
Test#2 :
Mid exam :
Final exam :
Total :

Grading:

as per-the harmonized academic policy

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:

Department: Software Engineering


College/ Faculty/ School of Xx
Xx University
Course code
SENG 356
Course title
Formal Languages and Automata Theory
Degree Program
BSc in Software Engineering
Module Number and name 3, System Software Development
Module coordinator
TBA
Instructor
TBA
ECTS
5
Contact hours per week
TH
LAB
TUT
HS
3
0
2
2
Course objective and
Introduce the student to the concepts of theory of
competencies to be
computation in computer science and the student
acquired
acquires insights into the relationship among formal
languages, formal grammars, and automata.
introduce with the mathematical notation of
Sets, Graphs and Trees
91

understand about (Finite) Automata concepts


study and understand about Grammars,
Languages and Normal Forms
introduce the mechanism of Turing Machine

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:

Department: Software Engineering


College/ Faculty/ School of Xx
Xx University
Course code
SENG471
Course title
Principles of compiler design
Degree Program
BSc in Software Engineering
Module Number and name
Module 3: System software development
Module coordinator
TBA
Instructor
TBA
ECTS
5
Contact hours per week
TH
LAB
TUT
HS
2
3
2
0
Course objective and
Enable the students to design, and construct a compiler (at least
competencies to be acquired the front end of the compiler) by programming.
Course description/course
Chapter-1
: Introduction
contents
1.1 Compiler and its various phases
1.2 Cousins of Compiler
1.3 The Grouping of Phases
1.4 Compiler Construction Tools
Chapter-2
: Lexical Analysis
2.1 Functions of Lexical Analysis
2.2 Role of the Lexical Analyzer
2.3 Input Buffering
2.4 Specification of tokens
2.5 Recognition of tokens
Chapter-3
: Syntax Analysis
3.1 The Role of the Parser
3.2 Context Free Grammars
3.3 Regular Expressions Vs. Context Free Grammars
93

Prerequisite
Semester
Course type
Teaching learning methods
Assessment/Evaluation and
grading system

Attendance requirements
Text books/references

3.4 Predictive Parsing


3.5 Operator Precedence Parsing
3.6 LR Parsers
Chapter-4
: Syntax directed Translation
4.1 Syntax directed definitions
4.2 Construction of syntax trees
4.3 Bottom-up evaluation of S-attributed definitions
4.4 L-attributed definitions
Chapter-5
: Symbol Tables & Type Checking
5.1 Symbol Tables
5.2 Type Systems
5.3 Specification of a simple type checker
Chapter-6
: Intermediate Code Generation
6.1 Intermediate Languages
6.2 Declarations
Chapter-7
: Run Time Environments
7.1 Source Language Issues
7.2 Storage organization
7.3 Storage allocation strategies
7.4 Parameter Passing
Chapter-8
: Code Generation
8.1 Issues in the design of a code generator
8.2 The Target Machine
8.3 Run-Time Storage Management
8.4 Basic blocks and Flow graphs
8.5 A Code generation algorithm
Chapter-9 : Code Optimization
9.1 Principle sources of optimization
Function preserving transformation
Common Sub expressions
Copy propagation
None
3
Compulsory
Class room lectures, laboratory practical work, group work and
presentation student centered learning approaches.
Project 30%
Mid-Exam- 30%
Final Exam 40%
A student is expected to attend a total of 75% or above attendance
to be eligible for course exam and to be graded.
1. John , Shelly and Roger Husst, computer studies : A first
course, Pitman publishing company, London, 1984.
2. Glyn Emery, elements of computer science, Pitman
publishing company, 1979.
94

3. Cullen Schaffer, Principles of computer science,


prentice hall international Inc, 1988
4. Roger S.Pressman, software engineering- a practitioners
approach, McGraw-Hill international edition, 1985
5. Richard M.Jones, Introduction to Pascal, CBS
publishers and distributors, 1984.
Course 3:

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

Department: Software Engineering


College/ Faculty/ School of Xx
Xx University
SENG351
Operating Systems
BSc in Software Engineering
3, System Software Development
TBA
TBA
7
TH
LAB
TUT
HS
3
3
2
2
Overview of Linux; the Linux file system; simple Linux commands &
text editors; managing processes; environment variables; shell
programming; GAWK

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

Chapter 2 Processes and Threads


2.1Processes
The process model, creation, termination & states
2.2. Threads
Model, usage & Implementation
2.3. Inter Process communication (IPC)
Race conditions
Critical regions
Mutual exclusion with busy waiting
Sleep & wakeup
Semaphores & mutexes
95

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

Installing red hat Linux

The gnome environment

Setting up user accounts The Linux file system

The hierarchical file system

Important directories in the file system

File permissions and ownership

Absolute and relative file names

Using on Line help

Simple Linux commands

Specifying options

96

Navigating the file system (CD, pwd)

Listing the contents of directories (Is)

Displaying the contents of text files (cat, more)

Creating directories (mkdir)

Moving & copying files/directories (mv,cp)

Deleting files/directories (rm, rmdir)

Searching files (Grep)

Wildcards

Piping & redirecting input/out put

Changing file permissions and ownership

(chmod, chown)

Linux text editors

The VI text editor

Managing processes (ps, kill)

Linux environment variables

Prerequisite

None

Semester

Course type

Compulsory

Teaching learning
methods

Class room lectures, laboratory practical work, group work and


presentation, student centered learning approaches.

Assessment/Evaluation
and grading system

Mid Exam 35%


Final Exam 50%
Practical Laboratory exam 15%

97

Attendance requirements
Text books/references

A student is expected to attend a total of 75% or above attendance to be


eligible for course exam and to be graded.
Text
1. Andrew S. Tanenbaum, Modern Operating System (2nd
edition),Prentice Hall of India, 2001
References:
1. Davis W.S., Operating Systems: A Systematic View,
Addison Wesley Publications
2. Francis Literio, James Keogh, Linux Programming for
Dummies, Hungry Minds, Inc.

Course 4:

Department: Software Engineering


College/ Faculty/ School of Xx
Xx University
Course code
SENG 342
Course title
System Software
Degree Program
BSc in Software Engineering
Module Number and name
3, System Software Development
Module coordinator
TBA
Instructor
TBA
ECTS
5
Contact hours per week
TH
LAB
TUT
HS
2
3
2
1
Course objective and
To understand the relationship between system
competencies to be acquired
software and machine architecture.
To know the design and implementation of
assemblers
To know the design and implementation of linkers
and loaders.
To have an understanding of macro processors.
To have an understanding of system software
tools.
UNIT I
INTRODUCTION
Course description/course
System
software
and
machine architecture - The
contents
Simplified Instructional Computer (SIC) - Machine
architecture - Data and instruction formats - addressing
modes - instruction sets - I/O and programming.
UNIT II
ASSEMBLERS
Basic assembler functions - A simple SIC assembler Assembler algorithm and data structures - Machine
dependent assembler features - Instruction formats and
addressing modes - Program relocation - Machine
independent assembler features - Literals - Symbol98

defining statements - Expressions - One pass assemblers


and Multi pass assemblers - Implementation example MASM assembler.
UNIT III
LOADERS AND LINKERS
Basic loader functions - Design of an Absolute Loader - A
Simple Bootstrap Loader - Machine dependent loader
features - Relocation - Program Linking - Algorithm
and Data Structures for Linking Loader - Machineindependent loader features - Automatic Library Search Loader Options - Loader design options - Linkage Editors
- Dynamic Linking - Bootstrap Loaders - Implementation
example - MSDOS linker.
UNIT IV
MACRO PROCESSORS
Basic macro processor functions - Macro Definition and
Expansion - Macro Processor Algorithm and data
structures - Machine-independent macro processor
features - Concatenation of Macro Parameters Generation of Unique Labels - Conditional Macro
Expansion - Keyword Macro Parameters-Macro within
Macro-Implementation example - MASM Macro
Processor - ANSI C Macro language.
UNIT V
SYSTEM SOFTWARE TOOLS
Text editors - Overview of the Editing Process - User
Interface - Editor Structure. - Interactive debugging
systems - Debugging functions and capabilities Relationship with other parts of the system - UserInterface Criteria.
Prerequisite
Semester
Course type
Teaching learning methods
Assessment/Evaluation and
grading system
Attendance requirements
Text books/References

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.

John J. Donovan "Systems Programming", Tata


McGraw-Hill Edition.

Course 5:

Department: Software Engineering


College/ Faculty/ School of Xx
Xx University
Course code
SENG 376
Course title
Windows Architecture and Programming
Degree Program
BSc in Software Engineering
Module Number and name 3, System Software Development
Module coordinator
TBA
Instructor
TBA
ECTS
5
Contact hours per week
TH
LAB
TUT
HS
2
3
2
1
Course objective and
Able to understand the Windows Operating system
competencies to be
Able to develop windows application
acquired
Able to understand the Operating System Concepts
Course description/course
Course Description:
contents
Knowledge of event driven programming,
traditional architecture, windows architecture, difference
between windows and DOS, User interfaces, MFC.
Introduction:
The difference between DOS and Windows
programs, traditional and windows architecture, types, names,
event driven programming, WinMain() function, the message
loop, the WinProc() function.
User Interface:
Windows messages, concepts of device context,
GDI objects Begin paint(), End paint() and Textout
functions.
Menus Disk files- common dialogs print
common dialog dialog boxes- resource script files- creation
of a menu resource, creation of a dialog resource, text inputscroll bars Icons and Cursors- windows memory
management.
Introduction to MFC:
Windows operating system and MFC MFC
and windows OS interaction- windows programming using
MFC.
100

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

Windows models- windows structure- protected


subsystems- structures exception handling- object managerfile based model- NT based model- object structure, object
handles, object methods, protecting objects.
Process- threads- multitasking and processingmulti- threading- thread object-process structure- environment
subsystem requirements- native process structure.
Win32 subsystem- MS-DOS and 16 bit
windows API- Message passing with LPC facility- virtual
memory, managing memory, sharing memory, protecting
memory virtual memory implementation.
Kernel- kernel process and thread objects
scheduling priorities- context switching- Interrupt and
Exception building- system service dispatching- multiprocess
synchronization, overview of I/O system components.
None
3
Compulsory
Class room lectures, laboratory practical work, group work and
presentation student centered learning approaches.
Practical 30%
MID 30%
Final Exam 40%
A student is expected to attend a total of 75% or above
attendance to be eligible for course exam and to be graded.
Reference Books:
1. Robert Lafore, Windows Programming made easy,
Galgotia publications Pvt. Ltd, 1997
2. Shirley Wodtlke,. MFC C++ Classes, BPB
publications, 1997.
3. Michael J. Young, Windows programming with
Microsoft C++, Tech publications Pvt. Ltd, 1993
4. Helen Cluster, Inside Windows NT, Microsoft Press,
1998

Department: Software Engineering


College/ Faculty/ School of Xx
Xx University
SENG 3081
Website development
BSc in Software Engineering
SENG306, Web Technology

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

Chapter one Web page Development using HTML


Cascading style sheets
Introduction to XML
Chapter Six Scripting Languages
6.1 Introduction to Java Script
6.2 Arithmetic Statements
6.3 Control Structures
6.4 Functions
6.5 Arrays & Objects
6.6 Forms & Form Elements
6.7 String and Regular Expressions
1. Server Side Scripting
PHP
Beginning with PHP
The PHP Language
Processing Web Forms
Object-Oriented Programming with
PHP
Database processing using PHP
Web Security issues
Lab Course Content:
1. Website Design tools
a. Dreamweaver
b. Fireworks
c. Flash
2. Client Side Scripting (CSS, JavaScript, Applet )
3. Installing and Configuring Apache Server and MySql
4. Installing and Configuring PHP for Apache Server
5. Server Side Scripting
6. Advanced Markup languages
7. Web Security

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

A student is expected to attend a total of 75% or above attendance to be


eligible for course exam and to be graded.
Text:
1. Andi Gutmans, Stig Saether Bakkens, Derick Rethans,
PHP 6 Power Programming, Prentice Hall.
Reference Books:
1. Internets & World Wide Web How To Program, Third
Ed.,Author: Deitel, Deitel, and Goldberg,Publisher: Pearson
Education, 2004.
2. L.A. Ulrich. Web Design Virtual Classroom. Osborn.2001
3. Raj Kamal. Internet and web technologies. Tata MacGrawHill. 2002
4. www.php.net
5. www.w3c.org
6. www.apache.org
7. www.mysql.com
Text & Reference Books:
1. Donna Baker, HTML Complete Course, Hungry Minds Inc.
USA.
2. Sybex, XML Complete, Sybex Publisher
3. Douglas E.Comer, Internet Book Everything you need to
know about Computer Networking, Prentice Hall of India.
4. Nicolaus C. Zakas, Java Script for Web Developers.

103

18. Approval Section.

Name _________________________________. Date.___________________________

Signature_________________________________.

104

You might also like