Short desc-SE 1 Introduction to Software Engineering 1302281 Pre-Requisite(s) : 1301201 : 3 (3 Lectures, 0 Laboratory) This module provides an overview of engineering as a discipline; the module introduces student to the fundamental principles and methodologies of a software engineering. It covers basic knowledge about software processes. It provides minimum prerequisite knowledge for more detailed and specialized study of software engineering. Students gain experience, via a team project, about lifecycle development of software systems. Field Training 1302369 Pre-Requisite(s) : Passing 80 Credit Hours : 3 (0 Lectures, 6 Laboratory) The course lasts for 6 weeks (total of 240 working hours) to cover the summer semester of the third year during which students will undergo a practical training at an approved private, government or semi-government agency. The objectives are to expose students to real working environment and get them acquainted with the organization structure, business operations and administrative functions ,to have hands on experience in their related field so that they can relate and reinforce what has been taught at the university and to let students learn how to interact effectively, efficiently and professionally with others. During the placement the department assigns an academic staff as the placement Tutor for each student. The recommended number of formal meetings between the student and the tutor is at least once a week. The purpose is to help the placed student whenever possible, to liaise with the company or agency and provide continuous assessment of the trainee. The field supervisor will be also asked to fill out reports on student attendance, motivation and performance. At the end of the training period the student must submit a final placement report to the department for assessment and must also present his work achievements in front of an examining committee formed by the department for that purpose. Requirements Engineering 1302382 Pre-Requisite(s) : 1302281 + 1301203 : 3 (2 Lectures, 2 Laboratory) The Software Requirements course includes knowledge concerned with establishing a common understanding of the requirements to be addressed by a Software Project. It includes methods techniques and tools associated with the elicitation, analysis and modeling, specification, review and management of software requirements. Students are given hand- on – practice using selected case studies and a team or individual project to correct, prototype, model, specify and verity requirements of a mid- sized Software Project. Project Management 1302383 Pre-Requisite(s) : 1302281 : 3 (2 Lectures, 2 Laboratory) The Software Project Management Course addresses issues involving the creation, development and maintenance of software Projects. This area includes team and project management, project planning, project schedules and cost estimation models, risk analysis, project a divines tat on and configuration Management. Software Design and Construction 1302386 Pre-Requisite(s) : 1302382 : 3 (2 Lectures, 2 Laboratory) This module covers knowledge about principles, methods and techniques for describing how a Software Product will be implemented so that its requirements are satisfied. This includes methods, techniques and tools associated with architectural and component design with an emphasis on Object Oriented methods, the design process and the design documentation, and review, user Interface and Short desc-SE 2 data design. The course also examines issues, methods and techniques associated with constructing a software product, the impact of this process on long term Software maintainability and evolution. Human Computer Interaction 1302452 Pre-Requisite(s) : 1302382 : 3 (3 Lectures, 0 Laboratory) The course focus on giving advise on human factors and key issues underlying the iterative process of user interface design, an effective development approach and technology fundamental to user interface implementation. Component- Based Software Engineering 1302481 Pre-Requisite(s) : 1302386 : 3 (2 Lectures, 2 Laboratory) The Course Focuses on an approach to software development based on extensive use of pre- existing standard (or customizable) components. It also illustrates how a repository of reusable candidate components can be integrated into a typical evolutionary process model. The Component- based Software Engineering process involves identifying candidate components, qualify each component interface, adapt components to remove architectural mismatches, assemble components into a selected architectural style and update components as requirements for systems change. Software Testing and Quality Assurance 1302484 Pre-Requisite(s) : 1302386 : 3 (2 Lectures, 2 Laboratory This Module introduces various methods, techniques and tools for testing Software Systems, Students learn how to model test purposes, experiment and test hypothesis, Perform various level testing using different testing techniques, use metrics to establish conformance to system design requirements, test specialized classes of software applications. The course also looks at how software quality assurance are performed and how software process improvement is maintained in order to assure the highest possible quality and reliability. Software Maintenance and Re-engineering 1302485 Pre-Requisite(s) : 1302386 : 3 (3 Lectures, 0 Laboratory) The course addresses the knowledge and techniques necessary to enhance, perfect and modify software overtime. It covers the issues of software maintenance, extensibility, and software adaptability to different environments, as well as, Software re- engineering process, such as reverse engineering and restructuring, how legacy systems can be assessed to decide if they should be scrapped, maintained, re-engineered or replaced. Finally the destruction between Software reengineering and data re- engineering is demonstrated. Formal Methods 1302488 Pre-Requisite(s) : 1302386 : 3 (2 Lectures, 2 Laboratory) This course explores different topics in this research area, including mathematical tools (such as logics, and property languages), formal modeling of computer languages and systems, and techniques used for automatic model checking of such systems. Graduation Project 1302489 Short desc-SE 3 Pre-Requisite(s) : Passing 90 Credit Hours. : 3 (1 Lectures, 4 Laboratory) The final year project gives the student the opportunity to apply knowledge acquired in the early years. It aims to develop and measure the capabilities of a student to analyze and solve complex problems. Projects are assigned on a team basis, and are normally proposed by lecturers of the department. However, a student may propose a topic or an area of his/her own research interest. Projects should be problem oriented relevant to the program of study. Students are encouraged to have some original contribution. Each Team will be assigned a supervisor who is in charge of the entire project. In this part of the project the student is expected to develop the skills in gathering information, analyzing and specifying problem requirements. A literature survey and initial plan is written up by the middle of the semester and a requirement specification document is submitted by the end of the semester. A final oral representation before faculty members is given for assessment and to suggest modifications. It covers the design and implementation phases of the project started in 1301480. The design document is to be submitted and reviewed by the supervisor by the middle of the semester. A final design and implementation report is submitted and an oral presentation including a public demo is evaluated by a committee of faculty members. Software Agents 1302388 Pre-Requisite(s) : 1302281 : 3 (2 Lectures, 2 Laboratory) This course involves: types of software agents (mobile agents & stationary agents), agent systems, agents models, agents communication, agents messaging, collaboration of agents, agents design patterns, programming of agents, sample applications of agent design patterns. Web Based Design 1302430 Pre-Requisite(s) : 1302386 + 1303236 : 3 (2 Lectures, 2 Laboratory) This subject gives students exposure to more advanced methods and technologies required for Web page development. Designing large-scale web sites. Web site organisational frameworks: grouping content, using hierarchies, modelling a site's structure, common page types. Principles of visual design: visually reflecting the organisational framework, visual design for page elements, page layouts. Dynamic page design with scripting. An overview of an object oriented scripting language. Client side scripting: scripting language structure and syntax, scripting events and using event handlers, creating objects and using built-in objects, objects and navigation, dynamic HTML and browser objects. Applications for scripting in animation, data validation, data persistence and user interaction. XML overview. XML Schemas: using Document Type Definitions and XML Schema language. Intelligent Intelligent-Based Knowledge System Design 1302441 Pre-Requisite(s) : 1301310 + 1302386 : 3 (2 Lectures, 2 Laboratory) Intelligent Systems topic involves: introduction to AI, Rule-Based Expert Systems, Rule-Based Reasoning Systems, Problem Solving Techniques, Natural Language Processing (NLP), Intelligent Knowledge-Based Systems, Learning Systems, Intelligent Agent Systems, Case Studies & Sample Applications. Real- time and Embedded Systems 1302483 Pre-Requisite(s) : 1303350 :3 (2 Lectures, 2 Laboratory) The Course introduces Students to the notion of real- time and embedded system, their requirements, design principles, techniques and tools, describe some generic real- time system architecture. The Short desc-SE 4 Course gives students an might into the concept of real- time and embedded systems, why real time systems are usually implemented as a set of concurrent processes, role of real- time executive, common architecture for monitoring and control of, data acquisition systems. Special Topics in Software Engineering Pre-Requisite(s) : Dept. Approval 1302490 : 3 (3 Lectures, 0 Laboratory) This course covers selected topics in current research and recent developments in the Software Engineering field. Content may vary each offering or may be repeated.