0% found this document useful (0 votes)
275 views90 pages

Handbook SE Program ForMinistry-FINAL-Printing

This document provides an introduction to the Bachelor of Science in Software Engineering program at the University of Prince Mugrin. It outlines the program's objectives, structure, courses, and benchmarking process. The 4-year program aims to produce software engineers to serve Saudi Arabia and follows accreditation standards from ABET. It benchmarks courses and credit hours against top programs from schools like King Saud University and Iowa State University to ensure quality. The handbook provides all relevant details about the program's vision, curriculum map, and course descriptions.

Uploaded by

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

Handbook SE Program ForMinistry-FINAL-Printing

This document provides an introduction to the Bachelor of Science in Software Engineering program at the University of Prince Mugrin. It outlines the program's objectives, structure, courses, and benchmarking process. The 4-year program aims to produce software engineers to serve Saudi Arabia and follows accreditation standards from ABET. It benchmarks courses and credit hours against top programs from schools like King Saud University and Iowa State University to ensure quality. The handbook provides all relevant details about the program's vision, curriculum map, and course descriptions.

Uploaded by

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

BACHELOR OF SCIENCE IN

SOFTWARE ENGINEERING

Program Handbook

Department of Software Engineering

College of Computer Science and Information


Technology

University of Prince Mugrin


Madinah Al Munawwarah
1
About This Handbook

This document provides an introduction about the program, its value to


the Kingdom of Saudi Arabia, the accreditation procedure we followed,
the accreditation body, the benchmarking procedure and the universities
we used to benchmark the courses and credit hours, which is intended to
be used by the Ministry of Education, Kingdom of Saudi Arabia. It
provides a detailed overview of the newly introduced program entitled
Bachelor of Science in Software Engineering that we envision to serve
as a model program within Saudi Arabia and rest of the world.

The handbook gives an account of the statistics of the similar top ranked
programs, their study plans, Accreditation Board for Engineering and
Technology (ABET) criteria, ACM-IEEE curriculum guidelines, knowledge
areas, and subjects within the knowledge areas, and accredited body of
the similar programs, i.e., ABET.

2
Table of Contents
About This Handbook __________________________________________________________ 2
Glossary ______________________________________________________________________ 5
1. Introduction _______________________________________________________________ 6
2. About the University of Prince Mugrin and College of Computer Science and
Information Technology ________________________________________________________ 7
3. Background and Introduction of the Department and Program Program__________ 9
3.1 Department Mission _________________________________________________________________ 9
3.2 Definition Vision ____________________________________________________________________ 9
3.3 Definition and Scope of the Program ___________________________________________________ 10
3.4 Needs of the Program _______________________________________________________________ 11
3.5 Vision of the Program _______________________________________________________________ 11
3.6 Mission of the Program ______________________________________________________________ 12
3.7 Program Objectives (POs) ____________________________________________________________ 13
3.8 Student Learning Outcomes __________________________________________________________ 14
4. Details about the Software Engineering Program _____________________________ 15
4.1 General Information of the Program ________________________________________________ 15
4.2 General Framework of Proposed Program ___________________________________________ 15
4.3 Complete Listing of Program Courses _______________________________________________ 17
4.3.1 General Education Courses __________________________________________________________________ 17
4.3.2 College Requirements Courses _______________________________________________________________ 20
4.3.3 Major Compulsory Program Courses __________________________________________________________ 21
4.3.4 Program Elective Courses ___________________________________________________________________ 21
4.3.5 Supporting Courses ________________________________________________________________________ 22
4.3.6 Practical Training Courses ___________________________________________________________________ 22
4.3.7 Capstone Project Courses ___________________________________________________________________ 23
4.3.8 Credit Requirements Distribution Table ________________________________________________________ 24
4.3.9 Program Entry Requirements ________________________________________________________________ 25
4.3.10 Four Year Study Plan of the Program _________________________________________________________ 26
4.3.11 Curriculum Flowchart of the SE Program ______________________________________________________ 27
4.4 Detailed Semester wise Four Year Study Plan _____________________________________ 28
First Year: Freshman ____________________________________________________________________________ 28
Second Year: Sophomore ________________________________________________________________________ 29
Third Year: Junior ______________________________________________________________________________ 30
Fourth Year: Senior _____________________________________________________________________________ 31

5. Detailed Benchmarked Course Descriptions _____________________________________ 32


5.1 Course Outlines of Computer Science and related Courses __________________________________ 32
3
5.2 Course Outlines of Forensic and Security related Courses___________________________________ 41
5.3 Course Outlines of Software Engineering Courses _________________________________________ 42
5.3 Course Outlines of Software Engineering Elective Courses __________________________________ 53
6. Benchmarking Framework for the Software Engineering Program ______________ 60
6.1 Accreditation Commissions for SE Programs _____________________________________________ 60
6.2 ABET Accreditation Criteria (General) for SE Programs ____________________________________ 60
6.3 ABET Accredittaion Criteria (Specific) for SE Programs _____________________________________ 61
6.4 ABET Accreditted Programs in Software Engineering ______________________________________ 61
6.5 Benchmarking Procedure ____________________________________________________________ 63
6.6 Benchmarking Standards __________________________________________________________ 66
6.6.1 ACM/IEEE Core SE Knowledge Areas __________________________________________________________ 66
6.6.2 Mapping of ACM/IEEE Knowledge Areas with Proposed Program Courses ____________________________ 68
6.7 Benchmarking Comparisons _______________________________________________________ 70
6.7.1 List of ABET accredited Programs chosen for Comparisons ________________________________________ 70
6.7.2 Comparison by subject areas credit hours between proposed and ABET accredited programs ___________ 71
6.7.3 Comparison by knowledge areas between proposed and ABET accredited programs with ACM defined
knowledge areas_______________________________________________________________________________ 72
6.8 Benchmark Programs Study Plans _________________________________________________ 73
6.8.1 King Saud University University, KSA __________________________________________________________ 73
6.8.2 King Fahad University of Petroleum and Minerals, KSA ___________________________________________ 77
6.8.3 ALHOSN University, UAE ____________________________________________________________________ 79
6.8.4 Iowa State University, USA ______________________________________________________82
6.8.5 6iversity of Michigan-Dearborn, USA _______________________________________________85
6.8.6 Auburn University, Alabama, USA __________________________________________________86
6.8.7 University of Texas at Arlington, USA _________________________________________________________88

Appendix _____________________________________________________________________ 89
Curriculum Revision Form by External Reviewer _____________________________________________ 90

4
Glossary

UPM: University of Prince Mugrin


FC: Forensic Computing
CS: Computer Science
SE: Software Engineering
CSIT: Computer Science and Information Technology
ACM: Association for Computing Machinery
ABET: Accreditation Board for Engineering and Technology.
IEEE: Institute of Electrical and Electronic Engineers.
NCAAA: National Commission for Academic Accreditation & Assessment
Accreditation.
KFUPM: King Fahad University of Petroleum and Minerals
KSU: King Saud University
ISU: Iowa State University
AUB: Auburn University
UTX: University of Texas at Arlington
MIC: University of Michigan-Dearborn

5
1. Introduction

Everything nowadays is managed by computers and because of this, one of the most
emerging professions in the world is software engineering. For example, machines which
were totally mechanical are now mostly software controlled. The software industry is one of
the very few fields that provides great prospect for graduates. It is one of the most flexible
careers, because software engineers can work anywhere where they have computers and
access to the Internet. Many software developers work for firms that deal in computer
systems design and related services firms or for software publishers. Some systems
developers work in computer- and electronic productmanufacturing industries.
Applications developers work in office environments, such as offices of insurance carriers
or corporate headquarters. In general, software development is a collaborative process, and
developers work in teams with others who also contribute to designing, developing, and
programming productive software.

Bachelor program in Software Engineering provides students with both breadth and depth
across the range of engineering and computer science topics. Software engineering is the
study and an application of engineering to the design, development and maintenance of
software. The program covers computing fundamentals, software design and construction,
requirements analysis, security, verification and validation; software engineering processes
and tools appropriate for the development of complex software systems, discrete
mathematics, probability, and statistics. Software engineering has been named the best job
of 2012 by CareerCast.com, based on work environment, physical demands, outlook,
income, and stress. The hiring outlook for software engineers is favorable, thanks largely to
new, exciting technologies like smartphones, tablet applications, and cloud software.

After completion of this program, graduates shall be expected to perform all in areas of the
software development lifecycle from requirement definition, through analysis, design, code,
test, maintenance, and integration. This will be either within a real-time embedded
environment or a desk-top environment, developing complex software systems. Graduates

6
will be exposed to the latest tools, technologies and processes and there may be
opportunities to contribute towards the investigation and analysis of leading edge
development methodologies and influence the future path of software development. They
will be capable of developing practical skills in design techniques for land, sea and
aerospace software applications, understand key processes and technologies, and develop
software using state-of-the-art modeling tools. They will also be working closely with
system engineers and hardware engineers to solve real software integration problems, in
accordance with appropriate processes and procedures of high standards.

2. About the University of Prince Mugrin and College of Computer


Science and Information Technology

University of Prince Mugrin (UPM) is the first non-profit private university in Madinah Al
Munawwarah with both male and female students, faculties and staff. UPM is a
multicultural university as it opens its doors to international students. UPM offers
scholarships to both local and International talented students. UPM aspires to be one of the
leaders in higher education by leveraging its multiple, internationally accredited programs.
Each program is designed by following international benchmarking criteria with the
curriculum of top universities in each field.

Computer Science (CS) and Information Technology (IT) are fast-moving and dynamic
fields that bring together disciplines, including mathematics, programming, engineering,
logic, natural sciences, security, psychology and linguistics. Students in this field develop
their analytical, logical thinking, and problem solving capabilities. This rapidly emerging
discipline provides the basis for many other specialized disciplines, and hence this makes
CS and IT an interdisciplinary discipline, which is applied in almost every walks of our
lives. The list includes computer security, bioinformatics (computing with biology),
computational linguistics (computing with linguistics), electronic commerce (computing
with commerce), multimedia applications (computing with images, sound, and video),
health information technology (computing with health services), cybernetics (computing
7
with telecom), informatics (computing with information science), e-learning (computing
with learning), and computer forensic (computing with forensic science), to name a few.
The college of Computer Science and Information Technology (CSIT) of UPM offers the
following THREE undergraduate programs.

1. Bachelor of Science in Forensic Computing and Cyber Security (BSFCCS)


2. Bachelor of Science in Computer Science (BSCS)
3. Bachelor of Science in Software Engineering (BSSE)

In addition to the above majors, the college of CSIT also offers four industry standard minor
programs, namely, Minor in Computer Science, Computer and Digital Forensics, Cyber
Security, and Information Technology.

The academic programs offered at the College of Computer Science and Information
Technology have been strictly designed and benchmarked in accordance with set of
standards existing in the National and International bodies of Quality Assurance. The
curricula of CSIT college programs follow the curriculum guidelines for undergraduate
degree programs published by the Association for Computing Machinery (ACM), and
IEEE-CS. The college courses also satisfy programs criteria set by Computing
Accreditation Commission (CAC), and Engineering Accreditation Commission (EAC) of
the Accreditation Board for Engineering and Technology (ABET) of USA, and British
Computer Society (BCS). They are also in accordance with Qualifications Framework for
Higher Education in the Kingdom of Saudi Arabia published by the National Commission
for Academic Accreditation & Assessment (NCAAA). Finally, the Software Engineering
program courses have been designed to follow the top ranked Universities, offering similar
programs that are accredited by the ABET; details of which can be found in Section 6.

8
3. Background and Introduction of the Department and Program

3.1 Department Mission

The mission of the Department of Software Engineering (SE) is to advance knowledge and
educate students in science, technology, and other vital Software Engineering areas of
knowledge that will best serve the Kingdom of Saudi Arabia and the rest of the world in
the 21st century.

By leveraging the spirit of excellence in teaching, research, scholarship, creative activity,


outreach, and community engagement, Department of SE wants to take lead in the
contribution of the national policy making with regards to software development and
software engineering, leading to socio-economic development of the Kingdom of Saudi
Arabia.

At the center of SE Departments spirit is interdisciplinary exploration and enhanced


collaboration between SE Department and industries, which is expected to fuel many
scientific breakthroughs and technological advances in the areas such as information and
communication technologies (ICT), software development, software security, and software
project management, software architecture, software modeling, and software maintenance
and evolution.

SE Departments envision of impact also includes the innovation. One way SE graduates
are expected to drive progress is by starting software development companies that deliver
new ideas and solutions toward a quality software application development.

3.2 Department Vision

To be a premier Department locally and globally for providing Education, performing


Research and Innovation.

To become a regional center of excellence within the Kingdom of Saudi Arabia in the area
of Software Engineering for graduate and professional education, research and
scholarship - creating knowledge and innovation that fundamentally improve lifelong
learning and secure the way people live. It will excel in the technology and sciences,
dynamically enhancing the way our graduates understand and experience their world.

To become a national model of excellence for challenging, learner-centered academic


communities that advance knowledge in the areas of Software Engineering and improve
economic vitality and quality of life.

9
To make a window for the extension and outreach programs by which Department of SE
will respond to the changing security needs of the Kingdom of Saudi Arabia.

3.3 Definition and Scope of the Program

In theory Software Engineering is a subset of computer engineering, but in practice


Computer Engineering often refers mostly to hardware design. By and large, in practice, a
lot of Computer Science programs focus mostly on software design.

In practice, Software Engineering is a sub-field of computer science, which deals with the
development and building of computer systems software and applications software. Systems
software consists of programs that include computing utilities and operations systems and
applications software includes user-focused programs, including database programs, Web
browsers and more. The knowledge of programming languages, software development and
computer operating systems are three major components of the field. Software engineering
is a related, but slightly different occupational field than computer hardware engineering,
which is concerned with the design and development of hardware and computing
technologies (e.g. processor design, networking, etc.). [Ref:
http://www.computerscienceonline.org/software-engineering/)

The program will enable its graduates to become software engineers, who can develop
software for a broad range of fields, including, telecommunications, financial systems,
aeronautics, medical devices, transportation systems, and banking and insurance companies.
The program will also enable its graduates to attain technical, and decision-making
positions, such as Systems Analyst, Software Architect, Quality Analyst, and Project
Manager.

10
3.4 Needs of the Program

Saudi organizations, in both the private and public sectors, are rapidly increasing their
spending on Information and Communication Technologies (ICT). Spending on computers,
enterprise networks, servers and storage systems, and software applications has seen
significant growth over the past few years.

The demand for professional software engineers in Saudi Arabia has increased and many
companies are looking for good software engineers. Like many Saudi universities, the UPM
also understands the need of undergraduate engineering programs, including architectural,
electrical, civil, mechanical, and software engineering, which are highly demanded in the
Saudi market.

The ICT workforce that comprises nearly 165,000 professionals is employed in a number
of specialties. ICT support and helpdesk executive, systems engineer (including computer
networking engineer), and software developer are the three most common specialties.
Relative to other specialties, a greater number of ICT support and helpdesk jobs will be
created over the next few years. There is a subset of jobs expected to have relatively higher
demand while also being relatively more difficult to find and hire. Among these, the greatest
focus is required on the development of specialties such as software application developer,
software apps manager, consultant, and design engineer, alongside continuing efforts to
monitor the requirement for other ICT specialties. [Ref: ICT Report: ICT Workforce in the
Kingdom of Saudi Arabia, 2015;
http://www.citc.gov.sa/en/reportsandstudies/Reports/Documents/ICTWorkforce_en.pdf]

Software engineering career path is believed to be an excellent choice for anyone who has a
creative mind, good programming skills and eagerness to learn and create, considering that

11
its job opportunities are plentiful because the field is expanding at a quick pace, and seems
to continue for the next decades.

3.5 Vision of the Program

The Bachelor of Science in Software Engineering program is envisioned to take lead in


Software Engineering education in the Kingdom. Through the program, we envisage to be
recognized throughout the world in general, and the Middle Eastern region in particular as a
source of knowledge, expertise, and innovation in the field of Software Engineering.
Through this program, we also aspire to build partnerships with Government and private
organizations, universities, and industries to meet the current and future needs in the areas of
Software Engineering.

3.6 Mission of the Program

The mission of the Software Engineering program is to:

Provide world-class quality academic programs in disciplines related to software


engineering.
Meet the requirements of national development and the continuing needs of the
industry for knowledgeable, creative, and skilled software engineering graduates to
compete in the globalized economy.
Prepare graduates who will take a leading role in supplying skills and adding
individuals to the ICT workforce.
Serve the society, and play a leading role in transforming it into a knowledge-based
society.
Produce and support scientific research that contributes to the enrichment of
knowledge and that achieves the development goals of the Kingdom.
Provide an academic environment that encourages and supports quality production
and excellence.

12
3.7 Program Objectives (POs)

Upon successful completion of the program, graduates will be able to:

Demonstrate the development of software systems of varying size and complexity


through the use of fundamental software engineering knowledge, work with
appropriate design principles, tools, and technologies
Demonstrate the incorporation and management of domain-appropriate software
processes, methodologies, and quality practices in software product development
Meet the needs of industry or academia and contribute to, and/or lead, software
engineering based teams
Demonstrate the effectiveness as both an individual contributor and a member of a
development team with professional, ethical, and social responsibilities
Develop critical, analytical and intellectual abilities of students by nurturing creative
and independent thinking, and the ability to communicate clearly and logically
Practice as computing professionals (appropriate to the description of the Software
Engineering program), conducting research and/or leading, designing, developing, or
maintaining projects in various technical areas
Apply the ethical and social aspects of modern computing technology to the design,
development, and usage of computing artifacts
Enhance skills and embrace new computing technologies through self-directed
professional development and post-graduate training or education

3.8 Student Learning Outcomes

After completion of this program, the successful students will have attained the following
learning outcomes, which are adopted from the EAC of ABET:

(a) An ability to apply knowledge of mathematics, science, and engineering


(b) An ability to design and conduct experiments, as well as to analyze and interpret data

13
(c) An ability to design a system, component, or process to meet desired needs within
realistic constraints such as economic, environmental, social, political, ethical, health
and safety, manufacturability, and sustainability
(d) An ability to function on multidisciplinary teams
(e) An ability to identify, formulate, and solve engineering problems
(f) An understanding of professional and ethical responsibility
(g) An ability to communicate effectively
(h) The broad education necessary to understand the impact of engineering solutions in a
global, economic, environmental, and societal context
(i) A recognition of the need for, and an ability to engage in life-long learning
(j) A knowledge of contemporary issues
(k) An ability to use the techniques, skills, and modern engineering tools necessary for
engineering practice.

14
4. Details about the Software Engineering Program

4.1 General Information of the Program

Program Name Software Engineering


Bachelor of Science in Software Engineering
Final Awarded Degree
(BSSE)
Program Code BSc
Credit Units 132
Language of Instruction English
Mode of Study Full Time
Study Duration 4 Years
Number of levels 8 Levels
Number of weeks/level 16 weeks
Graduation requirements GPA 2.0/4.00

4.2 General Framework of Proposed Program

Requirements Courses Type Number of Credit Hours

Compulsory 6
General
Elective 12
College Compulsory 44
Compulsory (CS and FC) 38
Supporting 13
Major Elective 12
Graduation Project 6
Practical Training 1
Total of Program Credit Hours 132

15
The general framework describes the program requirements. These include University,
College, and Program Major (Core, Electives, Support, Graduation Project, and Practical
Training) courses.

The University requirements include compulsory and electives courses in the areas of
Arabic language and Islamic culture (compulsory), Humanities and Arts, Social Sciences,
Diversity and Multiculturalism, and Specialized courses in Islamic Studies (elective).

The college requirements include courses that are foundation courses in the Computer
Science area. These include, introduction to computing and programming, object-oriented
programming, data structures and algorithms, discrete systems, database systems, digital
logic and design, computer architecture and organization, operating systems, and computer
networking and data communications.

The program major requirements include core and electives in the area of software
engineering, besides final year capstone project and the practical training courses.

The distribution of credit hours in the subject areas has been in accordance to the credit
hours used in the benchmarked universities, in particular the ABET credits criteria for
Computer Science and Software Engineering courses. With regards to distribution of
General education courses, we followed the ABET criteria along with seven national,
regional and international benchmarked universities credit hours.

16
4.3 Complete Listing of Program Courses

4.3.1 General Education Courses:

General Education Compulsory Courses

Course Credit Study Course


No Course Title Lect.

Code Units Level Prerequisites
1 GIAS 101 Islamic Culture 3 3 3 -
Arabic Language
2 GIAS 102 3 3 4 -
Skills
Total Units of Compulsory Courses 6

General Elective Requirements Courses

Students should choose four courses from the list of elective courses with a total of (12 credit units)
as indicated below.

Course Credit Study Course


No Category Lect.
Code Units Level Prerequisites

1 GIAS xxx Area 1: Islamic Studies 3 3 7 Area 1


GHAL Area 2: Humanities, Arts,
2 3 3 1 Area 2
xxx and Languages
3 GSOS xxx Area 3: Social Sciences 3 3 2 Area 3
GDMC Area 4: Diversity &
4 3 3 8 Area 4
xxx Multiculturalism
ENGL Area 5: English
5 3 3 - Area 5
xxx Language
Total Units of Elective Courses 12

17
The specific categories are defined as under:

Area 1: Islamic Studies Elective (GIAS xxx) Courses.

Students should choose one course (3 credit hours) from the following Islamic Studies elective
courses.

Course Credit Study Teaching


No Course Title Lect.

Code Units Level Media
Science & Interpretation
1 GIAS 211 3 3 7 Arabic
of the Holy Qur'an
Prophet Mohamed
2 GIAS 221 3 3 7 Arabic/English
(PBUH) Biography
3 GIAS 241 Fiqh of Transactions 3 3 7 Arabic
4 GIAS 242 Human Rights 3 3 7 Arabic

5 GIAS 251 Islamic Civilization 3 3 7 Arabic/English

One Course 3

Area 2: Humanities, Arts, and Languages Elective (GHAL xxx) Courses.


Students should choose one course (3 credit hours) from the following Humanities, Arts and
Languages elective courses.

Course Credit Study Teaching


No Course Title Lect.

Code Hours Level Media

1 GHAL 221 Heritage of Saudi Arabia 3 3 1 Arabic/English

Arabic Communication
2 GHAL 241 3 3 1 Arabic/English
Skills
3 GHAL 242 Modern Arab History 3 3 1 English

4 GHAL 243 Modern World History 3 3 1 English


Classics of World
5 GHAL 332 3 3 1 English
Literature
6 GHAL 431 Arabic Literature 3 3 1 English

7 GHAL 442 History of Science 3 3 1 Arabic/English


One Course 3

18
Area 3: Social Sciences (GSOS xxx) Elective Courses.
Students should choose one course (3 credit hours) from the following Social Sciences elective
courses.

Course Credit Study Teaching


No Course Title Lect.

Code Hours Level Media
Introduction to
1 GSOS 212 3 3 2 Arabic/English
Sociology
2 GSOS 214 Work and Society 3 3 2 Arabic/English

3 GSOS 216 Mass Media and Society 3 3 2 Arabic/English

Science and Social Issues
4 GSOS 218 3 3 2 Arabic/English
in the Modern World
Introduction to
5 GSOS 222 3 3 2 Arabic/English
Psychology
Introduction to Political
6 GSOS 234 3 3 2 Arabic/English
Science
One Course 3

Area 4: Diversity and Multiculturalism (GDMC xxx) Elective Courses.

Students should choose one course (3 units) from the following Diversity and Multiculturalism
elective courses.

Course Credit Study


No Course Title Lect. Teaching Media

Code Units Level

1 GDMC 313 International Relations 3 3 Arabic/English


8
2 GDMC 323 World Civilizations 3 3 8 Arabic/English

3 GDMC 333 Globalization 3 3 8 Arabic/English

One Course 3

19
Area 5: English Language (ENGL xxx) Elective Courses.

ENGL111 (English Language 1) and ENGL112 (English Language 2) can substitute any elective core
courses from GHAL, GSOS and GDMC. Students who were not able to get the required score in one of the
standardized tests (IELTS, TOEFL) are recommended to study these two courses.

Course Credit Study Teaching


No Course Title Lect.

Code Hours Level Media

1 ENGL 111 English Language 1 3 3 * Arabic/English 1

2 ENGL 112 English Language 2 3 3 * Arabic/English 2

One Course 3

*: Can be taken as electives within any of the GS areas, i.e., GHAL, GDMC, and GSOS.

4.3.2 College Requirements Courses:

Course Credit Unit Type Study Course Course


No Course Title Prerequisite Co-
Code Hours Level
Lect. Tut. Lab. requisite
1 MATH 101 Calculus I 4 4 1 - 1 MATH 002

2 MATH 102 Calculus II 4 4 1 - 2 MATH 101

3 PHYS 101 General Physics I 4 3 1 3 1 MATH 002 MATH 101


4 PHYS 102 General Physics II 4 3 1 3 2 PHYS 101
5 ENGL 101 First Year Composition 3 3 1 - 1 ENGL 005
Introduction to Report
6 ENGL 102 3 3 1 - 2 ENGL101
Writing
7 ENGL 201 Technical Writing 3 3 - - 5 ENGL102
Introduction to Computing
8 CS 111 4 3 1 3 1 PCS 001
and Programming
Object Oriented
9 CS 112 4 3 - 3 2 CS 111
Programming
Introduction to Discrete
10 CS 201 3 3 1 - 3 MATH 102
Systems
Data Structures and
11 CS 211 4 3 - 3 3 CS 112
Algorithms
Fundamentals of Database
12 CS 351 4 3 - 3 3 CS 112
Systems
Total Required Credit Hours 44

20
4.3.3 Major Compulsory Program Courses:

Students enrolled in Bachelor of SE should study all of the following courses.


Course
Course Credit Study Course
No Course Title Unit Type Co-
Code Hours Level Prerequisite
requisite
1 CS 223 Digital Logic Design 3 2 1 2 3 CS 111
Computer Architecture
2 CS 224 3 3 1 - 4 CS 223
and Organization
3 SE 262 Software Engineering 3 3 1 - 4 CS 112
CS 211
4 CS 321 Operating Systems 4 3 - 3 5
CS 224
Software
5 SE 311 Requirements 3 3 1 - 5 SE 262
Engineering
Software Modeling
6 SE 323 3 3 1 - 5 SE 262
and Analysis
Computer Networks
7 CS 332 and Data 4 3 - 3 6 CS 321
Communications
Software Architecture
8 SE 342 3 2 1 2 6 SE 323
and Design
Software Maintenance
9 SE 334 3 3 1 - 6 SE 311
and Evolution
10 SE 471 Software Security 3 2 1 2 7 CS 332
Software Testing and
11 SE 463 3 2 1 2 7 SE 342
Validation
Ethics and
12 FC 372 3 3 - - 6
Professionalism
Total Required Credit Hours 38

4.3.4 Program Elective Courses in Software Engineering:

Students enrolled in Bachelor of Science in Software Engineering program should choose


four courses (12 units) from the following Software Engineering/Computer Science elective courses.

Course Unit Type


Credit Study Course
No Code Course Title
Hours Lect. Tut. Lab. Level Prerequisite
1 CS 341 Artificial Intelligence 3 3 1 - 7/8 CS 211
2 CS 481 Computer Graphics 3 2 1 3 7/8 CS 211
3 SE 464 Software Project Management 3 2 1 2 7/8 SE 262
4 CS 463 Human Computer Interaction 3 3 1 - 7/8 SE 262
5 SE 443 Web Programming 3 2 1 3 7/8 CS 112
6 SE 453 Software Engineering Economy 3 3 1 - 7/8 SE 262
7 SE 493 Selected Topics in Software 3 3 1 - 7/8 Approval

21
Engineering
Total Required Credit Hours 12

4.3.5 Supporting Compulsory Courses:

Courses in the following table are required to Software Engineering Major to fulfill
competency requirements.

Course Credit Unit Type Study Course


No Course Title Prerequisite


Code Hours Lect. Tut. Lab. Level
MATH
1 202
Calculus III 3 3 1 - 4 MATH 102

2 STAT 232 Probability and Statistics 3 3 1 - 4 MATH 102


MATH
3 204
Linear Algebra 3 3 1 - 5 MATH 102
CHEM
4 101
General Chemistry 4 3 1 3 3 None

Total Required Credit Hours 13

4.3.6 Practical Training:

Students are required to take the following Practical Training course, offered in the summer
term of the Junior Year. Students must pass this course before undertaking the Capstone
Project course, which is offered in the Senior Year.

Course Credit Unit Type Study Course


No Course Title Prerequisite


Code Hours Lect. Tut. Lab. Level
Summer All Year 3
1 SE 394 Practical Training * 1 - - - Term of Core
Year 3 Courses
Total Required Credit Hours 1

*: All Year Three Core courses of first and second semesters must have been passed.

The course Practical Training (SE 394) provides students with an opportunity to integrate
theory and practice by working in a supervised environment. The setup of the training is
outlined below.

22
Setup of the training period: The college committee arranges student placements in relevant
industry for obtaining practical experience. The practical or field placement agreements
serve as a contract between the University and the training organization. Each student
undertakes full time training for a duration of eight weeks, 30-40 hours a week, during the
summer semester in organizations that deal with software engineering issues. The
internships offer practical applications of theoretical studies in the areas of software
engineering. The supervisor at the workplace is responsible for guiding and assigning tasks
to the student as well as reporting the students progress to the faculty advisor at the
Software Engineering Department. The general guidelines about the types of outcomes
students are required to produce are provided by the college to the supervisor at the
workplace. Upon the completion of practical experience in the industry, each student is
required to submit technical reports to both the on-site supervisor and the faculty advisor
and to give an oral presentation in the presence of the same. For more details, please refer to
course outline entitled Practical Training (SE 394).

4.3.7 Capstone Project Courses:

Course Credit Unit Type Study Course


No Course Title Prerequisite


Code Hours Lect. Tut. Lab. Level
1 SE 491 Capstone Project I 3 1 - 5 7 SE 394
2 SE 492 Capstone Project II 3 1 - 5 8 SE 491
Total Required Credit Hours 6

*: Practical Training course must have been passed.

23
4.3.8 Credit Requirements Distribution Table

The requirements for graduating for the Program of Software Engineering are that a student
successfully completes a total of 132 credit hours with a cumulative GPA of no less than 2.0
out of 4.0. The credit requirements are distributed as listed below.
General Education Courses (Areas 1, Mathematics, Science Software Professional Electives
2,3,4 and 5) and Competency Areas and Supporting Courses Engineering and
related Courses
Areas Course # Credits Course # Credits Course # Credits Areas # Course # Credits
General Education Compulsory From Four Areas
Mathematics Courses Program Courses
Courses
Islamic Culture GIAS 101 3 MATH 101 4 CS 111 4 SE xxx 3
Arabic Lang GIAS 102 3 MATH 102 4 CS 112 4 SE xxx 3
General Education Electives : CS 201 3 CS 223 3 SE xxx 3
Area 1 GIAS xxx 3 CS 211 4 SE xxx 3
Area 2 GHAL xxx 3 CS 224 3
Area 3 GSOS xxx 3 SE 262 3
Area 4 GDMC xxx 3 CS 321 4
Area 5 ENGL xxx 3*
Competency Courses Sciences Courses CS 351 4
ENGL 101 3 PHYS 101 4 SE 311 3
ENGLISH ENGL 102 3 PHYS 102 4 SE 323 3
ENGL 201 3 SE 342 3
CS 332 4
Supporting Courses SE 334 3
STAT 232 3 SE 394 1
MATH 202 3 SE 491 3
MATH 204 3 SE 471 3
CHEM 101 4 FC 372 3
SE 492 3
SE 463 3

Total per Category 27 32 61 12


Total Credit Hours Required for the Computer Science major 132

*: Can be taken as electives within any of the GS areas, i.e., GHAL, GDMC, and GSOS

24
4.3.9 Program Entry Requirements

Students are required to have a scientific high school certificate before embarking on the
program. Before entering the SE program, students have to complete the Prep Year
program (PYP). A student may waive the PYP upon achieving the required levels in
English, Mathematics, and Computer Skills via placement tests. During the PYP, students
take two mathematics courses of 4 credits each. Besides this, in their PYP, students have
to successfully complete the English course requirements (Level 5 of the PYP). Those
who achieve an IELTS score of 5.0 (or equivalent of TOEFL score), prior to the end of the
academic year, may be considered for early admission into the freshmen academic
program at that point of time. Students are also required to pass the course, Preparatory
Year Computing in the PYP.
.
University Admission Requirements:

1. Saudi High School Certificate or Equivalent with 80% or more.


2. Should be a recent graduate from high school (not more than 5 years since
graduation)
3. Aptitude exam with result 65% or more.
4. Achievement Exam result with 60 % or more.
5. IELTS exam result with Grade 5 or more.
6. The university has the right to waive any of the requirement.

25
4.3.10 Four Year Study Plan of Software Engineering Program

First Year: First Semester First Year: Second Semester


Course Credit Co Course Credit Pre Co
Course Title Prerequisite Course Title
code Hours Requisite Code Hours requisite requisite
MATH 101 Calculus I 4 MATH 002 MATH 102 Calculus II 4 MATH 101
MATH
PHYS 101 General Physics I 4 MATH 002 PHYS 102 General Physics II 4 PHYS 101
101
Introduction to
Object Oriented
CS 111 Computing and 4 PCS 001 CS 112 CS 111
Programming 4
Programming
Introduction to Report
ENGL 101 First Year Composition 3 ENGL 005 ENGL 102 3 ENGL 101
Writing
Humanities, Arts, and
GHAL xxx 3 GSOS xxx Social Sciences Elective 3
Languages Elective
Total 18 Total 18
Second Year: First Semester Second Year: Second Semester
CHEM 101 General Chemistry 4 STAT 232 Probability and Statistics 3 MATH 102
MATH
CS 223 Digital Logic Design 3 CS 111 Calculus III 3 MATH 102
202
Introduction to Discrete Computer Architecture and
CS 201 3 MATH 102 CS 224 3 CS 223
Systems Organization
Data Structures and
CS 211 4 CS 112 SE 262 Software Engineering 3 CS 112
Algorithms
GIAS 101 Islamic Culture 3 GIAS 102 Arabic Language Skills 3
Total 17 Total 15
Third Year: First Semester Third Year: Second Semester
Software Architecture and
MATH 204 Linear Algebra 3 MATH 102 SE 342 3 SE 323
Design
CS 211, Computer Networks & Data
CS 321 Operating Systems 4 CS 332 4 CS 321
CS 224 Communications
Fundamentals of Software Maintenance and
CS 351 4 CS 112 SE 334 3 SE 311
Database Systems Evolution
Software Requirements
SE 311 3 SE 262 ENGL 201 Technical Writing 3 ENGL 102
Engineering
Software Modeling and
SE 323 3 SE 262 FC 372 Ethics and Professionalism 3
Analysis
Total 17 Total 16
Summer Practical Training (SE 394, Pre-requisite: Year 3 Core Courses ): 1 credit
Fourth Year: First Semester Fourth Year: Second Semester
SE 491 Capstone Project I 3 SE 394 SE 492 Capstone Project II 3 SE 491
Diversity and
SE 471 Software Security 3 CS 332 GDMC xxx 3
Multiculturalism Elective
Software Testing and College
SE 463 3 SE 342 SE xxx Professional Elective II 3
Validation Approval
Islamic Studies College
GIAS xxx 3 SE xxx Professional Elective III 3
Elective Approval
College College
SE xxx Professional Elective I 3 SE xxx Professional Elective IV 3
Approval Approval
Total 15 Total 15
Total Credits Required: 132

Note1: Subject to minor changes if required.


Note2: ENGL 111 and ENGL 112 can be taken as an elective within any of GDMC xxx, GSOS xxx, and GHAL xxx areas.

26
4.3.11 Curriculum Flowchart of the SE Program

27
4.4 Detailed Semester wise Four Year Study Plan

First Year: Freshman

First Level
Course Credit Unit Type Course Requisite
No Course Title

Code Hours Lect. Tut. Lab. Pre. Co.

1 MATH 101 Calculus I 4 4 1 - MATH )1(


002
MATH MATH
2 PHYS 101 General Physics I 4 3 1 3 )1(
002 101
Introduction to Computing
3 CS 111 4 3 - 3
and Programming PCS 001

4 ENGL 101 First Year Composition 3 3 1 -
ENGL 005

GHAL Humanities, Arts, and
5 3 3 - - ) (
xxx Languages Elective

Total Required Credit Hours 18

Second Level

Course Credit Unit Type Course Requisite


No Course Title

Code Hours
Lect. Tut. Lab. Pre. Co.
4 4 1 -
1 MATH 102 Calculus II MATH 101 )2(
4 3 1 3
2 PHYS 102 General Physics II PHYS 101 )2(
Object Oriented 4 3 - 3
3 CS 112
Programming
CS 111

4 ENGL 102
Introduction to Report
3 3 1 - ENGL 101

Writing

5 GSOS xxx Social Sciences Elective 3 3 - -
)(
Total Required Credit Hours 18

28
Second Year: Sophomore

Third Level
Course Credit Unit Type Course Requisite
No Course Title

Code Hours Lect. Tut. Lab. Pre. Co.

1 CHEM 101 General Chemistry 4 3 1 3


2 CS 223 Digital Logic Design 3 2 1 2 CS 111
Introduction to Discrete
3 CS 201 3 3 1 - MATH 102
Systems
Data Structures and
4 CS 211 4 3 - 3 CS 112
Algorithms
5 GIAS 101 Islamic Culture 3 3 - -
Total Required Credit Hours 17

Fourth Level
Course Credit Unit Type Course Requisite
No Course Title

Code Hours Lect. Tut. Lab. Pre. Co.
MATH
1 STAT 232 Probability and Statistics 3 3 1 -
102
Calculus III )3(
2 MATH 202 3 3 1 - MATH 102

Computer Architecture and


3 CS 224 3 3 1 - CS 223
Organization
4 SE 262 Software Engineering 3 3 1 - CS 112
Arabic Language Skills
5 GIAS 102 3 3 - -

Total Required Credit Hours 15

29
Third Year: Junior

Fifth Level
Course Credit Unit Type Course Requisite
No Course Title

Code Hours Lect. Tut. Lab. Pre. Co.

1 MATH 204 Linear Algebra 3 3 1 - MATH 102


CS 211, CS
2 CS 321 Operating Systems 4 3 - 3
224
Fundamentals of Database
3 CS 351 4 3 - 3 CS 112
Systems
Software Requirements
4 SE 311 3 3 1 - SE 262
Engineering
Software Modeling and
5 SE 323 3 2 1 2 SE 262
Analysis
Total Required Credit Hours 17

Sixth Level

Course Credit Unit Type Course Requisite


No Course Title

Code Hours Lect. Tut. Lab. Pre. Co.

Software Architecture and


1 SE 342 3 2 1 2 SE 323
Design
Computer Networks &
2 CS 332 4 3 - 3 CS 321
Data Communications
Software Maintenance and
3 SE 334 3 3 1 - SE 311
Evolution
4 ENGL 201 Technical Writing 3 3 - - ENGL 102
Ethics and Professionalism
5 FC 372 3 3 - -

Total Required Credit Hours 16

Summer Term

Course Credit Unit Type Course Requisite


No Course Title

Code Hours Lect. Tut. Lab. Pre. Co.
All Year 3
1 SE 394 Practical Training 1 - - - Core
Courses
Total Required Credit Hours 1

30
Fourth Year: Senior

Seventh Level
Course Credit Unit Type Course Requisite
No Course Title

Code Hours Lect. Tut. Lab. Pre. Co.


1 SE 491 Capstone Project I 3 1 - 5 SE 394
)1(

2 SE 471 Software Security 3 2 1 2 CS 332


3
Software Testing and
3 SE 463 2 1 2 SE 342
Validation

4 GIAS xxx Islamic Studies Elective 3 3 - -


3 College
5 SE xxx Professional Elective I 3 - -
Approval 1
Total Required Credit Hours 15

Eighth Level
Course
Course Credit Unit Type
No Course Title Requisite
Code Hours
Lect. Tut. Lab. Pre. Co.

1 SE 492 Capstone Project II 3 1 - 5 SE 491
2

Diversity and
2 GDMC xxx 3 3 - -
Multiculturalism Elective
)(
College
3 SE xxx Professional Elective II 3 3 - - 2
Approval
College
4 SE xxx Professional Elective III 3 3 - - 3
Approval
College
5 SE xxx Professional Elective IV 3 3 - -
Approval 4

Total Required Credit Hours 15

31
5. DETAILED BENCHMARKED COURSE DESCRIPTIONS

5.1 Course Outlines of Computer Science related Courses


CS 111 - Introduction to Computing and Programming

Course Credit Units Type Study Pre-


Code Course Title Hours Level requisite
Lect. Tut Lab
Introduction to
CS 111 Computing and 4 3 - 3 One PCS 001
Programming

The course has two main objectives. First is to introduce the general field of computer science.
Students will learn about introduction to computing logic, basics of data representation, computer
organization, and problem solving techniques, leading to writing algorithms. Second is to
introduce the concept of programming. Programming is the way that computer scientists express
their ideas and implement solutions to problems. Students learn the characteristics of computer
programming using Python, a general-purpose high-level programming language. Students will
design, code, and debug computer programs. The course will cover basic programming constructs
including, but not limited to: conditions, iterations, and functions. No knowledge of programming
is required.

Upon successful completion of the course, students will be able to:

Identify and understand the purpose of basic computer components, fundamental concepts of
operating systems and computer networking
Be competent in binary arithmetic and Boolean operations
Analyze a problem and design an algorithm to solve it
Analyze and design program requirements in order to understand what type of data and
processes are involved in the solution.
Understand Python code and explain what the set of instructions do
Test and debug Python programs to validate syntax and semantic errors
Demonstrate practical skills through a team-based project to work on a particular computing
problem using Python

Required Material:
The Practice of Computing Using Python, 3rd Edition, by William Punch and Richard Enbody,
Pearson, ISBN: 978-0134380179, Feb 29 2016.

Reference material:
Introduction to Programming Using Python, Y. Daniel Liang, Pearson, 1st edition, ISBN-13: 978-
0132747189, 12 Jan 2012.
32
CS 112 - Object Oriented Programming

Course Credit Units Type Study Pre-


Code Course Title Hours Level requisite
Lect Tut Lab
Object
CS 112 Oriented 4 3 - 3 Two CS 111
Programming

The course includes principles of object oriented programming including classes,


relationships between classes, inheritance, polymorphism, encapsulation and information
hiding; Principles of object oriented design; Program debugging, error handling and
documentation techniques; Implementation and simple analysis of fundamental algorithms
for sorting and searching; Event-driven programming and the use of libraries for user
interfaces.

Upon successful completion of the course, students will be able to:

Understand the fundamental Object-Oriented concepts (classes, encapsulation,


inheritance, and polymorphism)
Develop and implement programs using Object-Oriented concepts
Use standard documentation, such as UML class diagrams and online Java
documentation to express a project
Debug and validate programs through exception handling
Design and implement programs using Basic GUI and IDE
Apply the overall skills attained through a team-based project using the Object-
Oriented features

Required Material:
Absolute Java, Author: Walter Savitch & Kenrick Mock, 6th Edition, 2015, Pearson, ISBN-
10: 0134041674, ISBN-13: 978-0134041674

Reference material:
Beginning Java Programming: The Object-Oriented Approach Paperback Bart Baesens,
Aimee Backiel, March 2, 2015, ISBN-10: 1118739493, ISBN-13: 978-111873949
33
CS 201 - Introduction to Discrete Systems
Course Credit Units Type Study Pre-
Code Course Title Hours Level requisite
Lect. Tut. Lab.
Introduction to MATH
CS 201 3 3 1 - Three
Discrete Systems 102

The course is intended to mainly cover the topics of fundamental mathematical structures
and logical principles that are relevant to Computer Science. In this course students will be
encouraged to develop an appreciation for how modern mathematics provides a sound
foundation upon which to build a rich and robust understanding of the elements of
computing. It also provides students with an introduction to essential elements of
mathematics for computing, which include formal logic, sets, relations and functions,
elementary theorem-proving methods, with an emphasis on induction, combinatorial, time-
permitting, and graph theory.
Upon successful completion of the course, students will be able to:

Understand the notion of mathematical thinking, mathematical proofs, and algorithmic


thinking, and be able to apply them in problem solving.
Understand the basics of discrete probability and number theory, and be able to apply
the methods from these subjects in problem solving.
Be able to use effectively algebraic techniques to analyze basic discrete structures and
algorithms.
Understand some basic properties of graphs and related discrete structures, and be able
to relate these to practical examples.

Required Material:
Kenneth H. Rosen, Discrete Mathematics and Its Applications, 7th Edition, McGraw
Hill, 2012, ISBN-10: 0073313090, ISBN-13: 978-0073313095

Recommended books and Reference material:


Mathematics for Computer Science, by Leyman, Leighton, and Meyer
[http://www.cs.cornell.edu/courses/cs2800/2016fa/handouts/mcs.pdf, last accessed
March 3, 2017]
A Beginner's Guide to Discrete Mathematics, by Wallis, W.D., Springer, 2012,
second edition, ISBN 978-0-8176-8285-9.

34
CS 211 - Data Structures and Algorithms

Course Credit Units Type Study Pre-


Code Course Title Hours Level requisite
Lect. Tut. Lab.
Data Structures
CS 211 4 3 - 3 Three CS 112
and Algorithms

This course discusses fundamental concepts of data structures and the algorithms that
proceed from them. Topics to be covered include the implementation and use of linked
lists, stacks, queues, trees, priority queues, heaps and graphs, with an emphasis on
recursion, abstract data types, object-oriented design, and associated algorithms and
complexity issues.

Upon successful completion of the course, students will be able to:

Understand the concept of data structures and algorithms


Deduce algorithm complexities.
Design and implement abstract data types such as lists, stacks, queues, maps and
priority queues, trees etc.
Determine and apply a suitable data structure for a given problem
Write programs with respect to program size, execution speed, and storage
efficiency
Analyze and experiment different searching and sorting algorithms
Apply practical skills through a team-based project using data structures

Required Material:

Michael T. Goodrich and Roberto Tamassia, Data Structures and Algorithms in Java, 6th
Edition, 2014, John Wiley & Sons, Inc., ISBN-10: 1118771338, ISBN-13: 978-
1118771334

Recommended books and Reference material :

Mark Allen Weiss, Data Structures and Algorithm Analysis in Java, 3rd Edition, 2011,
Pearson, ISBN-13: 978-0132576277, ISBN-10: 0132576279.
35
CS 223 Digital Logic Design

Course Credit Units Type Study Pre- Co-


Code Course Title Hours Level requisite requisite
Lect. Tut. Lab.
Digital Logic 3 2 1 2 Three CS 111 -
CS 223 Design

This course is intended to cover the theory and practice of digital hardware design. It will cover the
topics in number systems, Boolean algebra, simplification of Boolean functions using Karnaugh-
Maps, combinational and sequential circuit design, using computer hardware and software to design,
implement, debug, and simulate digital circuits. It will cover topics which include, introduction to
structure and operation of digital computers, and use of HDL to analyze and simulate digital
systems. The course also requires students to work on design projects.

Upon successful completion of the course, students will be able to:

Understand the applications of logic design.


Understand abstraction and hierarchy in digital design.
Understand what components are available for logic design.
Understand the use of Boolean algebra in logic analysis and design.
Design combinational digital logic systems given specifications.
Design sequential digital logic systems (finite state machines) given specifications.
Implement logic designs in hardware and with CAD tools

Required Material:

Morris Mano and Michael D. Ciletti, Digital Design: With an introduction to Verilog HDL, 5th Edition,
2012, Pearson Publishing, ISBN: 978-0132774208

Reference Material:

John F. Wakerly, Digital Design Principles and Practices, 4th edition, Prentice Hall, 2005, ISBN: 978-
0131863897

36
CS 224 Computer Architecture and Organization

Course Credit Units Type Study Pre- Co-


Code Course Title Hours Level requisite requisite
Lect. Tut. Lab.
Computer 3 3 1 - Four CS 223 -
CS 224 Architecture and
Organization

The course introduces students to the basics of computer organization and architecture, by giving them a
brief review about digital design principles and combination control units. The objective of this course is to
explain how computers are designed and how they work. Students are introduced to modern computer
principles using a typical processor. They learn how efficient memory systems are designed to work closely
with the processor, and how input/output systems bring the processor and memory together with a wide
range of devices. The course emphasizes system-level issues and understanding the program performance.
Topics include instructions sets, internal data representation, computer arithmetic, processor data path and
control, memory hierarchy, I/O devices and interconnects, and parallelisms.

Upon successful completion of the course, students will be able to:

Understand the organization of a computer system in terms of its main components


Describe the organization and operation of integer and floating-point arithmetic units
Analyze and examine the instruction set architecture of a computer
Apply knowledge of mathematics in CPU performance and in speedup computation
Understand the detailed operation of a Microprocessor
Design the main units of a processor including the datapath and the control units
Explain the basic principle behind a memory hierarchy
Compare memory technologies available for computing systems.

Required Material:

David A. Patterson, and John L. Hennessy, Computer Organization and Design: The Hardware/Software
Interface, 5th Edition, Morgan Kaufmann, 2013, ISBN-10: 0124077269, ISBN-13: 978-0124077263

Reference Material:

David A. Patterson, and John L. Hennessy, Computer Architecture: A Quantitative Approach, 5th Edition,
Morgan Kaufmann, 2011, ISBN-10: 012383872X, ISBN-13: 978-0123838728

37
CS 321 - Fundamentals of Operating Systems

Units Type
Course Credit Study Pre- Co-
Code Course Title Hours Lect. Tut. Lab. Level requisite requisite

Fundamentals
CS 321 of Operating 4 3 - 3 Three CS 224
Systems

This course provides an introduction to operating system design and implementation. The
course will start with a brief historical perspective of the evolution of operating systems,
and will further discuss the tradeoffs that can be made between performance and
functionality during the design and implementation of an operating system. Particular
emphasis will be given to three major OS subsystems: process management (processes,
threads, CPU scheduling, synchronization, and deadlock), memory management
(segmentation, paging, swapping), file systems, and operating systems protection and
security.

Upon successful completion of the course, students will be able to:

Understand how application software accesses computer hardware and how the
operating system shares hardware resources between processes, tasks, threads, and
users.
Understand and develop multi-process and multi-threaded applications
Evaluate the different algorithms for CPU Scheduling, synchronization, and deadlock.
Explain OS support for virtual memory, memory management, I/O, and file systems.
Demonstrate and apply basic security techniques to protect the OS from threats

Required Material:
Silberschatz, Galvin, and Gagne, Operating System Concepts, 9th Edition, 2012,
John Wiley Publications, ISBN-13: 978-1118129388
Abraham Silberschatz, Peter B. Galvin, Greg Gagne, Operating System Concepts
with Java, 8th Edition, John Wiley Publications. February 2010, ISBN: 13: 978-0-
471-76907-1

Recommended books and Reference material:


Operating Systems and Middleware: Supporting Controlled Interaction 1st Edition by Max
Hailperin, ISBN-13: 978-0534423698 [online available: https://gustavus.edu/mcs/max/os-
book/, last accessed March 3, 2017]
38
CS 332 - Computer Networks

Course Credit Units Type Study Pre-


Code Course Title Hours Lect. Tut. Lab. Level requisite
Computer
CS 332 4 3 - 3 Four CS 321
Networks

This course introduces the student the study of fundamental principles in the design and
implementation of computer communication networks, their protocols, and applications.
Topics to be covered include: layered network architectures, network applications, network
programming interfaces (e.g., sockets), transport services, data link protocols, local area
networks and network routing. Examples will be drawn primarily from the Internet TCP/IP
protocol suite. Through homework assignments and class projects, the students will learn
how the Internet works and how to design Internet applications.

Upon successful completion of the course, students will be able to:

Be able to explain the terminologies of computer networks, such as host, links, protocol
stack, access/core network, throughput, etc. and be able to describe the services and
functions provided by each layer in the Internet protocol stack.
Be able to describe the working principles behind key network technologies, such as
circuit/packet switching, reliable data transfer, flow/congestion control, routing, multiple
access, etc., and key protocols used in modern computer networks, such as 802.11 Wi-Fi,
Ethernet, ARP, IP, TCP, etc.
Be able to calculate packet delay, throughput, and channel efficiency according to
different network protocols; be able to carry out reliable data transfer protocols and
routing algorithms in given networks.
Be able to demonstrate knowledge in using Socket Interface to design and implement
network protocols, such as designing a network application, implementing a reliable data
transfer protocol in given networks.
Be able to plan for IP networks and properly assign IP addresses to interfaces in given
networks.

Required Material:
James F. Kurose, Keith W. Ross. Computer Networking: A Top-Down Approach, 7th
Edition, 2017, Pearson, ISBN-13: 9780134310954

Recommended books and Reference material:

39
Andrew S. Tanenbaum and David J. Wetherall, Computer Networks, 5th Edition., Pearson,
2011, ISBN-13: 978-9332518742

CS 351 - Fundamentals of Database Systems

Course Credit Units Type Study Pre-


Code Course Title Hours Lect. Tut. Lab. Level requisite
Fundamentals of
CS 351 4 3 - 3 Five CS 112
Database Systems

This course introduces the students to the concepts and design of the database. The
course concentrates around core skills of organizational information requirements by
modeling data using conceptual data modeling techniques, converting the conceptual
data models into relational data models (database schema), and implementing in
Structured Query Language (SQL). A team project that builds a database application for
a real-world scenario is an important element of the course.

Upon successful completion of the course, students will be able to:

Understand the role of a database management system (DBMS), its objective and its
different functionalities
Understand different data models and their uses to design database
Apply data modeling techniques (such as normalization and ER diagramming).
Use the data definition and data manipulation language components of SQL
Gain introductory background in transactions, concurrency control and recovery,
indexing mechanism and NoSQL.
Design and integrate databases into real-life applications through a team-based
project.

Required Material:

Ramez Elmasri, and Shamkant B. Navathe, Fundamentals of Database Systems, 7th


edition, Pearson Publishing, 2015, ISBN-13: 9780133970777
40
Reference Material:
Abraham Silberschatz, Henry Korth, S. Sudarshan, Database System Concepts, McGraw-Hill
Education, 6th Edition, 2010, ISBN-13: 978-0073523323.

5.2 Course Outlines of Forensic Computing (FC) related Courses

FC 372 Ethics and Professionalism

Course Credit Units Type Study Pre-


Code Course Title Hours Level requisite
Lect. Tut. Lab.
Ethics and
FC 372 3 3 0 0 Six
Professionalism

This course introduces students to the topics on ethical issues in computing; The topics include,
impact of computers in the social, economic, political, and other aspects of our life; Public policy
issues; Moral obligations of computer professionals; Issues concerning cyber security, privacy
versus freedom of information, and professionalism, intellectual property rights; Professional
growth, development, and responsibility; Complexity brought about by modern information and
communications technology.

Upon successful completion of the course, students will be able to:

Identify ethical problems in computer science and information technology, in particular


the cyber security ethics, and professionalism
Discuss the impact of computing and technology in the past, the issues and obstacles
facing society in the present, and the challenges for the future.
Define computer ethics for personal, corporate and business environment.

Required Material:

Deborah.G. Johnson. Computer Ethics, 4th edition, 2009, Prentice Hall. ISBN-
10: 0131112414, ISBN-13: 978-0131112414

Reference Material:

41
Martin Campbell-Kelly, William Aspray, Nathan Ensmenger, Jeffrey R. Yost, Computer:
A History of the Information Machine (The Sloan Technology Series) 3rd Edition,
Westview Press, 2013, ISBN-13: 978-0813345901

Herman T. Tavani , Ethics and Technology: Controversies, Questions, and Strategies for
Ethical Computing, Wiley, 5th Edition, 2016, ISBN : 978-1-119-18657-1

5.3 Course Outlines of Software Engineering related Courses

SE 262 Software Engineering

Course Credit Units Type Study Pre-


Code Course Title Hours Level requisite
Lect. Tut. Lab.
Software
SE 262 3 3 1 0 Four CS 112
Engineering

This course covers the topics, which include software development process, from requirements
analysis, through specification and design, to implementation, integration, testing, and
maintenance. A variety of concepts, principles, techniques, and tools are presented, encompassing
topics such as software processes, project management, people management, software
requirements, system models, architectural and detailed design, user interface design,
programming practices, verification and validation, web-based software engineering, and design
documentation.

Upon successful completion of the course, students will be able to:

Demonstrate basic skills of software development and knowledge of software life cycle.
Analyze both end-user and developer software/ system requirements/ specifications.
Analyze the impact of computing solution on individuals, organizations, and society.
Demonstrate ability to apply a range of design and development principles in the
construction of a software system, including web-application.
Demonstrate ability to develop a high quality software system while working in
a teamwork project.

42
Required Material:

Ian Sommerville: Software Engineering, 10th Edition, 2015, Pearson Education. ISBN-10:
0133943038, ISBN-13: 978-0133943030

Reference Material:

Roger S. Pressman and Bruce Maxim., Software Engineering: A Practitioners Approach, ,


McGraw-Hill Education; 8 edition, 2014, ISBN: 978-0078022128

SE 311 Software Requirements Engineering

Course Credit Units Type Study Pre-


Code Course Title Hours Level requisite
Lect. Tut. Lab.
Software
SE 311 Requirements 3 3 1 0 Five SE 262
Engineering

This course covers the techniques for eliciting requirements, including Languages and models
for representing requirements; Analysis and validation techniques, including need, goal and use-
case analysis; Requirements in the context of system engineering; Specifying and measuring
external qualities: performance, reliability, availability, safety, security, etc.; Specifying and
analyzing requirements for various types of systems: embedded systems, consumer systems,
web-based systems, business systems, and systems for scientists and other engineers; Resolving
feature interactions; Requirements documentation standards; Human factors; Requirements in
the context agile processes, and Requirements management.

Upon successful completion of the course, students will be able to:

Understand the need for requirements for large-scale systems.


Elicit requirements using a variety of techniques.
Understand requirements engineering processes.
Organize and prioritize requirements
Understand models of requirements.
Validate requirements according to criteria such as feasibility, clarity, freedom from
ambiguity, etc.
Represent functional and non-functional requirements for different types of systems
43
using formal and informal techniques
Negotiate among different stakeholders in order to agree on a set of requirements

Required Material:

Karl Wiegers, and Joy Beatty, Software Requirements (Developer Best Practices),
Microsoft Press, 3rd edition, 2013, ISBN: 978-0735679665

Reference Material:
Phillip A. Laplante, Requirements Engineering for Software and Systems, (Applied
Software Engineering Series), Auerbach Publications, 2nd edition, 2013, ISBN:
978-1466560819

SE 323 Software Modeling and Analysis

Course Credit Units Type Study Pre-


Code Course Title Hours Level requisite
Lect. Tut. Lab.
Software
SE 323 Modeling and 3 3 1 0 Five SE 262
Analysis

This course introduces students to the concepts, methods, techniques, and tools for analyzing
and designing software systems. It will focus on the object-oriented approach and the UML
notation. Students will gain an appreciation of the difference between writing programs and
doing analysis and design. Problem formulation and decomposition (analysis) and solution
building (design) will be covered. Design for reuse and evolutionary considerations are also
discussed. Case tools will be used in several stages of the development process.

Upon successful completion of the course, students will be able to:

Understand the role of analysis and modeling in the software engineering lifecycle
Develop object-oriented designs by applying established design principles
Develop use-case and scenario descriptions of the requirements
Develop richer descriptions of design models using UML diagrams
44
Understand the role and influence of design patterns and frameworks in software
design
Evaluate the quality of design models
Participate in a collaborative group project.

Required Material:

Craig Larman, Applying UML and Patterns: An Introduction to Object-oriented


Analysis and Design and Iterative Development, Dorling Kindersley Pvt Ltd,2008,
ISBN: 978-8177589795

Reference Material:

Bernd Bruegge and Allen H. Dutoit, Object-oriented Software Engineering, Third Edition,
Prentice Hall, 2010, ISBN: 9780136061250

SE 342 Software Architecture and Design

Course Credit Units Type Study Pre-


Code Course Title Hours Level requisite
Lect. Tut. Lab.
Software
SE 342 Architecture and 3 2 1 2 Six SE 323
Design

This course introduces the students to software architecture and design. Software architecture is
an abstract representation of a software system, filtering out what is traditionally considered
detailed design- and implementation-level issues (such as: algorithm, design patterns, data
representation and coding). It will cover design concepts and notations, architecture, middleware
architectures, design patterns, frameworks and components. It will also focus on quality design
such as performance, security, reusability, and reliability. Course will also cover metrics and
measurement topics, of software evolution, reengineering, and reverse engineering. Students
participate in a group project on software design.

Upon successful completion of the course, students will be able to:

Understand the software design methods and styles.

45
Work as a software engineer or software architect by exploring the science of design in the context
of software engineering: the nature of design, design processes, design notations, design
principles, design heuristics, and design patterns.
Understand team-based activities and projects and on assessing team performance in the context of
design.
Analyze and design large scale software and apply different architecture styles.
Distinguish between Software design styles.
Gain an excellent practical experience at both design and programming levels, through applying
the creational and behavioral design patterns.

Required Material:

Kai Qian, Xiang Fu, Lixin Tao, Chong-wei Xu, Software Architecture and Design
Illuminated, Jones & Bartlett Learning, 1st edition, 2009, ISBN: 978-0763754204

Reference Material:
Len Bass, Paul Clements, Rick Kazman, Software Architecture in Practice (SEI Series in
Software Engineering), Addison-Wesley; 3rd edition, 2012, ISBN: 978-0321815736

SE 334 Software Maintenance and Evolution

Course Credit Units Type Study Pre-


Code Course Title Hours Level requisite
Lect. Tut. Lab.
Software
SE 334 Maintenance 3 3 1 0 Six SE 311
and Evolution

This course covers types of maintenance, economic implications of maintenance; managerial


issues related to system maintenance such as maintenance organizational structure; quality
measurement, processes related to change requests and configuration management. Topics
include: Website maintenance; role of CASE tools; reverse engineering, reengineering; code
restructuring and amenability measures. The course also covers, different maintenance process
models such as: Boehm, Osborne, Iterative enhancement and reuse-oriented modes.

Upon successful completion of the course, students will be able to:


46
Understand the key activities in the maintenance process as well as the general
issues involved in the maintenance of software systems.
Select appropriate refactoring techniques to resolve design problems in code.
Classify the different types of software changes and maintenance types.
Explain the Laws of Software Evolution.
Understand software reuse
Classify and describe software modernization approaches such as reverse
engineering, reengineering, salvaging, restructuring.
Apply metrics to manage maintenance.
Understand reverse engineering techniques to increase interoperability with legacy data.

Required Material:

Priyadarshi Tripathy and Kshirasagar Naik, Software Evolution and Maintenance, John
Willey, 1st edition, 2014, ISBN: 978-0470603413

Reference Material:

Stanislaw Jarzabek, Effective Software Maintenance and Evolution: A Reuse-Based Approach,


Auerbach Publications, 1st edition, 2007, ISBN: 978-0849335921

SE 463 Software Testing and Validation

Course Credit Units Type Study Pre-


Code Course Title Hours Level requisite
Lect. Tut. Lab.
Software Testing
SE 463 3 2 1 2 Seven SE 342
and Validation

This course takes a software engineering approach and provides the opportunity for some
hands-on work with test tools. It course covers software testing and validation in details and
include the topics: Introduction to testing; Software validation and verification; Test cases;
Managing the testing process; Unit, functional, and acceptance testing; Black-box and white-
box testing; Equivalence partitioning; Path testing; Cyclamate complexity; Integration testing;

47
System Testing; Object-oriented testing; Software testing tools; Alpha, beta, and user
acceptance testing; Testing in agile development environment, and Automated testing.

Upon successful completion of the course, students will be able to:

Understand the concepts and theory related to software testing.


Understand different testing techniques used in designing test plans, developing test
suites, and evaluating test suite coverage
Understand the relationship between black-box and white-box testing and know how
to apply as appropriate.
Learn to use automated testing tools in order to measure code coverage.
Understand how software developers can integrate a testing framework into code
development in order to incrementally develop and test code.
Work on a team project related to software testing.

Required Material:

Aditya P. Mathur, Foundations of Software Testing (Paperback), Addison-Wesley


Professional, 2nd edition, 2014, ISBN: 978-8131794760

Reference Material:

K. Naik, P. Tripathy, Software Testing and Quality Assurance Theory and Practice, John Wiley
Sons, 2008, ISBN: 978-0471789116

SE 471 Software Security

Course Credit Units Type Study Pre-


Code Course Title Hours Level requisite
Lect. Tut. Lab.
Software
SE 471 3 2 1 2 Seven CS 332
Security

This course introduces students to the fundamentals of software testing from the viewpoint of
security. An in depth discussion on various security testing methods and tools vulnerabilities
48
will be taught with hands-on demo of concepts during the class. Students will learn how to
perform penetration testing in a practical way. They will study the general methodology and
specific techniques for analyzing software for vulnerabilities, testing programs for bugs, and
verifying correctness of code. Techniques covered include static analysis, high-coverage testing,
fault injection, model checking, and theorem proving. Students will survey a set of existing tools
as well as the underlying techniques. Students will also study about secure software engineering
practices and system evaluation, such as study security issues in software lifecycle including
design, implementation, evaluation, patching, etc.

Upon successful completion of the course, students will be able to:

Understand the fundamentals of security testing of software-based systems


Apply secure software risk management frameworks and processes
Perform secure code reviews using static analysis tools
Perform software security architectural risk analysis
Understand and perform software penetration testing
Perform types of security attacks (e.g.DLL hijacking, Man-in-the-middle, etc.)
Perform static or dynamic analysis of source code from the viewpoint of security.

Required Material:

Gary McGraw, Software Security: Building Security In, Addison-Wesley Professional, 1st
edition, 2006, ISBN: 978-0321356703

Reference Material:

Kenneth R. van Wyk and Mark G. Graff, Enterprise Software Security: A Confluence of
Disciplines, Addison-Wesley Professional, 1st edition, 2014, ISBN: 978-0321444424

49
SE 394 Practical Training

Course Credit Units Type Study Pre-


Code Course Hours Level requisite
Title Lect. Tut. Lab.
All Year 3
Practical Summer Term
SE 394 1 - - - of Year 3
Three Core
Training Courses

The course Practical Training (SE 394) provides students with an opportunity to integrate
theory and practice by working in a supervised environment. The college committee
arranges student placements in relevant industry for obtaining practical experience. The
practical or field placement agreements serve as a contract between the University and the
training organization. Each student undertakes full time training for a duration of eight
weeks, 30-40 hours a week, during summer semester in organizations that deal with
software engineering related issues. The internships offer practical applications of
theoretical studies in software engineering. The supervisor at the workplace is responsible
for guiding and assigning tasks to the student as well as reporting the students progress to
the faculty advisor at the Software Engineering Department. The general guidelines about
the types of outcomes student is required to produce are provided by the college to the
supervisor at the workplace. Upon the completion of practical experience in the industry,
students are required to submit technical reports to both on-site supervisor and faculty
advisor and give an oral presentation in the presence of the same.

50
SE 491 Capstone Project I

Course Credit Units Type Study Pre-


Code Course Title Hours Level requisite
Lect. Tut. Lab.
Capstone Project
SE 491 3 1 - 5 Seven SE 394
I

This course is the first part of a sequence of two courses that constitute the Bachelor of Science
graduation capstone project. In this project, the students are expected to propose, design,
produce, and evaluate a software system. Its aim is to provide an opportunity for students to
investigate an area of software engineering of their choosing in some depth, to utilize existing
and acquire additional knowledge and skills as appropriate for making a contribution to a
solution of an identified problem. It involves problem formulation, conducting feasibility study,
identification of specifications, and selection of methodologies for design, testing, debugging,
and documentation. Students will deliver Oral and written progress reports.

Upon successful completion of the course, students will be able to:

Integrate knowledge such as concepts, principles, theories, and laboratory experience


acquired from the past three years of studying various courses and practical experience
obtained via summer training and use it during the design phase of the capstone project.
Apply procedures involved in critical thinking and creative problem solving, personally
or within a team environment
Collect system requirements, prepare a literature review, analyze them using the
appropriate models depending on the selected methodology, and finally produce a
suitable design.
Divide tasks between team members in a team work environment, and work effectively in
groups and exercise leadership when appropriate
Develop oral communication skills through technical presentation.
Prepare a comprehensive technical report

51
SE 492 Capstone Project II

Course Credit Units Type Study Pre-


Code Course Title Hours Level requisite
Lect. Tut. Lab.
Capstone Project
SE 492 3 1 - 5 Eight SE 491
II

This course is the second part of a sequence of two courses that constitute the Bachelor of
Science graduation capstone project. In this project, the students are expected to propose,
design, implement, and test a software system. Its aim is to provide an opportunity for students
to investigate an area of software engineering of their choosing in some depth, to utilize existing
and acquire additional knowledge and skills as appropriate for making a contribution to a
solution of an identified problem. It involves the student proceeds through various phases to end
up with a practical computer-based solution in the area of software engineering. At the end of
the semester the student presents the working demo, a detailed report of developed project and
an oral presentation.

Upon successful completion of the course, students will be able to:

Select the suitable tools, techniques and technologies (DBMS package, programming
language, etc.) to implement the proposed solution in the area of software engineering.
Apply ideas, principles, and theories into a working proof of concept prototype.
Apply procedures involved in critical thinking and creative problem solving with regards
to the implementation.
Validate the implemented system by using standard secure software design approach.
Divide tasks between team members in a team work environment, and work effectively in
groups and exercise leadership when appropriate
Develop oral communication skills through technical presentation
Prepare a comprehensive technical final project report.

52
5.4 Course Outlines of Software Engineering/Computer Science Elective Courses

CS 341 Artificial Intelligence

Course Credit Units Type Study Pre- Co-


Code Course Title Hours Level requisite requisi
Lect. Tut. Lab.
te
Artificial 3 3 1 0 Seven/ CS 211 -
CS 341 Intelligence Eight

This course introduces students to the techniques in depth in selected topics of AI, and to apply these
techniques in real-life AI projects. AI is a huge field, including many subareas such as knowledge
representation, reasoning, machine learning, data mining, robotics and natural language processing etc.
This course aims to cover some basic topics as well as some state of the art. Basic areas such as
intelligent agents, searching and first-order logic will be studied. Throughout the course, substantial
projects will be designed that are based on real-life data challenges, and students will be asked to form
teams and each team can choose from the designed projects to work towards their course projects,
using PROLOG or Lisp programming language. There will be unsupervised lab sessions on AI
programming.

Upon successful completion of the course, students will be able to:

Understand the notions of intelligence, knowledge, reasoning, and knowledge-based system.


Understand how search can be used in problem solving.
Understand and be able to contrast the notions of deductive, inductive, and probabilistic reasoning.
Design and develop computer programs that use Symbolic reasoning to solve problems,
culminating in a significant project
Use PROLOG programming language in designing small team-based projects.

Required Material:

Stuart Russell and Peter Norvig, Artificial Intelligence: A Modern Approach, Prentice Hall, 3rd
edition, 2010, ISBN: 978-0136042594

Reference Material:
Ivan Bratko, PROLOG Programming for Artificial Intelligence, Addison Wesley; 4 edition
(24 Aug. 2011, ISBN: 978-0321417466

53
SE 464 Software Project Management

Course Credit Units Type Study Pre-


Code Course Title Hours Level requisite
Lect. Tut. Lab.
Software Project Seven/
SE 464 3 2 1 2 SE 262
Management Eight

This course provides students with the skills, tools, and techniques involved in software project management
and discuss the latest approaches, methodologies and standards of software development. It includes topics
on development of software quality, documentation, testing, and prototype goals. Course also covers topics
on leaders and managers skills and responsibilities; scope management; scheduling; budget control;
progress monitoring; integration management; human resource management; communication management,
licensing and contracts management, etc.
Upon successful completion of the course, students will be able to:

Understand a wide variety of software lifecycle models.


Choose the model most appropriate to their project and using the model as a guide for the teamwork.
Complete both high-level and detailed software design, along with the ability to create associated written
documentation
Perform risk management and dynamically adjusting project plans.
Use standards in project management, such as ISO 10006 (project management quality) and ISO 12207
(software development process) along with the SEIs CMM model.
Understand how to manage software projects by respecting time, budget and scope
Be a contributing member of a software development team.

Required Material:

Murali K. Chemuturi and Thomas M. Cagley Jr., Mastering Software Project Management: Best
Practices, Tools and Techniques, J. Ross Publishing, 2010, ISBN: 978-1604270341

Reference Material:
Adolfo Villafiorita, Introduction to Software Project Management, Auerbach Publications, 1st
edition, 2014, ISBN: 978-1466559530

54
SE 453 Software Engineering Economy

Course Credit Units Type Study Pre-


Code Course Title Hours Level requisite
Lect. Tut. Lab.
Software
SE 453 Seven/
Engineering 3 3 1 - SE 262
Eight
Economy
The course introduces students to the theory of the economics of software development and training for the
cost-estimation and managing software projects from the perspective of development economics. The course
covers quantitative models of software lifecycle, cost-effectiveness analysis in software engineering,
multiple- goal decision analysis, uncertainty and risk analysis, software cost estimation, software
engineering metrics; and quantitative lifecycle management techniques.

Upon successful completion of the course, students will be able to:

Get familiar with software development economics in theory.


Be capable of properly estimating the costs of software projects and software project management from
the development economics standpoint.
Estimate the cost and effort for software projects
Make schedules for software projects
Work in a group and complete a project based on a selected topic from course instructor.

Required Material:

Barry W. Boehm, Software Cost Estimation with COCOMO II, Prentice Hall, 1st edition, 2000,
ISBN: 978-0137025763

Reference Material:

Barry W. Boehm, Software Engineering Economics, Prentice Hall, First Edition, 1981, ISBN:
978-0138221225

55
SE 443 - Web Programming

Credit Units Type Study Pre-


Course Course Title Hours Level requisite
Lect. Tut. Lab.
Code
Web Seven/
SE 443 3 2 1 3 CS 112
Programming Eight

This course introduces the students to the fundamentals of web programming. The course focuses on how to
perform architectural planning, technology selection and how to create enterprise-level web sites that use
component object model components on both the client and the server. The course also provides the student
the knowledge on how to deal with the latest web technology and basic internet security.

Upon successful completion of the course, students will be able to:

Identify the infrastructure of the Internet and how the world wide web works
Apply the client side web development languages such as HTML/HTML5, CSS3, and
JavaScript.
Explore the basics of server-side scripting languages such as PHP, Python, and J2EE.
Examine the different kinds of client and server web application libraries and frameworks such
as JQuery, AngularJS and Laravel.
Demonstrate practical skills through a team-based project to work on a secure website design.

Required Material:

Robert W. Sebesta, Programming the World Wide Web, 8th Edition, 2014, Pearson, ISBN-10:
0133775984, ISBN-13: 978-0133775983

Reference Material:
Harvey M. Deitel, and Paul J. Deital. Internet & World Wide Web: How to Program
(International Edition), 5th Edition, 2012, Prentice Hall, ISBN-10: 0273764020, ISBN-
13: 978-0273764021

56
CS 463 Human Computer Interaction

Course Credit Units Type Study Pre-


Code Course Title Hours Level requisite
Lect. Tut. Lab.
Human
CS 463 Seven/
Computer 3 3 1 - SE 262
Eight
Interaction

This course introduces students to Human Computer Interaction, that includes topics; Capabilities and
limitations of the human user and the computer; Models of interaction and interaction styles; Support user
friendliness with HCI; Interface design; Visual Design; Systems that support the design process; Usability
Evaluation; Speech Computing and other Forms of Input/output. It also covers Interaction Design, Universal
Access and Rich Interaction, as well as covering the latest developments in ubiquitous computing and Web
technologies to provide grounding in HCI theory and practice.

Upon successful completion of the course, students will be able to:

Understand the vocabulary associated with sensory and cognitive systems as relevant to task
performance by humans.
Be able to apply models from cognitive psychology to predicting user performance in various human-
computer interaction tasks and recognize the limits of human performance as they apply to computer
operation.
Be familiar with a variety of both conventional and non-traditional user interface paradigms, the latter
including virtual and augmented reality, mobile and wearable computing
Understand the social implications of technology and their ethical responsibilities in the design of
technological systems.
Work in small groups on a product design from start to finish will provide student with invaluable team-
work experience.

Required Material:

Jenny Preece, Helen Sharp, Yvonne Rogers, Interaction Design: Beyond Human-Computer
Interaction, Wiley, 4th edition, 2015, ISBN: 978-1119020752

Reference Material:

57
Alan Dix, Janet E. Finlay, Gregory D. Abowd, Russell Beale, Human-Computer Interaction,
Pearson, 3rd edition, 2004, ISBN: 978-0130461094

CS 481 Computer Graphics

Course Credit Units Type Study Pre-


Code Course Title Hours Level requisite
Lect. Tut. Lab.
Computer Seven/
CS 481 3 2 1 3 CS 211
Graphics Eight

The goal of this course is to provide students with an introduction to the theory and practice of computer
graphics. The topics include use of API(s) for computer graphics; Color models, coordinates homogeneous,
transformation, rotation, and clipping; Drawing lines, curves, and surfaces Algorithms; Representation of
objects through polygons; and Computer graphical user interfaces Design (GUI). This Java based graphics
text introduces advanced graphic features to a student audience mostly trained in the Java language. Its
accessible approach and in-depth coverage features the high-level Java 2D and Java 3D APIs-offering an
elegant and easy-to-understand presentation of 2D and 3D graphics.

Upon successful completion of the course, students will be able to:

Understand the basic objectives and scope of computer graphics.


Identify computer graphics applications common graphics APIs
Understand the basic structures of 2D and 3D graphics systems.
Apply the roles of Java language and the Java 2D and Java 3D packages.
Understand the architecture and operations of a 2D graphics system.
Describe 2D coordinate systems and equations of graphs.
Apply Java 2D program structure and the Graphics2D object, and graph equations with Java programs.
Use basic 2D geometric primitives and construct custom shapes.
Understand color spaces and use the Java Color class.
Work in a group on a project using the state of the art Computer Graphics tools

Required Material:

Leen Ammeraal, Kang Zhang, Computer Graphics for Java Programmers, Wiley, 2nd edition
2007, ISBN:978-0470031605

Reference Material:

58
Y. Daniel Yiang, and Hong Zhang, Computer Graphics using Java 2D and 3D, Pearson
Education, 2006, ISBN: 9780130351180
David J. Eck, Introduction to Computer Graphics, Free e-book, version 1.1, 2016,
http://math.hws.edu/graphicsbook/.

SE 493 Selected Topics in Software Engineering

Credit Units Type Study Pre-


Course Course Title Hours Level requisite
Lect. Tut. Lab.
Code
Selected Topics
Seven/ College
SE 493 in Software 3 2 1 3
Eight Approval
Engineering

This course is directed at exposing the students to advanced topics pertaining to emerging trends,

research issues, and technologies in the field of software engineering. From time to time, new

advanced courses will be designed and offered according to the interests of the faculty, industry

and the students to explore those areas of software engineering that are not part of the core of

curriculum. The pre-requisite are specified according to the topic of the course. The content and

format for this course are variable.

59
6. Benchmarking Framework for the Software Engineering Program

6.1 Accreditation Commission for SE Programs.

Software Engineering programs are accredited by the Engineering Accreditation


Commission (EAC) of ABET. The ABET Accreditation is an assurance that the
professionals who serve the public have a solid educational foundation and are capable of
leading the way in innovation, emerging technologies, and in anticipating the welfare and
safety needs of the public.

6.2 ABET Accreditation Criteria for the SE Curriculum

The curriculum requirements specify subject areas appropriate to engineering but do not
prescribe specific courses. The faculty must ensure that the program curriculum devotes
adequate attention and time to each component, consistent with the outcomes and objectives
of the program and institution. The professional component must include:

(a) one year of a combination of college level mathematics and basic sciences (some with
experimental experience) appropriate to the discipline. Basic sciences are defined as
biological, chemical, and physical sciences.
(b) one and one-half years of engineering topics, consisting of engineering sciences and
engineering design appropriate to the student's field of study. The engineering sciences have
their roots in mathematics and basic sciences but carry knowledge further toward creative
application. These studies provide a bridge between mathematics and basic sciences on the
one hand and engineering practice on the other. Engineering design is the process of devising
a system, component, or process to meet desired needs. It is a decision-making process (often
iterative), in which the basic sciences, mathematics, and the engineering sciences are applied
to convert resources optimally to meet these stated needs.

60
(c) a general education component that complements the technical content of the curriculum
and is consistent with the program and institution objectives.

Students must be prepared for engineering practice through a curriculum culminating in a major
design experience based on the knowledge and skills acquired in earlier course work and
incorporating appropriate engineering standards and multiple realistic constraints.
One year is the lesser of 32 semester hours (or equivalent) or one-fourth of the total credits
required for graduation.

6.3 ABET Criterion Specific to SE Program

These program criteria apply to engineering programs that include software or similar
modifiers in their titles.

6.3.1. Curriculum

The curriculum must provide both breadth and depth across the range of engineering and
computer science topics implied by the title and objectives of the program.

The curriculum must include computing fundamentals, software design and construction,
requirements analysis, security, verification, and validation; software engineering processes and
tools appropriate for the development of complex software systems; and discrete mathematics,
probability, and statistics, with applications appropriate to software engineering

6.4 ABET Accredited Programs in the area of Software Engineering

Below is the survey table of global universities that offer the academic programs in the area
of Software Engineering and are accredited by the Engineering Accreditation Commission
(EAC) of ABET.

61
Table: Global Universities Offering Program in Software Engineering

Global Universities offering ABET


No. Major
Software Engineering Programs1 Accreditation
Al Ain University of Science and
1 Software Engineering
Technology
2 ALHOSN University, Abu Dhabi Software Engineering
3 Arizona State University Software Engineering
4 Auburn University Software Engineering
California Polytechnic University,
5 Software Engineering
San Luis
6 Clarkson University Software Engineering
7 Drexel University Software Engineering
Embry-Riddle Aeronautical
8 Software Engineering
University - Daytona
9 Fairfield University Software Engineering
10 Florida Gulf Coast University Software Engineering
11 Florida Institute of Technology Software Engineering
12 Gannon University Software Engineering
13 Iowa State University Software Engineering
14 Kennesaw State University Software Engineering
King Fahad University of Petroleum
15 Software Engineering
and Minerals
16 King Saud University Software Engineering
17 Milwaukee School of Engineering Software Engineering
18 Mississippi State University Software Engineering
19 Monmouth University Software Engineering
Montana Tech of the University of
20 Software Engineering
Montana
21 Oregon Institute of Technology Software Engineering
Pennsylvania State University,
22 Software Engineering
Behrend College
23 Ricardo Palma University (Peru) Software Engineering
24 Rochester Institute of Technology Software Engineering
Rose-Hulman Institute of
25 Software Engineering
Technology
26 Shippensburg University Software Engineering

1
http://main.abet.org/aps/accreditedprogramsearch.aspx ; in total there are Only 32 worldwide
programs
62
The University of Virginias College
27 Software Engineering
at Wise
Universidad Peruana de Ciencias
28 Software Engineering
, PeruAplicadas
29 University of Michigan - Dearborn Software Engineering
30 University of Texas at Arlington Software Engineering
31 University of Texas at Dallas Software Engineering
32 University of Wisconsin - Platteville Software Engineering

6.5 Benchmarking Procedure

The following step-by-step procedure was applied in the process of benchmarking the
program.

1. With regards to the Benchmark Standards Process, we referred to the SE2014


(ACM/IEEE-CS Guidelines document).
2. We then referred to the knowledge areas categorization of SE, which are further
subdivided into knowledge units, which are then refined into topics, and then into
learning outcomes, the most specific and detailed level of refinement.
3. As our proposed program is designed and developed from the prescribed knowledge
areas, taken from ACM-IEEE guidelines document of SE2014 (ACM/IEEE-CS
Guidelines), which are aligned towards ABET accreditation criteria of SE program,
therefore as part of the benchmark of standards, we ought to map the knowledge areas of
ACM-IEEE guidelines onto ABET accredited programs, so as to fulfill the needs of
quality standards and best practices of curriculum design. That ended our benchmarking
of standards.
4. As regard to Benchmark Comparison Process, we chose ABET accredited programs
ONLY for comparisons with the proposed program at UPM.
5. Due to its highest ranking among all the accredited programs, we considered the Iowa
State University, USA, as the program External Reviewer from the list of top ranked
ABET accredited Software Engineering Programs; details of which are shown in the
following Table.

63
6. We started the benchmarks comparisons process as follows:
a. We selected 7 universities in total, out of which 4 Universities are International
(US), 2 universities are National (KSA), and 1 university is regional.
b. We compared the course distribution in different subject areas with credit hours
as defined by the ABET program criteria.
c. We compared the course titles of core, elective subjects of the benchmarked
universities against the proposed program as defined by ACM-IEEE knowledge
areas.
d. We finalized the list of core and elective course titles, credit hours, books taught,
weekly teaching plan, course learning outcomes, grading and integrity policies,
by benchmarking these with the benchmarked universities.
e. We then designed the final 4 year study plan, and the detailed program plan,
which has been sent to the External Reviewer for evaluation.

Table: Academic Ranking of Global Universities offering Software Engineering


Programs

Global Universities offering Rank by Rank by Rank by


No.
Software Engineering Programs2 (ARWU) (USNEWS) (QS)
Al Ain University of Science and NA NA NA
1
Technology
2 ALHOSN University, Abu Dhabi NA NA NA

3 Arizona State University 101-150 119 201-250


4 Auburn University NA 354 NA
California Polytechnic University, NA NA NA
5
San Luis
6 Clarkson University NA NA NA
7 Drexel University NA 384 401-500
Embry-Riddle Aeronautical NA NA NA
8
University - Daytona
9 Fairfield University NA NA NA
10 Florida Gulf Coast University NA NA NA

2
http://main.abet.org/aps/accreditedprogramsearch.aspx ; in total there are Only 32 worldwide
programs
64
11 Florida Institute of Technology NA NA NA
12 Gannon University NA NA NA
13 Iowa State University 101-150 222 351-400
14 Kennesaw State University NA NA NA
King Fahad University of Petroleum 76-100 227 151-200
15
and Minerals
16 King Saud University 76-100 167 151-200
17 Milwaukee School of Engineering NA NA NA
18 Mississippi State University NA NA NA
19 Monmouth University NA NA NA
Montana Tech of the University of NA NA NA
20
Montana
21 Oregon Institute of Technology NA NA NA
Pennsylvania State University, NA NA NA
22
Behrend College
23 Ricardo Palma University (Peru) NA NA NA
24 Rochester Institute of Technology NA NA NA
Rose-Hulman Institute of NA NA NA
25
Technology
26 Shippensburg University NA NA NA
The University of Virginias College NA NA NA
27
at Wise
Universidad Peruana de Ciencias NA NA NA
28
, PeruAplicadas
29 University of Michigan - Dearborn NA NA NA
30 University of Texas at Arlington NA 215 351-400
31 University of Texas at Dallas NA 306 251-300
32 University of Wisconsin - Platteville NA NA NA

The following sections provide a detailed account of Benchmarking processes for both the
Standards and the Comparisons.

65
6.6 Benchmarking Standards
6.6.1 ACM/IEEE Core SE Knowledge Areas

According to SE2014 (ACM/IEEE-CS Guideline document for the design of Software


Engineering Curriculum), the knowledge areas for a Software Engineering curriculum are:

SE Knowledge Areas in SE2014

Computing Essentials
Mathematical and Engineering
Requirements Analysis and Specs
Software Design
Software Verification and Validation
Software Process
Software Modeling and Analysis
Software Quality
Software Professional Practice
Software Security

Table below shows the IEEE-CS/ACM Software Engineering Body of Knowledge. There
are ten knowledge areas that make up the SEEK: Computing Essentials (CMP),
Mathematical & Engineering Fundamentals (FND), Professional Practice (PRF), Software
Modeling & Analysis (MAA), Software Design (DES), Software Verification & Validation
(VAV), Software Evolution (EVL), Software Process (PRO), Software Quality(QUA), and
Software Management (MGT).

66
Reference: SE2014 (ACM/IEEE-CS Guideline for the design of SE Curriculum)

67
6.6.2 Mapping of ACM Knowledge Areas with Proposed Program Courses

Table below shows the IEEE-CS/ACM Software Engineering Body of Knowledge


Requirement (February 2015) and their Coverage in the Proposed Program for UPM:

Proposed Courses that Cover


Knowledge Area Core Hours
this Requirement
Computing Essentials 152 CS 111, CS 112, CS 223, CS
211, CS 224, CS 321, CS 351,
CS 332, FC 372
Mathematical and Engineering 80 MATH 101, MATH 102, CS
201, MATH 201, MATH 303,
STAT 342, SE 453, SE 443
Requirements Analysis and Specs 30 SE 311, SE 262
Software Design 48 SE 342, CS 262, CS 211, SE
491, SE 492, SE xxx
Software Verification and 37 SE 463, SE 342, SE xxx
Validation
Software Process 33 SE 323, SE 262
Software Modelling and Analysis 28 SE 323, SE 262
Software Quality 10 SE 463
Software Professional Practice 29 SE 262, CS 401, SE xxx
Security 20 SE 471, CS 332

Reference: SE2014 (ACM/IEEE-CS Guideline for the design of Software Engineering


Curriculum)

Note: The ACM/IEEE-CS uses lecture hours, abbreviated to hours, to quantify instructional
time. An hour corresponds to the time required to present the material in a traditional lecture-
oriented format; the hour count does not include any additional work that is associated with a
lecture (e.g., in self-study, laboratory sessions, and assessments). The specification of topic
hours represents the minimum amount of time we expect such coverage to take.

68
Mapping of Proposed Program Courses on
ACM IEEE SE Knowledge Areas

Computing Essentials

Mathematical and
Engineering
Requirement Analysis and
Specs
Software Design

Verification and Validation

Software Process

Softwre modeling and


Analysis
Software Quality

Software Professional Practice

Software Security

69
6.7 Benchmark: Comparisons
6.7.1 List of ABET Accredited programs used in Comparisons
The following undergraduate programs in Software Engineering have been selected for
comparison to ensure that the proposed curriculum meets the standards of ABET and IEEE-
CS/ACM criteria and guidelines.

1. King Saud University (KSU), Saudi Arabia. National university, ABET accredited
program in software engineering since 2010, and ranked in the top 200 universities
according to Shanghai Ranking of world universities in computer science, 2015.

2. King Fahd University of Petroleum & Minerals (KFUPM), Saudi Arabia. National
university, ABET accredited program in software engineering since 2008, and ranked in
top 150 universities according to Shanghai Ranking in engineering, 2015.

3. ALHOSN University, (ALHOSN), UAE. Regional university, and ABET accredited


program in software engineering since 2012.

4. Iowa State University of Science and Technology (ISU), USA. International university,
ABET accredited program in software engineering since 2012, and ranked in top 200
universities according to Shanghai Ranking of world universities in 2015.

5. Auburn University (AUB), USA. International university, ABET accredited program in


software engineering, ranked by U.S. News & World Report among the top 50 public
universities nationwide for 20 consecutive years.

6. University of Texas at Arlington (UTX), USA. International university, and ABET


accredited program of software engineering since 2002, and ranked in the top 300-400
universities according to Leiden ranking of world universities in 2015.

7. University of Michigan-Dearborn (MIC), USA. International university, and ABET


accredited program of software engineering since 2003. The college of Engineering and
Computer Science rated among the top undergraduate engineering programs in the
country by U.S. News & World Report for the 18th consecutive year (2016).

The detailed comparisons of these seven universities are provided in the following tables.

70
6.7.2 Comparison by subject areas credit hours between proposed and ABET
accredited programs
Table: Comparison of Credit hour requirements of Subject Areas between proposed
and ABET accredited programs

Area UPM KSU KFUPM ALHOSN ISU AUB UTX MIC AVG

Mathematics 20 20 20 21 18 24 20 21 20.5

Natural Sciences 12 15 12 6 9 14 12 12 11.5

Sub-Total 32 35 32 27 27 38 32 33 32

English 9 16 9 6 9 6 6 6 8.3

Humanities and
18 16 14 18 25 15 21 21 18.5
Social Sciences
Program Core
61 61 62 63 52 49 53 42 54.6
(CS and SWE)
Program Electives
12 9 9 12 9 9 9 14 10.1
(CS and SWE)

Sub-Total 73 70 71 75 61 58 62 56 64.7

Free Electives - - 6 3 3 3 - 4 2.7

Total 132 137 132 129 125 120 121 120 126

Nominal Duration
4* 4* 4* 4 4 4 4 4 4
(years)

Preparatory Year No No No
Yes Yes Yes No No No
Required

71
6.7.3 Comparison by knowledge areas between proposed and ABET accredited
programs with ACM defined knowledge areas

Table: Comparison by Knowledge Areas between ABET accredited programs, and IEEE-
CS/ACM SE Body of Knowledge Requirement (SE2014)
Program/University
Course
Codes in Core SE Knowledge Area (KA) / IEEE/
SE Knowledge Unit ACM UPM KSU KFUPM ALHOSN ISU AUB UTX MIC
Program Core KAs

Introduction to Discrete Systems


CS 201
Computing and Programming
CS 111

CS 112 Object Oriented Programming

CS 211 Data Structures and Algorithms

Digital Logic Design


CS 223

SE 262 Software Engineering


Computer Architecture and
CS 224 Organization

SE 311 Software Engineering Requirements


Software Process and Modeling
SE 323
Operating Systems
CS 321
Ethics and Professionalism
FC 372
Software Design and Architecture
SE 342

SE 442 Human Computer Interaction*

CS 351 Fundamentals of Database Systems

Computer Networks and Data


CS 332 Communications
Software Testing & Validation,
Software Quality *
SE 463
SE 464 Software Project Management*
Software Maintenance and Evolution
SE 334 *

SE 443 Web Engineering/Programming* X

Graduation Project 1
SE 491
Graduation Project 2
SE 492

SE 453 Software Engineering Economy*


Software Development/ Software
Construction*

Programming Languages* *
Software Security
SE 471

72
6.8 Benchmark Programs Study Plans

6.8.1 King Saud University (KSU):

73
74
75
76
6.8.2 King Fahd University of Petroleum and Mineral (KFUPM)

77
78
6.8.3 ALHOSN University, UAE

79
80
81
6.8.4 Iowa State University of Science and Technology

82
83
84
6.8.5 University of Michigan-Dearborn

85
6.8.6 Auburn University, USA

86
87
6.8.7 University of Texas at Arlington

88
APPENDIX

89
Curriculum Revision Form

90

You might also like