National Level Harmonized SE Curriculum
National Level Harmonized SE Curriculum
October, 2021
Tepi, Ethiopia
Imprint
First Edition: October, 2021
Revised By
School of Computing and Informatics
Endorsement:
This curriculum document is endorsed by:
Degree to be awarded by: Mizan Tepi University, Subjected to the Approval of the Senate
Fees/Charges: Cost-sharing/Sponsor
Table of Contents
EXECUTIVE SUMMARY ............................................................................................................. i
1. Introduction ............................................................................................................................. 1
Objectives ................................................................................................................................... 7
ii
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
iii
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
List of Tables:
Table 1: Grading System ............................................................................................................. 12
Table 2: Course categories with their corresponding course number ........................................... 14
Table 3: List of compulsory courses ............................................................................................. 16
Table 4: List of common courses .................................................................................................. 17
Table 5: List of supportive courses ............................................................................................... 18
Table 6: List of Elective courses ................................................................................................... 18
Table 7: Summary of the total credit hours and ECTS for each course category ......................... 18
Table 8: Year I, Semester I ........................................................................................................... 24
Table 9: Year I, Semester II .......................................................................................................... 24
Table 10: Year II, Semester I ........................................................................................................ 24
Table 11: Year II, Semester II....................................................................................................... 25
Table 12: Year III, Semester I....................................................................................................... 25
Table 13: Year III, Semester II ..................................................................................................... 25
Table 14: Year IV, Semester I ...................................................................................................... 25
Table 15: Year IV, Semester II ..................................................................................................... 25
Table 16: Year V, Semester I ........................................................................................................ 26
Table 17: Year V, Semester II ...................................................................................................... 26
iv
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
1. Introduction
1.1. Background of the Mizan Tepi University
Mizan–Tepi University is a tertiary institution situated in Mizan Teferi. It is one of the public
universities in the country. Mizan Tepi University was inaugurated in May 2006, when Mizan -
Teferi Agricultural TVET College became the founding center of the university. Currently, Mizan
Tepi University comprises of Six Colleges and two Schools. The main campus is headquartered
in the Bench Sheko Zone, Mizan Aman town, which is situated at 583 km from the national capital
Addis Ababa. Tepi branch campus is located around 50 km from main campus in Tepi town and
the third campus is located at Aman.
1
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
To make the above tasks more practical, software engineering plays vital role. It is a discipline or
field which involves with requirement capturing, analysis, specification, design, construction and
verification of large software systems. Generally it offers us well proven tools and techniques that
facilitates the production of complex software systems on top of the principles of computer science
Although the field of Software Engineering was established more than 40 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 Science and 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. The ministry can effectively support GTP reform to ensure sustainable
development, poverty eradication, human resource development and capacity development
through well-developed information communication technology involvement. In Ethiopia almost
more than 10 university are giving software engineering program for student. Hence, the School
of Computing and Informatics is planning to launch a new program in Software Engineering
aiming to produce skilled graduates in the field of Software Engineering to satisfy the demand of
manpower in the country.
The Software Engineering program has been planned to commence from 2022 academic year, with
a target of admitting students in the regular, Weekend and summer programs under the proposed
Department of Software Engineering in the school of Computing and Informatics. This degree
program is a Five years 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 entry-level positions, including software developer, software tester,
web application developer, software engineer, software applications analyst, software project
manager, software tester and web applications analyst.
2
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Mission of the Course: Based on the vision Mizan Tepi University strives to provide quality
education in both the theoretical and applied foundation of Computer Science and train the students
to effectively apply this education to solve real world problems thus amplifying their potential for
lifelong high quality careers and give them a competitive advantage in the ever changing and
challenging global work environment. The mission of the Software Engineering program is to
supply local and international markets with highly qualified competitive IT personnel as well as
prepare students for postgraduate studies and exploring research opportunities. In software
Eengineering program, we aim to ensure that after the completion of the academic programme, the
graduates are fully equipped with knowledge required for their future careers, their self-
improvement, and serving their communities and nation
3
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
framework, allowing systems to be both rich in functionality and capabilities, while being adaptive
to context and control.
Since modern industries and business systems are based on the application of digital technologies,
software systems are the driving force behind many exciting developments in a service-oriented
digital economy. The advent of Software Engineering is a natural result of the continuous quest
for software quality and reusability, and the maturing of the software development industry. As
software continues to transform society in dramatic and powerful ways, we must improve our
ability to reliably develop high-quality systems. From early incarnations as just an idea or set of
requirements to when software is actually built, deployed and customized in the field, many
challenges exist across the lifecycle that make creating software still a non-trivial endeavor today.
This undergraduate program in Software Engineering focuses on the best practices, current
methodologies, emerging technologies, and their applications in various industries. It teaches the
principles of modern software engineering, together with the tools, methods and techniques that
support their application. The program emphasizes key skills in requirements analysis,
architectural design, and construction that are needed in successful software project development
and management.
A preliminary observation and survey conducted by the School of Computing and Informatics for
proposing the Software Engineering Department shows most of the existing industries in Ethiopia
are based on manual systems and services, with very limited automated or semi-automated
components. In order to automate and modernize these traditional industries, the availability of
well-qualified software engineers is crucial. Currently, there is an increasing demand for software
engineers who can operate under very dynamic and challenging environments. To fill the gap in
qualified software engineers and information system developers, it becomes necessary to open an
accredited BSc Degree program in Software Engineering at Mizan Tepi University (MTU). In line
with the future strategic plan of MTU, the School of Computing and Informatics has developed a
proposal to introduce the Software Engineering program at undergraduate level in order to meet
the increasing demand of industries and business institutions. In particular, the School of
Computing and Informatics proposed Department of Software Engineering and developed a
curriculum for undergraduate program, which aims at producing well-skilled engineers and
professionals in the field of Software Engineering. The curriculum encompasses all important
aspects of software engineering, including requirements engineering, software architecture and
4
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
design, software construction, software testing and quality assurance, software maintenance, and
software project management.
Software engineers in Ethiopia can be engaged in professional works across a variety of industries
from tech startups and healthcare organizations to departments within the government and more.
Graduates of this program may pursue career opportunities in a variety of entry-level positions,
including Software Requirement Engineer, Software Architect or Designer, System Analyst,
software developer, software tester, web application developer, software applications analyst,
software project manager and web applications analyst As the minimum credential for many
positions in the field, earning a bachelor’s degree in software engineering can lead to greater
employment opportunities. A bachelor’s is also ideal for candidates who are considering pursuing
a master’s or a doctoral degree. Many specialized research and teaching positions require advanced
degrees, and earning a bachelor’s degree in software engineering is the first step toward graduate
and postgraduate study.
In Ethiopia approximately there are 51 universities and all these universities are offering
undergraduate courses in Computer Science, Information Technology and Information Systems.
Currently at the national level there are very few Institutions which are offering this program in
the domain as Bachelor of Science in Software Engineering. There is a great demand for the
teachers to teach in the old and new universities followed by private business sector and Industries.
Hence this said program (B.Sc. in Software Engineering) is vital and a must in the present scenario
for the national development.
5
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
2. Structure of Program
2.1. Objectives of the Program
The main objective of this program is to educate students and to train them to address the complex
and integrated problems in the area of Software Engineering both academia and society based.
Further, the program aims to strengthen the educational, training and research capacities in the
region. This course helps to provide in-depth conceptual understanding and knowledge of the best
technology in Software Programming area. Exhibiting understanding and ability to apply software
engineering practices in their future careers, by possessing the basic professional skills and
knowledge to develop and innovate in developing high-quality software solutions in various
6
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
environments. The curriculum will be focus on enriching the employability skills of an individual
in context to the software industry.
Objectives
To introduce ethical and professional issues and to explain why they are of concern to
software engineers.
Demonstrates agility in solving software and system challenges with a comprehensive set
of skills appropriate to the needs of the dynamic global computing-based society.
Capable of diverse team and organizational leadership in computing project settings.
Demonstrates ethical principles in the application of computing-based solutions to societal
and organizational problems.
Continually acquires skills and knowledge to support a professional pathway, including
(but not limited to) communication, analytic, and technical skills.
7
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Have strong analytical and critical thinking skills, which help them understand complex
software and related systems.
8
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
The requirements for admission to the program are as per the Ministry of Education & Universities
admission requirement. Hence, admission to the undergraduate programs of Software Engineering
shall be based on the completion of the preparatory and obtaining the necessary pass marks in the
Ethiopian Higher Education Entrance Examination (EHEE) or equivalent academic achievements
from foreign countries as well as obtaining pass mark in the entrance examination to be set by the
Ministry and/ or MTU. Moreover, the student may require to take entrance exam set by the
department and obtain pass mark.
The admission requirements for the undergraduate continuing education program are as stated
according to the senate legislation. However, admission to the undergraduate continuing education
program of MTU shall be based on obtaining the necessary pass mark in the MTU entrance
examination.
9
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Six years of study are required to complete the program in regular and continuing education
program delivery respectively. However, if the program is not completed and extended for some
reason; the extension for completing the program does exceed twice the normal duration of study.
10
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
A student shall not score less than 50% in each lecture, laboratory/practice and tutorial
assessments. If a student scores less than 50%, the instructor shall give additional
assignment. However, if a student fails to score the pass mark according to the fixed scale,
the instructor shall convert the grade into “F”.
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 3 assessments.
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 3 assessments.
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 six assessments.
For a course to be delivered by lecture method only; 50% shall be assessed by continuous
assessment constituting four assessments; while 50% shall be allotted for final exam
11
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
In English
12
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
In Amharic
13
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
14
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
15
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
16
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Cr. Pre-
No Course Title Course No ECTS
hrs. request
Communicative English Language None
1 FLEn1011 3 5
Skills I
2 Introduction to emerging EmTe1012 3 5 None
3 General Psychology Psch1011 3 5 None
4 Critical Thinking LoCT1011 3 5 None
5 Physical Fitness SpSc1011 P/F(2) P/F(0)/(3) None
6 Geography of Ethiopia and the Horn GeES1011 3 5 None
Communicative English Language Enla1011
7 FLEn1012 3 5
Skills II
8 Social Anthropology Anth1012 2 4 None
9 Moral and Civic Education MCiE1012 2 4 None
10 Economics ECON2011 3 5 None
11 Inclusiveness Incl2011 2 4 None
Entrepreneurship & Business None
12 MGMT1012 3 5
Development
13 Mathematics for natural science Math 1011 3 5 None
14 Global trends GITr 1012 2 4 None
Total 37 64
17
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
15 25
Total
Table 6: List of Elective courses
Cr.
No Course Title (Course Name) Course Code ECTS
Hrs
1. Software agent SEng5121 3 5
2. Software risk management SEng5123 3 5
3. Software process improvement SEng5125 3 5
4. Event driven programming SEng5127 3 5
5. Web service SEng5129 3 5
6. Distributed database system SEng5122 3 5
7. Parallel computing SEng5124 3 5
8. Design and analysis of algorithm SEng5126 3 5
9. Social network SEng5128 3 5
10. Software component design SEng512a 3 5
Total 6 10
Table 7: Summary of the total credit hours and ECTS for each course category
No Course Category Cr. Hr. ECTS
1 Compulsory 124 210
2 Elective 6 10
3 Supportive 15 25
4 Common 37 64
Total 182 309
18
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
19
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Module Module Course Course Title Status C Lec Lab Tut H/S
No Title No P
03 Hardware, and Computer
Systems SEng203 Organization
Compulsory 5 2 0 3 5
Programming 1 and
Architecture
Seng2032 Operating Compulsory
Systems and
7 3 3 1 7
System
Programming
Microprocessor Compulsory
Seng303 1 5 2 3 0 5
and Assembly
Language
Seng3032 Principles of Compulsory
Compiler 5 2 3 0 5
Design
Real-time and Compulsory
Seng403 1 5 2 0 3 5
Embedded
System
Total 27 11 9 7 27
Module Module Course Course Title Status CP Lec Lab Tut H/S
No Title No
04 Database Seng2041 Fundamentals of Compulsory 5 2 3 0 5
Management Database Systems
Systems Advanced Database Compulsory
Seng2042 5 2 3 0 5
Systems
Total 10 4 6 0 10
20
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Module Module Course Course Title Status CP Lec Lab Tut H/S
No Title No
05 Software Seng205 1 Fundamentals of Compulsory 2 0 3 5
Engineering Software 5
Core Engineering
Seng305 Requirements Compulsory 3 0 3 6
6
1 Engineering
Seng305 2 Software Compulsory 3 3 0 6
6
Architecture and
Design
Software Compulsory
Seng305 3 Engineering Tools
5 2 3 0 5
and
Practices
Software Testing Compulsory
Seng405 1 and Quality
6 3 3 0 6
Assurance
Module Module Course Course Title Status CP Lec Lab Tut H/S
No Title No
06 Advanced Object Oriented Compulsory 2 3 0 5
Seng3061 5
Programming Programming
Seng3062 Advanced Compulsory 2 3 0 5
5
programming
Seng4061 Mobile Compulsory 5 2 3 0 5
Application
Development
Total 15 6 9 0 15
21
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Module Module Course Course Title Status CP Lec Lab Tut H/S
No Title No
07 Computer Seng207 Fundamental of Compulsory 2 3 0 5
5
Networking 2 Networking
and Seng307 Web Design and Compulsory
Security 5 2 3 0 5
1 Programming
Fundamental of Compulsory
Seng307 2 5 2 3 0 5
Cloud Computing
and IoT
Seng407 Fundamental of Compulsory 5 2 3 0 5
1 Distributed Systems
Seng307 Fundamental of Compulsory 5 2 3 0 5
3 Security
Total 25 10 15 0 25
Module Module Course Course Title Status CP Lec Lab Tut H/S
No Title No
08 Graphics Human Computer Compulsory
Seng5082 5 2 0 3 5
and Human Interaction
Computer Seng5081 Computer Graphics and Compulsory 3 3 1 7
Interaction Multimedia 7
Total 12 5 3 4 12
Module Module Course Course Title Status CP Lec Lab Tut H/S
No Title No
09 AI, Seng309 Fundamental of Compulsory
5 2 3 0 5
Machine 2 Machine Learning
Learning, Fundamental of Compulsory
Seng409 1 5 2 3 0 5
Big Data Artificial
Intelligence
Fundamental of Big Compulsory
Seng509 2 Data Analytics and
5 2 3 0 5
Business
Intelligence
Total 15 6 19 0 15
Module Module Course Course Title Status CP Lec Lab Tut H/S
No Title No
10 SEng4102 Holistic exam Compulsory 2 0 2 0 2
Seng4104 Internship Compulsory 28 0 28 0 28
Total 30 0 30 0 30
22
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Module Module Course Course Title Status CP Lec Lab Tut H/S
No Title No
11 Research and Seng3112 Software Project Compulsory 5 2 0 3 5
Project Works Management
Selected Topics in Compulsory
SEng51122 Software 3 2 0 1 3
Engineering
SEng511 Project I Compulsory 5 0 0 5 5
1
Seng511 Project II Compulsory 5 0 0 5 5
4
Total 18 4 0 14 18
23
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Year I Semester I
Course Course Title Cr.Hr. ECTS Lec.Hr. Lab Tut.Hr. Home Prerequisite Delivery
Code Study
Math1011 Basic 3 5 3 0 2 5 none parallel
Mathematics for
Natural Science
Phys1011 General Physics 3 5 3 0 2 5 none parallel
Psyc1011 General 3 5 3 0 2 5 none parallel
Psychology
SpSc1011 Physical Fitness 2 3 0 2 0 2 none parallel
GeES1011 Geography of 3 5 3 0 2 5 none parallel
Ethiopia and the
Horn
EnLa1011 Communicative 3 5 3 0 2 5 none parallel
English I
LoCT1011 Critical Thinking 3 5 3 0 2 5 none parallel
Total 20 33 18 2 12 32
Year I Semester II
Course Course Title Cr.Hr. ECTS Lec.Hr. Lab Tut.Hr. Home Prerequisite Delivery
Code Study
EmTe1012 Introduction to 3 5 3 0 2 5 none parallel
emerging
Technology
CoSc1012 Computer 3 5 2 3 0 5 none parallel
Programming-I
Anth1012 Anthropology 2 4 2 0 2 4 none parallel
24
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Year II Semester I
Course Course Title Cr.Hr. ECTS Lec.Hr. Lab Tut.Hr. Home Prerequisite Delivery
Code Study
SEng2021 Computer 3 5 2 3 0 5 CoSc1012 parallel
Programming-II
SEng2041 Fundamental of 3 5 2 3 0 5 none parallel
Database Sys.
SEng2051 Fundamental of 4 7 2 0 3 5 none parallel
Software
Engineering
GlTr2011 Global Trend 2 4 2 0 2 4 none parallel
Year II Semester II
Course Course Title Cr.Hr. ECTS Lec.Hr. Lab Tut.Hr. Home Prerequisite Delivery
Code Study
SEng2022 Data Structure 3 5 2 3 0 5 SEng2021 parallel
and Algorithm
Incl2012 Inclusiveness 3 5 2 0 2 4 none parallel
SEng2032 Operating 4 7 3 3 1 7 SEng2031 parallel
System
Math2012 Discrete 3 5 3 0 2 5 none parallel
Mathematics’
SEng2042 Advanced 3 5 2 3 0 5 SEng2041 parallel
Database System
SEng2072 Fundamental of 4 7 2 3 0 5 none parallel
Networking
Total 20 34 14 12 5 31
25
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Course Course Title Cr.Hr. ECTS Lec.Hr. Lab Tut.Hr. Home Prerequisite Delivery
Code Study
SEng3031 Microprocessor 3 5 2 3 0 5 none parallel
and Assembly
SEng3061 Object-Oriented 3 5 2 3 0 5 SEng2021 parallel
Programming
SEng3051 Requirement 3 5 3 0 3 6 none parallel
Engineering
SEng3053 Software 3 5 2 3 0 5 none parallel
Engineering Tool
and Practice
SEng3071 Web Design and 4 7 2 3 0 5 none parallel
programming
Stat3011 Probability and 3 5 2 0 2 4 none parallel
Statics
Total 19 32 13 12 5 30
Course Course Title Cr.Hr. ECTS Lec.Hr. Lab Tut.Hr. Home Prerequisite Delivery
Code Study
SEng3052 Software 3 5 3 3 0 6 SEng2051 parallel
Architecture and
Design
SEng3062 Advanced 3 5 2 3 0 5 SEng3061 parallel
Programming
SEng3072 Cloud 3 5 2 3 0 5 none parallel
Computing
SEng3032 Compiler Design 3 5 2 3 0 5 SEng3031 parallel
26
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Year IV Semester I
Course Course Title Cr.Hr. ECTS Lec.Hr. Lab Tut.Hr. Home Prerequisite Delivery
Code Study
SEng4111 Software Project 3 5 2 0 3 5 SEng3051 parallel
Management
SEng4071 Distributed 3 5 2 3 0 5 SEng3061 parallel
System
SEng4031 Real Time and 3 5 2 0 3 5 SEng3061 parallel
Embedded
System
SEng4051 Software testing 4 7 3 3 0 6 SEng3051 parallel
and Quality
Assurance
SEng4061 Mobile 3 5 2 3 0 5 SEng3062 parallel
Application
Development
SEng4091 Artificial 3 5 2 3 0 5 SEng3061 parallel
Intelligence
Total 19 32 13 12 6 31
Year IV Semester II
Course Course Title Cr.Hr. ECTS Lec.Hr. Lab Tut.Hr. Home Prerequisite Delivery
Code Study
SEng4102 Holistic Exam 1 2 0 2 0 2 All course parallel
up to 4th
year 1st sem.
SEng4104 Internship(IndustrialPractice) 17 28 0 28 0 28 SEng4102 parallel
Total 18 30 0 30 0 30
Year V Semester I
Course Course Title Cr.Hr. ECTS Lec.Hr. Lab Tut.Hr. Home Prerequisite Delivery
Code Study
SEng5051 Software 3 5 3 0 3 6 SEng4051 parallel
Evolution and
Maintenance
SEng5053 Software Metrics 3 5 3 0 2 5 none parallel
27
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Year V Semester II
Course Course Title Cr.Hr. ECTS Lec.Hr. Lab Tut.Hr. Home Prerequisite Delivery
Code Study
SEng5082 Human 3 5 2 0 3 5 SEng5081 parallel
Computer
Interaction
SEng5092 Fundamental of 3 5 2 3 0 5 SEng2041 parallel
Big Data
SEng5112 Selected Topic in 2 4 2 0 1 3 All core parallel
Software courses
Engineering
SEng5114 Project Phase-II 4 7 0 0 5 5 SEng5111 parallel
28
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
29
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Course Objectives/ After completion of the course, students will be able to:
Learning apply propositional logic in reasoning,
Outcomes use quantifiers in open propositions in mathematical logic
understand concepts of sets and set operations,
understand the fundamental properties of real numbers use mathematical
induction in proofs,
analyze least upper bound and greatest lower bound,
understand the fundamental properties of complex numbers
express complex numbers in polar representation
explain different types of functions, their inverses and their graphs
evaluate zeros of polynomials
Understand basic properties of logarithmic, exponential, hyperbolic, and
trigonometric functions
Understand basic concept of analytic geometry
derive equations of conic sections
Course Contents
Topics and
Duration
1-2 Chapter 1: Propositional logic and Set Theory (14 hrs)
1.1. Definition and examples of proposition
1.1.1 Logical connectives 1.1.2Compound (or complex) propositions
1.1.3 Tautology and contradiction
1.1.4 Open proposition and quantifiers
1.2. Set theory
1.2.1 The concept of a set
1.2.2 Description of sets
1.2.3. Set operations and Venn diagrams
3-5 Chapter 2: The real and complex number systems (14 hrs)
2.1 The real number system
2.1.1. The natural numbers, Principle of mathematical induction and the Well
Ordering Principle
2.1.2. The integers, rational numbers and real numbers.
2.1.3. Upper bound and lower bound: least upper bound and greatest lower bound;
Completeness property of real numbers
2.2. Complex number system
2.2.1. Definition of complex numbers and their operations
2.2.2. Polar representation of complex numbers and the De-Moivere’s formula
2.2.3. Extraction of roots
6-9 Chapter 3: Functions (14 hrs)
3.1. Review of relations and functions
3.2. Real-valued functions and their properties
3.3. Types of functions and inverse of a function
30
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
31
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
32
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
33
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
34
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
35
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
36
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
37
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
38
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
39
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
40
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
41
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
42
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
class activities (questions), doing assignments and submitting them on time are
indispensable vehicles for the successful accomplishment of the course. Moreover,
mobile cell phones are to be switched off so as to avoid distractions in the teaching
learning activities including examination time. Lastly, but not least, note that all
issues discussed in the class will be incorporated in quiz, tests or final exams.
Responsibilities of the Instructor
Planning learning activities needed for the successful accomplishment and
realization of the course objectives
Running classes according to the official instructional schedule for successful
coverage of the designed course contents within the planned instructional time
Regularly planning assessment activities and designing relevant (reliable, valid,
and usable) assessment tools to realize the objectives of continuous assessment
43
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Peace Corps (2001). Life skills manual. Washington, DC: Author. Skills You
need (2018). Personal development. Author. .
Sultmann, B. & Burtpn, T. (2003). People skills: Guiding to effective
interpersonal behavior. Bowen Hills, Australis: Australian Academic Press.
44
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Recognize the culture area of peoples of Ethiopia and the forms of interaction
developed over time among themselves; and
Develop broader views and skills to deal with people from a wide variety of
socioeconomic and cultural backgrounds.
Course Contents and Time Allocation
Topics Duration
1. Introducing Anthropology and its Subjects Two & ½ Weeks- 7.5
1.1. What is anthropology – a Mirror for Humanity? Hrs Lecture
Sketching the subject matter, scope and concerns of anthropology
Anthropological imagination: asking questions and seeing the world
anthropologically. Q- What does it mean by using
the anthropological lens when looking at the world?
Defining Features of Anthropology- holism, relativism & comparative
perspectives
Methods of Research in anthropology: ethnography & ethnographic
methods
1.2. Sub-fields of Anthropology: Four Mirrors for Understanding Humanity
1.3. The relation between anthropology and other disciplines
2. Human Culture and Ties that Connect Three Weeks- 9 Hrs
2.1. Conceptualizing Culture: What Culture Is and What Culture Isn’t? Lecture
2.2. Characteristics features of culture: what differentiates culture from other
traditions?
2.3. Aspects of Culture –Material & Non-material (values, beliefs & norms)
2.4. Levels of culture: universality, generality and particularity (cultural
diversity)
2.5. Ethnocentrism, Cultural relativism, and human rights
Discussion- Debating cultural relativism: Human rights law and the
demonization of culture and anthropology along the way
2.6. Cultural Change: what is cultural change?
Cultural Diffusion versus Cultural Assimilation
Innovation
Discussion - Contesting culture as sharply bounded versus unbounded
‘cultural flows’ or as ‘fields of discourse’ in the context of globalization.
Ties that Connect: Marriage, Family and Kinship
Marriage -rules, functions and forms of Marriage Family -types and
functions of Family
Q. How families and marriage differ in different societies?
45
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
46
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
47
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Assessment and Based on the progressive understandings of the course, students will be evaluated
Evaluation continuously through both non-graded assignments/activities, like (reading
Criteria assignments) and graded assignments/activities and assessments including class
discussion & participation, Test, Term Paper & presentation, Home Taken
Exam/case studies and Final Exam.
References Asmarom Legesse (2006). Oromo Democracy: an Indigenous African Political
System. The Red Sea Press, Inc.
Cameron, M. Smith and Evan T. Davies (2008). Anthropology for Dummies.
Wiley Publishing, Inc., Indianapolis, Indiana.
Clifored Geertz . (1973). The Interpretation of Cultures. A division of Harper
Collins Publishers.
Donald Donham . (1986). Marxist Modern. The Ethnographic History of Marxist
Ethiopia.
Donald N. Levine. (1974). Greater Ethiopia: The Evolution of A Multiethnic
Society. Chicago & London., University of Chicago.
Dunif-Hattis and Howard C. (1992). Anthropology: Understanding Human
Adaptation. New York: Harper Collins, Inc.
Eriksen, T. H. (2001). Small Places, larger Issues: An introduction to social and
cultural anthropology. London: Pluto Press.
Eriksen, T. H. (2004). What is anthropology? London: Pluto Press.
Eriksen, T. Hylland. (2002). Ethnicity and Nationalism. London; Pluto Press.
Eriksen, T.H. and Nielsen, F.S. (2001). A History of Anthropology. London: Pluto
Press.
Hallpike, Christopher R. (1972). The Konso of Ethiopia: A Study of the Value of
a Cushitic People. Oxford: Clarendon Press.
Hamer, John. (1970). TheSidama Generational Class Cycles: A Political
Geronotocracy. Africa 40,I (Jan,1970): 50-70.
13. Haviland, WA, (1999).Cultural Anthropology (9th ed.). Fort Worth: Harcourt
and Brace College Pub.
14. Kottak, C. P. (2004) – Anthropology: the Exploration of Human Diversity
(10th ed.). McGraw Hill, New York.
15. Lavenda, R. and Emily S. (2015). Anthropology. What Does It Mean to Be
Human?. (3rded.). Oxford. Oxford University Press.
16. Pankhurst. R.(2001). Historic Images of Ethiopia. Shamans Books. Addis
Ababa, Ethiopia.
17. Richard Jenkins. (2006). Rethinking Ethnicity. London Sage Publication.
18. Rosman, A., Rubel, P.G. and Weisgrau, M. (2009). The Tapestry of Culture:
an Introduction to Social Anthropology. Lanham: Rowman and Little field.
19. Scupin and DeCorse (1988). Anthropology: A Global Perspective (2nd ed.).
New Jersey: Prentice Hall.
20. Shack, William S. (1966). The Gurage: A People of the Enset Culture.
London: Oxford University Press.
21. Triulzi et al. (2002). Remapping Ethiopia Easer African Studies:. Addis
Ababa: AAU
48
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
49
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
50
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
51
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
References 1. Serway, R. A. and Vuille, C., 2018, College Physics, 11th ed.,
Cengage Learning, Boston, USA
2. University Physics with Modern Physics by Young, freedman and
Lewis Ford
3. Physics for Scientists and Engineers with Modern Physics by
Douglas C. Giancoli
4. Fundamentals of physics by David Halliday, Robert Resnick and
Gearl Walker
5. College Physics by Hugh D. Young Sears Zemansky, 9th edition
52
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
53
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
market structures. The second major part of the course will discuss elements of
macroeconomics such as macroeconomic goals, national income account and its
measurement, macroeconomic problems and policy instruments. In offering the
course, the real contexts Ethiopia will be thoroughly considered.
General The course will introduce students to the fundamental economic concepts and
Objective principles.
Specific This course is aimed at:
Objectives of Describing the major economic agents and their respective roles and objectives,
the Course
Introducing the concepts of demand and supply and their interactions.
Introducing students to the neoclassical theory of consumer preferences and utility
maximization approaches,
Discuss short- run behavior of production and the related cost structure,
Introduce the different market structures and their real-world applications, and
Equipping students with macroeconomic goals, national income accounting,
economic problems and policy instruments in light Ethiopian context.
Expected After completing introduction to economics, students will be able to:
Learning Describe the major economic agents and their corresponding roles and objectives;
Outcomes Understand the concepts of demand and supply and their interactions;
Explain the objective functions of consumers and producers’ behaviour in the
short run,
Differentiate the various types of market structures,
Understand the fundamental macroeconomic concepts, problems and policy
instruments in the context of Ethiopia.
Units and content
Lecture Topic & Sub Topics of the Course
Chapter One: Introduction
6 Hours 1. Introduction
1.1. Definition and Meaning of Economics
1.2. Rationale of Economics
1.3. Scope and methods of economic analysis
1.3.1. Micro and macro economics
1.3.2. Positive and normative economics
1.3.3. Inductive and deductive reasoning in economics.
1.4. Scarcity, choice, opportunity cost and production possibilities frontier
1.5. Basic economic questions,
1.6. Economic systems
1.7. Decision making units and the circular flow model
Chapter Two: Theory of Demand and Supply
8 Hours 2. Theory of Demand and Supply
2.1. Theory of Demand
2.1.1. Demand function, demand schedule and demand curve
54
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
55
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
56
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
o Cheating: students must do their own work and should not copy answers from
someone else.
o Acts and mannerisms: When students are in class, they are strictly forbidden
from chewing gum, consuming any addictive substances, listening to recorders
or CD players, or being involved in acts that interrupt the normal teaching-
learning process. Besides, students are required to switch off their cell phones
before class and exam sessions. Students who attempt to disobey these rules and
regulations will be subject to disciplinary measures accordingly to the Senate
Legislations of the University.
Commitments o Preparedness: students must come to class prepared by bringing the appropriate
of instructor & materials like handouts, worksheets, exercises given, text books and assignments.
students Students must plan their own learning through reading various course related
materials and chapters in books. They are expected to work a lot individually to
meet the requirement of the course. They have to use their time for group work
and home study effectively.
o Participation: students are expected make active participation during class
sessions.
o Coordination: instructors shall play a pivotal role in facilitating the teaching and
learning processes both in the class room and outside the class rooms.
Readings and 1. A. Koutsoyiannis, Modern Microeconomics
texts 2. D.N.Dwivedi, 1997, Micro Economic Theory, 3rd edition., Vikas Publishing
3. R.S. Pindyck& D.L. Rubinfeld, Microeconomics.
4. Hal R. Varian, Intermediate Microeconomics: A Modern Approach, 6th edition.
5. C.L.Cole, Micro Economics: A Contemporary Approach.
6. Ferguson & Gould’s, 1989, Microeconomic Theory, 6th edition.
7. N. Gregory Mankiw, 2007, Macroeconomics, 4th edition.
8. P. Aghion and P. Howitt ,2009, The Economics of Growth, The MIT Press. 9. A.
B. Abel and B.S. Bernanke, 2017, Macroeconomics, 9th edition, Pearson.
10. Ayele Kuris, Introduction to Economics, 2001.
11. Begg, Fisher &Dornbusch, 2005, Macroeconomics, 8th Ed.
12. Liberman, Marc and Hill, Robert E, 2005, Introduction to Economics 2nd Ed.
13. Richard E. Carmichael, 2006, Economics for Everyone: An introduction to
Economics.
57
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
58
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Course Contents
Week Topics and subtopics Course Objectives and Competences to
be Acquired
Week Chapter The Nature of Entrepreneurship After completing this chapter, students
1&2 1 1.1. Definition and philosophy of will be able to:
Entrepreneurship Vs Define the term entrepreneurship and
Entrepreneurs entrepreneur
1.1.1. Historical origin of Identify types of entrepreneur
entrepreneurship Recognize the role of
1.2. Type of Entrepreneurs entrepreneurship in the economy
1.3. Role within the economy 1.4. Analyze the entrepreneurial
Entrepreneurial Competence and competences
Environment Differentiate the term creativity and
1.4.1. Entrepreneurial Mindset innovation
1.4.2. Demographic Factors
1.4.3. Entrepreneurial
Environment
1.5. Entrepreneurship, creativity
and innovation
Activities
Teacher Activity Student Activity
Introducing objectives to the Define the term entrepreneurship and
students entrepreneur
Asking brain storming Discuss the role of entrepreneurship
questions within the economy
Giving brief introduction to Explain the entrepreneurial
the sub topics competences
Giving class room and home-
based works
Checking, evaluating, and
giving feedback to student’s
work
Summarizing the chapter
Delivery Methods Interactive Lecture, group discussion and
reflection
Assessment As per the academic regulation
Week Chapter Business Planning Course Objectives and Competences to
3,4&5 2 be Acquired
2.1. Opportunity Identification and After completing this chapter, students
Evaluation will be able to:
2.2. Business Idea Development Identify opportunity in the
2.2.1 Business Idea Identification environment
59
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
60
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Activities
Teaching Activity Student Activity
Introducing objectives to the Discuss the concept of business
students development
Asking brain storming Brainstorm the importance of SMEs
questions Discuss the failure and success factors
Giving brief introduction to of SMEs
the sub topics
Giving class room and home
based works
Checking, evaluating, and
giving feedback to student’s
work
Summarizing the chapter
Delivery Methods Interactive Lecture, group discussion and
reflection
Assessment As per the academic regulation
Week Chapter Product or Services Course Objectives and Competences to
8&9 4 Development be Acquired
4.1. The Concept of product or After completing this chapter, students
service technology will be able to:
4.2. Product or service Describe the concept of product and
development Process services
4.3 Legal and regulatory List product or service development
frameworks process
4.4 Intellectual Property Discuss the intellectual property
Protection/Product or service protection
protection
4.4.1 Patent 4.4.2 Trademarks
4.4.3 Copyrighting
Activities
Teacher Activity Student Activity
Introducing objectives to the Describe the concept of product and
students services
Asking brain storming Analyze Product or service process
questions Recognize legal and regulatory
Giving brief introduction to the
sub topics frameworks
Giving class room and home Describe intellectual property
based works protection
Checking, evaluating, and
giving feedback to student’s
work
61
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
62
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
63
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
64
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Tests/Quizzes: Learners have short quizzes and tests almost every unit. If they
miss the class or, are late for class, they will miss the quiz or test and no makeup
test or quizzes will be given for late arrivals. Therefore, learners are expected to
comply with the rules and the regulations of the University as well.
Cheating: Learners must do their own work and not copy and get answers from
someone else. When learners are in class, there are strictly forbidden from
chewing gum, consuming any addictive substances, listening to recorders or CD
players, or being involved in acts that interrupt the normal teaching-learning
process. Besides, learners are required to switch off their cell phones before
class and exam sessions. Learners who attempt to disobey these rules and
regulations will be subject to disciplinary measures accordingly to the Senate
Legislations of the University.
Reference & Texts Recommended Text book
Hirsh Robert. and D. and Peters MichaelP. “Entrepreneurship” Fifth Edition,
Tata McGraw Hill Edition, 2002.
Further References
Justin G. Longenecker and Carlos W. Moore, Small Business
Management 12th edition, College Division South Western Publishing
Co. Dallas, 2003
Holt David H. “Entrepreneurship – New venture Creation “Eastern
Economy Edition, 2000.
DonaldF.Kutatko and RichardM.Hodgetts, “Entrepreneurship: A
Cotemporary Approach” Fourth Edition.
HailayGebretinsae, Entrepreneurship and Small Business Management,
2nd Edition.
Hodgetts, RichardM.Kurakto, DonaldF. “Entrepreneurship: A
contemporary approach “. Fourth Edition, the Dryden Press, 1998.
65
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
enhancing peace, stability and creating inclusive society. Unfortunately, this has
not been the practice for the majority of people with disabilities and vulnerable
groups, due to unfavorable attitude, negligence, inaccessibility and exclusion
from all development endeavors. It is obvious that people with disabilities are
the large stand most disadvantaged minority in the world. They are about 15
percent of the global population (about one billion people), and 17.6 million in
Ethiopia, with most extended families including someone with a disability
(World Health Organization and World Bank and 2011). An exclusion practice
of this large number of persons with disabilities in Ethiopia is an indicator of
violating fundamental human rights that undermines their potential/ability to
contribute to poverty reduction and economic growth within their household,
their community and the country. It is clear that it is not impairment, but, the
exclusion practices that has contributed for insecurity (conflict), poverty
aggravation for persons with disabilities and vulnerabilities, that has highly
demanding inclusive practices. Exclusion practices of persons with disabilities
have a long history, affecting the life of people with disabilities and the society
at large. In the past and even today people have been discriminated due to their
disabilities.
Inclusiveness promotes effective developments through full participation of all
members of a population, people with disabilities and vulnerabilities, where all
are equal contributors of development and equitable beneficiaries. Through
inclusive practices, it is possible to identify and remove social and physical
barriers so that people with disabilities and vulnerabilities can participate and
benefit from all developments. Genuine inclusion of people with disabilities and
vulnerabilities allow of them to actively participate in development processes
and eliminate dependence syndrome, leads to broader benefits for families and
communities, reduces the impacts of poverty, and positively contributes to a
country ‘s economic growth, development and ultimately create inclusive
society. All stages of development processes of any organization should be
inclusive through creating equal access to education, health care services, work
and employment, social protection and all development center of human being.
Hence, in this course, the higher education students will learn how to assess,
understand and address the needs of persons with disabilities and vulnerabilities;
and provide relevant support or seek extra support from experts. He/she also
learns how to adapt and implementing services for an inclusive environment
that aimed to develop holistic development such as affective, cognitive and
psychosocial skills of the population with disabilities and vulnerabilities.
Identification and removal/management of environmental barriers would find a
crucial place in the course. The students learn how to give more attention and
support for persons with; hearing impairments, visual impairment, Deaf-Blind,
66
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
67
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
68
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
69
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
they have happened; and what consequences they may bring. In light of this, this
course is designed to equip students with a necessary knowledge and skill which
enable them to understand the political, economic and social dynamics of the global
system, how it works, its actors, its influence and ways to cope up global issues from
theoretical and practical point of view.
70
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Assess the overriding foreign policy guidelines of Ethiopia in the past and
present
Explore Ethiopia’s role in regional, continental and global institutions and affairs
COURSE CONTENTS AND SCHEDULES
Contact Chapters, Sections and Sub-sections
Hours
Chapter One: Understanding International Relations
1.1 Conceptualizing Nations, Nationalism and States
1.2 The Nature and Evolution of International Relations
1.3 Actors of International Relations - State Actors - Non-State Actors
06 Hours
71
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
72
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
73
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Browlie, Ian (2003). Principles of Public International Law. (6th ed.). New York:
Oxford University
Copson, Raymond w. (2007) The United States in Africa: Bush policy and beyond in
association with International African Institute Royal African Society of Social
Science Research Council, Zed Books: London
Crane, George T. and Abal Amawi (1997). The Theoretical evolution of International
Political Economy: A Reader (2nd Edition). Oxford University Press: New York.
Crawford, Robert (2000) Idealism and Realism in International Relations: Beyond the
Discipline. Routledge: USA
DeLombaerde, Philippe(ed.) (2008) Governing Regional Integration for
Development: Monitoring Experiences, Methods and Prospects. As hgate Publishing
Company: England
Demelo, Jaime and Arvind Panagariy(eds.) (1993)ANew Dimensions in Regional
Integration, Centre forEconomic PolicyResearch 1993, Cambridge University
Press:USA
Demelo, Jaime and ArvindPanagariy(eds.)(1993)ANew Dimensionsin Regional
Integration, Centre forEconomic PolicyResearch 1993, Cambridge University,
Press:USA
Der, James D. (2009) Critical Practices in International Theory: Selected
Essays,Routledg, Abingdon, Oxon Farrell,Mary(ed.)
(2005)GlobalPoliticsofRegionalism:Theoryand Practice. Pluto Press: London Genest,
Mark A. (1996). Conflict and Cooperation: Evolving Theories of International
Relations. Fourth Worth: Harcourt Brace and Co. Goldestein, Joshua S. and John C.
Pevhouse (2006). International Relations brief 3rd ed. PrisscillaMcGreehon.
Goldstein J. S. (2003) International Relations. 5th edition. Washington, D.C. Pearson
Education Press, Inc Griffiths, Martin (Ed.) (2007). International Relations Theory for
the Twenty-First Century:An introduction. New York: Routledge Griffiths, Martin
and Terry O’Callaghan (2002) InternationalRelations: The Key Concepts. Routledge:
London Griffiths, Martin, et al. (2008). International Relations: The Key Concepts
(Second Edition). New York: Routledge Griffiths, Martin, Steven C. and M. Scott
(2009), Fifty Key Thinkers in International Relations (2nd edition) Hancock,
KathleenJ.(2009)RegionalIntegration;ChoosingPlutocracy,
PalgraveMacmillan:United States Henderson, Conway W.(1998) International
Relations: Conflict and Cooperation at the Turn of the 21 st Century. Guilford:
McGraw-Hall. Hollis, Martin and Steve Smith (1990) Explaining and Understanding
International Relations. United States: Oxford University Press. Holsti, K.J. (1995)
International Politics: A Framework for Analysis. 7th ed. New Jersey:Prentice Hall.
J.M. Biswaro. (2012) The Quest for Regional Integration in the Twenty First Century:
Rhetoric versus Reality - A Comparative Study, MkukinaNyota Publishers Ltd, Dar
es Salaam: Tanzania Macdonald, David B.et.al (ed.)(2007)The Ethics of Foreign
74
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
75
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
change the scenario, and how societies, peoples and the world that we live in have
changed over time and its implication for history of Ethiopia and the Horn. It is helpful
to understand history as a base for shaping and bettering of the future.
Course The general objective of the course is to acquaint students with historical processes in
Objectives Ethiopia.
Specifically, after completing the course, students will be able to:
distinguish meaning, nature and uses of history
identify pertinent sources for the history of the peoples of Ethiopia and the Horn
describe changes & continuities that unfolded in Ethiopia and the Horn
elucidate the causes, courses and consequences of events happened in the region
explain the nature of the region’s external contacts and their effects
appreciate peoples‟ achievements, heritages and cultural diversities of the region
Expected This course enables students to:
Learning comprehend the general concepts of history
Outcomes analyze relevant sources for History of Ethiopia and the Horn
understand Ethiopia and the Horn in relation to human evolution and Neolithic
Revolution
assess the various socio-cultural and political achievements in civilizations of the
region
trace the origin and developments of states in the region during the ancient period
examine the long-term effect of the „‟Solomonic‟‟ dynasty in the region
scrutinize the dynamics of the territorial expansion of the Christian kingdom and
rivalry between the Christian Kingdom and Muslim Sultanates in the region
know the role of foreign relations and interventions from ancient to modern times
in Ethiopia and the Horn
appreciate the interplay between local developments and foreign influences
examine the role of population movements in shaping the modern Ethiopia and the
Horn
appreciate the major socio-economic, religious & political achievements of
Gonder period
understand salient characteristic features and effects of “Zemene Mesafint”
assess developments in Eastern, Central, Southern & Western parts of Ethiopia &
the Horn
analyze the political process for formation of Modern Ethiopia and the Horn
identify the social and economic developments from 1800-1941
appreciate the move towards modernization and the challenges encountered
trace legacies of major battles, victories and the roles of patriots
elaborate the socio-economic and political progresses of the post 1941 imperial
period
analyze the major changes, and challenges that led to the demise of the monarchy
76
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
analyze the political momentum, reforms and oppositions during the Derg period
understand historical developments from 1991-1994
Units and Contents
Topics Duration
Unit 1: Introduction 1
1.1. Concepts of History: Meaning, Nature and Uses
1.2. Sources & Methods of Historical Study
1.3. Origin and Development of Historiography of Ethiopia and the Horn
1.4. Introducing and Understanding Ethiopia and the Horn
Unit 2: Peoples and Cultures in Ethiopia and the Horn 2-3
2.1. Human Evolution
2.2. Neolithic Revolution
2.3. The Peopling of the Region
2.3.1. Languages and Linguistic Processes: Afro-Asiatic Super Family (Cushitic,
Semitic & Omotic Families) and Nilo-Saharan (Chari-Nile & Koman families)
2.3.2. Settlement Patterns 2.3.3. Economic Formations
2.4. Religion and Religious Processes 2.4.1. Indigenous
2.4.2. Judaism 2.4.3. Christianity 2.4.4. Islam
Unit 3: Polities, Economy & Socio-Cultural Processes in Ethiopia & the Horn 4-6
to end of 13th Century
3.1. Evolution of States
3.2. Ancient Polities
3.2.1. North and Northeast
3.2.1.1. Punt
3.2.1.2. Damat
3.2.1.3. Axum
3.2.1.4. Zagwe
3.2.2. East, Central, Southern and Western
3.2.2.1. Agaw, Bizamo, Damot, Enaraya, Gafat.
3.2.2.2. Muslim Sultanates (Shewa, Ifat, Dawaro, Fatagar, Bali, Hadiya,
Arebabani, Shirka, Dera…)
3.3. External Contacts
3.4. Economic Formations (Agriculture, Handicraft, Trade…)
3.5. Socio-cultural achievements (Architecture, Writing …)
Unit 4: Politics, Economy & Socio-Cultural Processes from Late 13th – the 7-8
beginning of 16th Century
4.1. “Restoration” of the “Solomonic‟‟ Dynasty
4.2. Power Struggle, Consolidation, Territorial and Religious Expansion of the
Christian Kingdom
4.2.1. Succession Problem and the Establishment of Royal Prison
77
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
4.2.2. Territorial Expansion towards Agaw, Bizamo, Damot, Red Sea, Bete-
Israel/“Falasha…”
4.2.3. Evangelization and Religious Movements
4.3. Social, Economic and Political Dynamics of Muslim Sultanates
4.3.1. Political Developments in the Muslim Sultanates and the Rise of Adal
4.3.2. Trade and the Expansion of Islam
4.4. Rivalry between the Christian Kingdom and the Muslim Sultanates
4.5. External Relations
Unit 5: Politics, Economy & Socio-Cultural Processes from Early 16th–the 9-10
End of the 18th Century
5.1. Interaction and Conflicts of the Christian Kingdom and the Sultanate of Adal
5.2. Foreign Interventions and Religious Controversies
5.3. Population Movements
5.3.1. Population Movements of the Afar, Somali and Argobba
5.3.2. Gadaa System and Oromo Population Movement (1522- 1618)
5.4. Interaction and integration across ethnic and religious diversities
5.5. Peoples and States in Eastern, Central, Southern and Western Regions
5.5.1. Kushitic: Afar, Somali, Oromo, Sidama, Hadya, Kembata, Konso, Gedeo,
Burji…
5.5.2. Semitic: Harari Emirate, Shewa Kingdom, Gurage Polity…
5.5.3. Omotic: Kaffa, Wolayita, Gamo Gofa, Dawro, Konta, Yem…
5.5.4. Nilotic: Anuak, Nuer, Berta, Gumuz…
5.6. The Period of Gondar (1636-1769) and “Zamana Mesafint/Era of Princes”
(1769-1855)
5.6.1. The Revival of the Christian Kingdom
5.6.2. Gondar achievements: architecture, painting, music, literature, urbanization,
trade etc.
5.6.3. Gondar Political Developments: “Close Door Policy,” Reforms, “Byzantine
Politics”…
5.6.4. Major Features of Era of Princes (1769-1855) and Yejju Dynasty (1786-
1853)
Unit 6: Internal Interactions and External Relations from the 1800–1941 10-12
6.1. The Nature of Interactions among peoples and states of Ethiopia and the Horn
6.1.1. Peoples and sates of Kafa, Wollaitta, Gibe, Leqa, Qabena, Shawa...
6.1.2. The Role Trade and Trade Routes in the interaction
6.2. Power Rivalry
6.3. The Making of Modern Empire State (Territorial Expansion, Centralization
process…)
6.4. Modernization Attempts: administration, military, innovation, education, road
construction, railway, transportation & communication, constitution…
78
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
79
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Attendance Students are expected to attend regularly. If students miss more than 20% of the
classes, he/she will not sit for final exam. Punctuality is mandatory and late
coming student should not be allowed to enter the class.
Academic Honesty All students are expected to be abided by the code of conduct of
and University Academic Legislation throughout this course. Academic
Integrity/Course dishonesty including cheating, fabrication and plagiarism will not be tolerated.
and University Class activities will vary day to day ranging from lectures to discussions.
Policy Students should be active participants in the course. Students need to ask
questions and raise issues. They are required to do all the assignments they are
supposed to accomplish, submit and present it according to the time table
indicated. All issues discussed the in class or derived from other sources may be
the subject of the assignments, quiz, test and exam question items. Finally, cell
phones must be turned off before getting into classes and sitting for exams as
they are disruptive.
References Abir, Mordechai. Ethiopia and the Red Sea: The Rise and Decline of the
Solomonic Dynasty and MuslimEuropean Rivalry in the Region. Frankcass,
1980.
. Ethiopia: The Era of The Prince; The Challenge of Islam and
The Re-unification of The Christian Empire 1769-1855. Institute of Asian
& African Studies the Hebrew University, 1968.
Alberto, Sbacchi. Ethiopia under Mussolini: Fascism and the Colonial
Experience. 1985.
Alemayehu Haile et al. History of the Oromo to the Sixteenth Century. Finfinne:
OCTB, 2006.
Andargachew Tiruneh. The Ethiopia Revolution 1974-1987: Transformation
from Aristocracy to Totalitarian Autocracy. Cambridge University Press, 1993.
Asmarom Legesse. Gada: Three Approaches to Study of African Society.
London: Free Press.
Bahru Zewde. A History of Modern Ethiopia, 1855-1991. Addis Ababa
University Press.
. Society, State and History, Selected Essays. Addis Ababa: AAU
Pres, 2008.
Bender, M. L. and et al. Eds. The Languages of Ethiopia. London, 1976.
Clark, J.D. The Prehistoric Cultures of the Horn of Africa. Cambridge University
Press, 1954.
Crabtree J Pam &Campana V. Douglas. Archaeology and Pre-history.
Gebru Tareke. Ethiopia Power and Protests: The Ethiopian Peasants Revolts in
the 20th Century. Cambridge University Press, 1991.
Gadaa Melbaa. Oromia. Minneapolis, 1999.
80
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
81
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
aim of logic and critical thinking course is to maintaining an ‘objective’ position. When
you think critically, you weigh up all sides of an argument and evaluate its validity,
strengths and weaknesses. Thus, critical thinking skills entail actively seeking all sides
of an argument evaluating the soundness of the claims asserted and the evidence used to
support the claims. This course attempts to introduce the fundamental concepts of logic
and methods of logical reasoning. The primary aim of this course is to teach students
essential skills of analyzing, evaluating, and constructing arguments, and to sharpen their
ability to execute the skills in thinking and writing.
Learning At the end of the course, students should be able to:
Outcomes Understand the relationship of logic and philosophy,
Recognize the core areas of philosophy,
Appreciate the necessity learning logic and philosophy,
Understand basic logical concepts, arguments,
Understand deductivness, inductiveness, validity, strength, soundness, and cogency,
Develop the skill to construct sound argument and evaluate arguments;
Cultivate the habits of critical thinking and develop sensitivity to clear and accurate
usage of language;
Differentiate cognitive meanings from emotive meanings of words,
Apply symbols to denote standard forms of categorical propositions to form further
logical assertions among them.
Develop logical and open-mind that weighs ideas and people rationally;
Develop confidence when arguing with others ,
Demonstrate logical argumentative ability,
Develop logical reasoning skill in their day to day life, and
Appreciate logical reasoning, disproving mob-mentality and avoid social prejudice.
Understand the basic concepts and principles of critical thinking.
Understand the criterion of good argument.
Identify the factors that affect critical thinking.
Apply critical thinking principles to real life situation.
Course Contents
Topics Duration
Chapter 1: Logic and Philosophy 1-2
1.1 Introduction.
1.2 Meaning and Definition of philosophy
1.3Core Branches of Philosophy.
1.4Importance of Learning Logic and Philosophy
Chapter 2: Basic Concepts of Logic 3-4
2.1Introduction 2.2Basic Concepts of Logic
2.3Techniques of recognizing arguments.
2.4Types of Arguments
82
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
2.4.1Deductive Arguments
2.4.2Inductive Arguments
2.5Evaluation of Arguments
2.5.1Evaluating Deductive Argument
2.5.2Evaluating Inductive Arguments
Chapter 3: Logic and Language 5-6
3.1Introduction 3.2Logic and Meaning
3.2.1Cognitive and Emotive Meaning of Words
3.2.2Intensional and Extensional Meaning of Terms 3.3Logic and Definition
3.3.1Types and Purposes of Definition 3.3.2Techniques of Definition
3.3.2.1Extensional Techniques of Definition
3.3.2.2Intensional Techniques of Definition Comment [G1]: added Comment
[G2]: modified
3.4Criteriafor Lexical Definitions
Chapter 4. Basic Concepts of Critical Thinking 7-9
4.1. Introduction
4.2. Meaning and Definition of Critical Thinking.
4.3. Principles of Critical Thinking.
4.4. Criterion/Standard of Argument Good Argument.
4.5. Factors Affecting Critical Thinking. 4.6. Relevance of Critical Thinking.
Chapter 5: Logical Reasoning and Fallacies 10-13
5.1.1Induction
5.2. Types of Fallacies: Formal and Informal
5.3 Categories of Informal Fallacies
5. 4.1 Fallacies of Relevance
5.4. 2 Fallacies of Weak Induction
5. 4. 3 Fallacies of Presumption 5.6. 4.3.4Fallacies of Ambiguity
5. 4..4 Fallacies of Grammatical Analogy
Chapter 6: Categorical Propositions 14-16
6.1. Introduction
6.2. Categorical Propositions
6.3. The Components of Categorical Propositions
6.4. Attributes of Categorical Propositions: Quality, Quantity, and Distribution
6.5. Representing Categorical Propositions
6.6. Venn Diagrams
6.7. Boolean and Aristotelian Square of Oppositions
6.8. Evaluating Immediate Inferences: Venn Diagrams and Square of Oppositions
6.9. Logical Operations: Conversion, Obversion, and Contraposition
Teaching The course will be delivered in the form of lectures, demonstration, student presentations,
Strategy group discussions, and individual and group project works.
83
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
84
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Course This course will provide the students with basic concepts of the five components of
Description health-related physical fitness (cardiovascular, muscular strength and endurance,
flexibility, and body composition), conditioning, hypokinetic disease and general
principles of training. It is mainly practical oriented. As a result, the students will be
exposed to various exercise modalities, sport activities, minor and major games, and
various training techniques as a means to enhance health related physical fitness
components. In addition, they will develop the skills to assess each component of
fitness and will practice designing cardiovascular, muscular strength and endurance,
and flexibility programs based on the fitness assessment. The course serves as an
introduction to the role of exercise in health promotion, fitness, performance
including the acute and chronic responses of the body to exercise.
Expected By the end of this course the students will be able to:
Learning 1. Recognize the immediate and long term responses of the body to various types of
Outcomes exercise.
2. Understands the basic concepts of physical fitness and conditioning exercises.
3. Understand the concept of hypokinetic disease and conditions.
4. Distinguish the general principles of fitness training
5. Develop conditioning programs to enhance the components of health-related
physical finesses.
6. Participate in conditioning programs which may help to develop the components
of health-related physical finesses.
7. Understand health issues in relation to excess body fatness and excessively low
body fat.
8. Develop skills to assess health related physical fitness components.
9. Develop healthy body weight management skill.
10. Appreciate and value the benefits of regular physical exercise to healthy living.
11. Develop interest to engage in a regular physical exercise program as a life time
activity.
12. Develop self-confidence and effective communication skills in and out of the
school environment.
Course Calendar and Delivery
Date /week Key Topics Teaching Method
Week 1 Chapter 1- Concepts of physical fitness Lecture
and conditioning Group discussion
1.1. Meanings and definitions of terms Questioning and answering
1.1.1. physical fitness
1.1.2. physical conditioning
1.1.3. Physical Activity,
1.1.4. Physical exercise and
1.1.5. Sport
85
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
86
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Practical Session
Week 7-16 Chapter 6- Development and Assessment Field Practice
of the health-related components of fitness Explanation
Demonstration
Assessment As per the university’s legislation
Instructor’s - Provide maximum physical activity time within the class period
commitment - Promote equal participation of all students in the course
- Teach skills and activities that transfer in to lifetime physical activity
- Motivate students to be active participants in the course
- Praise for active participation
Course policies
Grading As per the university’s legislation
Attendance As per legislation of the university
Policy
Class The success of this course and students learning experience is dependent on active
Participation engagement and participation of the students in all the spectrum of the course.
Students are expected to come well prepared/dressed and constructively engage in
class.
Class “In each and every aspect of life, discipline comes first and worth a lot”. This is what
Discipline department of Sport Science reflects. As a result of this, any noise, chatting, chewing
gum and the like are prohibited in every sessions of the course. In addition to these
portable electronic media and communicative devices such as cell phones, pagers,
MP3 players, I pod etc are not be used during the class for any reason. Thus, these
devices should be switched off and kept out of sight.
Reference materials
Text Charles B. Corbin, Gregory J. Week, William R. Corbin and Karen A. Welk.
(2006). Concepts of fitness and wellness: a comprehensive lifestyle approach. 6th
ed.
Reference 1. Schott k. Powers, Stepheen L. Dod and Virginia J. (2006), Total Fitness and
Wellness.
2. Paul M, and Walton T. (2006), Core Concepts in Health, 10th edit.
3. Charles B. Corbin and Ruth Lindsey (1990), Fitness for life, 3rd Edition, Scott.
87
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
and
Presentation
48hrs 2hrs 35hrs 52hrs 135hrs
Mode of Delivery Semester wise
Course This course attempts to familiarize students with the basic geographic concepts
Description particularly in relation to Ethiopia and the Horn of Africa. It is also intended to
provide students a sense of place and time (geographic literacy) that are pivotal in
producing knowledgeable and competent citizens that are able to comprehend and
analyze problems and contribute to their solutions. The course consists of four
parts. The first part provides a brief description on the location, shape and size of
Ethiopia as well as basic skills of reading maps. Part two introduces the physical
background and natural resource endowment of Ethiopia and the Horn which
includes its geology and mineral resources, topography, climate, drainage and
water resources, soil, fauna and flora. The third part of the course focuses on the
demographic characteristics of the country and its implications on economic
development. The fourth component of the course offers treatment of the various
economic activities of Ethiopia and the Horn which include agriculture,
manufacturing and service sectors. Moreover, Ethiopia in a globalizing world is
treated in the perspectives of the pros and cons of globalization on its natural
resources, population and socio-economic conditions.
Course Objective Upon completion of this course the students will be able to:
• Describe the location, shape and size of Ethiopia and the Horn
• Explain the implications of location, shape and size of Ethiopia and the Horn on
the physical environment, socioeconomic and political aspects.
• Elaborate the major geological events; the resultant landforms and mineral
resources of Ethiopia and the Horn.
• Identify the major drainage systems and water resources of Ethiopia and their
implications for regional development and integration.
• Develop an understanding of the climate of Ethiopia, its dynamics and
implications on the livelihoods of its inhabitants.
• Examine the spatio-temporal distribution and abundance of natural vegetation,
wildlife and Soil resources of Ethiopia.
• Discuss the demographic attributes and dynamics as well as the ethnic diversity
of Ethiopia.
• Read maps as well as compute basic demographic and climatic rates
• Appreciate the biophysical and socio-cultural diversities in Ethiopia and the Horn
• Explicate the major types of economic activities in Ethiopia; discern their
spatiotemporal distributions and their contributions to the overall development of
the country.
88
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
89
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
90
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
91
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
92
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Course Contents
Week Content & sub content Methods and Students Task
strategies
1-2 UNIT 1: Introduction to Emerging • Listening • Attend the lesson
Technologies 1.1. Evolution of • Note-taking • Listen and take notes
technologies • Brainstorming • Answer questions
1.1.1. Introduction to Industrial •Reading • Read
revolution 1.1.2. Historical background •Individual work •Doing class works and home
(IR 1.0, IR 2.0, IR 3.0) •Group works,
1.1.3. Fourth industrial revolution (IR discussion • Reflects
4.0) • Reflections
1.2. Role of data for Emerging •Gapped Lecture
technologies 1.3. Enabling devices and
networks for technologies (programmable
devices)
1.4. Human to Machine Interaction
1.5. Future trends in emerging
technologies
3-4 Unit 2: Introduction to Data Science • Listening • Attend the lesson
2.1. Overview for Data Science • Note-taking • Listen and take short notes,
2.1.1. Definition of data and information • Brainstorming • • Asking and answering
2.1.2. Data types and representation Gapped Lecture questions,
2.2. Data Value Chain • Group • Participating in group
2.2.1. Data Acquisition discussion discussions.
93
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
94
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
95
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
and what is deemed to be cheating? If you are having problems with the assignments
or tests, contact the instructor as soon as possible. It will NOT be possible to earn
extra credit to improve a poor grade at the end of the semester.
In general, we encourage things like bouncing ideas off one another, discussing
which of two alternate solutions might be better (and why), and getting another's
ideas on how to resolve a difficulty that you have already spent time on. However,
you should not be working so closely together that someone else's solution becomes
incorporated into your answer, computer program or other submission. These
general guidelines apply to any type of assignment and project.
96
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
The course is designed on how to solve business and scientific problems through
the technique of structured programming. It will prepare students for focused
studies in any programming language.
Laboratory exercises are dedicated to practice the basics on writing simple C++
programs and will reinforce basic programming concepts, logic flows and
structured programming design.
Learning At the end of the course students will be able to:
Outcomes understand the nature of programming as human activity
learn and experience main components of programming process
Analyze variety of problems and generate appropriate algorithmic solutions
learn and being able to use major programming patterns
understand the principles of data storage and manipulation
Write a program that uses each of the following fundamental programming
constructs: Basic syntax and semantics of a high-level languages, Basic
elements of programming: identifiers, variables, literals, constants, keywords,
comments, data types, expressions and operators, statements, Control
Structures, looping and Arrays.
Course Contents
Topics Duratio References
n(Week
)
Chapter 1: Introduction to computer programming 1-2
1.1. What is computer programming
1.2. Reasons to study programming
1.3. Types and usage of computer languages
1.4. Programming paradigms
1.4.1. Procedural programming
1.4.2. Functional programming
1.4.3. Object-oriented Programming
Chapter 2: Algorithm representation and Data structure 3-4
2.1. Introduction to flow chart and pseudo code
2.2. How to write a pseudo code and draw a flow chart for a given
algorithm?
2.3. Translating algorithms to programming languages
2.4. Definition of data structures
2.5. Role of data structures in writing programs
2.6. Algorithms Vs Data Structure
Chapter 3: Programming constructs: 5-7
3.1. Process of compiling and running programs
3.2. Basic syntax and semantics of a high-level languages
97
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
98
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Course Description
The course is designed to introduce problem solving techniques by dividing large programs in to
sub modules through the concept of function in C++. Such programming technique simplifies
programming tasks by re-use of modules in different programs or in the same program, facilitates
understanding, debugging and maintaining the program. The course also introduces advanced data
structures such as pointers enable dynamic allocation and de-allocation of memory, structures help
to store and access records in an easy way, File Operations (File Input/output). Laboratory
exercises are dedicated to practice the all basics on writing simple C++ programs and will reinforce
basic programming concepts, logic flows and structured programming design using C++ function
concepts, structure and pointer data types and file management.
Learning Outcomes
At the end of the course students will be able to:
understand the principles of data storage and manipulation
Write a program that uses each of the following fundamental programming constructs:
Structures, Arrays, pointers
Identify elements of OOP Elements
Course Contents
Date Topics to be Discussed
Week 1-4 Chapter 1: Functions in C++
1.1. Basic concept and need of function
1.2. Declaring and defining a function
1.3. Function components (parameters and arguments)
99
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
References
1. Walter Savitch, Problem Solving with C++ (6thed), USA, Addison Wesley, 2006
2. Dromey, R.G., How to solve it by computer, UK, Prentice Hall Inc., 1982
100
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Module Number 02
Pre-requisites None
Year II
Semester II
Status of Course Compulsory
Course Description
This course aims to introduce you some basic data structures and algorithms which are to be used
as tools in designing solutions to problems. It will make students familiar with the specification,
usage, implementation and analysis of these data structures and algorithms. Introduction of Data
Structures (Linear, non-Linear Data Structures) mainly focused and Algorithm Analysis Concept,
Measuring Complexity, Complexity of Algorithm Big-O Notation. Simple Sorting and Searching
Algorithms (Bubble Sort, Insertion Sort, Selection Sort, Sequential Searching, Binary Searching.).
Abstract Data Types, Structures, Pointers, Arrays, Linked Lists, Stacks, Queues, Trees, Graphs.
Advanced Sorting and Searching Algorithms (Shell Sort, Quick Sort, heap Sort, Merge Sort, and
Hashing). Laboratory exercises are dedicated to practice the basics on concepts on data structures
like Abstract Data Types, Structures, Pointers, Arrays, Linked Lists, Stacks, Queues, Trees, and
Graphs. Advanced Sorting and Searching Algorithms using C++ programming language.
Learning Outcomes
At the end of the course students will be able to
Explain the basic techniques for the design and analysis of efficient Algorithm;
Determine when and how to use the various data structures including Linked lists, Queues,
Stacks, Binary trees, Search trees and Graphs
Design algorithms to solve real-life problems using the tools introduced Analyze your
solution, and efficiently implement your solution.
Apply data structures and algorithms that are frequently used in information processing
Course Contents
Date Topics to be Discussed
Week 1-2 Chapter 1: Review of C++ concepts
1.1. Arrays1.2. Structures1.3. Functions1.4. Pointers
Week 3-4 Chapter 2: Complexity analysis
101
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
102
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
References
1. The main course text is ―Data Structures and Algorithms in C++‖ by A. Drozdek
(Brooks/Cole, 2001). However, there are no copies of this book in the FBE library. If you
can find a copy somewhere it is the best choice, as it covers everything that we will cover
in this course.
2. There is one eBook available on the department intranet: “Data Structures and Algorithms
with Object-Oriented Design Patterns in C++” by B. R. Press. this covers most topics in
this course.
3. Unfortunately, there are no books in the FBE library that specifically deal with data
structures and algorithms, but there are a number of books on C++ that will cover some
parts of the course.
103
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Course Description
104
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
This course introduces students to the fundamental computer organization and architecture
concepts. It covers digital systems, data representation, common digital components, register
transfer language and micro operations, basic computer organization and design, central
processing unit, memory organization, input-output organization, and pipeline and vector
processing; case study of at least two microprocessor families and other components of computing
system.
Course Goals or Learning Outcomes:
By the end of this course, students will be able to:
Describe the basic structure and operation of a digital computer
Explain in detail the operation of the arithmetic unit including the algorithms &
implementation of fixed-point multiplication & division. and floating-point addition,
subtraction,
Identify different ways of communicating with I/O devices and standard I/O interfaces.
Describe different performance enhancement of computer architecture
Identify the processes involved in the basic operations of CPU
Understand basic concepts of circuits and their design
Course contents
Week/Date TOPIC TO BE DISCUSSED
Week 1 Introduction to Digital Systems
1.1 Basic Concepts of digital systems
1.2 Logic gates
1.3 Boolean Algebra
1.4 Combinational circuit
1.5 Flip Flops
1.6 Sequential circuits
Week 2 Data Representation
2.1 Bits, bytes, and words
2.2 Numeric data representation and number bases
2.3 Fixed- and floating-point systems
2.4 Signed and twos-complement representations
2.5 Data types
2.6 Representation of nonnumeric data (character codes, graphical data)
2.7 Representation of records and arrays
Week 3 Common Digital Components
105
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
106
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
107
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Course Description
What is an Operating System, history of operating system, operating system zoo; process concept,
process scheduling, inter-process communication; threads; CPU scheduling, basic concepts,
scheduling criteria, scheduling algorithms; process synchronization, the critical section problem,
semaphores, monitors, classical synchronization problems; deadlocks, avoidance, prevention,
detection; memory management, physical and virtual memory, swapping, allocation, paging,
segmentation; file systems, access methods, directory structure, file sharing and protection;
security, authentication, intrusion detection, encryption.
108
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
109
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Course description
Microprocessor is the course used to provide an understanding of microprocessor hardware and
software. Technicians completing this course will work with microprocessor based equipment,
and be capable of distinguishing hardware from software faults. The superior students will also
be capable of participating in product development efforts, including support and development of
assembly language code.
Course learning outcomes: At end of the course, students will be able to:
Describe the general architecture of a microcomputer system and architecture &organization
of 8085 & 8086 Microprocessor and understand the difference between 8085 and advanced
microprocessor.
110
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Understand and realize the Interfacing of memory & various I/O devices with 8085
microprocessor
Understand and classify the instruction set of 8085 microprocessor and distinguish the use
of different instructions and apply it in assembly language programming.
Understand the architecture and operation of Programmable Interface Devices and realize the
programming & interfacing of it with 8085 microprocessor.
Course contents
INTRODUCTION OF MICROPROCESSOR& INTERFACING DEVICES
Introduction to Microprocessor Evolutions of microprocessor
Microprocessor based Systems
Microprocessor Instruction Sets & Various Computer Languages
MICROPROCESSOR ARCHITECTURE
Features of 8085 Microprocessor PIN Diagram f 8085Microprocessor
Address Bus & Multiplexed Address / Data Bus Control nd status signals
Power-supply and clock frequency
Externally initiated signals including Interrupts Serial I/O Ports
Block Diagram of 8085 Microprocessor 8085 Programming Model
8085 BUS organization and 8085 registers Microprocessor operations: Microprocessor
initiated Operations, Internal data operations,
Externally Initiated operations
Microprocessor Communication & Bus Timings De-multiplexing the Bus AD7 to AD0
Generating Control Signals 8085 Machine Cycles & Bus Timings Opcode Fetch Machine
Cycle Memory Read Machine Cycle Example of an 8085 – based microcomputer
MEMORY & I/O INTERFACING
Memory Classifications
Flip-Flop or Latch as a storage Element Memory Map and Addresses Memory Instruction
FetchMemory Interfacing:
Memory Structure & it’s Requirements Basic Concepts in Memory Interfacing Interfacing
Circuits
111
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
112
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Course Description
This course will introduce students with the fundamental ideas surrounding the design and
implementation of high level programming languages. The course stress on underlying theoretical
concepts as well as significant practical sessions. Students will gain experience with different
programming languages and their basic structures. It also introduces language theory and
grammars.
Course Objectives
113
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
114
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
115
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Course description
This course provides a first Introduction into Real Time systems. Systems that provide time-bound
response are prevalent in many industrial applications. This course uses the C as the teaching
programming language. Important issues for Real Time systems are explored: synchronization,
communication and scheduling. Concepts are illustrated and reinforced through simulation of a
Real Time system. This is a core course for several BE(Hons)(E&E) majors, and an admissible
elective in other BE(Hons)(E&E) majors. Assessments include computer laboratory exercises, a
quiz and a final examination.
Learning outcomes
Apply correctly the terminology , and list applications, of real time systems;
Translate requirements of real-time systems into forms that can be encoded;
116
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Demonstrate the ability to work within the constraints imposed by the real-time aspects of
systems;
Re-cast practical design problems into real time task models for the purpose of analysis,
evaluation or implementation;
Evaluate the implications of design choices on real time system implementation;
Explain the purpose and structure of a real time operating system;
Apply simple real time functions using a real time operating system and a programming
language suitable for embedded real-time systems;
Analyze and schedule real time task sets for a single processor;
Apply real-time methodology to multiprocessor, and distributed systems;
Course contents
Preliminaries: definitions, examples of embedded systems, computer organization concepts,
memory • ARM Cortex M0+ Hardware Overview: Ports, Registers, GPIO, Analog I/O,
ADC/DAC
Communication: Parallel, USB/Serial, USART, SPI, TWI, Ethernet, Wireless
Interrupts and Timers: ISRs, counter management
Programming Languages: C for embedded systems and ARM specifically, Assembly, software
development environments and methods of programming
RTOS Characteristics: Scheduling, priorities, reentrancy
Modeling embedded systems: finite state machines and extensions
Future of embedded systems: Networking and IOT (Internet of Things
Summary of Teaching Learning Methods
The learning–teaching methodology will be student-centered with appropriate guidance of
instructor/s during the students ‘activities. There will be Lecture, Demonstrations, Lab work
Tutorials, Reading assignments and Group Discussions
Summary of Assessment Methods: As per the academic regulation
References
Real-Time Systems: Scheduling, Analysis, and Verification (John Wiley and Sons) by Prof.
Albert M. K. Cheng.
117
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Jonathan W. Valvano Embedded Systems: Real-Time Operating Systems for ARM® Cortex™-
M Microcontrollers Volume 3, Fifth edition, January 2019
Jean J. Lacrosse, µC/OS-III: The Real-time Kernel for Texas Instruments Stellar is, Miriam.
Remit H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau, Operating Systems: Three Easy
Pieces (free online version available at http://www.ostep.org/)
Thomas Anderson and Michael Dahlin, Operating Systems: Principles and Practice, ISBN
978-0-9856735-2-9
Joseph Yiu, The Definitive Guide to the ARM Cortex-M3 and Cortex-M4 Processors, Third
Edition, 2013, ISBN: 978-012408082.
For programming in C, see the EE312 text, or the Embedded Software in C online reference
by Jon Valvano and Ramesh Yerraballi.
EE445L textbook: Jonathan Valvano, Embedded Systems: Real-Time Interfacing to ARM
Cortex M Microcontrollers, Volume 2, Fifth Edition, 2016, ISBN: 978-1463590154.
Data sheets for most of the devices used in this class are available
at http://www.ece.utexas.edu/~valvano/Datasheets
Module Name Database Management Systems
Module Number 04
Category Compulsory
CP 10
Module Objective 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.
Module Database Manager
Competence
Module Course No Title
Description SEng2041 Fundamentals of Database Systems
SEng2042 Advanced Database Systems
118
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Course Description
Database concepts related to data handling techniques, definition of a database and benefits of
database systems, functions and components of DBMS. Architecture for database systems: ANSI
SPARC architecture architectures, data model concepts and basic types of data models
(Hierarchical, Network and Relational data models). Emphasize on Relational data model: data
structures and integrity rules. Three levels Database design: (Conceptual, Logical and Physical
Database designing). Basics of Relational Languages (Relational Algebra, Relational calculus and
SQL)
Learning Outcomes
At the end of the Course students should be able to:
Explain what a Database System is, and be able to identify its characteristics and
applications,
Explain the different models of database,
Design ER models from specifications and interpret them into relational tables,
Write SQL statements for data creation and manipulation purposes,
Describe how to optimize databases to the most efficient form,
Distinguish and use relational model and relational algebra,
Identify and fix the possible problems that may occur in securing data.
Course Content
119
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Topic Duration(Week)
Chapter 1 Introduction 1-2
1.1 Data Handling approaches
1.2 Roles in Database Design & Development
1.21Data and Database Administrator
1.22Database Designer
1.23Application Programmer
1.24End-Users
1.3 The ANSI-SPARC Architecture
1.4 Functions of DBMS
1.5 Data models and conceptual models
1.6 Database Languages (DDL, DML,DCL)
Chapter 2:Relational Data Model 3-4
2.1 Terminologies
2.2 Relational Constraints
2.3 Relational Integrity
2.4 Key constraints
2.5 Referential constraints2.6 Relational languages and views
2.7 Relational DBMS
Test 1 4
Chapter 3:Conceptual Database Design- E-R Modeling 5-7
3.1 Database Development Life Cycle
3.2 Basic concepts of E-R model
3.3 Problem with E-R models
3.4 Enhanced E-R models
Test 2 8
Chapter 4: Logical Database Design 9-10
4.1 Normalization
4.2 Process of normalization (1NF, 2NF, 3NF)
Chapter 5: Physical Database Design 11-12
5.1 Physical database design process
5.2 Database design and implementation for relational databases
Assignment 12
Chapter6. Query Languages 13-14
6.1 Relational Algebra6.2 Relational calculus
6.3 Structured Query Languages(SQL)
Chapter 7: Advanced Database Concepts 15
7.1 Integrity and security
7.2 Integrity
7.3 Data security
120
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
References
Connolly T., Beg C. and Strachan A.: Database Systems, 2nd, 3rd and 4th ed. Addison-
Wesley Publishing Company.
RamezElmasri, Shamkant B. Navathe , Fundamentals of Database Systems( 4thed ) , USA,
Addison-Wesley, 2004
C.J.DATE, Introduction to Database systems (8thed), USA, Addison Wesley, 2003
Abraham Silberschatz, Henry F.
Korth, S. Sudarshan, Database System Concepts (4thed), USA, McGraw Hill Inc., 2002.
Course Title Advanced Database Systems
Course Code SEng2042
CP 5 (2hr Lecture, 3hr Lab )
Module Title Database Management Systems
Module Number 04
Pre-requisites Fundamentals of Database Systems
Year III
Semester I
Status of Course Compulsory
Course Description
This course includes Query processing and optimization; data base administration, performance
tuning, recovery and back up; object-oriented database, design techniques, and implementation
issues; advanced and emerging database systems concepts – data warehousing, data mining…
121
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Learning Outcomes
At the end of this course the students will be able to:
Explain database query processing and optimization
Explain the basics of transaction management
Describe database security
Use different recovery methods when there is a database failure
Design a distributed database system in homogenous and heterogeneous environments
Course Contents
Topic Duration(Week)
Chapter 1: Transaction Management and Concurrency Control 1 -2
1. Transaction
2. Transaction Support
3. Concurrency Control
4. Problems of Concurrent Sharing
5. Concept of Serializability
6. Concurrency Control Mechanism
7. Database Recovery
8. Transaction and Recovery
9. Recovery techniques and facilities
Chapter 2: Query Processing and Optimization 3-4
2.1 Overview
2.2 Query Processing steps
2.3 Query Decomposition
2.4 Optimization Process
2.5 Approaches to Query Optimization
2.6 Transformation Rules
2.7 Implementing relational Operators
2.8 Pipelining
Chapter 3: Database Integrity, Security and Recovery 5-7
3.1 Integrity
3.1.1 Integrity Concept & Subsystem
3.1.2 Integrity Constraints
122
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
123
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
References
1. Connolly T., Beg C. and Strachan A.: Database Systems, 2nd, 3rd and 4th ed. Addison-Wesley
Publishing Company.
1. Ramez Elmasri, Shamkant B. Navathe, Fundamentals of Database Systems (4thed),
USA, Addison-Wesley, 2004
2. C.J. DATE, Introduction to Database systems (8thed), USA, Addison Wesley, 2003
3. Abraham Silberschatz, Henry F. Korth, S. Sudarshan, Database System Concepts (4thed),
USA, McGraw Hill Inc., 2002.
4. Hector Garcia-Molina, Jeffrey D. Ullman, Jennifer Wisdom, Database Systems: The
Complete Book , USA, Prentice Hall, 2002.
4. Ramakrishnan R. and Gehrke J., Database Management Systems (3rded), USA, McGraw
Hill, 2003
Module Name Software Engineering Core
Module Number 05
Category Compulsory
CP 39
Module Objective Able to understand in detail software engineering approaches
to develop large systems.
Enables to fully understand and model the problem for which
a software system is to be implemented.
Able to apply the software process and project management
to industry level quality software development application
and to develop a real world project in a professional way.
Enables to find out the potential risks of a software project
ahead of time and act on them before they damage the project.
Able to understand how to conduct communication and how
to raise their own business
Module Analyst/project manager
Competence
Module Description Course No Title
SEng2051 Fundamentals of Software Engineering
SEng3051 Requirements Engineering
SEng3052 Software Architecture and Design
SEng3053 Software Engineering Tools and Practices
SEng4051 Software Testing and Quality Assurance
124
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Course Description
This course provides an introduction to the problems of software development and the processes
and methods used to address them. All phases in the software development life cycle, except
testing and maintenance which are postponed to Advanced Software Engineering, will be
introduced. The course also deals with software project planning, cost estimation, tracking and
control, staffing, risk management, and software configuration plan.
Learning Outcomes
At the end of the course, the student should be able to do the following:
Understand the basic principles of Software Engineering
Understand software process and state-of-the-arts software process models
Write requirements specification documents
Design a system, component, or process to meet desired needs.
125
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Course Content
Week Lecture Topics
1 Chapter 1: Introduction & Overview
What is software?
What is software engineering?
Why Software Engineering?
Software quality
Software Engineering and the Engineering Profession Ethics in Software Engineering
2- 4 Chapter 2: Software processes & Models
Sequential Software Process models Iterative Software Process models
5 Chapter 3: Agile Development
What Is Agility?
Agility and the Cost of Change
What Is an Agile Process?
Extreme Programming (XP)
Other Agile Process Models
6-8 Chapter 3: Requirement Engineering
Software Requirements
Requirement Engineering Process
System Models
9-10 Chapter 4: Software Project management
Responsibility of Software Project Managers,
Project Planning,
the organization of SPMP document,
Project Size Estimation Metrics, Project Estimation Techniques,
Scheduling, Organization and Team Structures,
11-13 Chapter 5; Software Design
Software Design Software Architectures Function Oriented Design
Detailed Design
14-15 Chapter 6; Coding
Programming Principles & guidelines Coding process
Validation & Verification Metrics
126
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Course Description
Requirement engineering is the branch of software engineering concerned with the real world goals
for, functions of, and constraints on software systems. It deals with the real-world goals; it bridges
the informal world of stakeholder’s needs, and the formal world of the software behavior.
Requirement engineering also deals with the precise specifications of software behavior.
Requirement engineering is concerned with the ‘what’ aspects of the system and it sets the
guidelines that the designers will draw upon and the testers will refer to. Lastly, requirement
engineering deals with the evolution over time and evolution across software families.
Requirement engineering copes with the changes in real world systems and provides reusable
features
Learning Outcomes
At the end of this course the students will be able to:
understand the importance of requirement engineering in system development Know the
techniques of requirement elicitation
Understand the role of requirement document in the development process
Write requirement specification documents
Appreciate how the requirement directly or indirectly affects the product.
Know about different types of requirements
Understand the role of stakeholders in the RE process
Elicit requirements using different elicitation techniques
Specify and document requirements
127
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Validate documents
Prioritize requirements
Course Contents
Weeks Lecture Topics Reading /Assignments
1 Chapter 1: Introduction to Requirement R1: pg.1-24, 187-214
Engineering R2: pg.1-36
What is requirement engineering? R3: pg.1-16, 135-202
Software Requirements Engineering: R4: pg.1-14,
What, Why, Who, When, and How R5: Part I (Chapter 1, 2 & 3)
Non-functional requirements R6: pg.1-60
2 Chapter 2; Requirement Engineering Process R1: pg. 25-52
Process Models R3: pg. 19-63, 283 - 302
Actors in Requirements engineering R4: pg.25-46
process R5: pg. part II (chapter 5, 6 &
Process support 7)
Process Improvement
3-5 Chapter 3: Requirement Elicitation and Analysis R1: pg. 53-86
Elicitation and Analysis Process R2: pg. 63-160
Elicitation Techniques R3: pg. 67-92
Prototyping R6: pg. 61-105
Requirement Analysis and Negotiation R12, R13 & R16
R11: Part II (Chapter 7)
6 Chapter 4: Requirement Specification R2: pg. 161;188, 299-330
Modelling R3: pg. 223-258
Writing requirement documents R4: pg. 47-92
R11: Part II (Chapter 13)
7-8 Chapter 5: Requirement Validation R1: pg. 87-112
Requirement review R2: pg. 189-214
Prototyping R4: pg. 159-180
Model validation R5: Part II (Chapter 15)
Requirement testing R11: Part II (Chapter 17)
9-10 Chapter 6: Requirement Management R1: pg. 133-136
Stable and volatile requirements R2: pg. 215-254
Requirements identification and storage R6: pg. 109-126
Change management R5: Part III (All chapters)
Traceability R15
11 Chapter 7: Requirement Engineering tools R11: Part IV (chapter 30)
12- Chapter 8: Requirement Engineering Techniques R1: pg. 137-186
13 Methods for RE R2: pg. 359-388
Viewpoint-oriented Requirements
Methods
14 Chapter 9: Software Requirements and Risk R5: Part IV (Chapter 23)
Management R11:Part V (chapter 32)
128
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
References
R1. Gerald Kotonya and Ian Sommerville (1998). Requirement Engineering: Process and
Techniques. UK, John Wiley and Sons LTD. (Textbook)
R2. Ian Sommerville & Pete Sawyer (1997). Requirement Engineering : A Good Practice Guide.
UK, John Wiley and Sons LTD.
R3. Suzanne Robertson, James Robertson (2006). Mastering the requirements Process Second
Edition, Addison Wesley Professional.
R4. Hull, Jackson and Dick(2010).Requirements Engineering, 2nd ed. Spring.
R5. Karl E. Wiegers (2003). Software Requirements, Second Edition.
R6. Ralph R. Young (2004). The Requirements Engineering Handbook. ARTECH HOUSE,INC.
R7. Soren Lauesen (2002).Software requirements: Styles and techniques. Addison-Wesley.
R8. Ian K Bray and Ian Bray (2002). An Introduction to Requirements Engineering.
R9. Johan F. Hoorn(2006). Software Requirements: Update, Upgrade, Redesign- Towards a
Theory of Requirement Change. Vrije Universiteit.
R10. Catherine Courage and Kathy Baxter (2005). A Practical Guide to User Requirements
Methods, Tools, and Techniques. Elsevier Inc.
R11. Karl E. Wiegers , Software Requirements, Third Edition Microsoft Press 2013
129
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Year III
Semester II
Status of Course Compulsory
Course Description
Involves analyzing and designing large scale software and apply different architecture styles to
Software design and to provide practical knowledge in software architecture.
Learning Outcomes
Up on the successful completion of the course the students will be able to:
Understand the mechanisms and methods of software design principles
Differentiate types of design patterns
Apply the different types of design patterns in software development
Understand Architectural styles and Quality Attributes.
Understand common tools and terminology related to software architecture.
Understand the role of the Software Architect with a development project.
Use methods for constructing and evaluating architectures.
Course Content
Week Lecture Topics
1-3 Chapter 1: Introduction to software design
What is software design?
Objective of software design
Software Design Activities
Design considerations
Design principles
Introduction to User Interface Design
4-5 Chapter 2: Design Patterns
What are design patterns
Creational design patterns
Structural design patterns
Behavioral design patterns
6 Chapter 3: Envisioning Architecture
The Architectural Business Cycle
What is Software Architecture?
Architectural structures and views
7-9 Chapter 4: Quality Attributes
Understanding Quality Attributes
Achieving Qualities (Tactics)
130
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Architectural style
10-11 Chapter 5: Architecture In The Life Cycle
Architecture in the agile projects
Architecture and requirements
Designing and documentation
Implementation and testing
Architecture reconstruction and conformance
12-13 Chapter 6: Architecture And Business
Economic analysis of Architecture
Architecture competence
Architecture and Software product lines
14-15 Chapter 7: Architecture in Advance
Cloud Definition
Architecture in Cloud
16 Project Presentation
131
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Course Description
This course provides an introduction to the software engineering tools and practices – a look at
typical approaches software engineers use to create applications in practice. Topics include
requirements analysis, high-level design, detail-level design, UML modeling, code generation,
basic unit testing, application building, continuous integration, 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 Learning Outcomes
Upon successful completion of this course, the student will be able to:
• Create UML class, state, and sequence diagrams using a CASE tool
• Transform requirements documented as use cases into UML design models
• Generate source code from UML design models, and synchronize subsequent changes
• Create simple unit tests and execute them in a standard test framework
• Maintain source code and related design documents in a revision control system
• Create a deployable software package using an automated build tool
• Create an installable software package using an automated build tool
Course Content
Weeks Topics
1 Introduction to the course and software engineering practices (1 class)
2 Source code generation from UML models
3 Synchronizing source code with UML models
4-5 Use of a revision control system to archive source code and related
Documentation
6 Writing and executing Unit Tests using a framework
132
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
133
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Course Description:
This course is intended to provide in-depth coverage of software testing. The goal of the course is
to provide students with the skill to select and apply a testing strategy and testing techniques that
are appropriate to a particular software system or component. In addition the student will become
a capable user of test tools; will be able to assess the effectiveness of their testing activity; and will
be able provide evidence to justify their evaluation. The course will be supported by two practical
exercises involving the development of appropriate tests and the application of a range of testing
tools.
Learning Outcomes:
At the end of this course the students will be able to:
Analyze requirements to determine appropriate testing strategies.
Design and implement comprehensive test plans
Instrument code appropriately for a chosen test technique
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.
Course Contents
Week Lecture Topics
1 Chapter 1: SQA Concepts
Basic notions: Quality Assurance, Detection vs. Prevention, Verification
& Validation, testing
2 Chapter 2: What is Software testing?
Basics of Software Testing
Software Testing Process
3 Chapter 3: Functional (Black Box) Testing
134
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
135
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Course Description
The course focuses on the basic concepts of maintenance and how the concept of system evolution
fits into maintenance; different technical and managerial problems of maintenance; the formal
types of maintenance, and standard maintenance processes.
Learning Outcomes
Upon completion of the subject, students will be able to:
Understand the maintenance process and system evolution, and apply metrics to manage
maintenance;
Apply configuration management;
Know the problem management process;
Know the basic techniques for managing organizational issues; and
Understand software reuse.
Course Content
Week Lecture Topics
1 Software Evolution and Maintenance Concepts
2 Maintenance Support Processes:
Maintenance Planning,
Evolution and Maintenance Testing,
Configuration Management,
Problem Management,
Maintenance supporting tools.
3 Maintenance Measurements:
Maintenance Metrics,
Maintenance Cost Estimation.
4-5 Management and Organizational Issues:
Organization Aspect of Maintenance,
136
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
137
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Course Description
This course is a step by step description of the software metrics. It includes introduction to
foundations of measurement theory, models of software engineering measurement, software
Products metrics, software process metrics and measuring management. The course is composed
of the following basic modules: Measurement theory (overview of software metrics, basics of
measurement theory, goal-based framework for software measurement, empirical investigation in
software engineering) Software product and process measurements (measuring internal product
attributes: size and structure, measuring external product attributes: quality, measuring cost and
effort, measuring software reliability, software test metrics, and object-oriented
metrics).Measurement management
Learning Outcomes
Students will be able to:
Understand the theoretical aspects of software measurements.
Demonstrate the knowledge of software metrics.
Demonstrate the knowledge of using software metrics in software development, software
maintenance, and software project management.
Demonstrate the knowledge of statistical analysis in software measurement.
Demonstrate the knowledge of developing and calibrating predication systems.
Demonstrate the knowledge of developing and maintaining a measurement program.
Course Content
Week Lecture Topics
1 Chapter 1: Overview of software metrics
Introducing the course.
What is software measurement?
What are software metrics?
138
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
139
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
140
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
141
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Course Description
Student’s previous exposure to and skills in structured programming is assumed (although a review
of the necessary basic programming notions is included). The course is designed to introduce how
to develop business applications using object-oriented design methodology with Java as an
illustration programming language. It includes Object Oriented Programming paradigm and its
use; classes, Object, Abstraction and Encapsulation; Inheritance, Polymorphism, Creating
Graphical User interfaces (GUIs), Data Structures, Exceptions(Try, catch, and throw, finally how
exceptions affect the design of an application), File input/output (I/O), Threads and Java Database
Connectivity
Learning Outcomes
At the end of the course students will be able to:
understand the principles of software engineering with emphasis on the various phases of
the software development life cycle
Understand major concepts of object-oriented programming
understand the programming environment as defined by compilers, interpreters, editors,
and other system software providing support for the programming activity
develop skills in OO design and program development within an integrated development
environment
Use arrays and other data structures
To understand the concepts of encapsulation, inheritance
Implement I/O functionality to read from and write to data and text files.
understand object technology and its applications
142
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Explain the application of a variety of data structures, understand the advantages and
disadvantages of those structures
To be familiar with object-oriented design concepts, and have had practical experience of
designing and implementing object-oriented software
Course contents
Weeks Lecture Topics
1-2 1. Chapter 1: Introduction to Object-Oriented Programming (OOP)
1.1. Overview of OOP?
1.2. Why Java?
1.3. The JVM and Byte Code
1.4. Basic concepts of OOP
1.4.1. classes
1.4.2. objects
1.4.3. members
1.4.4. class member visibility
1.4.5. encapsulation, inheritance and polymorphism
3-5 2. Chapter 2: The inside of objects and classes: More on OOP concepts
2.1. member methods and their components
2.2. instantiation and initializing class objects
2.3. constructors
2.3.1. default and parameterized
2.3.2. overloaded constructors
2.4. methods
2.5. access specifiers
2.6. accessors and mutators
2.7. calling and returning methods
2.8. static and instance members
6-9 3. Chapter 3: Inheritance
3.1. Concept of inheritance
3.2. Super classes and subclasses
3.3. Protected members
3.4. Overriding methods
3.5. Using this() and super()
3.6. Use of final with inheritance
3.7. Constructors in subclasses
143
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
144
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Course Description
This course covers topics on Java which includes:, AWT and Swing, I/O Streams, Multithreading,
Network Programming, Java database connectivity (JDBC), RMI, and Introduction to Servlets.
Learning Outcomes
At the end of this course, students should be able to:
Carry out design and development of complex elements, such as user interfaces,
multiprocessing, and fault-tolerant components;
Write TCP/IP Client Server applications using Sockets;
Write Java applications using the JDBC to make database independent queries; and
Call methods remotely.
Course Contents
Week Topics
Week 1 -3 Chapter 1 - AWT and Swing
1.1.Concepts of AWT and Swing
1.2.Event Handling
Week 4 & 5 Chapter 2 – Streams and File I/O
2.1. Streams
2.2. Various Stream classes
2.3. Using Streams
2.4. Object Streams
2.5. File Management
Week 6 & 7 Chapter 3 – Multi threading Concept
3.1. Threads vs. process
3.2. Multiple threads
3.3. Thread priorities
3.4. Synchronization
Week 8 & 9 Chapter 4 – Networking in Java
4.1. Connecting to a server
4.2. Implementing Servers in Java
4.3. Sockets, ports, URIs
145
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
146
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Course Description
This course provides students with the concepts and techniques to design and develop mobile
applications with iOS/android OS and to understand the design and development process involved
and state-of-the-art mobile usability testing methods. Students will develop a series of smaller
iOS/android OS applications in weekly lab sessions as well as larger application as part of a course
project. In the process of developing these applications, students will develop a strong
understanding of the Swift programming language, iOS /android OS application development,
mobile-centered design, and how to ensure technical quality in software development. The course
utilizes a hands-on approach to guide students through learning and understanding the design and
development process. The course will address the need for facilitating a 'global' user experience,
through independent student projects that target a 'global or social' theme and deliver a complete
solution involving design, development, and usability testing of a localized and responsive mobile
application. This course is intended for students who have some prior programming experience.
The course will introduce you to the basics of the Android platform, Android application
components, Activities and their lifecycle, UI design, Multimedia, 2D graphics and networking
support in Android.
Learning Outcomes
After completing this course, students will be able to
Describe the basic components of an Android application.
Define the lifecycle methods of Android application components.
Describe the basics of event handling in Android.
Describe the basics of graphics and multimedia support in Android.
Demonstrate basic skills of using an integrated development environment (Android Studio)
and Android Software Development Kit (SDK) for implementing Android applications.
147
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Course Contents
Week Topic Reading List
1 Chapter 1: Introduction
1. Introduction to Mobile Computing
2. Introduction to Android Development Environment
2 Chapter 2: Factors in Developing Mobile Applications
2.1. Mobile Software Engineering
2.2. Frameworks and Tools
2.3. Generic UI Development
2.4. Android User
2.5. More on UIs
2.5.1. VUIs and Mobile Apps i. Text-to-Speech Techniques
2.5.2. Designing the Right UI
2.5.3. Multichannel and Multimodal UIs
3-4 Chapter 3: Intents and Services
3.1. Android Intents and Services
3.2. Characteristics of Mobile Applications
3.3. Successful Mobile Development
5-6 Chapter 4: Storing and Retrieving Data
4.1. Synchronization and Replication of Mobile Data
4.2. Getting the Model Right
4.3. Android Storing and Retrieving Data
4.4. Working with a Content Provider
7-9 Chapter 5: Communications Via Network and the Web
5.1. Communication, network and web
a. State Machine
148
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
149
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
150
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Module Number 07
Pre-requisites None
Year II
Semester II
Status of Course Compulsory
Course Description
Data Communication and Computer Networking is a course which deals about the basic concepts
of ways of communication, types of communications, basic types of networking devices, how
devices are communicating each other using the TCP/IP and OSI reference model, designing a
small LAN network using peer to peer connection, basic types of LAN and WAN protocols, the
Wireless Network and identifying the protocols which are working at the Application and
Transport layers.
General Objective
After completing the course the students are going to evaluate the application of Computer
Networking in today’s global communities who are linked by common goals and technologies.
Specific Objectives
Analyze the principles of data communication, computer networks and inter-networking.
Describe the trends of the rapidly evolving communication and networking technologies.
Categorize the functions and design of different types of computer networks from LANs to
WANs.
Evaluating the impact of data communication and networking technologies on society
Comparing different types of designing and cabling a network
Comparing of IPV4 and IPV6 IP addressing
Evaluating a small network using basic Cisco IOS commands for routers and switches
Learning Outcomes
The programme provides a knowledge and understanding of the following: On successful
completion of this unit, students should be able to:
Explain the principles of networking protocols and standards;
Identify reference models and layered architectures in networking;
Recognize network topologies, media types and network components;
Identify the network (OSI) layers at which various network devices operate;
151
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
152
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
153
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Semester I
Status of Course Compulsory
Course Description
Although the World-Wide Web was initially conceived as a vehicle for delivering documents, it
is now being used as a platform for sophisticated interactive applications, displacing the traditional
mechanism of installable binaries. Web-based applications offer numerous advantages, such as
instant access, automatic upgrades, and opportunities for collaboration on a massive scale.
However, creating Web applications requires different approaches than traditional applications
and involves the integration of numerous technologies. This class will introduce students to the
Web technologies and give you experience creating Web applications. In the process students will
learn about markup languages, scripting languages, network protocols, interactive graphics, event-
driven programming, and databases, and see how they all work together to deliver exciting
applications. Consequently, the course will not hard coded content as the web development is very
dynamic. The instructor at the time should follow the trends at the time of the course by considering
properties of varies frameworks, new developments and other known universities syllabuses in
accordance with the Practical skill mentioned. The assessment method, books and other materials
must be chosen by the instructors at the time. However, Mozilla and w3school are listed in the
references section as these institutions drive the technology.
The objective of this course to introduce students with the current state of the art web application
technologies and integration of these technologies to create a robust, world class web application.
Learning Outcomes:
At the end of this course the students will be able to:
Build websites, web frameworks using basic HTML, CSS and JavaScript
Build client-side application that responsive
Build web application that consist AJAX and Server-Side
Build Web APIs that are read for many client-side applications
Build applications with database and ORM/ODM integrations
Build fully integrated enterprise application
Course Contents
Week Lecture Topics
1 CHAPTER 1 : OVERVIEW OF THE INTERNET AND WWW
154
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
155
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Course Description
Cloud computing helps organizations realize cost savings and efficiencies without spending
capitalresourcesupfront,whilemodernizingandexpandingtheirITcapabilities.Cloud-based
infrastructure is rapidly scalable, secure, and accessible over the Internet—you pay only for
what you use. So, enterprises worldwide, big and small, are moving toward cloud-computing
solutions for meeting their computing needs, including the use of Infrastructure as a Service
(IaaS)andPlatformasaService(PaaS).Wehavealsoseenafundamentalshiftfromshrink-
wrapped software to Software as a Service (SaaS) in data centers across the globe. Moreover,
providers such as Amazon, Google, and Microsoft have opened their data centers to third
parties by providing low-level services such as storage, computation, and bandwidth. This
trend is creating the need for a new kind of enterprise architect, developer, QA, and
operational professional—someone who understands and can effectively use cloud-
computing technologies and solutions.
156
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Thepromiseofsignificantcostsavingsandinherentflexibilityofresourcesareanimpetusfor the
adoption of cloud computing by many organizations. Cloud computing also introduces
privacyandsecurityrisksthatarenottraditionallypresentinasiloeddatacenter.Thiscourse
focuses on these security concerns and countermeasures for a cloud environment. An
overview of cloud computing and virtualization, the critical technology underpinning cloud
computing, provides the necessary background for these threats. Additional topics vary but
may include access control, identity management, denial of service, account and service
Course Objectives
▪ CompareandContrastthevariouscloudservicemodels,clouddeliverymodels,key cloud
characteristics, roles and boundaries and important terminology
▪ Explain how virtualization technology has enabled cloud computing.
▪ Demonstrate how various cloud providers such as AWS, Google Compute and
Microsoft Azure implement and offer IaaS, PaaS and SaaS services.
▪ Outline,Classifyandcategorizehowinfrastructurecomponents(compute,storage,
network ,load balancers ,DNS)are delivered as Infrastructure as a Service
▪ Develop, deploy, manage and scale applications running in platforms such as Java,
Python Platform (PaaS).
▪ Consume, integrate and extend software services such as Productivity and business
applications and other services like database services.
▪ DescribehowcloudcanbeusedtoperformBigDataAnalyticsusingdistributed
computing technologies like Hadoop.
▪ Citecloudsecurityconcernsandillustratehowtobuildimplementsecurityacrossall layers.
▪ Explain the cloud automation concepts such as Dev Ops practices, Continuous
Integration and Deployment and how it automates cloud deployment.
▪ DemonstrateimplementingprivatecloudusingOpenStackcomponentsandservices.
▪ IdentifykeyarchitecturalprincipleswhiledesigningcloudapplicationsincludingSLAs,
pricing and preventing single-point-of-failures. related to cloud.
Learning outcomes
157
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
The Course provides a knowledge and understanding of the following: Develop and
deploy cloud application using popular cloud platforms,
Designanddevelophighlyscalablecloud-basedapplicationsbycreatingand
configuring virtual machines on the cloud and building private cloud.
Explain and identify the techniques of big data analysis in cloud.
Compare, contrast, and evaluate the key trade-offs between multiple approaches to cloud
system design, and Identify appropriate design choices when solving real- world cloud
computing problems.
Writecomprehensivecasestudiesanalyzingandcontrastingdifferentcloud
computing solutions.
Make recommendations on cloud computing solutions for an enterprise.
articulate the main concepts, key technologies, strengths, and limitations of cloud
computingandthepossibleapplicationsforstate-of-the-artcloudcomputing
Identify the architecture and infrastructure of cloud computing, including SaaS, PaaS,
IaaS, public cloud, private cloud, hybrid cloud, etc.
Explain the core issues of cloud computing such as security, privacy, and interoperability.
Choose the appropriate technologies, algorithms, and approaches for the related issues.
Identify problems, and explain, analyze, and evaluate various cloud computing solutions.
Provide the appropriate cloud computing solutions and recommendations according to
the applications used.
Attempt to generate new ideas and innovations in cloud computing.
Collaboratively research and write a research paper, and present the research online.
Effectively communicate course working writing and oral presentation.
Course contents
Part I: Cloud Computing
▪ Cloud Computing Overview,
▪ Data Center and Virtualization,
▪ IaaS Compute
▪ IaaS Storage
▪ IaaS Networking Cloud Databases
▪ PaaS Big Data and Cloud Security SaaS
158
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
References
“CloudComputing:Concepts,TechnologyandArchitecture”byThomasErlandRicardo
Puttini
ArchitectingtheCloud:DesignDecisionsforCloudComputingServiceModels(SaaS,PaaS,
& IaaS) “Cloud Computing Explained” by JohnRhoton
“Cloud Computing for Programmers” by DanieleCasal
“CloudSecurity:AComprehensiveGuidetoSecureCloudComputing”byRonaldLKrutz
and Russell DeanVines
“CloudComputing:SaaS,PaaS,IaaS,Virtualization,BusinessModels,Mobile,Securityand
More” by KrisJamsa
NISTCloudComputingSecurityReferenceArchitecture:NiSTSP500-299
PrinciplesofSecurityinCloudComputing,BalamuruganS.,CharanyaaS.
Course Title Fundamental of Distributed Systems
Course Code SEng4071
CP 5 (2hrs Lecture, 3hrs Laboratory)
Module Title Computer Networking and Security
Module Number 07
Pre-requisites None
Year III
Semester I
Status of Course Compulsory
Course Description
159
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
This course is an introductory course in distributed systems. The emphasis will be on the
techniques for creating functional, usable, and high-performance distributed systems. To make the
issues more concrete, the class includes several multi-week projects requiring significant design
and implementation.
Learning Outcomes
After this course, students will have learned to:
Implement and structure distributed systems programs.
Write programs that can interoperate using well-defined protocols.
Debug highly concurrent code that spans multiple programs running on multiple cores and
machines.
Reason about distributed algorithms for locking, synchronization and concurrency,
scheduling, and replication.
Use standard network communication primitives such as UDP and TCP.
Understand the general properties of networked communication necessary for distributed
systems programming in clusters and on the Internet.
Employ and create common paradigms for easing the task of distributed systems
programming, such as distributed file systems, RPC, and Map Reduce. Be able to clearly
elucidate their benefits, drawbacks, and limitations.
Identify the security challenges faced by distributed systems programs.
Be able to select appropriate security solutions to meet the needs of commonly encountered
distributed programming scenarios.
Course contents
Week Topic
1-2 Chapter 1: Introduction to distributed system
definition characteristics
organization and goals of distributed systems
hardware and software concepts the client-server model
3-4 Chapter 2: Communication
layered protocols client-server TCP
middleware protocols
remote procedure call and remote object invocation
message oriented and stream oriented communication
Quality of Service
5-6 Chapter 3: Processes
threads and their implementation
clients and servers and design issues
object servers and adaptors
code migration
software agents and agent technology
160
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
161
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Year III
Semester I
Status of Course Compulsory
Course Description
This course we will explore the foundations of software security. We will consider important
software vulnerabilities and attacks that exploit them -- such as buffer overflows, SQL injection,
and session hijacking -- and we will consider defenses that prevent or mitigate these attacks,
including advanced testing and program analysis techniques. Importantly, we take a "build security
in" mentality, considering techniques at each phase of the development cycle that can be used to
strengthen the security of software systems.
Learning Outcomes
At the end of the course, the student should be able to:
Understanding the role that software plays in providing security and as source of insecurity
Understand Principles, methods & technologies to make software more secure Typical threats
& vulnerabilities that make software less secure, and how to avoid them
Know how to prevent them entirely, or mitigate their effects, by improving the software's
design and implementation.
Know state-of-the-art tools and techniques for testing and otherwise verifying that software
is secure.
Know how to "build security in" rather than consider it as an afterthought, and will have a
plethora of skills, applicable at each phase of the development cycle, that can be used to
strengthen the security of software systems.
Course Contents
Weeks Lecture Topics
1 hat is security? Key Objectives of Security Computer Security Challenges
Security Services and Mechanisms Security Attacks Security Techniques
Model for Network Security
2 Secure Design Principles, Secure System Design
3 Cryptography
Overview of cryptanalysis Encryption Techniques
✓ Symmetric cryptography (DES, AES)
✓ Public key cryptography (RSA)
162
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
163
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Category Compulsory
CP 12
Module Objective Able to understand basics of multimedia and easily perform
computer graphics programming.
Module Computer Graphics and Human Computer Interaction
Competence
Module Description Course No Title
SEng5082 Hunan Computer Interaction
SEng5081 Computer Graphics and Multimedia
Mode of delivery Parallel
Teaching Methods Lecture based laboratory supported offering, student centered
approach
Students should work projects in solving real world problems
Group discussion and presentation on assignments
Assessment Assignments/mid exam/final exam/projects/laboratory exercises
Methods
Course Description
The course is aimed to solve real problems in the design and use of technology, making computer-
based systems easier to use and more effective for people and organizations to bring people joy,
rather than frustration. Ease of use and effectiveness are critical to the success of any
Systems that interact with people, including software systems, home, office and factory appliances,
and web and phone applications.
Learning Outcomes
Up on the successful completion of the course the students will be able to:
Describe the cognitive principles and its application to interfaces and products.
164
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
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.
Demonstrate prototype skill to develop a user interface
Describe the connection between the development of a user interface and the user‘s
knowledge of an application domain.
Course Contents
Duration(Week) Lecture Topic
Week 1 Chapter 1: Introduction
1.1.Definition1.2.Historical background
Week 2 Chapter 2: Human in HCI
2.1. Information input/output
2.2. Memory
2.3. Reasoning, problem solving, skill and error
2.4. Emotion
2.5. Individual difference
Week 3 & 4 Chapter 3: Computer in HCI
3.1. Input device
3.2. Output device
3.3. Virtual reality
3.4. Physical interaction
3.5. Paper
3.6. Memory
3.7. Processing
Week 5 &6 Chapter 4: Interaction
4.1.Introduction
4.2.Models of interaction
4.3.Ergonomics
4.4.Interaction styles
4.5.The context of the interactions
4.6.Paradigms
4.7.Paradigms for interaction
Week 7, 8 & 9 Chapter 5: Interaction Design and HCI in the Software Process
5.1.Interaction Design
5.1.1. Introduction
165
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
166
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
References
1. Dix, A., Finlay, J., Abowd, G. and Beale, R. (1997). Human-computer interaction.
2. Baecker, R. M. and Buxton, W. A. S. (1987). Readings in Human-Computer Interaction:A
Multidisciplinary Approach.
3. Baecker, R., Grudin, J., Buxton, W., and Greenberg, S. (1995). Readings in Human
Computer Interaction.
4. Helander, M. (1988).Handbook of Human-Computer Interaction.
5. Lewis and Reiman (1993). Task Centered User Interface Design.
6. Norman, D. A. (1988). The Design of Everyday Things, Basic Books, NY.
7. Preece, J. et al (1994). Human Computer Interaction.
8. Nielsen, J. (1993). Usability Engineering.
9. Shneiderman, B. (1997). Designing the User Interface
Course Title Computer Graphics and Multimedia
Course Code SEng5081
CP 7 (3hrs Lecture, 3hrs Laboratory, 1 tutor)
Module Title Graphics and Human Computer Interaction
Module Number 08
Pre-requisites None
Year V
Semester I
Status of Course Compulsory
Course Description
The course explore multimedia technologies; multimedia storage models and structures; data
models and interfaces; multimedia information systems; video/audio networking; media
167
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Course Contents
Duration(Week) Topic
Week 1 & 2 Chapter 1: Introduction
1.1.overview of multimedia and multimedia systems
1.2.why multimedia
1.3. types of media
1.4. application areas
Week 3 & 4 Chapter 2: Multimedia Basics and Representation
2.1. Digital multimedia characteristics
2.2. audio formats and MIDI
2.3. Image formats and color models
2.4. video formats and color models
Week 5, 6, 7 & Chapter 3: Multimedia Data Compression
8 3.1. Compression with Loss and Lossless
3.2. Huffman Coding
3.3. Entropy Coding
3.4. Adaptive Coding
3.5. Dictionary-based coding(LZW)
Week 9 & 10 Chapter 4: Storage of Multimedia
Basics of optical storage technologies
compact disc(CD)
digital versatile disc (DVD)
Week 11, 12& Chapter 5: Multimedia Database System
13 5.1.Design and Architecture of a multimedia database
5.2.Indexing and organizing multimedia data
Week 14 & 15 Chapter 6: Multimedia Data Retrieval
6.1.Multimedia content representation
6.2.similarity measures during searching
6.3.retrieval performance measure
168
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
169
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
170
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Course Description
Machine learning techniques enable us to automatically extract features from data so as to
solve predictive tasks, such as speech recognition, object recognition, machine translation,
question-answering,anomalydetection,medicaldiagnosisandprognosis,automaticalgorithm
configuration,personalization,robotcontrol,timeseriesforecasting,andmuchmore.Learning
systemsadaptsothattheycansolvenewtasks,relatedtopreviouslyencounteredtasks,more
efficiently.
This course will introduce the field of Machine Learning, in particular focusing on the core
concepts of supervised and unsupervised learning. In supervised learning we will discuss
algorithms which are trained on input data labelled with a desired output, for instance an
image of a face and then a me of the person whose face it is, and learn a function mapping
from the input to the output. Unsupervised learning aims to discover latent structure in an
input signal where no output labels are available, an example of which is grouping web-
pages based on the topics they discuss. Students will learn the algorithms which under pin
many popular Machine Learning techniques, as well as developing an understanding of the
theoretical relationships between these algorithms. The practicals will concern the
application of machine learning to a range of real-world problems.
171
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Course Objectives
Thecourseaimstoprovideanintroductiontothebasicprinciples,techniques,andapplications
ofMachineLearning.Programmingassignmentsareusedtohelpclarifybasicconcepts.The
course covers the principles, design and implementation of learning programs that
improvetheirperformanceonsomesetoftaskswithexperience.Uponsuccessfulcompletion of
the course, students will have a broad understanding of machine learning algorithms and
their use in data-driven knowledge discovery and program synthesis. Students will have
designed and implemented several machine learning algorithms in Python. Students willalso
be able to identify, formulate and solve machine learning problems that arise in practical
applications. Students will have a knowledge of the strengths and weaknesses of different
machine learning algorithms (relative to the characteristics of the application domain) andbe
abletoadaptorcombinesomeofthekeyelementsofexistingmachinelearningalgorithmsto
design new algorithms as needed. Students will have an understanding of the current state
of the art in machine learning and be able to begin to conduct original research in machine
Learning.
Course contents
Introduction to Machine Learning Bayesian Decision Theory Parametric
Methods
Multivariate Methods Dimensionality Reduction Clustering
Nonparametric Methods Decision Trees Linear
Discrimination
Multilayer Perceptron Kernel Machines Graphical Models
Hidden Markov Models Bayesian Estimation
Combining Multiple Learners Reinforcement Learning
172
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Teaching Methods
The teaching methods that shall be employed for this course are lecturing, demonstration,
Lab exercises, classroom discussion and classroom action research and assignments and
homework.
Assessment Method
As MTU legislation
Course Policies
❏ Attendance: It is compulsory to attend class in time and every time.
Missing more than three classes during the term causes readmission for that
course.
❏ Assignments: No Late Assignment will be accepted
❏ Test/Quizzes: Rarely reexamination schedules will be arranged for those who
missed the exam by accidental or un controllable situation.
❏ Cheating/Plagiarism: No second Chance or excuses.
References
● Pattern Recognition and Machine Learning Book by ChristopherBishop
● MachineLearning:AProbabilisticPerspectiveTextbookbyKevinRMurphy
Course Description
Artificial intelligence (AI) is a research field that studies how to realize the intelligent human
behaviors on a computer. The ultimate goal of AI is to make a computer that can learn, plan, and
solve problems autonomously. Although AI has been studied for more than half a century, we still
173
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
cannot make a computer that is as intelligent as a human in all aspects. However, we do have many
successful applications. In some cases, the computer equipped with AI technology can be even
more intelligent than us. The Deep Blue system which defeated the world chess champion is a
well-know example.The main research topics in AI include: problem solving, reasoning, planning,
natural language understanding, computer vision, automatic programming, machine learning, and
so on. Of course, these topics are closely related with each other. For example, the knowledge
acquired through learning can be used both for problem solving and for reasoning. In fact, the skill
for problem solving itself should be acquired through learning. Also, methods for problem solving
are useful both for reasoning and planning. Further, both natural language understanding and
computer vision can be solved using methods developed in the field of pattern recognition.
Course objective
The primary objective of this course is to provide an introduction to the basic principles and
applications of Artificial Intelligence. Programming assignments are used to help clarify basic
concepts. The emphasis of the course is on teaching the fundamentals, and not on providing a
mastery of specific commercially available software tools or programming environments. In short,
this is course is about the design and implementation of intelligent agents---software or hardware
entities that perform useful tasks with some degree of autonomy. Upon successful completion of
the course, students will have an understanding of the basic areas of artificial intelligence including
problem solving, knowledge representation, reasoning, decision making, planning, perception and
action, and learning -- and their applications (e.g., big data analytics, data mining, computational
discovery, information retrieval.
Course Contents
174
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
175
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
References
Luger, G. (2002) Artificial Intelligence, 4th ed. Addison-Wesley.
Bratko, Ivan (1990) PROLOG Programming for Artificial Intelligence, 2nd ed. Addison-Wesley,
1990
Winston, P.H. (1992) Artificial Intelligence Addison-Wesley.
Ginsberg, M.L. (1993) Essentials of Artificial Intelligence. Morgan Kaufman.
176
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Module Number 9
Pre-requisites None
Year V
Semester II
Status of Course Compulsory
Course description
This course is designed for students who have no previous knowledge of data analytics but wish
to acquire these skills in a short period of time. These students will learn how to analyze large data
sets and identify patterns that will improve any company’s and organization decision-making
process. After completing the course, they will be able to: - Capture, categorize, simplify,
normalize and prepare data to be processed - Work with and analyze large data sets - Visually
represent analysis’s conclusions to technical and non technical audiences - Use the most common
algorithms, to make sense oflarge amounts of data, which are applicable to most business and
management problems. - Learn R programing language.
Course objectives
The objective of the course is to familiarize students with big data analysis as a tool for addressing
substantive research questions. The course begins with a basic introduction to big data and
discusses what the analysis of these data entails, as well as associated technical, conceptual and
ethical challenges. Strength and limitations of big data research are discussed in depth using real-
world examples. Students then engage in case study exercises in which small groups of students
develop and present a big data concept for a specific real-world case. This includes practical
exercises to familiarize students with the format of big data. It also provides a first hands-on
experience in handling and analyzing large, complex data structures. The block course is designed
as a primer for anyone interested in attaining a basic understanding of what big data analysis
entails. There are no prerequisite requirements for this course.
Learning outcomes
Course contents
177
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
178
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Module Number 10
Category Compulsory
CP 18
Module Objective Able to make themselves familiar with practical industry
services and organizational issues
Module Experience-shared Software Engineers
Competence
Module Description Course No Title
SEng4102 Holistic Exam
SEng4104 Internship
Mode of delivery Parallel
Teaching Methods Students shall make themselves familiar with practical industry
services and organizational issues
Assessment Industry practice reports, and holistic exams
Methods
Course Description
179
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
This course helps the students to apply their knowledge acquired during the degree program.The
students have to work practically and solve real time problems. During this internship the students
should develop some projects and develop their skills in the practical environment. After having
successfully participated in this internship the students will learn how to solve the problems
required in Industry and be sound in real technical problems. They can adopt him/her to the
Industry standards and can work as a real life problem solver required from time to time in their
later life. They should also acquire managerial skills in real working environments and other skills
in running industries.
Learning Outcomes
At the end of this course, students will be able to:
Solve real world problem.
Familiarize with problem solving approaches.
Have managerial skills.
Course Contents
Content Depends on the industry and the type of project the student choose
180
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Course Description
This course will introduce the area of Software project management, presenting basic techniques
and approaches and aiming to develop a critical awareness of the challenges and shortcomings of
the area. Software Project Management is an important area of study since most non-trivial IS
development efforts will be make use of some type of project management approach in an aim to
manage the development process in such a way that the IS meets its requirements and is on-time
and within budget.
Course Objective
At the end of the course students will be able to:
Understand the issues involved in Software project management and the factors that affect
Software quality;
Familiar with a range of standards, techniques and tools developed to support Software
project management and the production of high quality Software;
181
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Develop Software project plans, supporting Software quality plans and risk management
plans.
Capable of actively participating or successfully managing a Software development project
by applying project management concepts
Demonstrate knowledge of project management terms and techniques
Course contents
Weeks Topics
1-3 1) Introduction to Software Project Management
1.1. Importance of IS project mgt.
1.1.1 What is a project?
1.1.2 Problems with Software Projects
1.1.3 What is Project Management?
1.2. Stages of Project
1.2.1. The Feasibility Study
1.2.1.1 The Cost-benefit Analysis
1.2.2. Planning
1.2.3. Project Execution
1.2.4 Project and Product Life Cycles
1.3. The Stakeholder of a Project
1.3.1 All parties of a project
1.3.2 The Role of Project Manager
1.4. Project Management Framework
1.5. IS Tools for Project Management
182
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
183
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
References
1. Cotterell, B. H. (1999). Software Project Management.(2nd, Ed.) London: McGraw Hill.
2. Institute, P. M. (2000). Project Management Body of Knowledge (PMBOK).Pennsylvania:
Project Management Institute.
3. Schewalbe, K. (2011). Information Technology Project Management. USA.
4. Pressman, R. S. (2001). Software Engineering: A Practitioner‘s Approach. (5th, Ed.)Boston: McGraw Hill.
Course Title Selected Topics in Software Engineering
Course Code SEng5112
CP 3 (2hr Lecture, 1hr Tutorial)
Module Title Research and Project Works
Module Number 11
Pre-requisites
Year V
Semester II
Status of Course Compulsory
Course Description
The course covers recent theoretical and technical issues of software engineering. It will focus on
some selected topics, such as software requirements, software design, software construction,
software testing and management, software configuration management, software engineering
management, software engineering process, software engineering tools and methods, and software
quality. Each seminar is focused around one major topic. The students shall acquire advanced
theoretical knowledge and technical competences about the topics covered in the course as well as
some research methods that are relevant for these topics.
184
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Learning Outcomes
At the end of this course the students will be able to:
Upon completion of the course the candidate should be able to
Discuss and explain central concepts and principles within recent selected software
engineering topics.
Discuss current research within the selected software engineering topics.
Demonstrate how software engineering concepts and principles can be put into use in a
concrete software project working in teams, as well as how software tools and techniques
that are currently used within the field of study.
Identify relevant research literature for the selected software engineering topics
Work in a software development team of a realistic size using partly unfamiliar
Course contents
Week Lecture Topics
1-16 Recent software engineering topics will be selected with the help of the
instructor and students will rigorously work on that.
185
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Pre-requisites
Year V
Semester II
Status of Course Compulsory
Course Description:
This course helps the students to apply their knowledge acquired during the degree program.
The students have to work practically and solve real time problems. During this internship the
students should develop some projects and develop their skills in the practical environment. After
having successfully participated in this internship the students will learn how to solve the problems
required in Industry and be sound in real technical problems. They can adopt him/her to the
Industry standards and can work as a real life problem solver required from time to time in their
later life. They should also acquire managerial skills in real working environments and Other skills
in running industries.
Learning Outcomes:
At the end of this course, students will be able to:
Solve real world problem.
Familiarize with problem solving approaches.
Have managerial skills.
Course Content:
Content Depends on the industry and the type of project the student choose
186
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Course Description
The course begins with an overview of the agent systems and software agents. Then we focus on
agent system architecture and infrastructure from a software engineering viewpoint, including:
Requirements for agent-based systems
Modeling and design of agent-based systems
Development process for agent-based systems
Topics such as agent architecture, communication, knowledge sharing, computing, and uncertainty
management are discussed. Studying society of agents and models of agency follows.
Finally, a perspective on a methodology for agent-oriented software engineering and standards are
presented.
187
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Learning Outcomes
At the end of this course the students will be able to:
Agent-based systems are software products that not only do things as specified but also
have knowledge to do their job and can do it in a cooperative, coordinative and competitive
way.
What are myths and realities of the agent-based systems?
How to develop an agent-based system for a particular task?
How to evolve from object-oriented development to agent-based systems?
How to incorporate and share knowledge among software agents?
Course Content:
Week Lecture Topics
1-2 Overview of agent-based software engineering.
3-5 Methodologies for agent-based modeling, analysis and design.
6-8 Agent communication and knowledge sharing. - Overview of Agent
Programming – Agent Communication language – Agent Based
Framework of Interoperability
9-11 Agent-based System Architecture and Organization. – Agent for
Information Gathering – Open Agent Architecture –Communicative Action
for Artificial Agent
12-13 FIPA: Foundation for Intelligent Physical Agents.
14-16 Mobile Agents – Mobile Agent Paradigm- Mobile Agent Concepts –
Mobile Agent Technology
188
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Technology, Sydney, Australia; University of Trento, Italy, idea Group Publishing, (2005).
6. Russel&Norvig, ―Artificial Intelligence: A modern Approach‖, Prentice Hall, 2nd Edition,
2002
Course Description
Continuous Risk Management is a software engineering practice with processes, methods, and
tools for managing risks in a project. It provides a disciplined environment for proactive decision
making to assess continuously what could go wrong (risks), determine which risks are important
to deal with, and implement strategies to deal with those risks. The purpose of this course is to
explain what Continuous Risk Management is; to help you understand the principles, functions,
methods, and tools; to show what it could look like when implemented within a project; and to
show you how a project could implement its own adaptation.
Course Outcomes
At the end of the course the student will enable to:
Understand the concepts and principles of Continuous Risk Management
Apply the concepts and principles of Continuous Risk Management.
Develop basic risk management skills for each component of Continuous Risk
Management.
Be able to use key methods and tools.
Be able to tailor Continuous Risk Management to a project.
Course Content
189
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
190
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Semester I
Status of Course Elective
Course Description
To introduce students to the basics of software process and process improvement., to teach students
about the activities and issues software process engineering, to teach students different software
process improvement approach, to teach students concept of measurements and how it applies to
software processes , to introduce students advance and potential research topics in software process
engineering
Learning Outcomes
At the end of this course the students will be able to:
Understand the basics of software process engineering
Understand different modeling techniques for processes
Understand the importance of process engineering and how management activities are
related to them
Understand and be familiar with different approaches used for software process
improvement
Understand the concept of measurements and their application in software process
improvement
Understanding the need for research in selected topics in process engineering
Course Contents
Week Lecture Topics
1 Introduction (Process Models, QA, CM, Project Planning)
2-3 Process Modeling and Process Modeling Techniques (Introduction and
ETVX)
4-5 Process Modeling Techniques (IDEF0)
Measuring and Analyzing the Current State
6-7 CMM and Other process models ( CMMI– I, PSP and TSP )
8 Process Changes using PDCA and IDEAL models
9-10 Process Assessments, Base-lining, and Benchmarking
13 Project Management aspects related to process management
13-14 Process Measurement, Process Metrics i.e. Maturity, Management, and
Life
Cycle Metrics, Fundamentals of Measurement and Experimentation
15 GQM and its application to process management and improvement
16 Advance Topics in Software Process
191
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Course Description:
The course is designed to give Introduction to Visual Basic to develop Windows Application
Programs on the bases of VB or java Controls Variables, Constants, and Calculations Decision &
Conditions, Menus, Sub-Procedures and Sub-functions, Multiple Forms, Lists, Loops and printing,
Arrays using for each User-Defined Data Types, OOP in VB, syntax, and semantics of the
language, classes, class relationships, and exception handling, data Files, Advanced data handling,
Accessing Database File Basic Visual Basic.Net or Java or C# can be used to teach business
computer programming using a visual programming approach; includes fundamental
programming principles for event-driven programming.
Learning Outcomes:
At the end of the course students will be able to
Identify the visual programming Environment and Programming applications correctness,
verification and validation.
familiar with Programming tools, Visual Basic or Java as a rapid application development
(RAD) environment Component development and reusability, Designing and customizing
forms
192
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Use Visual Basic Visual Basic.Net or Java to create a small windows application that access
various types of data files to perform add change and delete operations on the data.
Create applications using standard and custom controls
Write several small Visual Basic applications to gain experience with additional topics.
Solve problems and build employability skills such as attitude, critical thinking, reading,
teamwork, work ethic, and writing.
Course Contents
Topic Duration(Week) Reading
list
Chapter 1: Event Drive Fundamentals: 1-2
1.1. What’s an event driven program?
1.2. Working in the Programming Environment
1.3. Building Your First Application
1.4. Using the intrinsic controls
1.5. Working with Properties, Methods, and Events
1.6. Working with Projects in event driven Programming
Chapter 2:Programming with Event Driven: 3-7
1.7. Using Data Types, Constants, and Variables
1.8. Making Statements in a Program
1.9. Working with Conditional Statements
1.10. Working with Loops
1.11. Working with Arrays
1.12. Working with Strings and Typecasting
Chapter 3:The Elements of event driven programs: 8-10
1.13. Creating Menus in Your Programs
1.14. Enhancing Your Programs with Forms and
Dialog Boxes
1.15. Handling Keyboard and Mouse Input in Your
Programs
1.16. Working with Time and Timers
1.17. Adding Graphics to Your Programs
1.18. Writing Reusable Code with Subs and
Functions
193
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Course Description
194
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
This course provides experienced Java programmers with the skills to write new SOAP and REST
web services, and access existing services. With this course, you also learn how to secure web
services using both Java-specific and language-independent security technologies, and how the
Java APIs — JAX-WS and JAX-RS — deliver a set of powerful tools for developing a Service-
Oriented Architecture (SOA).
Learning Outcomes
At the end of this course the students will be able to:
Develop, deploy, and monitor SOAP and RESTful web services and web service clients
with JAX-WS and JAX-RS
Implement a Service-Oriented Architecture (SOA) using web services
Create and deploy WSDL-first and code-first SOAP web services
Build secure SOAP and REST clients
Design and develop E-commerce application by applying appropriate security services
Course Contents
Week Lecture Topics
1 Chapter 1:Web Services Overview
Web Service Architecture
Web Service vs. Other Technologies
Web service benefits
Interoperable applications with SOA
Designing an SOA integration architecture
Implementing SOAs with web services
Java standard APIs for web services
JAX-RPC
Building SOAP–based services with JAX–WS
Developing RESTful services with JAX–RS
195
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Specifying implementation
196
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
197
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Services, Sams, 2002 G. Glass. Web Services. Building Blocks for Distributed Systems. Prentice
Hall. 2002 G. Alonso. Web Services. Concepts, Architectures and Applications. Springer, 2004
Allemang, D., Hendler, J. (2011). "RDF –The basis of the Semantic Web. In: Semantic Web for
the Working Ontologist (2nd Ed.)". Morgan Kaufmann "XML and Semantic Web W3C Standards
Timeline". 2012-02-04.
Additional articles in the curriculum may be added during the course.
Course Description
Concepts of Distributed Database Systems and Architectures, Distributed Database Design,
Distributed Query Processing and Optimization, Transaction Management and Concurrency
Control, Heterogeneous and Multi-database Systems
Learning Outcomes
At the end of this course the students will be able to:
This course exclusively focuses on the design and system issues related to distributed database
systems. Students will learn the usage of different design strategies for distributed databases, and
they will study query processing techniques and algorithms as well as transaction management and
concurrency control concepts used in such systems. Design and implementation issues related to
multi-database systems are discussed as well.
Course Contents
Week Lecture Topics
1-2 Chapter 1: Introduction to Distributed Database Management Systems
Distributed Data Processing
Concepts of Distributed Database Systems
Review of Computer Networks
198
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
199
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Be able to design and analyze parallel algorithms for a variety of problems and computational
models,
Be familiar with the hardware and software organization of high-performance parallel computing
systems, and
Have experience with the implementation of parallel applications on high-performance computing
systems, and be able to measure, tune, and report on their performance.
Course Contents
Week Lecture Topics
Introduction to Parallel Computing
Principles of parallel algorithm design
decomposition techniques
mapping & scheduling computation
templates
Programming shared-address space systems
Cilk Plus
OpenMP
Pthreads
Parallel computer architectures
shared memory systems and cache coherence
distributed-memory systems
interconnection networks and routing
200
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
201
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Course Objective
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 Content
Date/Week Topics to be discussed
Week 1 Introduction:
Analyzing algorithms-Designing algorithms-Asymptotic notation-Standard notations
and common functions-The substitution method-The recursion tree method-The
master method
Week2 Sorting and Order statistics:
Heaps-maintaining the heap property-building a heap-The heap sort 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
Week3 Dynamic Programming:
Assembly-line scheduling-Matrix chain multiplication-elements of dynamic
programming longest common subsequence-Optimal binary search trees
Greedy algorithms
Week4 An activity selection problem-Elements of greedy strategy-Huffman codes Graph
algorithms: Representation of graphs-Breadth first search-Depth first search-
Topological sort-strongly connected components- Growing a minimum spanning tree-
Kruskal and Prims algorithms.
Week5 Single source shortest paths in directed acyclic graphs-The Bellman-Ford Algorithm-
Dijkstra’s Algorithm. All pairs shortest paths and matrix multiplication- The Floyd-
Warshall algorithm- Johnson’s algorithm for sparse matrices-Flow networks- The
Ford-Fulkerson method-Maximum bipartite matching NP-completeness
Week6 Polynomial time and its verification-NP-completeness-reducibility-proofs and NP-
complete problems- The vertex cover problem-The travelling salesman’s problem-The
set cover problem- Randomization and linear programming- The subset-sum problem
202
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
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
Course Description:
We are now in the era of Social Networks, and they are transforming our interactions in social,
educational, and business settings. Although many of us have accounts on Facebook, Google
Plus, LinkedIn and Twitter, we probably are not using them to their full potential. This course aims
to study the theory of social networks, models to analyze social networks, case studies of
Facebook, LinkedIn, Google Plus and Twitter. Further the course intends to analyze the role and
impact of social media in business, government, and society.
Learning Outcomes
At the end of this course the students will be able to:
This course aims to study the theory of social networks, models to analyze social networks, case
studies of Facebook, LinkedIn, Google Plus and Twitter. Further we intend to analyze the role and
impact of social media in business, government, and society. The course will supplement the texts
with journal articles and other readings. Students will be responsible for reading the articles and
preparing a weekly synopsis for the class. Student project will focus on current and advanced
topics related to social networks and social media. Students will also be expected to perform
programming assignments in Java, PHP or C++.
Course Contents
Week Lecture Topics
1-2 Chapter 1. Graph Theory and Social Networks
3-5 Chapter 2. Markets and Strategic Interactions in Networks
203
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
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
204
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
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
205
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
. Quality Assurance
The department of software engineering shall perform the following tasks so as to satisfy the
quality and standard of the program:
Invite guest lecturers from enterprises and industries who can share their practical
Web and multimedia based learning materials shall be provided. In addition, Students will
Students will be provided with a personal email account, secure networked computer
Facilitate on job training for students and at the same time collect feedback from the
corresponding employers,
Tutorial sessions for each course will be organized for groups of up to 30 students to
Carry out regular assessment of the program based on current trends in the field of
Create conducive environment and incentive so that students can conduct appropriate
206
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
Research activities of academic staff shall be incorporated into the teaching program,
which can provide individual students an opportunity to work with academics on some
aspect of research,
Upgrade course outlines that can suit both local and international standards, such as the
4. Staff profile
Staff Profile in School of Computing and Informatics.
Staff profile refers to number of faculty members with appropriate credentials and experience
required to run the proposed Graduate Program in Software Engineering.
Table 9: Staff Profile in SCI
No Designation of Staff Member Staff Qualification Number of Staff Members
Total 98
4.1 Resources
The School of Computing and Informatics is currently having the following: libraries, laboratories
equipment’s, ICT, and access to electronic resources.
Libraries – the SCI shares the central Library and Digital Library that is used by all MTU
–Tepi Campus departments with access of books and electronic recourses.
Laboratories - there are 17 Computer Laboratory Rooms which are reserved for
practical/laboratory classes and serving the existing three departments.. On an average
there are around 25 computers in each laboratory rooms. Therefore, there are more than
207
Curriculum for Software Engineering Program, for the new education roadmap 2013 E.C (2020/21 G.C)
400 desktop computers with 4 GB – 8 GB RAM allocated for the SCI for running
undergraduate programs.
Offices - the SCI has enough offices to accommodate all staff members in different
buildings.
For the commencement of Software Engineering department we request the following resources:
Offices: A dedicated office for the Head of Department with Secretarial assistance.
Laboratories: A minimum of 2 laboratories at the moment for the commencement of the
program which can be further increased according to the student’s intake capacity.
Lab Assistants: The Software Engineering department is in need of 2 Laboratory
Assistants to assist in the ongoing process.
Machines: Like: - Copy machine, printer and projector to facilitate learning teaching
process
208