Software Engineering

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 Software Engineering Program emphasis on developing the ability to:

  1. Apply the knowledge to the professional development of software systems.
  2. Solve real-world software development problems using well-defined software engineering processes and media design.
  3. Be an effective team player in multidisciplinary environment along with ethical behavior and effective communication skills.

Choose a career as a professional engineer in industry or as a researcher in academia.

The students should complete a minimum of 139 credit hours as specified in the study plan. All courses are taught in English.

The program learning outcomes as follow:

  1. outline and describe the engineering solutions of software development process, requirement engineering, object oriented modelling, software verification and validation
  2. write down the principles of web programming, software user interface and usability engineering
  3. state theories and concepts of media components like audio, video, animation and images, 3D modelling, game development and to list the principles of visual communication
  4. apply knowledge of mathematics, science, and engineering
  5. design and conduct experiments, as well as to analyze and interpret data
  6. design a software system, component, or process to meet desired needs within realistic constraints such as economic, environmental, social, political, ethical, health and safety, manufacturability, and sustainability.
  7. identify, formulate, and solve software engineering problems
  8. understand and show professional and ethical responsibility
  9. demonstrate the recognition of the need for, and an ability to engage in life-long learning
  10. to demonstrate ability to communicate effectively in oral and in written form
  11. to interpret and evaluate engineering problems using modern engineering tools
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 202
Software Engineering
Course Code Course Name Pre- Requisite CH Course Description
CIS 103 Programming I 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.
ENG 101 English Essay Writing 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 201 Introduction to Physical Sciences 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 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 II CIS101


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
IS 102 Introduction to Information Systems 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 102 Physics I PHY201 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 102 Probability and Statistics 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 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 201 Fundamentals of Web Design CIS101 3 This course introduces basic concepts of the Internet and World-Wide Web. Students will learn how to create web pages with HTML, and use JavaScript for dynamic effects. Major topics include the roles and operation of web browsers and servers, including interacting with web applications through forms; and the separation of formatting and logical structure in HTML documents, stylesheets, and the basic principles of effective interface design for the web
CIS 202 Data Structures : CIS102 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 ENG101 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.
PHY 202 Physics-II PHY201


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 3 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 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.
IS 221 Introduction to Database System CIS102 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 104 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 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 CIS101 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 IT Project Management : IS102 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 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.


SWE 202 Introduction to Software Engineering


CIS 103


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 SWE 202


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.
SWE302 Software Architecture and Design SWE 202


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.
IS 384 Information Security IS 102


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 SWE 312


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 312 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 CIS 222


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 421 3D Modeling and Design SWE 324


3 This course covers how to create, edit, and take apart 3D models and animations using industry standard 3D modeling software. It is intended to develop foundational skills to work, create, and navigate utilizing the features of the digital 3D modeling workspace. Explores basic elements of the 3D development of objects like texture, light, materials, rendering and frame animation
SWE 422 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, time line editing, audio mixing and compositing. The topics from animation include 2D frame animation, action script based animations, scene based animations and animation 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 202 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).