The Program of Software Engineering (SWE) is to educate students for careers of software engineer in industry and research. The offered program will emphasis on developing the ability to analyze, design, verify, validate, implement, apply, and maintain software systems; the ability to appropriately apply discrete mathematics, probability and statistics, and relevant topics in computer science and supporting disciplines to complex software systems; and the ability to work in one or more significant application domains like graphics and media design
The software engineering program mission is to provide a distinguished academic instruction and training that is recognized for high-quality education and research, to prepare highly competent software engineers to be tomorrow’s leaders, to conduct state-of-the-art computing solutions to local problems, and to serve the community at large.
The vision of the software engineering program is to be a distinguished program in Software Engineering education, research and professional development.
The students should complete a minimum of 139 credit hours as specified in the study plan. All courses are taught in English.
Program Educational Objectives:
In 3 to 5 years after successfully completing the degree program, the SWE graduates will:
- PEO1: Be employed in private and public sector endeavors and demonstrate the ability to be a collaborative team member and demonstrate professional leadership and ethical responsibility.
- PEO2: Demonstrate the willingness to acquire advanced skills and knowledge to improve and advance their careers and cope with an ever-changing professional environment.
- PEO3: Graduates will provide solutions to challenging problems in their profession by applying Software engineering theories and principles.
Students Outcomes for SWE
- An ability to identify, formulate, and solve complex engineering problems by applying principles of engineering, science, and mathematics
- An ability to apply engineering design to produce solutions that meet specified needs with consideration of public health, safety, and welfare, as well as global, cultural, social, environmental, and economic factors
- An ability to communicate effectively with a range of audiences
- An ability to recognize ethical and professional responsibilities in engineering situations and make informed judgments, which must consider the impact of engineering solutions in global, economic, environmental, and societal contexts
- An ability to function effectively on a team whose members together provide leadership, create a collaborative and inclusive environment, establish goals, plan tasks, and meet objectives
- An ability to develop and conduct appropriate experimentation, analyze and interpret data, and use engineering judgment to draw conclusions
- An ability to acquire and apply new knowledge as needed, using appropriate learning strategies.
Numbers of enrolled students and graduates in the program of SWE.
|New enrolled students||17||26||36||52||54||97||65|
|Total enrolled students||66||84||106||141||168||211||254|
Major Required Courses
|COURSE CODE||COURSE TITLE||CREDIT HOURS||PREREQUISITE|
|CIS 222||Interactive Media||3||CIS 201|
|SWE 312||Software Construction & User Interface||3||SWE 202|
|MTH 211||Calculus II||4||MTH 104|
|CIS 304||Computer Architecture||3||MTH 105|
|SWE 301||Software Requirements Engineering||3||SWE 202|
|SWE 302||Software Architecture & Design||3||SWE 202|
|SWE 401||Software Quality Assurance||3||SWE 301|
|ISY 384||Information Security||3||ISY 102|
|SWE 414||Formal Methods in Software Engineering||3||SWE 202|
|PHY 103||Physics I||4||PHY 101|
|SWE 300||Software Process and Modeling||3||SWE 202|
|SWE 321||Advanced User Interface Design||3||CIS 222|
|SWE 402||Software Maintenance and Evolution||3||SWE 312|
|MTH 301||Linear Algebra||3||MTH 001|
|SWE 322||Advanced Web Programming||3||CIS 201|
|PHY 203||Physics II||4||PHY 103|
|SWE 415||Software Usability Engineering||3||SWE 202|
|SWE 411||Software Verification and Validation||3||SWE 312|
|SWE 421||Game Development||3||CIS 222|
|SWE 202||Introduction to Software Engineering||3||CIS 104|
|MTH 302||Differential Equations||4||MTH 211|
|SWE 413||Design Patterns||3||SWE 302|
|Course Code||Course Name||Pre- Requisite||CH||Course Description|
|CIS 103||Programming Fundamentals I||Co-registered in ORN 04C & ORN 04R||4||In this course students will learn the basics of Java language syntax, elementary programming, selection and repetition, methods and arrays. They will gain experience by designing, writing, compiling and executing simple java programs.|
|ISL 101||Foundation of Islamic Culture||ORN 02-R and ORN 02 C||2||Students are novelist, and this course introduces the students to the foundation of Islamic Principles and culture and helps the student appreciate the way Islam views the human beings, life and the universe.|
|ARB 102||Communication Skills in Arabic||ORN 02-R and ORN 02 C||2||This course teaches students basic communication skills in Arabic Language, including verbal communication and presentation skills.|
|ISL 201||Foundation of Islamic Economy||ORN 02-R and ORN 02 C||2||This course provides students with economic principles form an Islamic Perspective. It addresses Islamic economic concepts, such as protection of property, ownership, inheritance, consumption, Islamic finance and economic welfare. The course provides an introduction to Islamic Banking Systems.|
|ARB 202||Writing Skills in Arabic||ORN 02-R and ORN 02 C||2||The course provides students with skills necessary for scientific and technical writing. Students have the opportunity to learn about writing in clear and concise Arabic and to apply specific strategies learned to writing business reports, articles and memos.|
|CIS 491||Graduation Project I||90 CR, SWE 300, SWE 301, SWE 302||3||The project is constituted of two parts, Graduation Project-I and Graduation Project -II. Capstone-I is in the first semester of fourth year and Capstone-II is offered in second semester of fourth semester. During Capstone-I, students are supposed to submit their project/ research proposal and then during Capstone-II students complete their projects|
|CIS 492||Graduation Project II||CIS 491, SWE 411||3||The project is constituted of two parts, Graduation Project-I and Graduation Project -II. Capstone-I is in the first semester of fourth year and Capstone-II is offered in second semester of fourth semester. During Capstone-I, students are supposed to submit their project/ research proposal and then during Capstone-II students complete their projects|
|CIS 222||Interactive Media||CIS 201||3||The Interactive media course deals with the basic components of multimedia and making them interactive by giving fundamental concepts of audio, images, video, animation and the necessary user interaction. The course covers the important image compression techniques like JPEG, video fundamentals and various file formats to necessitate the students with basic skills of various media and making them interactive|
|ENG 101||English Essay Writing||ORN 05R
|3||This course gives knowledge of English Essay Writing to the students. Topics include
Introduction to course and characteristics of academic writing, The Writing Process with a review of grammar, punctuation, sentence structure, paragraph structure, and organization (introduction, body, conclusion), The Process Essay, Writing a Research Essay, Paraphrasing Techniques, The Process Essay, More Practice for Revising and Editing, The Cause and/or Effect Essay, The Cause and/or Effect Essay, The Descriptive Essay, The Comparison/ Contrast Essay
|PHY 101||Introduction to Physical Sciences||ORN 04R & ORN 04C||3||This course will introduce students to Physical Sciences, especially to the discipline of Physics and Chemistry. It is an introductory course designed to explore the basic concepts of Physical Science. The course includes an introduction to the fundamental concepts of Physics and Chemistry. Students will be encouraged to explore the relationship between science and everyday life. This course will provide opportunities to study the concepts of matter, energy, speed, velocity, acceleration, Static and Current electricity, metals, nonmetals, efficiency, periodic table and forces and their application through investigations and activities that develop thinking skills and independent thinking. This course will establish a base with which the non-science student can view nature more perceptively.|
|MTH 104||Calculus I||MTH 001 and ORN 03C and ORN 03R||3||This three-credit course provides Students to learn different types of functions and their behavior, differentiation and integration and how to apply for engineering problems.
Topics include: Functions (Logarithmic, Exponential and Trigonometric), Differentiation and Integration and their applications.
|CIS 104||Programming fundamentals II||
CIS 103 and ORN 05C and ORN 05R
|4||This course gives a thorough grounding in the basics of Object Oriented design and programming including Abstraction, Encapsulation, Polymorphism, Inheritance and Exception Handling. Emphasis will be placed on creating and manipulating objects and classes. They will also learn event-driven programming. Students will learn about these concepts in a Java development environment|
|ISY 102||Introduction to Information Systems||ORN 04C &
|3||An introduction to computer based information systems and to their applications in business, including a discussion of issues involved in the use of information systems by management. The course also provides hands on tutorial experience in the use of computers, with particular emphasis on business applications of microcomputers.|
|PHY 103||Physics I||PHY 101||4||This course provides students knowledge of mechanics. Topics include details of vector’s analysis (two and three dimensions), Newton’s laws using graphs and vectors, linear motion, circular motion, work and energy, energy transfer, linear and angular momentum and their conservation, universal gravitation, periodic and wave motion, dynamics and statics of particles and rigid bodies, harmonic vibrations and fluid mechanics of motion.|
|STT 103||Probability and Statistics||MTH 001 and ORN 03C and ORN 03R||3||This three-credit course provides Students to learn the science of statistics, types of data, graphical methods and numerical methods of describing data, probabilities, normal, binomial, Poisson distributions, sampling distribution and central limit theorem, large and small sample confidence intervals for mean and proportions and determining the sample size.
Topics include: Describing Data, Graphical and numerical Methods, Probability and Large and Small confidence interval.
|MTH 105||Discrete Mathematics||MTH 001 and ORN 03C and ORN 03R||4||This three-credit course provides Students to study the mathematical topics which are most directly related to computer science. Emphasis will be placed on providing a context for the application of the mathematics within computer science. The students will learn to recognize and express mathematical ideas graphically, numerically, symbolically and in writing.
Topics include: Logic and proofs, Relations, Graph and Trees.
|CIS 202||Data Structures||CIS 104||3||Object-oriented modeling techniques for analysis and design. Provides the tools and techniques needed to solve complex, real-world software engineering problems in an object-oriented manner, using the most effective elements of the Unified Process. The course covers the essential concepts and notation of the Unified Modeling Language (UML), the standard notation for object-oriented analysis and design. Team project.|
|ENG 201||Technical Report Writing||ENG 101||3||This course introduces the students about Technical Report Writing. Topics include Introduction to Technical Writing, Audience Analysis, Procedural Technical Writing, Report Writing, CV & Job Application Letter.|
|4||This course provides students a knowledge about Electricity, Magnetism and Electronics. Topics include electric and magnetic fields, Coulomb’s and Gauss’ Law, electric fields and potentials, electrical and magnetic properties of matter, Ampere’s and Faraday’s laws, elementary DC and AC circuits, RC,RL and RLC circuits, Maxwell’s equations, circuit theory and electromagnetic induction, semi-conductors, PN Junction, diode of different types, transistors of different types, working of transistors in different configurations, logic gates using diodes and different types of transistors.|
|MTH 211||Calculus II||MTH 104||4||This three-credit course provides Students to use different kind of Series like Infinite series, power series, and parametric equations for a class of different problems. Functions of several variables and multiple integrals are power tools in this course.
Topics include: Series (Finite and Infinite ones), Partial Differentiation, Multiple Integration and their applications.
|NES 212||Data Communication and Computer Networks||CIS 201||3||This course is an introductory course in networking technology. Students are taught data communications concepts in both Computer Networks and Mobile Communication Systems/Networks. First the layered architecture of a network is discussed, and then fundamental concepts related to Signal are taught. These concepts are then related with bandwidth, data rate, encoding and modulation of the signals. Different error detection and correction schemes along with flow control are discussed. Finally, different communication protocols are discussed in detail.|
|ISY 221||Introduction to Database System||CIS 104||3||This course is intended to give students a solid background in database systems. Topics include characteristics and advantages of the database management systems (DBMS), database concepts and architecture; data models, database schemes and instances, DBMS and the concept of program-data independence, database languages and interfaces, database models, relational data model and relational algebra, relational model constraints; domains, keys, and integrity constraints, the structured query language (SQL); data definition, queries, update, statements, and views in SQL, database design; functional dependencies, normal forms.|
|CIS 304||Computer Architecture||MTH 105||3||Computer systems topics, focusing on machine-level programming and architecture and their relevance for application programming. Information representations, assembly language and debuggers, processor architecture, program optimization, memory hierarchy and caching.|
|MTH 301||Linear Algebra||MTH 001 and ORN 03C and ORN 03R||3||This three-credit course provides an introduction to System of equations, Matrices, Cauchy-Schwarz inequality, orthogonal bases, Vector spaces, Determinants, and Crammer’s rule and show how these techniques are applied in computer engineering.|
|MTH 302||Differential Equations||MTH 211||4||This four-credit course provides an introduction to Ordinary differential equations involving different types of equations as linear as non-linear as well, separable, homogeneous and exact. Also ODE’s of higher order, Series of Fourier and Laplace transforms and applications to ODE’s.
Topics include: Several ODE’s of higher order, Fourier series and Laplace Transforms. It shows how these mathematical tools are used to derive an understanding of computer engineering problems
|CIS 321||Operating Systems||CIS 304||3||A course on computer systems topics, focusing on operating systems components and their relevance for application programming. Linking, processes, virtual memory, dynamic memory allocation, system level I/O, networking and network programming, concurrent servers and web services.|
|CIS 386||Project Management||ISY 102||3||This course examines the defining characteristics of IT projects and introduces the student to a variety of project management techniques that can be applied in an IT project context. Managing project team, conduct feasibility study, create work breakdown structure, write project scope, time, cost, and quality are provided in detail in this course. The course will cover management issues associated with packaged software implementation (e.g., ERP systems), in-house developed systems, and outsourced projects.|
|CIS 381||Computer Ethics||ISY 221||3||This course will examine the ethical issues that arise as a result of increasing use of computers, and the responsibilities of those who work with computers, either as computer science professionals or end users. The course will stress the ways in which computers challenge traditional ethical and philosophical concepts, and raise old issues in a new way. Students will be expected to: read and understand the ideas in the readings; explain the ideas; analyze issues and see them from diverse perspectives; and formulate and critique arguments. The readings will include technical issues in computer science and may focus on a particular area such as software design as well as more traditional topics such as philosophical theories (e.g. ethical relativism, utilitarianism, deontological theories, rights, and virtue ethics), privacy, intellectual property rights and proprietary software, security, accountability, liability, the digital divide, hacking, and viruses.
Introduction to Software Engineering
|3||This course is designed to introduce software engineering with the exploration of key development processes. Topics include process definition and maturity; the system development life cycle; software life cycles and methodologies; requirements analysis and specification; architectural design, integration and testing, software project management, and software maintenance.|
|SWE 300||Software Process and Modelling||SWE 202||3||The course deals with Object-Oriented Modelling techniques for analysis and design. It provides tools and techniques needed to solve complex, real-world software engineering problems in an object-oriented manner, using the most effective elements of the Unified Process. The course covers the essential concepts and notation of the Unified Modelling Language (UML), the standard notation for object-oriented analysis and design.|
|SWE 301||Software Requirements Engineering||
|3||Topics covered: Functional and Non-function requirements; Use case Modeling; Specifying functional requirements using Use cases; Specifying non-functional requirements using metrics; Requirements specification standards, and formal methods of specification such as VDM. The course will also include translating higher-level business and user requirements into software product requirements to end up with Requirement Specification Documents.|
|SWE 302||Software Architecture and Design||
|3||Introduction to software architecture and design is including design patterns, multilayer architecture, client server, and Model-View-Controller, with a focus on micro-level architecture including patterns, frameworks, and component-based software engineering, and commercial off-the-shelf software.|
|SWE 312||Software Construction||SWE 202||3||This course explores the construction of working, meaningful software through a combination of coding, rapid system prototyping. The course includes Event-driven and clock-driven simulation, software construction methods, Frameworks and APIs, and construction and evaluation of user interface. The subject is taught from both practical and theoretical points of view.|
|SWE 321||Advanced User Interface Design||CIS 222||3||This course is optimized for the students to efficiently learn the most important User Interface Design (UID) techniques that will help them to make better applications with a focus to design prototype for web and mobile applications before any code is written. The course gives basic insights on various UID principles and practices. Also, covers UID for mobile applications by considering the mobile constraints, its implications to build advanced wire framing.|
|SWE 322||Advanced Web Programming||CIS 201||3||This course is designed to give students more in depth study of the design and develop dynamic, database-driven web sites. The course will help students develop a toolbox of techniques to improve their programming skills for web application development. The course introduces the PHP framework and syntax and covers in the depth the important techniques to build dynamic web sites. Comprehensive hands on exercises are integrated throughout the course.|
|ISY 384||Information Security||
|3||This course will provide a comprehensive introduction and study into a broad selection of contemporary information systems security issues, concepts and policies, including the survey of state-of-the art technology used to address security problems. Topics of study include core security mechanisms of access control and integrity, basic cryptography techniques, assurance, authentication, digital signatures and database security mechanisms. The course discusses security policy and privacy issues for information systems protection and detection, as well as an overview of recent trends in commercial products and applications and security research in basic network security, intrusion detection.|
|SWE 411||Software Verification and Validation||
|3||This course teaches students various and different strategies of software testing. The course prepares students for the state-of-art testing techniques, tools and technologies. The course prepares students to be proficient software testers.|
|SWE 401||Software Quality Assurance||SWE 301||3||Quality assurance is viewed as an activity that runs through the entire development process: understanding the needs of clients and users; analyzing and documenting requirements; Including Quality concepts — Software quality assurance – Software quality management Quality planning and control — Software reviews, walkthrough and inspection— Statistical software quality assurance — Software configuration management- Software reliability — International Software quality models, e.g. ISO9000Quality standards and ISO 9000-3, etc.. — Software process improvement — The Capability Maturity Model (CMM), Balance scorecards.|
|SWE 421||Game Development||
|3||This course focuses on technical and creative aspects of game development, including the art of creating the digital game prototype, 2D/3D game design and development principles to build working games. As a part of this course, students are enabled to develop 2D/3D games using various game development environments, game engines and tools.|
|SWE 324||Computer Graphics||CIS 222||3||This course aims at introducing fundamentals of computer graphics to the student. The course covers Overview of Graphics Systems, primitives, Geometric Transformations, 2D and 3D viewing, 3D Object Representations, Various detection and rendering methods, Computer Animation and Hierarchical Modeling.|
|SWE 323||Visual Communication||CIS 222||3||The course deals with introduction of visual and non-verbal communication through images. It covers the understanding of visual parameters and perceptual techniques for visual communication. The skills needed for creating and analyzing visual messages are covered.
|SWE 422||3D Modeling and Design||
|3||This course covers how to create, edit, and take apart 3D models and animations using industry standard 3D modelling software. It is intended to develop foundational skills to work, create, and navigate utilizing the features of the digital 3D modelling workspace. The course Explores basic elements of the 3D development of objects like texture, light, materials, rendering and frame animation|
|SWE 423||Principles of Video and Animation||CIS 222||3||This course introduces the principles of video production which include video standards, video compression techniques, editing, delivery format, special effects, timeline editing, audio mixing and compositing. The topics from animation include 2D frame animation, action script-based animations, scene-based animations, and animations for web|
|SWE 402||Software Maintenance & Evolution||SWE 312||3||The course Covers issues related to change management in software systems. Addresses principles and techniques of corrective software maintenance, software enhancements, and software product family. Introduces students to issues of change in large software systems including configuration control, change and product management.|
|SWE 413||Design Patterns||SWE 302||3||An overview of concepts and principles of object-oriented design through design patterns. A discussion of the design pattern alternatives. An extensive discussion and application of three types of software patterns: creational, Structural and behavioral. Code bad smells and software refactoring examples and case studies.
|SWE 415||Software Usability Engineering||SWE 202||3||The course covers the user requirements and design for an appropriate software and website design. This also delivers skills like developing code to implement the web site, evaluating a website and implementing a web site. This includes the user centered development cycle principles for developing a software or web.|
|SWE 414||Formal Methods in Software Engineering||SWE 202||3||The course introduces the use of formal methods for the specification, design, and automatic analysis of software systems. The course will present a variety of specification notations (propositional and predicate logic, Z, Alloy, UML/OCL, temporal logic), and discuss corresponding analysis techniques (theorem proving, constraint checking, animation, model checking).|