603391 Systems Analysis & Design (3:3-0)
This course introduces System Development Life Cycle (SDLC) covering: Feasibility studies, Project management, requirements collection techniques (interviews, questionnaires, observation and joint application design), requirement analysis using the structural methodology (Data flow diagrams, data dictionary), process of system design including: Architecture, input & output, user interfaces and data bases. Validation and verification concepts and system maintenance are introduced.
603392 Software Engineering (3:3-0)
This course 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.
603394 Requirements Engineering (3:3-0)
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. Project and case studies are introduced within the learning scope.
603395 Software Testing (3:3-0)
This course provides an introduction to the process of validating and verifying the software during the life cycle. Topics covered: System testing techniques (Static and dynamic white-box testing, static and dynamic black-box testing), testing stages (unit testing, integration testing and system testing), testing strategies (top-down and bottom up), test planning and test reporting. Preparation of software test documents and test cases. Practical experience in using testing CASE tools.
603396 IT Project Management (3:3-0)
This course provides the skills and the necessary knowledge to successfully initiate, plan, control, manage and report on information technology projects. Topics covered: The PMBOK and its practices including: Integration management, scope management, time management, cost management, quality management, human resource management, communications management, risk management, and procurement management. Special attention is also placed on the issues affecting project managers such as PMOs, and outsourcing. In addition to receiving hands on experience by working on a case study.
603490 Quality Management & Process Improvement (3:3-0)
This course provides a general introduction to Software Quality Assurance. Topics covered: Software Quality Assurance, Quality Control, Quality management, Quality components, and software quality metrics. The course also introduces a detailed process and components for achieving software quality which include: Pre-project components, Software project life cycle quality components, Infrastructure components for error prevention, improvements and Managerial SQA components, International Organization for Standardization’s (ISO) quality model and Capability Maturity Model (CMM), Quality Management (TQM).
603491 Software Configuration Management (3:3-0)
This course gives the main concepts of Software Configuration Management (SCM) and its role in controlling evolving software systems. Topics covered: The basic concepts of software configuration management, the link between SCM and software development life cycle, the importance of SCM, SCM phases and activities, branching, release management, configuration management roles, CASE tools used in SCM.
603493 Software Design Methodologies (3:3-0)
This course provides the concepts of Software Design (SD) and its role in producing a solution to a given problem for software systems. Topics covered: the basic concepts and principles of software design, the importance of SD, SD activities and phases, design strategies, techniques and methods, architectural design styles and viewpoints, design patterns, software reuse and design quality.
603400 Field Training (3:0-3)
Prerequisite: Dept. Approval
This course provides the ability to practice on using computer tools and applications in various fields, either in a public or private sectors under the supervision of the department members. The purpose of the supervised field training experiences is for students to synthesize the knowledge and skills developed during the academic portion of the program in a practical setting. Field training is both a learning experience for students and contributes to the work undertaken by the field training site. The expectation is that the field training will provide learning opportunities unavailable in a classroom setting.
603499 Graduation Project (3:0-3)
Prerequisite: 603392 + 602302
This course gives the students the chance to demonstrate their intellectual, technical and creative abilities through developing a projects in one of information technology fields. The Graduation Project challenges students to go beyond the learning that occurs as the result of their prescribed educational program. Students shall complete their projects in areas of concentrated study under the direction and supervision of faculty members. The projects will demonstrate the students' ability to: Apply, analyze, synthesize, evaluate information, and communicate significant knowledge and comprehension.
603311 Programming by Components (3:3-0)
This course provides an introductionto 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 Java called JavaBeans, Software Design Patterns such as (MVC, Observer), creation of Beans, persistent storage and retrieval of Beans, the Java reflection package, introspection to provide Bean information and others , Web Services and their relationship to component programming.
603393 Human-Computer Interaction (3:3-0)
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.
603407 Innovation & Entrepreneurship in IT (3:3-0)
This course provides a comprehensive understanding of E-business entrepreneurship. Topics covered: Assessing entrepreneurial abilities, defining the entrepreneurial process, recognizing the characteristics of E-business and the role E-business plays in the global economy, identifying various e-business models, developing new e-business ideas, creating a business plan, securing startup financing, facing various startup challenges including hiring key staff and selecting technologies, marketing an E-business and its products or services, developing an e-business Website and securing an e-business’s assets from various internal and external threats.
603408 Selected Topics in Sofware Engineering (3:3-0)
Prerequisite: Dept. Approval
This course provides topics that are selected by instructors according to the interest of the department and students and cover the novel areas in current advancements in various information technology fields. Suggested topics include: Advance-programming languages not included in the degree plan, advance topics in networks, advance topics in database, management information system, advanced topics in internet and web, case study in different areas.
603492 Advanced Software Engineering (3:3-0)
This course provides the Hands-on practice of the entire software development process through role playing in the software development process (analysts, designers, programmers, testers and project manager), and through solving hypothetical customer problems. In addition, gaining practical experience with severalCASE tools to perform activities of the life cycle.
603496 Software Engineering CASE Tools (3:3-0)
The course introduces the main concepts of using CASE tools in software engineering. Topics covered:classification of CASE tools,comparative study, practice on using CASE tools during software development life cycle, and research on existing CASE tools.
9600102 Computer Skills (Compulsory for IT Majors) (3:3-2)