Course Descriptions Offered by the Department of Computer Information Systems
0613101 – Fundamentals of Information Technology
This course provides a comprehensive introduction to the fundamental technologies that underpin the use of computers in everyday life. It covers the main components of computer systems, operating systems, software, networks, and databases, as well as modern technologies such as the Internet and cloud storage. The course aims to enable students to understand how these systems operate and how they can be effectively applied in various fields. By mastering these fundamentals, students will be able to use technology tools effectively in everyday work environments and make informed decisions in information technology-based workplaces.
Prerequisite: None
0202100 – English for Information Technology
This course is designed to develop students' ability to use English effectively in the field of Information and Communication Technology (ICT). It focuses on technical terminology, language structures, and essential communication skills required in global technology-oriented work environments.
Prerequisite: 0202099
0612102 – Discrete Mathematics
This course introduces students to the fundamental discrete mathematical structures used in computer science. Major topics include sets, matrices, mathematical logic, counting techniques, relations, functions, trees, and formal proof techniques. The course emphasizes developing students' fundamental skills in analyzing and solving computational problems, with practical algorithmic applications. Octave programming is also introduced as a tool for solving practical problems, enabling students to apply mathematical concepts to programming and computational problem-solving.
Prerequisite: None
0612112 – Programming Language (1)
This course introduces the fundamental concepts of programming using C++. It covers the basic structure of a C++ program, variable naming, data types, control structures, selection statements, loops, arrays, and functions. The course provides students with a solid foundation in programming principles and problem-solving techniques, enabling them to develop structured and efficient programs using C++.
Prerequisite: None
0302131 – Principles of Statistics and Probability
This course provides an introduction to descriptive statistics and the principles of probability. Topics include probability distributions such as binomial, Poisson, geometric, hypergeometric, normal, t, F, and chi-square distributions; sampling; simple linear regression; correlation; hypothesis testing; and analysis of variance.
Prerequisite: 0612102
0302241 – Linear Algebra (1)
This course covers the fundamental concepts of linear algebra, including matrix operations, determinants, finding matrix inverses using the adjoint method, and representing and solving systems of linear equations using matrix methods. It also covers eigenvalues and eigenvectors, characteristic polynomials, and vectors in two- and three-dimensional spaces, including operations such as the dot and cross products. Students are introduced to vector spaces and subspaces, linear independence, bases and dimensions, as well as linear transformations and their properties. The course aims to enable students to use linear algebra tools in analyzing and solving mathematical and applied problems.
Prerequisite: 0302106
0613102 – Introduction to Information Systems
This course provides a comprehensive study of the fundamental concepts of information systems and their vital role in supporting modern business and management. It emphasizes the integration between organizations, information systems, business processes, and the technological infrastructure required to achieve organizational objectives. The course introduces various types of information systems, including Management Information Systems (MIS), Transaction Processing Systems (TPS), Decision Support Systems (DSS), Executive Information Systems (EIS), and Business Intelligence systems. It also covers information systems planning and development, with emphasis on selecting appropriate hardware and software to improve organizational performance.
Prerequisite: 0613101
0612117 – Programming Language (2)
This course builds on students' knowledge of C++ programming and develops their understanding of advanced programming concepts and techniques. Topics include arrays and their manipulation, functions and different return types, parameter passing mechanisms such as call by value and call by reference, strings, pointers, and an introduction to structures. The course aims to strengthen students' abilities to design and analyze programs using advanced C++ techniques and to develop efficient and flexible software solutions.
The course consists of two credit hours of theory, delivered in a laboratory or computer-equipped classroom where theoretical concepts and practical examples are presented.
Prerequisite: 0612112
0612118 – Programming Language Lab (2)
This laboratory course provides practical application of the advanced C++ programming concepts covered in Programming Language (2). Students perform practical exercises and develop programs using one- and multidimensional arrays, functions, parameter passing by value and by reference, strings, pointers, and structures. The laboratory emphasizes problem analysis, effective solution design, code debugging, and software quality improvement through practical programming tasks and projects.
The course carries one practical credit hour, delivered in a dedicated laboratory and equivalent to two contact hours.
Prerequisites: 0612112 and 0612117
0614204 – Introduction to Software Engineering
This course provides an introduction to modern techniques used in large-scale software development. Key topics include requirements analysis, functional specifications, feasibility studies, interviewing techniques, and requirements validation. The course enables students to understand different software development processes and how to select an appropriate process for a particular project. Students also learn how to develop a basic project plan, elicit and document requirements from clients, conduct client interviews, prepare feasibility reports, and communicate effectively with clients to support successful software projects.
Prerequisite: 0613101
0614211 – Professional and Ethical Issues in Computing
This course provides an introduction to professional and ethical issues in computing. It is designed to help students from different disciplines develop the writing skills required in professional and business environments. Students learn the principles and conventions of technical writing and practice them through a variety of tasks commonly encountered in the workplace. The course also develops students' ability to identify ethical dilemmas and professional challenges specific to the computing field.
Prerequisite: 0202101
0613212 – Systems Analysis
This course introduces students to the systems development environment and the System Development Life Cycle (SDLC) as a systematic and conceptual framework. Topics include systems development feasibility studies, information-gathering techniques, software assets, and information systems project management. The course also covers identifying and selecting systems development projects, initiating and planning projects, determining system requirements, and modeling processes using Data Flow Diagrams (DFDs). Students are introduced to the concepts, skills, methodologies, techniques, tools, and perspectives required by systems analysts. Contemporary approaches such as Agile Development, Extreme Programming (XP), Rapid Application Development (RAD), and the Unified Modeling Language (UML) are also covered.
Prerequisite: 0613102
0612214 – Object-Oriented Programming (1)
This course introduces students to the fundamental concepts of Object-Oriented Programming (OOP), which focuses on designing software using objects and their interactions. Topics include encapsulation, inheritance, polymorphism, and abstraction, as well as designing software using classes and objects. The course also introduces design patterns and best practices in object-oriented programming to promote efficient and reusable code. Concepts are implemented using C++, enabling students to develop advanced software applications based on object-oriented programming principles and to build flexible and scalable software solutions.
The course consists of two credit hours of theory, delivered in a laboratory or computer-equipped classroom with practical examples.
Prerequisites: 0612117 and 0612118
0612215 – Object-Oriented Programming (1) Lab
This laboratory course provides students with practical experience in the Object-Oriented Programming concepts covered in the theoretical course. Using C++, students design and implement classes and objects and apply encapsulation, inheritance, polymorphism, and abstraction. The laboratory also covers constructors, destructors, object relationships, code reuse, and best practices in object-oriented programming. Students develop their abilities to analyze problems, design object-oriented solutions, debug programs, and build flexible and scalable applications.
The course carries one practical credit hour, delivered in a dedicated laboratory and equivalent to two contact hours.
Prerequisites: 0612118 and 0612214
0612222 – Data Structures
This course provides an overview of fundamental data structures and their applications. Topics include abstract data types, stacks, queues, recursion, linked lists, binary trees, general trees, file structures, file organization and indexing, graphs and their representations, shortest-path algorithms, sorting, and searching. The course includes weekly laboratory practice and practical applications.
Prerequisite: 0612215
0613313 – Database Systems
This course provides students with a comprehensive understanding of database systems and Database Management Systems (DBMS), with particular emphasis on the relational database model. It covers database modeling using Entity-Relationship Diagrams (ERDs) and their transformation into database tables, as well as database design methodologies, integrity constraints, and functional dependencies. The course also introduces normalization and its practical applications to ensure data quality and integrity. By the end of the course, students will be able to use query languages such as relational algebra and Structured Query Language (SQL) to efficiently retrieve information from databases and formulate and process algebraic and computational query expressions.
Prerequisite: 0613212
0613315 – Programming in a Selected Language
This course provides an introduction to the Python programming language, beginning with installation and the use of the PyCharm development environment and progressing through fundamental concepts such as strings, data structures, and control flow. Students learn how to create functions, work with files and modules, and apply the fundamentals of object-oriented programming. The course also introduces graphical user interface development using Tkinter. In addition, it develops communication and teamwork skills, with emphasis on professional and ethical conduct. By the end of the course, students will be able to develop effective programs and solve real-world problems using Python.
Prerequisite: 0613313
0612316 – Visual Programming (1)
This course introduces students to the fundamentals of visual programming using programming environments that support graphical development. C# is used within the Visual Studio environment to develop applications with graphical user interfaces (GUIs). Students learn fundamental programming concepts through graphical components such as buttons, menus, and windows to build interactive and functional applications. Topics include visual programming environments, general principles of visual program design, control structures, events, and object handling. The course develops students' logical thinking and practical problem-solving skills and prepares them for advanced software development techniques.
The course consists of two credit hours of theory, delivered in a laboratory or computer-equipped classroom with practical examples.
Prerequisite: 0612215
0612317 – Visual Programming Lab (1)
This laboratory course provides students with the practical skills required to develop visual applications using C# within the Visual Studio environment. Students apply visual programming concepts by designing and developing interactive graphical user interfaces (GUIs) using controls such as buttons, menus, forms, and text boxes. The course also covers event handling, control structures, objects, and integrating software components with graphical interfaces. The laboratory strengthens students' logical thinking, problem analysis, and practical software development skills and prepares them for more advanced techniques in software engineering and application development.
The course carries one practical credit hour, delivered in a dedicated laboratory and equivalent to two contact hours.
Prerequisites: 0612316 and 0612215
0612318 – Object-Oriented Programming (2)
This course provides students with fundamental knowledge of problem-solving and software development using Java. It focuses on core programming concepts and structured programming principles, including variables, input and output, classes, control structures and loops, methods, and arrays. The course also introduces basic graphics programming using Java libraries, enabling students to develop interactive programs with simple graphical interfaces. It aims to develop students' logical thinking and programming analysis skills and strengthen their ability to design effective software solutions using Java.
The course consists of two credit hours of theory, delivered in a laboratory or computer-equipped classroom with practical examples.
Prerequisites: 0612214 and 0612215
0612319 – Object-Oriented Programming Lab (2)
This laboratory course enables students to apply object-oriented programming concepts and software development techniques using Java. It focuses on problem-solving and transforming theoretical concepts into practical applications through program development, execution, and testing. Topics include variables, input and output, control structures and loops, methods, arrays, and classes, with emphasis on encapsulation and code reuse. Students also practice designing and implementing simple graphical user interfaces using Java libraries. The course develops logical thinking, programming analysis, systematic development practices, and the ability to build effective and scalable Java applications.
The course carries one practical credit hour, delivered in a dedicated laboratory and equivalent to two contact hours.
Prerequisite: 0612318 (Concurrent) and 0612215
0612321 – Computer Algorithms
This course develops students' knowledge and understanding of computer algorithms. Topics include the definition of algorithms, algorithm design techniques, and performance analysis. Students study basic operations and analyze algorithm performance in the best, average, and worst cases using asymptotic notation, including Big O, Omega (Ω), and Theta (Θ). The course also covers recurrence relations, recursive algorithms, and algorithm correctness. Students are trained in advanced problem-solving techniques, including Divide and Conquer, Greedy Algorithms, Dynamic Programming, Graph Algorithms, and Backtracking. Fundamental searching and sorting algorithms and hashing techniques are also covered.
Prerequisite: 0612222
0612331 – Operating Systems
This course provides an introduction to computer operating systems and examines their capabilities and functionality. Topics include process management, process states, concurrent processing, synchronization, deadlocks, operating system structures, kernel fundamentals, processor scheduling, process switching, system management, memory management, process loading, resource allocation, queue management, interprocess communication, file systems, system accounts and interactions, system protection, and methods for evaluating system performance and efficiency.
Prerequisite: 0612118
0612332 – Introduction to Computer Networks
This course focuses on the fundamentals of computer networks and how they operate. Topics include the different layers of network models, particularly the OSI and TCP/IP models. Students learn about network configuration, protocol management, server configuration, and communication problems between devices. The course also introduces tools and techniques used for network diagnosis and troubleshooting.
Prerequisite: 0612331
0613341 – Internet Programming
This course provides students with a comprehensive understanding of fundamental and advanced web development technologies. It focuses on the core languages used to build websites, including HyperText Markup Language (HTML), Cascading Style Sheets (CSS), and JavaScript. Students develop the skills required to create interactive websites with attractive designs and advanced user interfaces. The course introduces fundamental principles and advanced techniques for web page development and provides practical opportunities to apply acquired knowledge through real-world programming projects. The course includes three hours of practical work per week.
Prerequisite: 0612215
0612342 – Artificial Intelligence
This course introduces fundamental concepts and practical applications in Artificial Intelligence (AI), based on established concepts in the relevant scientific literature. Topics include the principles and objectives of AI, intelligent agents, the Turing Test, system states, problem representation, and problem solving using search trees. Students study advanced search algorithms such as A* and Greedy Best-First Search, as well as Constraint Satisfaction Problems (CSPs). The course also covers logical agents and their role in developing knowledge-based models for solving complex problems such as the N-Queens Problem. The course concludes with an introduction to the theoretical foundations of fact bases and knowledge bases, which are essential components in the design of AI systems.
Prerequisite: 0612222
0613390 – Field Training
Field Training consists of eight weeks of practical training after the student has completed 90 credit hours, in accordance with the university's field training regulations.
The course provides students with valuable supervised work experience aligned with their academic, personal, and professional goals. It enables students to explore potential career paths, evaluate professional options, and develop specialized skills related to their field of study. Field training allows students to integrate theoretical knowledge with practical experience and apply their academic knowledge in real-world situations. This practical experience reinforces concepts learned in the classroom while helping students acquire transferable skills needed in future workplaces.
Prerequisite: Completion of 90 credit hours
0615432 – Data Mining
This course provides a comprehensive introduction to the concepts, techniques, and applications of data mining. Students learn how to extract valuable patterns, trends, and information from large datasets using techniques such as classification, clustering, association rule mining, and anomaly detection. Topics include data preprocessing, feature selection, model evaluation, and the use of data mining tools. The course also addresses ethical issues related to data analysis and use, with emphasis on practical applications in areas such as business, healthcare, and social sciences. Through practical exercises, students develop the ability to apply data mining techniques effectively to real-world problems.
Prerequisite: 0613313
0612435 – Computer and Network Security
This course covers fundamental and advanced concepts in computer security, with particular emphasis on network security. It examines threats and attacks targeting network infrastructure and techniques for mitigating them. Topics include packet interception, Denial-of-Service (DoS) attacks, network intrusion, and security protocols used to protect data during transmission. The course also covers network protection technologies such as firewalls, Intrusion Detection and Prevention Systems (IDS/IPS), wireless network encryption, and security protocols such as SSL/TLS and IPSec. Additional topics include network security management, access control policies, vulnerability management, and securing Local Area Networks (LANs) and Wide Area Networks (WANs). The course prepares students to understand security risks facing networks and to apply advanced security solutions that protect the confidentiality, integrity, and availability of information.
Prerequisite: 0612332
0613435 – Information Systems Security
This course provides a comprehensive introduction to the fundamentals of information security, covering both managerial and technical aspects. Students examine different types of security incidents and attacks and learn effective methods for preventing, detecting, and responding to them. The course also introduces the fundamental principles of cryptography and its applications in implementing various security functions. At the end of the course, students deliver group presentations on information security projects, strengthening their practical and research skills in the field.
Prerequisite: 0612332
0613442 – Electronic Commerce
This course provides a comprehensive introduction to various e-commerce technologies, with emphasis on the major technical challenges associated with their implementation. It focuses particularly on the development of business-oriented websites, including their design, programming, and management. Through practical exercises, students develop the skills required to conceptualize and build effective commercial websites and integrate databases to support online transactions. The course uses PHP as a programming language, allowing students to apply concepts in a practical development environment. It includes three hours of practical work per week.
Prerequisite: 0613341
0613453 – Information Retrieval
This course provides students with an advanced understanding of information retrieval concepts and techniques, with emphasis on both theoretical foundations and practical applications. Topics include an introduction to information retrieval, Boolean retrieval, term vocabulary and postings lists, dictionaries and flexible retrieval techniques, index construction and compression. The course also focuses on evaluation models, scoring and term weighting techniques, and the Vector Space Model. Classification and clustering techniques for improving the quality and efficiency of information retrieval are also covered.
Prerequisite: 0613315
0613454 – Database Management Systems
This course focuses on advanced aspects of database management systems and builds on students' fundamental knowledge of SQL. It emphasizes the practical aspects of relational database systems, with particular focus on the Oracle environment. Students learn how to model, plan, design, and implement integrated database applications using advanced Oracle tools such as PL/SQL, Forms, and Reports. The course develops practical skills in efficient database administration and the development of advanced database solutions that meet organizational requirements.
The course consists of two credit hours of theory, delivered in a laboratory or computer-equipped classroom with practical examples.
Prerequisite: 0613313
0613454 – Database Management Systems Lab
This laboratory course focuses on the practical aspects of advanced database management systems and builds on students' fundamental knowledge of SQL. It emphasizes relational database applications in the Oracle environment. Students practice modeling, planning, designing, and implementing integrated database applications using Oracle tools such as PL/SQL, Forms, and Reports. The laboratory develops students' practical skills in database administration and the implementation of advanced database solutions.
The course carries one practical credit hour, delivered in a dedicated laboratory and equivalent to two contact hours.
Prerequisite: 0613313
0613490 – Graduation Project – Computer Information Systems
This course enables students to develop an applied project in an area such as business, management, or another relevant field, allowing them to integrate and apply the knowledge and skills acquired throughout the program.
Students develop their graduation projects using appropriate tools and technologies, including programming languages, database systems, web technologies, or e-commerce software, depending on the nature of the project.
At the end of the semester, the student and project team deliver a detailed presentation of the project before a graduation project examination committee.
Prerequisite: Completion of 90 credit hours
0614101 – Digital Marketing
This course introduces students to the fundamental concepts of digital marketing and the digital environment supported by modern information technologies. It examines information technology infrastructure and its relationship with digital marketing platforms, with emphasis on the role of data and technological tools in enhancing marketing strategies. Students develop an understanding of how digital marketing systems operate and gain practical skills in designing and implementing effective digital marketing campaigns in diverse digital business environments.
Prerequisite: 0613101
0616151 – Introduction to Cybersecurity
This course provides students with a comprehensive understanding of the principles and practices of information systems security. Topics include security terminology, threats, attacks, security mechanisms and services such as confidentiality, integrity, and availability; fundamentals of number theory; cryptography, including classical, symmetric, and asymmetric encryption; user authentication; access control; and cyber defense systems such as intrusion detection and prevention systems and firewalls. The course also covers malware and virtualization, including the concepts and mechanisms involved in installing and configuring Windows/Linux operating systems in virtual environments. By the end of the course, students are expected to understand the fundamental concepts involved in protecting computing infrastructure from cyber threats and attacks.
Prerequisite: 0613101
0614322 – Software Specification and Design
This course provides students with the knowledge and skills required to design high-quality software solutions. Students learn principles, techniques, and best practices in software design, with emphasis on building robust, flexible, and maintainable software systems. The course highlights the concepts of coupling and cohesion and teaches students how to analyze and evaluate the level of coupling and cohesion among software components and apply appropriate techniques to achieve low coupling and high cohesion. The course also introduces design patterns, including creational, structural, and behavioral patterns, together with their characteristics and appropriate use cases.
Prerequisite: 0614204
0613324 – Systems Modeling and Simulation
This course introduces students to the concepts of simulation, including the development of basic models, input analysis, the addition of modeling structures, output analysis, and integration of simulation with other applications. These concepts enable students to understand how to design and analyze models for simulating different systems, supporting informed decision-making and system performance improvement across various fields. The course includes three hours of practical work per week.
Prerequisite: 0612321
0615343 – Machine Learning
This course provides students with a comprehensive understanding of the fundamental principles and common techniques of Machine Learning. It combines theoretical concepts with selected practical applications. Topics include regression, classification, clustering, and reinforcement learning. The course also includes practical programming exercises in which students implement algorithms and models using commonly used software libraries.
Prerequisite: 0612342
0613434 – Multimedia Systems
This course provides an in-depth study of the design, development, and deployment of multimedia systems, with emphasis on integrating different types of media, including text, audio, video, graphics, and animation. Students learn about multimedia system architecture, media processing techniques, and design principles focused on user experience. The course aims to equip students with the skills required to develop innovative and effective multimedia solutions that meet user needs and keep pace with modern technological developments. It includes three hours of practical work per week.
Prerequisite: 0612215
0613443 – Mobile Application Development
This course provides a comprehensive study of the principles and techniques of mobile application development for different operating systems, including Android and iOS, with emphasis on the practical knowledge and theoretical foundations required to design and develop mobile applications. Particular attention is given to user experience, application performance, and integration with web services and databases.
The course focuses primarily on the Android platform. Students progress from the fundamentals of application development to advanced application design and programming and finally to publishing applications on Google Play. The course covers Android development technologies, the required software development tools, and user interface design. Students develop their programming skills through practical projects that strengthen their understanding and application of mobile development concepts. The course also emphasizes modern user interface design techniques and application testing to ensure that applications are ready for deployment.
Prerequisite: 0613341
0613452 – Data Warehouses
This course introduces students to the concepts of data warehouses as a key component of decision support and business intelligence systems. It focuses on the fundamental principles of designing and building data warehouses and using them for data analysis and decision-making. Topics include the differences between operational databases and data warehouses; data warehouse development processes, including data extraction, loading, transformation, and cleansing (ETL); dimensional modeling; physical warehouse design; loading and maintenance strategies; and the development of business intelligence applications based on data warehouses. By the end of the course, students will be able to analyze business requirements, transform them into dimensional data models, design effective data warehouses, implement ETL techniques, and use business intelligence tools for data analysis and decision-support reporting.
Prerequisite: 0613313
0613455 – Decision Support and Expert Systems
This course focuses on the role and importance of Decision Support Systems (DSS) and Expert Systems in business environments and decision-making. It begins with the classification of decisions faced by managers and the analysis of different decision-making approaches, with emphasis on Simon's four-stage decision-making model. The course also introduces common decision-support strategies and techniques.
Topics include the components, types, classifications, and evolution of Decision Support Systems, as well as the relationship between DSS and Business Intelligence. The course covers the technical and practical aspects of designing DSS, including hardware and software, modeling, analysis, and development. In the area of expert systems and artificial intelligence, students study knowledge management, Case-Based Reasoning, Rule-Based Systems, and Expert Systems, in addition to group support and collaborative decision-making through computer-supported systems.
Prerequisite: 0612342
0613491 – Special Topics in Computer Information Systems
This advanced course provides students with fundamental knowledge and practical understanding of current research, technologies, and industry trends in Computer Information Systems. The specific topics covered may vary from one semester to another depending on the most innovative and relevant developments in the field.
The course content is carefully prepared by the instructor at the beginning of each semester in consultation with the academic program team to ensure that it reflects the latest and most significant developments in Computer Information Systems. Through a combination of lectures, case studies, and practical exercises, students gain valuable insights into current CIS research and its real-world applications.
Prerequisite: 0612332
0613100 – Principles of E-Government
This course introduces students to the concept of e-government and its central role in enhancing the efficiency of government performance and delivering public services more effectively and transparently. It examines the benefits of e-government and the major challenges and barriers that may affect its implementation, together with approaches and strategies for successful implementation.
The course also explores the impact of digital technologies, including computers and the Internet, in supporting digital transformation in the public sector. This includes an examination of Jordan's experience in e-government through the analysis of major services provided through official government platforms. The course promotes self-directed and interactive learning through the use of diverse learning resources and environments that extend beyond traditional classroom instruction.
Prerequisite: None