Course Description - Master of Software Engineering

  • 17150111: Machine Learning [3 Credit Hours]

    This course provides in depth details ‎regarding interdisciplinary techniques such ‎as statistics, linear algebra, optimization, and ‎computer science used to create automated ‎systems that can sift through large volumes ‎of data at high speed to make predictions or ‎decisions without human intervention. This ‎course will familiarize students with a broad ‎cross-section of models and algorithms for ‎machine learning, and prepare students for ‎research or industry application of machine ‎learning techniques. ‎


  • 17150103: Software Evolution, Architecture and Design [3 Credit Hours]

    This course is designed for graduate ‎students to explain the principles of ‎engineering complete large and complex ‎software systems. The course focuses on ‎advanced topics related to software ‎architecture practices, technologies, and ‎artifacts. It will also cover topics including ‎architectural principles and alternatives, ‎design documentation, and relationships ‎between levels of abstraction. ‎


  • 17150101: Research Methodologies [3 Credit Hours]

    This course is designed for graduate ‎students to provide the basis and principles ‎of research methodology. Various research ‎designs will be introduced that include ‎experimental and non-experimental as well ‎as qualitative and quantitative designs. The ‎course also aims at stressing the ‎importance and needs for research in ‎software engineering. It prepares students ‎to plan and carry out research projects ‎during their studies in real software ‎environment.‎


  • 17150104: Software Verification, Specification and Testing [3 Credit Hours]

    "This course is designed to train students in ‎the fundamental concepts on which modern ‎software testing techniques are based. Also, ‎it addresses other important aspects related ‎to software quality such as quality ‎assurance, safety, fault tolerance, reliability ‎assessment. ‎ The course consists of general software ‎testing principles; White-box testing based ‎on code analysis; Black-box, specification-‎based testing; Testing object-oriented ‎programs; Inspections and reviews; Safety ‎analysis; Statistical testing and reliability ‎analysis; Fault tolerance; Defensive ‎programming.‎ "


  • 17150102: Software Requirement Engineering [3 Credit Hours]

    "This course identifies the importance of ‎requirements in developing large, complex ‎and evolving software systems. The course ‎provides an overview of the notations, ‎techniques, methods and tools that can be ‎used in the requirements engineering. The ‎course also introduces requirement ‎engineering process in which different ‎activities of requirement engineering can be ‎identified and form a complete system. ‎ The course will use example from practice to ‎the applicability of requirements ‎engineering to everyday projects.‎"


  • 17150107: Security and Software Engineering [3 Credit Hours]

    This course aims to provide students with ‎tools, techniques and methods to support ‎the development and maintenance of ‎systems that can resist malicious attacks that ‎are intended to damage a computer-based ‎system or its data. It discusses security ‎dimensions, threats, security levels, ‎dependability, reliability measures, and ‎attack detection and elimination. It also ‎teaches students about security in ‎organizations, security requirements, and ‎secure system design. ‎


  • 17150112: Blockchain Engineering [3 Credit Hours]

    "This course explains in details the ‎Blockchain theory and practice. The course ‎discusses the method software engineering ‎behind creating a cryptographically secured, ‎decentralized and distributed global ledger ‎of transactions and assets.‎ The course will review Blockchain ‎applications in different domains and ‎enable students to practice some of these ‎applications. ‎"


  • 17150105: Cloud Based Software Engineering [3 Credit Hours]

    This course introduces cloud computing ‎theory, practice, models and types. This ‎course also provides in-depth details of the ‎principles, fundamentals and practical ‎implementation of cloud based software. It ‎discusses moving software engineering to ‎cloud opportunities and challenges. It ‎teaches students how to utilize cloud ‎computing for building software as a service ‎products and using platform as a service. ‎


  • 17150110: Data Mining [3 Credit Hours]

    This course covers 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 ‎also covers knowledge discovery process ‎including data selection, cleaning, coding, ‎using different statistical and machine ‎learning techniques, and visualization of ‎the generated structures. ‎


  • 17150106: Mobile Based Software Engineering [3 Credit Hours]

    This course covers the advanced topics in ‎software engineering for mobile and smart ‎devices. It shows the development in ‎software engineering tools, techniques for ‎developing mobile applications. It also ‎shows the challenges to mobile applications ‎software development. Practically, the ‎course will allow students to learn about ‎creating user interfaces accessible to ‎differently- abled users; handling the ‎complexity of providing applications across ‎multiple mobile platforms; designing context-‎aware aware applications; and, specifying ‎requirements uncertainty. ‎


  • 17150109: Special Topics in Software Engineering [3 Credit Hours]

    "The course covers different topics related to ‎software engineering. The course consists ‎of a series of lectures and/or practical work ‎in an area of advanced software ‎engineering of contemporary interest.‎ a proposal should be submitted to the ‎Faculty of Scientific Research and Graduate ‎Studies by the instructor of the course for ‎approval. It should give the details of the ‎material to be studied and is supposed to be ‎enough for 15 weeks. ‎"


  • 17150108: Advanced Research Topics in Software Engineering [3 Credit Hours]

    This course is designed to allow graduate ‎students to practice research in software ‎engineering. It will cover developing ‎research problem about the latest software ‎engineering issues, conduct a research and ‎write a paper. ‎


  • 17150113: Computer Vision [3 Credit Hours]

    This course provides an introduction to ‎computer vision, including fundamentals of ‎image formation, camera imaging geometry, ‎feature detection and matching, stereo, ‎motion estimation and tracking, image ‎classification, scene understanding, and ‎deep learning with neural networks. It will ‎develop basic methods for applications that ‎include finding known models in images, ‎depth recovery from stereo, camera ‎calibration, image stabilization, automated ‎alignment, tracking, boundary detection, and ‎recognition. The course will also develop the ‎intuitions and mathematics of the methods ‎in class, and then learn about the difference ‎between theory and practice in projects.‎


  • 17150114: Image Processing [3 Credit Hours]

    This course is an introduction to image ‎processing and image analysis techniques ‎and concepts. Areas examined include: ‎Imaging sensors and their principles; Image ‎representation and storage, coding and ‎compression techniques, lossy versus ‎lossless; Techniques for noise reduction. ‎Image enhancement including contrast ‎manipulation, histogram equalization, edge ‎highlighting; Filtering and transform ‎techniques for image processing including ‎two dimensional Fourier transforms, ‎wavelets and convolution; Spatial ‎transformations and image registration. ‎Segmentation and thresholding techniques; ‎Applications of morphology to image ‎processing including erosion, dilation and ‎hit-or-miss operations for binary and grey ‎scale images; Image feature estimation such ‎as edges, lines, corners, texture and simple ‎shape measures. Object classification, ‎template matching techniques and basic ‎image based tracking will also be examined.‎


  • 17150117: Distributed Systems [3 Credit Hours]

    "This course is designed for graduate ‎students to give them in-depth ‎understanding of distributed systems. ‎Students will learn issues related to clock ‎Synchronization and the need for global ‎state in distributed systems. The course will ‎cover distributed mutual exclusion and ‎deadlock detection algorithms. It will illustrate the significance of ‎agreement, fault tolerance and recovery ‎protocols in Distributed Systems. The course also will cover the characteristics ‎of peer-to-peer and distributed shared ‎memory systems.‎"


  • 17150116: Software for Augmented / Virtual Reality [3 Credit Hours]

    This course covers the technical and ‎experiential design foundation required for ‎the implementation of immersive ‎environments in current and future virtual, ‎augmented and mixed reality platforms. The ‎curriculum covers a wide range of literature ‎and practice starting from the original ‎Computer Science and HCI concepts ‎following the evolution of all supporting ‎technologies including visual displays for ‎VR, AR and MR, motion tracking, interactive ‎‎3D graphics, multimodal sensory integration, ‎immersive audio, user interfaces, IoT, games ‎and experience design. ‎


  • 17150118: Software Engineering Management [3 Credit Hours]

    "This course describes the principal tasks of ‎software project managers, and basic ‎concepts in software projects. It gives an ‎idea about how to plan software projects, ‎including risk and quality management. It ‎also explains basic concepts and principles ‎of components of software engineering, e.g., ‎of requirements engineering, system design, ‎software implementation, testing and ‎maintenance, and how these components ‎contribute to the software process The course also explains, using theory of ‎group dynamics, how the project manager ‎can act to influence success of the project.‎ "