Software Engineering

The department of software engineering aims to meet the growing need for professionals working in software development, with special attention to large and critical systems.

This department aims to develop the practical and analytical skills required by students to develop powerful and effective software manufacturing systems in the medical, industrial, service and business management applications.

Students (both individually and collectively) will gain timely experience and the ability to deal effectively with programming methods and tools.

Vision

To be a leader in delivering an edge cutting education, research, and educational products in the field of software engineering at the local and regional levels.

Mission

Graduate students with ample knowledge and skills required to produce and deliver high-quality software systems.

Department Objectives

  • Equip graduates with sufficient knowledge and skills to become qualified software engineers.
  • Establish productive partnerships with the local community to continually improve the perception of locally produced software.
  • Make a sizable contribution to the research effort in the field of software engineering.

Program Educational Objectives

Program Objectives:

  1. Acquire student with knowledge, intellectual, practical, and professional software engineering and development skills.
  2. Acquire and empower student to master a variety of modern programming languages and methods.
  3. Acquire student with the knowledge, intellectual, practical, and professional skills to design and implement databases.
  4. Acquire student with the knowledge, intellectual, practical, and professional skills that support information technology.
  5. Acquire the student with knowledge, intellectual skills in professional ethical principles, scientific research, and lifelong learning.

Targets:

At the time of graduation, it is intended that the graduate of the program will know or be able to:

  1. Use sufficient practical, professional knowledge and skills for software development, and has an adequate understanding of software development methodologies, with the ability to choose the appropriate methodology for different software projects according to the required quality standards.
  2. Can effectively contribute to software development projects using different programming languages ​​and algorithms.
  3. Design, implement, monitor, and supervise various database projects.
  4. Use practical and professional knowledge and skills in information technology.
  5. Recognize the need for lifelong learning and self-development and has the ability to communicate effectively and conduct scientific research, with an understanding and appreciation of professional and ethical responsibility.

Student Outcomes

At the time of graduation, Software Engineering students are expected to know or be able to do the followings:

  • Apply knowledge of science, mathematics, and engineering.
  • Apply software engineering practices over the entire system life cycle.
  • Describe different software engineering process models, with the ability to select appropriate process model for software projects.
  • Apply basic software quality assurance practices to assure that software specifications, designs, implementation, and maintenance meet the relevant standards.
  • Prepare the necessary documents required during the project development phases.
  • Contribute to project discussions, presentations, and reviews.
  • Recognition of the need for, and an ability to engage in life-long learning.
  • Communicate effectively with an understanding of professional and ethical responsibility.

الخطة الدراسية لقسم هندسة البرمجيات

 

 

First Semester

Course No.

Course Title

Arabic Title

Pre-Req.

Credit

61151

IT Foundations

أساسيات تقنية المعلومات

—-

3

61152

Programming
I

البرمجة  I

—-

4

61155

Mathematics I

رياضيات  I

—-

3

61150

English I

لغة إنجليزية  I

—-

3

61157

Arabic Language

لغة عربية

—-

2

Semester Credit Hours :15

Second Semester

Course No.

Course Title

Arabic Title

Pre-Req.

Credit

61252

Programming II

البرمجة   II

61152

4

61255

Mathematics II

رياضيات II

61155

3

61250

English II

لغة إنجليزية  II

61150

3

61257

Int. to Computer Networking

مقدمة في شبكات الحاسوب

61151

3

61256

Probability and Statistics

الاحتمالات والإحصاء

—-

3

Semester Credit Hours :16

Third Semester

Course No.

Course Title

Arabic Title

Pre-Req.

Credit

62150

Mathematics for computing

رياضيات الحاسوب

61155-61152

3

62156

Communication Skills

مهارات التواصل

20 Cr. Hrs

2

62137

Int. to Software Engineering 

مقدمة في هندسة البرمجيات

61151

3

62154

Int. To Information Systems

مقدمة في نظم المعلومات

61151

3

62151

Programming III

البرمجة المتقدمة

61252

4

61254

Digital and Logic Design

تصميم الدوائرالمنطقية والرقمية

61151

3

Semester Credit Hours :18

Fourth Semester

Course No.

Course Title

Arabic Title

Pre-Req.

Credit

62250

Data Structures and
Algorithms

هياكل
بيانات 

62151

3

62153

Int. to Database Systems

مقدمة
لنظم قواعد البيانات

62151

3

62251

Computer Architecture

معمارية الحاسوب

61254

3

62252

Physics

فيزياء 

—-

3

62253

Software Requirements Engineering

هندسة متطلبات البرمجيات

62137

3

63160

Critical Thinking

التفكير الناقد

….

2

Semester Credit Hours:17

Fifth Semester

Course No.

Course Title

Arabic Title

Pre-Req.

Credit

62237

Visual Programming

البرمجة
المرئية

62153

4

63112

Technical Writing

الكتابة
التقنية

61250

3

62235

Database Management Systems

نظم  قواعد البيانات

62153

3

64139

Operating Systems

نظم تشغيل

62251

3

63152

Software Design 

تصميم البرمجيات

62253

3

63150

Legal & Ethical Issues I

القضايا القانونية والأخلاقية

61151

1

Semester Credit Hours:17

 

Sixth Semester

Course No.

Course Title

Arabic Title

Pre-Req.

Credit

63151

Legal & Ethical Issues II

القضايا
القانونية والأخلاقية

63150

1

63141

Web Application Development

تطوير
تطبيقات الويب

62237

4

63254

Human Computer Interaction

تفاعل
الإنسان و الحاسوب

62253

3

63252

Formal specification  

المواصفات الرياضية

62150-62253

3

63221

Security Practices and Principles

مبادئ
وممارسات الأمان

61151

3

63253

Research Methods

طرق البحث العلمي

75Cr. Hrs

2

64141

Internship

التدريب التطبيقي (العملي)

75 Cr. Hrs

Semester Credit Hours :16

Seventh Semester

Course No.

Course Title

Arabic Title

Pre-Req.

Credit

64156

Legal & Ethical Issues III

القضايا القانونية والأخلاقية

63151

1

64142

IT Capstone Project I

مقدمة المشروع

95 Cr. Hrs

2

64150

Software Reuse &Component Based Development

التطوير
باستخدام المكونات البرمجية

63152

3

64151

Software Development Practice

ممارسة
تطوير البرمجيات

63152

3

64277

IT Project Management

إدارة
مشاريع

62137

3

 

Student selected Course

مقرر
اختياري

3

64153

Software Testing & Quality Assurance

اختبار
البرمجيات وضمان جودتها

62237

3

Semester Credit Hours :18

Eighth Semester

Course No.

Course Title

Arabic Title

Pre-Req.

Credit

64250

Software Maintenance  &
Evolution

صيانة و تطورالبرمجيات

63152

3

 

Student selected Course

مقرر اختياري

 

3

 

Student selected Course

مقرر اختياري

 

3

 

Elective Course

مقرر حر

 

64280

IT Capstone Project II

مشروع التخرج

64142

4

Semester Credit Hours :13

 

 

 

 

Student selected Courses (Software
Engineering)

Student selected Courses

Course No.

Course Title

Arabic Title

Pre-Req.

Credit

63163

E-Commerce and E-Marketing

التجارة
و التسويق الالكتروني

62154

3

63127

Virtualation and Cloud Computing

الحوسبة السحابية

61257

3

64411

Enterprise Recourse Planning 

التخطيط
لموارد المؤسسات 

62154

3

64412

Mobile Application Development

تطوير
تطبيقات الموبايل

63141

3

64413

Big Data

البيانات
الضخمة

62235

3

64414

Data Mining

التنقيب
عنن البيانات

62235

3

 

اجمالي
عدد الساعات:
 

130

اجمالي عدد الفصول
الدراسية:

8

أجمالي عدد المقررات
الدراسية:

46

 

Courses Description

62137 Int. to Software Engineering 3 Credit Hours
Prerequisite: 61252
This course is important as it presents key principles and concepts of software engineering and gives a solid foundation for other courses in this area. The course covers the most important definitions and concepts in software engineering, software life cycle and processes, fundamentals, Software development from problem specification and requirements engineering through design, implementation, testing, and maintenance; introduction to rapid and extreme programming – fundamentals of modelling and design – fundamentals of project management, costing of software, change management and software quality assurance. Introduction to ethics and professional practice of software engineering, in a collective project on the software life cycle and using specialized software tools.


62154 Int. to Information Systems 3 Credit Hours
Prerequisites: 61252
This course will introduce the topic of Information Systems (IS) and discuss how organizations use information systems to support for a variety of tasks ranging from basic day to day activities to creating competitive advantage in the market place. Topics such as foundation of information systems, e-business, competitive advantage with information systems, IT infrastructure, communication and networks, information system development, databases and information management, improving decision making and managing knowledge, enterprise applications, securing information systems, ethical and social issues in information systems.


62250 Data Structures and Algorithms 3 Credit Hours
Prerequisites: 62152
This course introduces the main concepts of data structures. Topics covered: concepts of Abstract Data Types (ADT), specification of different data structures such as: (Lists, Stacks, Queues, Dictionaries, and Trees) as ADT, different implementations using an object oriented approach, algorithms analysis in terms of time and size for the different implementations. Recursion as problem solving technique and a brief introduction to graphs is also covered.


62251 Computer Architecture 3 Credit Hours
Prerequisite: 61254
This course provides an introduction to hardware and software aspects of computer architecture. Topics covered: Computer structures and their types, instructions’ set architecture, arithmetic logic unit, control unit, buses, control signals and statements, memory hierarchy, computer performance measurement, enhancing performance with pipelining. Connecting and interfacing I/O devices to CPU.


62252 General physic 3 Credit Hours
Prerequisite: —-
This is course in physics designed to emphasize the experimental laws of physical science. Topics to be covered include mechanics, heat, wave motion and sound, electricity and magnetism, optics, and modern physics. In the computer lab portion of the course, students will perform some programs of experiments and analyze the results based on physical law.


62253 Software Requirements Engineering 3 Credit Hours
Prerequisite: 62137
This course introduces the various concepts of Requirements Engineering. Topics covered include: Essential topics of the variant requirements analysis phases, problem analysis, Prototyping the Requirements, Trawling for Requirements, Scenarios, Writing the Requirements, Reviewing the Specification, Requirements Reusing, Requirements Quality Gateway and risk analysis. A Requirements Specification Template as a standard and guideline in producing the Requirement Specification document. The ethical behavior of software analysis will be discussed when the requirements are combined with the stakeholders. Students participate in a collective project in software requirements engineering.


63152 Software Design 3 Credit Hours
Prerequisite: 62137

This course is aimed at software analysts, designers and developers who already understand the Software development Life Cycle (SDLC). It provides knowledge and practice in the object-oriented analysis and design activities of software engineering. Topics covered: Unified process model, Requirement Engineering using scenarios and use cases, object oriented analysis models (Class diagram, activity diagram, sequence diagram), introduction to object oriented design models, changing the design to code. Practical sessions using CASE tools also provided. Through exercises and group work, students first perform Object Oriented Analysis (OOA) to produce a conceptual model of existing information using case studies to identify actors and primary use cases for documentation. Using Object Oriented Design (OOD) students learn how to identify classes and build the domain model.


63150 Legal & Ethical Issues I 1 Credit Hours
Prerequisite: 61151
This course provides a discussion of legal and ethical issues faced by computing professionals. These issues will be framed in terms of what it means to be a computing professional with topics such as responsibilities, ongoing professional development, and social involvement. The course will use the students’ prior experiences in software development as a framework by demonstrating lecture concepts through coding examples and technical situations. State and national laws pertaining to computing will be presented. Students will be required to give and justify opinions about given computing situations. Students will also present an opinion to the class about one specific software development issue.


63251 Legal & Ethical Issues II 1 Credit Hours
Prerequisite: 63150
This course introduces students to the topics of information technology ethics including: definitions, rules & policies of computer ethics, hacking, viruses, Internet ethics, freedom of expression on the Internet, computer professionals and social responsibilities, software copyright, intellectual property, software piracy, cyber law and privacy & security of computerized information.


64156 Legal & Ethical Issues III 1 Credit Hours
Prerequisite: 63251
The program covers ethical and professional behavior that software engineers must adhere to in order to perform their duties and succeed in their mission. The in-depth ethics of IEEE-CS / ACM software engineering are covered with respect for the public interest, customers, employer, product, governance, management, profession, colleagues, and self. As well as other aspects related to the professional practice of software engineering such as group dynamics, teamwork and interaction with stakeholders, effective communication and presentation skills, the economic impact of software, professional associations and licensing, social and legal issue.


63254 Human Computer Interaction 3 Credit Hours
Prerequisite: 62137
This course introduces human-computer interaction field that integrates the capabilities of computer technology with human factors limitations. Topics covered: foundations, the human, the computer, the interaction, usability paradigms and principles, interaction design, understanding users, model of the user in design, affective aspects, interfaces and interactions, data gathering, design and construction of prototypes, evaluation techniques.


63252 Formal specification 3 Credit Hours
Prerequisite: 62155-62137
This course provides formal specification techniques that allow students to construct of the formal model that can perform tests on specifications and corresponding code to find errors in requirements, models, designs, and implementations. The course will focus on the role of Formal Methods, why Study Formal Methods in Software Engineering?, Specification of Programs and Myths about Formal Methods.


64150 Component Re-use Based Development 3 Credit Hours
Prerequisite: 63152
This course provides an introduction to the main concepts of programming by components. Topics covered: Object-Oriented Programming (OOP) concepts that form the base for components, software architecture for supporting components, transition from structured Object Oriented to component-based programming, designing reusable components in Visual basic.net, Software Design Patterns such as Exception handling, Reflection, Web Services and their relationship to component programming.


64151 Software Development Practice 3 Credit Hours
Prerequisite: 62137
In this course, students apply the stages of building software from requirements engineering, design coding and testing. The student should perform a project work with a group of students or individually. This project will be the basis for the graduation project. Where the student will write the code for the project.


64152 Software Maintenance 3 Credit Hours
Prerequisite: 63152
This course provides an overview of software maintenance (what, why, who), Different types of software maintenance, Software maintenance metrics and case studies, Maintenance prediction (number of changes, cost, impact analysis), Evolution process models, Legacy system reengineering and reuse, Reverse engineering and program understanding, Software and Information Visualization, Software system re-documentation, Service Oriented Architecture (SOA), and Agile software development.

64153 Enterprise Recourse Planning 3 Credit Hours
Prerequisite: 62154

Introduces students to all of the components of Enterprise Resource Planning and its extensions while enabling them to understand how to choose, install and successfully use ERP systems.


64514 Mobile Application Development 3 Credit Hours
Prerequisite: 62152
This course is concerned with the development of applications on mobile computing platforms. Android will be used as a basis for teaching programming techniques and design patterns related to the development of standalone applications and mobile interfaces to enterprise and cloud systems. Emphasis is placed on the processes, tools and frameworks required to develop applications for current and emerging mobile computing devices. You should work at all stages of the software development life-cycle from inception through to implementation and testing. In doing so, you will be required to consider the impact of user characteristics, device capabilities, networking and cloud infrastructure and deployment environment, in order to develop software capable of meeting the requirements of stakeholders.


64155 Cloud Computing 3 Credit Hours
Prerequisite: 62154
This course focuses on learning emerging issues related to Cloud computing technology. The objectives are:
• Understand various basic concepts related to cloud computing technologies
• Understand the architecture and concept of different cloud models: IaaS, PaaS, SaaS
• Understand big data analysis tools and techniques
• Understand the underlying principle of cloud virtualization, cloud storage, data management and data visualization.
• Understand different cloud programming platforms and tools
• Be familiar with cloud programming using Google’s ‘Go’ programming language
• Have details knowledge on reading and writing in cloud storage
• Be familiar with application development and deployment using cloud platforms
• Create application by utilizing cloud platforms such as Google app Engine and Amazon Web Services (AWS)
• Learn to develop scalable applications using AWS features.
• Learn basic concepts of MapReduce programming models for big data analysis on cloud.


64157 Big Data 3 Credit Hours
Prerequisite: 62153
The course covers Big Data Fundamentals, including the characteristics of Big Data, the sources Big Data (such as social media, sensor data, and geospatial data), as well as the challenges imposed around information management, data analytics, privacy and security, as well as platforms and architectures. Emphasis will be given to non-relational databases by examining techniques for storing and processing large volumes of structured and unstructured data, streaming data as well as complex analytics on them. Data warehouses will also be presented as a solution to handling big data and business intelligence applications.


64158 Data Mining 3 Credit Hours
Prerequisite: 62153
Data Mining studies algorithms and computational paradigms that allow computers to find patterns and regularities in databases, perform prediction and forecasting, and generally improve their performance through interaction with data. It is currently regarded as the key element of a more general process called Knowledge Discovery that deals with extracting useful knowledge from raw data. The knowledge discovery process includes data selection, cleaning, coding, using different statistical and machine learning techniques, and visualization of the generated structures. The course will cover all these issues and will illustrate the whole process by examples. Special emphasis will be given to the Machine Learning methods as they provide the real knowledge discovery tools. Important related technologies, as data warehousing and on-line analytical processing (OLAP) will be also discussed. The students will use recent Data Mining software. Enrollment in this course is limited to 15 students.