Faculty of Informatics Engineering

Faculty of Informatics Engineering

Study Program

logo iusr

1-Study Program:

Students enrolled in the Bachelor Degree in College of Information Technology Engineering (ITE) must successfully complete the following (160 credit hours) during ten regular semesters.

  Type of Requirements (Req. Type) Requirement Nature (Reg. Nature) Number of Credit Hours
University (U) Elective (EL) 6
Obligatory (Ob) 6
College (C) Elective (EL) 11
  Obligatory (Ob) 36
Department (D) Elective (EL) 27
Obligatory (Ob) 74
Total of Credit Hours 160


In the following table, the names of the courses, their credit hours, the type of prerequisites, the nature of those prerequisites, and their previous requirements are listed:

Course Credit Regiments
No. Name Code Prerequisites Theoretical Lab Total Required Nature Type
1 English Language 1 (Expression and Writing) ENGL1001 - 3 0 3 6 Ob U
2 English Language 2 (Conversation Skills) ENGL2002 - 3 0 3 Ob U
3 Humanities HUMA1002 - 3 0 3 6 EL U
4 Islamic Culture HUMA1001 - 3 0 3 EL U
5 Psychology and Self-Management PSY1001 - 3 0 3 EL U
6 Public Health PUBH1001 - 3 0 3 EL U
7 Arabic Language ARAB1005 - 3 0 3 EL U
8 Fundamentals of Computer Science CIS1001 - 2 1 3 36 Ob C
9 Programming 1 (Java) CIS1002 - 2 1 3 Ob C
10 Web Application Development 1 CIS1003 - 2 1 3 Ob C
11 Specialized English Language 1 ENGL2003 - 3 0 3 Ob C
12 Specialized English Language 2 ENGL2004 ENGL2003 3 0 3 Ob C
13 Principles of Information Security INST1001 - 2 1 3 Ob C
14 Linear Algebra MATH1001 - 2 1 3 Ob C
15 Optimization and Numerical Analysis CIS2107 MATH1001 2 1 3 Ob C
16 Mathematical Analysis MATH1003 - 2 1 3 Ob C
17 Discrete Mathematics MATH1002 - 2 1 3 Ob C
18 Statistics and Probability STAT2002 - 2 1 3 Ob C
19 Electrical and Electronic Circuits EEC1001 - 2 1 3 Ob C
20 Geographic Information Systems CIS3219 MATH1001 - CIS1002 2 1 3 11 EL C
21 Digital Logic CIS4028 - 2 1 3 EL C
22 Human-Computer Interaction CIS4029 CIS1001 2 1 3 EL C
23 Communication Skills BUS2004 - 3 0 3 EL C
24 Physics PHY2001 - 2 1 3 EL C
25 Electronic Marketing TMJ2014 CIS1003 2 1 3 EL C
26 Introduction to Data Science DS1001 CIS3106 2 1 3 EL C
27 Inferential Statistics STAT2003 STAT2002 3 0 3 EL C
28 Software Project Management ITPM1001 CIS1002 2 1 3 EL C
29 Research Methodology SRM2002 - 3 0 3 EL C
30 Data Analysis DA1001 - 2 1 3 EL C
31 E-commerce ECM1001 CIS1003 3 0 3 EL C
32 Graphic Design TMI2009 - 2 1 3 EL C
33 Operating Systems CIS3014 CIS1002-CIS1001 2 1 3 74 Ob D
34 Computer Graphics CIS3116 MATH1001-CIS1105 2 1 3 Ob D
35 Advanced Algorithms Analysis and Design CIS3322 CIS2311 - MATH1001 2 1 3 Ob D
36 Programming 2 (Java) CIS1105 CIS1002-CIS1001 2 1 3 Ob D
37 Script Programming (Python) CIS3106 CIS1002 2 1 3 Ob D
38 Computer Organization and Architecture CIS2106 CIS1001-CIS1002-EEC1001 2 1 3 Ob D
39 Mobile Application Development CIS2108 CIS1105-CIS1004 2 1 3 Ob D
40 Object-Oriented Programming CIS2209 CIS1105 2 1 3 Ob D
41 Computer Networks 1 CIS2105 CIS1001 2 1 3 Ob D
42 Computer Networks 2 CIS2210 CIS2105 2 1 3 Ob D
43 Wireless Networks CIS3217 CIS2105 2 1 3 Ob D
44 Data Structures CIS2311 MATH1001 - CIS1105 2 1 3 Ob D
45 Web Application Development 2 CIS2412 CIS1003 - CIS1105 - CIS1004 2 1 3 Ob D
46 Introduction to Databases CIS1004 - 2 1 3 Ob D
47 Database Development and Management CIS3115 CIS1004 2 1 3 Ob D
48 Modern Database Systems CIS4230 CIS3115 2 1 3 Ob D
49 Principles of Artificial Intelligence CIS3220 MATH1001 - MATH1002-CIS3322 2 1 3 Ob D
50 Software Engineering CIS3221 CIS1105-CIS1004 2 1 3 Ob D
51 Multimedia CIS3323 CIS1105 - MATH1001 2 1 3 Ob D
52 Virtualization and Cloud Computing CIS3104 CIS2105 2 1 3 Ob D
53 Computer and Information Ethics CIS3205 50% 2 1 3 Ob D
54 Concurrent Programming CIS3126 CIS1105-CIS2105 2 1 3 Ob D
55 System Security CIS3127 INST1001-CIS2105-CIS1105-CIS1004 2 1 3 Ob D
56 Digital Image Processing CIS3107 CIS2311 2 1 3 Ob D
57 Graduation Project CIS42940 70% 0 2 2 Ob D
58 Machine Learning CIS4536 CIS3220 - CIS3115 2 1 3 27 EL D
59 Big Data and Data Mining CIS4538 CIS3220 - CIS3115 2 1 3 EL D
60 Advanced Search Algorithms CIS3521 CIS3220 2 1 3 EL D
61 Natural Language Processing CIS3324 CIS3220 2 1 3 EL D
62 Neural Networks and Deep Learning CIS3325 CIS3220 2 1 3 EL D
63 Information Retrieval and Search Engines CIS3527 CIS3220 - CIS1004 2 1 3 EL D
64 Computer Vision CIS3522 CIS3107-CIS3220 2 1 3 EL D
65 Advanced Web Technologies CIS4232 CIS2412 2 1 3 EL D
66 Distributed Databases CIS4231 CIS3115 2 1 3 EL D
67 Game Programming CIS3526 CIS1105 - CIS3116 2 1 3 EL D
68 Object-Oriented Design CIS3218 CIS2209 2 1 3 EL D
69 Advanced Algorithm Analysis and Design CIS3523 CIS3322 2 1 3 EL D
70 Distributed Systems CIS4739 CIS2105 - CIS1105 -CIS3115 2 1 3 EL D
71 Information Systems Analysis and Design CIS4740 CIS3221 2 1 3 EL D
72 Visual Programming CIS4537 CIS1105 - CIS3221 2 1 3 EL D
73 Web Security INST4310 CIS2412 - INST1001 2 1 3 EL D
74 Real-Time Systems CIS4333 CIS2105-CIS1105 2 1 3 EL D
75 Block chain Technologies and Cryptography CIS4533 CIS2311-INST1001 2 1 3 EL D
76 Network Management (Windows Servers) CIS4534 CIS2105 2 1 3 EL D
77 Network Management (Linux Server Management) CIS4535 CIS2105 2 1 3 EL D
78 Network Security and Encryption CIS4516 CIS2210 2 1 3 EL D
79 Summer Training SP1001 - 0 3 3 EL D
Total of Credit Hours 160

3-Courses Descriptions:

  1. English Language 1 (Writing and Expression Skills): This course is designed to prepare students for writing in the English language, focusing on integrated reading and writing skills. Students will study and practice reading comprehension, the writing process, and critical thinking. They will develop the necessary skills to create clear and correct sentences while refining their abilities to write focused, sophisticated, and organized paragraphs and/or short essays.
  2. English Language 2 (Speaking Skills): This course includes conversations, discussions, and presentations on a wide range of concrete, abstract, and specialized topics in the English language. It is designed to enhance speaking and listening skills for non-native speakers of English, with a focus on pronunciation, intonation, rhythm, and American English speech patterns. Emphasis is placed on oral communication, listening comprehension, and vocabulary development. Students build their skills through intensive instruction and practice.
  3. Humanities: This course examines topics and developments in world history from the emergence of the first human civilizations to the 21st century. As we explore civilizations from different times and places, we will encounter things that may seem strange and distant to us, but we will also discover that the people of these ancient civilizations laid the foundations for patterns and practices of human behavior that continue to influence us today.
  4. Islamic Culture:This course aims to introduce students to the sources of Islamic legislation, the characteristics of Islamic legislation, Islamic systems, family system, judicial system, governance system, economic system, characteristics of Islamic economic legislation, the nature of Islamic education, goals and characteristics of Islamic education, religious activity, general educational principles in Islamic education, principles of teaching Islamic education, rules of intonation, steps of teaching branches of Islamic education.
  5. Psychology: This course presents the key principles of psychology. It covers the history of psychology, human development and personality, abnormal behavior, social psychology, emotions and feelings, research methods, experimental psychology, psychological philosophy, learning and memory, alterations in consciousness, sleep and dreams, industrial and organizational psychology.
  6. Public Health: This course provides a fundamental introduction to the concepts and practices of public health by studying the philosophy, goals, history, organization, functions, tools, activities, and outcomes of public health practice at both the national and local levels. The course aims to stimulate student interaction regarding important issues and problems facing the health of the nation and the world.
  7. Arabic Language: In this course, students study the rules of the Arabic language, including subjects like the subject, object, passive voice, active voice, adjective, noun, singular, plural, various forms of the hamza, reasons for its writing, principles of calligraphy, conditional sentences, interrogatives, and emphasis.
  1. Computer Science Principles: This course aims to equip students with Identifying the computer and its applications in various aspects of life, including its physical and logical components and different computer operating systems. Understanding the binary counting system that corresponds to the operation of the electronic circuits that make up the computer, as well as getting acquainted with different counting systems. Exploring logical operations by understanding issues and logical connections and solving logical problems. Familiarizing students with the latest developments in operating systems and the World Wide Web.
  2. Programming 1 (Java Language): This course equips students with designing and analyzing algorithms, Implementing algorithms using the Java language, familiarizing students with the tools used in the Java environment, teaching students how to use arithmetic operations effectively and appropriately, teaching students how to use conditional statements effectively and appropriately , teaching students how to use loops effectively and appropriately, Introducing students to data structures and enabling them to use them appropriately and Familiarizing students with functions.
  3. Web Application Development 1: This course equips students with understanding the fundamentals of website design, familiarizing students with the use of images, links, menus, tables, and forms, understanding the overall interface and designing the main template, familiarizing students with styling tools and selectors, building responsive web interfaces for mobile devices. Introducing students to JavaScript and how to interact with HTML elements to add interactivity to web pages and exploring client-server concepts.
  4. Specialized English 1: This course focuses on reviewing essential English language rules required for students, Studying terminology in the fields of computer architecture, computer peripherals, operating systems, user interfaces, applications, and multimedia.
  5. Specialized English 2: This course aims to continue teaching terminology in the fields of networking, the internet, the World Wide Web (WEB), websites, communication systems, data security, software engineering, and the future of information technology. This includes listening, speaking, and writing skills related to the aforementioned topics.
  6. Principles of Information Security: This course aims to introduce students to the fundamental concepts of information security, including confidentiality, integrity, and availability. It also covers securing these concepts effectively. Additionally, students will learn about encryption algorithms and methods to protect individuals from hacking, theft, and destruction of critical information when dealing with modern technology.
  7. Linear Algebra: The Linear Algebra course aims to introduce students to fundamental concepts in the field of algebra, with a focus on meeting the expected needs of students in their studies in information systems engineering and other engineering branches.
  8. Optimization and Numerical Analysis: This course aims to teach students the concept of mathematical programming, with a specific focus on linear programming. Students will learn how to represent a problem that needs to be solved with an appropriate mathematical program and then solve this program using suitable mathematical methods. Additionally, students will be introduced to some applications of linear programming. The course also introduces students to numerical problems that may arise when developing numerical algorithms for solving mathematical problems in detail. It covers key numerical problems, their nature, and the understanding and application of given numerical methods, both in terms of analysis and linear algebra. Students will use and apply the aforementioned methods and compare different methods for solving a particular problem.
  9. Mathematical Analysis 1: The Mathematical Analysis 1 course aims to introduce the fundamental concepts of this branch of mathematics, catering to the expected needs of students in their studies in Information Systems Engineering and other engineering disciplines. The course also covers study of the set of real numbers: Absolute value of a real number and its properties, inequalities and their properties, real intervals, and their types, as well as bounded and unbounded subsets of real, study of complex numbers, operations on complex numbers, and their properties, sequences and numerical sequences, including sequences of real powers.
  10. Discrete Mathematics: This course introduces students to the fundamental concepts of discrete mathematics that are essential for students in the field of informatics. It covers topics such as set theory, mathematical logic, the basics of Boolean algebra, number systems, number theory, group theory, and operations on sets. Additionally, it explores topics like propositions, relations, and applications of mathematical logic, truth tables, Boolean algebra, logical gates, and counting systems.
  11. Statistics and Probability: This course focuses on fundamental principles that are important in a wide range of disciplines. It emphasizes the interpretation of results, presentation, and evaluation of hypotheses, and discusses what should be done when hypotheses are violated. It covers practical aspects using data table programs and statistical software data description and summarization, measures of central tendency and measures of dispersion, discrete probability and probability distributions, continuous probability distributions and sampling distributions, control charts in process control, estimation procedures, hypothesis testing and design of experiments and simple and multiple linear regression models.
  12. Electrical Circuits and Electronics: This course aims to study electronic components used in the manufacturing of computer processors, memories, and in computer peripherals interfacing with external analog signals. The key topics include: understanding the analysis of electrical circuits and determining their currents and voltages, understanding the operation of diodes and their applications. It also includes types of transistors and their working mechanisms, the use of transistors in amplifiers and logic gates, and operational amplifiers and their linear and nonlinear applications.
  13. Geographic Information Systems (GIS): This course intends to introduce students to the fundamental concepts of Geographic Information Systems (GIS). It highlights the components of GIS with a focus on two systems, ArcView and ArcInfo. The course enables students to work independently with GIS and develop their skills by designing and implementing a comprehensive project.
  14. Digital Logic: This course covers the design and application of digital logic circuits, including combinational and sequential circuits. Students will learn how to use digital logic circuits to solve engineering problems, analyze, design, verify, and test them. They will understand the relationship between abstract logic properties and practical electrical applications.
  15. Human-Computer Interaction: This course focuses on understanding human behavior with interactive systems, developing and evaluating interactive software with a human-centered approach. It covers various aspects of HCI design problems with different types of interactive software. Additionally, it introduces students to concepts of User Experience (UX) and User Interface (UI) design and provides the necessary tools for creating interactive software interfaces.
  16. Communication Skills: This course aims to introduce students to the concept of communication, its types, and trains them on how to communicate with different types of people. It also provides practical training on how to prepare reports, resumes, and deliver presentations in both Arabic and English.
  17. Physics: This course covers various topics, including: Heat and thermal Expansion, heat transfer, Kinetic Theory of Gases, geometrical optics (Reflection and Refraction), motion, force and newton’s Laws, work and energy, elasticity, sound waves, speed of sound in materials, sound reflection and Absorption , static electricity and magnetism, direct current and electrostatic Forces
  18. E-Marketing: The E-Marketing course introduces students to the importance of the internet for electronic marketing, elements of electronic marketing, especially in direct marketing and e-commerce, the electronic marketing mix and how pricing and distribution work online, detailed explanation of online promotional mix and how online advertising works , and search engine and  
  19. Introduction to Data Science: This course provides students with fundamental concepts in data science, including programming data analysis in one of the programming languages (R and Python). It also covers how to create reusable programming libraries, process data, represent it, and present it effectively.
  20. Inferential Statistics: This course aims to achieve acquire students with knowledge and concepts related to inferential statistics and hypothesis testing, gain experience in using a computer and working with the statistical software SPSS, provide a theoretical background for statistical methods supported by illustrative examples, with the burden of calculations shifted to the SPSS software, starting from data entry to result presentation, enable students to select the appropriate method, analyze, and interpret the results, develop students’ skills in report writing and extracting valuable information from statistical analysis results, and provide students with functional knowledge related to using SPSS in statistical analysis.
  21. Software Project Management: This course introduces students to the fundamental concepts of managing information technology projects, their methods, tools, and direct linking to real examples. It also provides subjects help students to understanding project concepts, project, management, and the project life cycle, Introduction to project management methods, Implementing and monitoring project performance, Integrating the project with the organizational structure.
  22. Scientific Research Methodology: This course aims to make students aware of general scientific research concepts and equip them with basic skills in scientific research. Students will learn about various research methods and approaches, as well as the characteristics of research in information sciences. They will be introduced to research methods, proposal preparation, organizing and conducting research, writing research reports, and research documentation and publishing.
  23. Data Analysis: This course covers data patterns, descriptive data analysis techniques, data reduction concepts, factor analysis, correlation analysis, variance analysis, and cluster analysis. Practical applications will be carried out using the statistical software SPSS. By the end of this course, students should be able to recognize data patterns and descriptive analysis techniques, understand the concept of data reduction, apply various data analysis techniques (factor analysis, correlation analysis, variance analysis, cluster analysis, etc.), and utilize the statistical software SPSS for simple cases.
  24. E-Commerce: This course provides students with concepts related to electronic authentication services, their terms, obligations, responsibilities, the importance of electronic payment methods, and their various types. Additionally, it introduces students to electronic arbitration. The course also covers the concept of e-commerce, electronic contracts, and electronic signatures, providers of electronic authentication services, electronic payment tools and electronic arbitration.
  25. Graphic Design: This course equips students with the fundamental concepts of static and animated image design, as well as video design and editing. It enables students to create the necessary multimedia elements to support their software development within visual interfaces and marketing for their products.
  26. Operating Systems: This course covers the basic concepts of operating systems, including principles of memory organization and management, virtual memory, process and thread scheduling, interprocess communication and synchronization, memory protection, and multitasking.
  27. Computer Graphics: This course provides an introduction to computer graphics algorithms and programming methods for such applications. It focuses on the basics of 2D and 3D raster graphics, scan conversion, geometric transformations, and camera modeling. Additionally, it covers the principles and basic methods of computer graphics on modern graphics hardware. Students will gain experience in interactive computer graphics using the OpenGL API. Topics include 2D viewing, 3D projection, perspective, lighting, and geometry. Advanced concepts in computer graphics, human-computer interfaces, animation, and an introduction to photorealistic rendering are also part of the course.
  28. Algorithm Analysis and Design: This course aims to provide students with knowledge on how to describe real-world problems and represent them programmatically. It covers algorithms for sorting, searching, recursion, and dynamic programming. Students will also learn about software complexity analysis, algorithm optimization, text algorithms, numeric algorithms, and graph algorithms.
  29. Programming 2 (Java): This course aims to equip students with skills and knowledge help students to understanding 2D and multidimensional arrays and how to work with them to solve problems, working with lists, recursion and functions for handling text, numbers, and characters to solve problems, object-oriented programming concepts, understanding inheritance, composition, encapsulation, and abstraction within object-oriented programming and solving problems using them and handling exceptions, working with files, general arrays, and anonymous functions.
  30. Scripting Programming (Python): As Python has become one of the most important and easiest programming languages in various fields, including artificial intelligence, this course aims to train students in Python. It covers topics such as variables, control structures, basic data structures like lists and dictionaries, object-oriented programming concepts, inheritance, file handling, exception handling, building graphical interfaces, and more.
  31. Computer Organization and Architecture: This course introduces students to computer organization, including the organization of general-purpose registers, control words, stack organization, addressing methods, and RISC computers. It also covers topics such as pipelining, parallel and vector processing, arithmetic processing algorithms, multicore processors, and more. Students will learn how to evaluate design decisions within the context of application requirements and technological constraints.
  32. Mobile Application Development: This course provides students with the knowledge and skills needed to create mobile applications that meet industrial market demands. It covers both theoretical and practical aspects, including architectural engineering, design, development, and deployment of mobile applications. The course also covers various concepts related to mobile technologies and the comparison between current mobile phone technologies, architectural engineering, design, development, and deployment of mobile applications. It provides students with a solid understanding of mobile technologies and mobile application development tools.
  33. Object-Oriented Programming: This course aims to cover both practical and theoretical aspects of building and implementing software applications. It focuses on object-oriented programming principles and communication between classes, with a specific emphasis on the C# programming language. This course assumes that students have already acquired the necessary knowledge from a previous course, Programming 2, which was taught in Java.
  34. Computer Networks 1: This course covers the fundamentals of computer networks, including the analysis of basic components, network classification, properties, and reference models like OSI and TCP/IP. It also explores important protocols used for data transmission between different systems and local area networks (LANs), including network interconnection methods and devices, educational outcomes include: Classifying different transmission media and selecting the appropriate solution as needed, understanding methods for connecting networks and suggesting suitable devices for each case, designing, configuring, and testing local area networks and defining device addresses connected to the network and familiarizing with routing protocols and their management.
  35. Computer Networks 2: Computer Networks 2 is an extension of Computer Networks 1. In this course, students learn advanced networking technologies, including ISDN, Frame Relay, ATM, SONET, and DSL. They delve deeper into the IP protocol and related protocols and gain knowledge of routing algorithms and congestion control algorithms in networks.
  36. Wireless Networks: This course provides an overview of wireless networks and their technologies, including key wireless services. It describes the fundamental knowledge needed to understand wireless data communication and shares insights into spectrum sharing between wireless stations. The course covers various types of wireless networks and their functional components, teaching students how to communicate wirelessly within these systems. Students will also learn about the most widespread wireless services and trends in the wireless industry.
  37. Data Structures: This course aims to introduce students to different data structures, how to create them, their operations, purposes, and how to perform operations such as searching, adding, deleting, and modifying data within these structures. It also covers algorithm complexity analysis and both linear and nonlinear data structures.
  38. Web Application Development 2: This course focuses on equipping students with the knowledge, skills, and experience necessary for developing modern web applications demanded in the industrial market. It covers various theoretical and practical concepts that enable students to build comprehensive, dynamic, and secure web applications. This course is an extension of Web Application Development 1 and includes numerous topics that empower students to create integrated and dynamic web applications.
  39. Introduction to Databases: This course introduces students to the concepts of databases, including: Types of databases (network, sequential, relational), study of relational databases and database management systems (DBMS), application of data and its types (1NF, 2NF, 3NF, BCNF), study of structured query language (SQL) for database management (DML, DDL, DCL, TC), connecting databases to appropriate programming interfaces for input and display.
  40. Database Development and Management: This course covers the fundamental concepts of database management systems (DBMS), ensuring data integrity and security, and the development of reusable procedures and functions using programming concepts within databases.
  41. Modern Database Systems: This course provides an understanding of both relational and non-relational database management systems. It focuses on non-relational databases, particularly Mongo DB, and search engine systems like Elastic search.
  42. Principles of Artificial Intelligence: This course introduces the basics of artificial intelligence (AI), its history, applications, and benefits for humanity. It also covers intelligent search algorithms, genetic algorithms, and neural network principles.
  43. Software Engineering: This course enables students to use the Unified Modeling Language (UML) and presents software modeling techniques for systems. It covers various diagrams used in software design (ERD, Use Case, Class Diagram, Component Diagram, Deployment Diagram, Sequence Diagram, Interaction Diagram) as well as software engineering processes, software project management, and requirements engineering.
  44. Multimedia: This course aims to provide students with knowledge of digital representation, processing, analysis, and compression of images, videos, and audio. It also covers how to retrieve digitally represented media using their inherent characteristics.
  45. Virtualization and Cloud Computing: This course aims to introduce students to the fundamental concepts of cloud computing, various types of cloud systems, infrastructure, and the setup of cloud systems. It also covers the benefits, pricing, challenges, and strategic impact of cloud computing.
  46. Computer and Information Ethics: This course covers concepts in digital security and digital forensics, including setting up and using an investigator’s lab, conducting computer forensics using digital evidence controls, crime scene processing, data acquisition tools, computer forensic analysis, email investigations, image file recovery, and report writing. It also addresses the ethical principles and legal regulations that IT professionals must adhere to.
  47. Parallel Programming: This course covers the fundamental concepts of parallel programming, including: Basic concepts of parallel programming, parallel memory structures and associated programming methods, branching multiple types of sequential programs, parallel programming methods, designing and providing examples of parallel programs, quantitative foundations of parallel programming and parallel programming tools such as PVM and MPI.
  48. Systems Security: This course aims to provide students with methods to protect systems at all levels, including databases, protocols, protocol layers, graphical interfaces, permissions, and system security testing. It ensures that systems are continuously available and that data and the system are secure.
  49. Digital Image Processing: This course introduces the importance of digital image processing, its applications, and fundamental image processing operations. It covers image segmentation, edge detection, and object tracking for object recognition. Additionally, it includes mathematical morphology operations like dilation, erosion, opening, closing, thinning, and thickening, as well as the extraction of image structure. The course also explores various filtering operations for enhancing and smoothing digital images using inverse, logarithmic, and power transformations. Spatial domain filtering (neighborhood averaging, median filtering, edge detection filters) and frequency domain filtering (low-pass filtering, high-pass filtering) are also covered.
  50. Graduation Project: This course is designed to introduce students to the software industry by assigning each student or a group of students a real software project that is in demand in the software market. The goal is to enable students to start working in software companies immediately upon graduation.
  51. Machine Learning: This course aims to provide students with specialized knowledge in machine learning and its various applications. Machine learning has become a valuable skill in the software industry. The course covers supervised and unsupervised learning algorithms, dimensionality reduction, and neural networks.
  52. Big Data and Data Mining: This course is designed to equip students with the necessary knowledge to work with databases that rely on extremely large data sets. With the technological advancements and the massive volume of data, students need to understand the techniques used for analyzing and building applications based on big data. The second part of the course covers data mining, enabling students to analyze data within a database and introduces them to algorithms for recommendation systems, cluster analysis, and association rules.
  53. Intelligent Search Algorithms: This course explores several concepts and methodologies referred to as intelligent search algorithms. It discusses the underlying theories of these methodologies when necessary and takes an engineering perspective and approach to designing, analyzing, evaluating, and implementing intelligent systems. Topics include stochastic algorithms, evolutionary algorithms, physical algorithms, probabilistic algorithms, swarm algorithms, and heuristics.
  54. Natural Language Processing: This course covers the necessary knowledge to enable students to analyze and process speech and text data. It includes topics such as speech digitization, text digitization, semantic, syntactic, morphological analysis, text processing, and applications such as translation, speech synthesis, and natural language question-answering systems.
  55. Neural Networks and Deep Learning: This course aims to empower students with the optimal use of neural network and deep learning algorithms. It introduces them to types of neural networks and their applications in structured and unstructured data classification (text, speech, and images).
  56. Information Retrieval and Search Engines: This course covers the concepts required to build information retrieval systems for text or image data. It includes topics like web crawling, indexing the collected data, analyzing and retrieving the required data for search operations, as well as introducing students to various algorithms used in information retrieval systems.
  57. Computer Vision: This course provides an introduction to computer vision, including image formation basics, camera imaging, feature detection and matching, stereo and motion estimation, scene understanding, depth recovery from stereo, camera calibration, automatic alignment, boundary detection, and object recognition. Classical machine learning and deep learning techniques are used to address these problems.
  58. Advanced Web Technologies: This course aims to provide students with the knowledge, skills, and techniques needed to build web applications that offer synchronization between the server and client. It also covers technologies for real-time audio and video streaming and single-page applications (SPAs).
  59. Distributed Databases: This course is designed to provide students with advanced issues related to databases from both security and distribution perspectives. It covers topics such as securing databases, distributing databases across multiple servers, and introduces the concept of cloud-based database storage.
  60. Game Programming: This course includes two main sections. The first section aims to provide students with algorithms to represent the behavior of objects in games. It also enables students to use techniques for building 2D and 3D games that run on mobile devices and computers. The second section may cover advanced game development topics such as physics simulation, artificial intelligence, and networked multiplayer game development.
  61. Object-Oriented Design: This course explains object-oriented design patterns by adopting various models and interactions between classes and software development best practices. It also covers creating extensible and maintainable software models.
  62. Advanced Algorithm Analysis and Design: This course aims to elevate students’ skills in implementing and analyzing algorithms by delving deeper into numerical algorithms, encryption methods, and text processing techniques. It also explores advanced algorithm design and problem-solving techniques.
  63. Distributed Systems: This course is designed to equip students with the necessary knowledge to build applications that operate on multiple computer devices, relying on web services, web API, or modern technologies that ensure compatibility between software applications and communication among them.
  64. Systems Analysis and Design: This course introduces students to the fundamental principles and various stages of information systems analysis and design. It covers the techniques used in analyzing and designing these systems, including feasibility studies, system requirements, system design, and development methodologies. User involvement in system development is emphasized.
  65. Visual Programming: This course aims to provide students with the techniques and skills needed to create high-performance software applications that run on computers. It is essential for various domains, such as healthcare automation, manufacturing, and warehouse management. Additionally, it covers topics related to voice and video transmission and networked applications.
  66. Web Security: This course aims to equip students with the skills and knowledge required for securing web applications across various layers, including database security, programming language security, interface security, and server hosting security.
  67. Real-Time Systems: This course covers the concepts and key issues related to real-time systems, including real-time operating systems (RTOS), scheduling, resource sharing, and real-time database systems. It emphasizes the challenges and constraints of real-time systems.
  68. Blockchain Technologies and Cryptography: This course explains how digital currencies work, from the time a transaction is created to when it becomes part of a blockchain. It covers topics such as public and private keys, addresses, blockchain components, and the use of blockchain in various applications. It also delves into smart contracts, their technical and practical capabilities, and the security constraints within which they operate. Finally, it explores the differences between Ethereum and Bitcoin, covering historical, conceptual, and architectural distinctions.
  69. Network Management (Windows Servers): This course covers the administration of network servers and Windows workstations, focusing on managing servers and network services provided by the Windows operating system. Topics covered may include: Proficiency in managing Windows servers or workstations, basic network configurations, including TCP/IP settings, DHCP configuration and management, management of core components, understanding Domain Name System (DNS) services, managing Windows domains and network management and security policies.
  70. Network Management (Linux Servers): The “Linux Server Management” course explores the fundamental operations for managing Linux-based workstations and servers. In this course, students will learn: The structure of the Linux operating system and its various distributions, basic command-line usage and administration, file system management, proficiency in managing core components, and Linux system administration and maintenance.
  71. Network Security and Encryption: This course aims to introduce students to network security challenges and the technologies and tools used to address them, including intrusion prevention, detection systems, encryption, and more. Topics covered may include: Identifying common information security threats, understanding security technologies such as IPSEC, TLS, and S/MIME, network security measures like firewalls and intrusion detection systems (IDS) and security in wireless networks (e.g., 802.11i).
  72. Summer Internship: The summer internship course provides students with practical work experience in a specified company or organization. It serves as a gateway to entering the job market and allows students to apply their knowledge and skills in a real-world setting. This course is typically optional and is available to students who can secure an internship opportunity with a specific company.