Handbook SE Program ForMinistry-FINAL-Printing
Handbook SE Program ForMinistry-FINAL-Printing
SOFTWARE ENGINEERING
Program Handbook
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
Appendix _____________________________________________________________________ 89
Curriculum Revision Form by External Reviewer _____________________________________________ 90
4
Glossary
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.
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.
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
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.
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.
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.
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.
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.
12
3.7 Program Objectives (POs)
After completion of this program, the successful students will have attained the following
learning outcomes, which are adopted from the EAC of ABET:
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
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
Students should choose four courses from the list of elective courses with a total of (12 credit units)
as indicated below.
17
The specific categories are defined as under:
Students should choose one course (3 credit hours) from the following Islamic Studies elective
courses.
18
Area 3: Social Sciences (GSOS xxx) Elective Courses.
Students should choose one course (3 credit hours) from the following Social Sciences elective
courses.
Students should choose one course (3 units) from the following Diversity and Multiculturalism
elective courses.
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.
One Course 3
*: Can be taken as electives within any of the GS areas, i.e., GHAL, GDMC, and GSOS.
20
4.3.3 Major Compulsory Program Courses:
21
Engineering
Total Required Credit Hours 12
Courses in the following table are required to Software Engineering Major to fulfill
competency requirements.
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.
*: 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).
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
*: 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:
25
4.3.10 Four Year Study Plan of Software Engineering Program
26
4.3.11 Curriculum Flowchart of the SE Program
27
4.4 Detailed Semester wise Four Year Study Plan
First Level
Course Credit Unit Type Course Requisite
No Course Title
Code Hours Lect. Tut. Lab. Pre. Co.
Second Level
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.
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
29
Third Year: Junior
Fifth Level
Course Credit Unit Type Course Requisite
No Course Title
Code Hours Lect. Tut. Lab. Pre. Co.
Sixth Level
Summer Term
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(
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
31
5. DETAILED BENCHMARKED COURSE DESCRIPTIONS
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.
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
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:
Required Material:
Kenneth H. Rosen, Discrete Mathematics and Its Applications, 7th Edition, McGraw
Hill, 2012, ISBN-10: 0073313090, ISBN-13: 978-0073313095
34
CS 211 - Data Structures 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.
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
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
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.
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
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.
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.
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
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.
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
39
Andrew S. Tanenbaum and David J. Wetherall, Computer Networks, 5th Edition., Pearson,
2011, ISBN-13: 978-9332518742
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.
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:
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.
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
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.
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:
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.
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
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.
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:
Reference Material:
Bernd Bruegge and Allen H. Dutoit, Object-oriented Software Engineering, Third Edition,
Prentice Hall, 2010, ISBN: 9780136061250
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.
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
Required Material:
Priyadarshi Tripathy and Kshirasagar Naik, Software Evolution and Maintenance, John
Willey, 1st edition, 2014, ISBN: 978-0470603413
Reference Material:
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.
Required Material:
Reference Material:
K. Naik, P. Tripathy, Software Testing and Quality Assurance Theory and Practice, John Wiley
Sons, 2008, ISBN: 978-0471789116
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.
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
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
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.
51
SE 492 Capstone Project 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.
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
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.
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
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:
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
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
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.
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
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.
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
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.
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/.
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
59
6. Benchmarking Framework for the Software Engineering Program
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.
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
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
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
The following step-by-step procedure was applied in the process of benchmarking the
program.
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.
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
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
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
Software Process
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.
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.
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
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
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
Graduation Project 1
SE 491
Graduation Project 2
SE 492
Programming Languages* *
Software Security
SE 471
72
6.8 Benchmark Programs Study Plans
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