College Requirements
22105 English for Science and Technology
This course aims to provide students of the Faculty of Science with a solid foundation in scientific English, focusing on the four language skills. It also aims to introduce students to strategies necessary for handling scientific texts and to enhance their knowledge of vocabulary and essential grammar commonly used in writing lab reports and other tasks required in scientific and technological courses.
T1101 Calculus for IT Students
This course reviews the concepts of functions, limits, continuity and derivatives, tangent and normal lines, local extrema, concavity, related rates, vertical and horizontal asymptotes, the mean value theorem of differentiation and its applications, the definite integral, the fundamental theorem of calculus, the indefinite integral, applications of the definite integral, and area.
41130 Principles of Statistics
Introduction to variables and data, describing data with graphs for categorical and quantitative data: Pie charts, Bar-charts, Line charts. Graphs for quantitative data: Dot plots, stem and leafs, Histograms. Describing data with numerical measures: measures of central tendency, measures of variation, on the practical Significance of standard deviation. Probability, the role of probability, events and the sample space, calculating probabilities. The normal distribution, Z-Table and standard Normal. Tabulated areas of the normal distribution, the normal approximation for the binomial probability. Poisson distribution.
T1111 Introduction to Computer Programming
This course is intended to introduce the fundamental concepts of computer programming. Also, it is indented to introduce the syntax and semantic of C++ programming language. Additionally, students are intended to learn how to use programming concepts and C++ language for solving simple real-world programming problem.
T1112 Object Oriented Programming
This course is intended to introduce the fundamentals of Object-Oriented programming approach (OOP). Mainly, classes and objects as basic OOP building blocks. Also, it will discuss the main characteristics of OOP (i.e., Abstraction, Encapsulation, Inheritance, and Composition). Additionally, students are intended to learn how to use C++ language for building their own classes and how practically applying Object-Oriented characteristics in their own programs
T1115 Introduction to Computer Programming Lab
This laboratory represents the practical application of the concepts that are given in the course of introduction to computer programming.
T1115 Object Oriented Programming Lab
This laboratory represents the practical application of the concepts that are given in the course of the object-oriented programming
T1180 Introduction to Information Technology
The course introduces current models of information systems and the components of these systems and how do they interact. it also discusses different technologies and their role in managing our lives, these technologies include communication networks, databases, and Internet. Ethics and ethical theories of personal and group behaviors with different case studies are also discussed in this course
T1280 Scientific Research Methodologies
This course is intended to assist students in planning and carrying out research projects. The students are exposed to the principles, procedures and techniques of implementing a research project. The course starts with an introduction to research and carries through the various methodologies involved. It continues with finding out the literature using computer technology and ends with knowing the tools used for data analysis in various systematic ways, and writing the report
T1281 Ethics of Information Systems
Digital-age intersection of information and ethics with emphasis on key areas of intellectual property, privacy, confidentiality, authenticity, plagiarism, diversity/inclusion and special populations, accessibility, intellectual freedom, censorship, social networking, cyberbullying, security, preservation, transparency, accountability, policy making, and professionalism. Ethical theories and application of ethical decision-making models to real-world library and information center scenarios. Analysis of codes of ethics. Issues and resources related to creation, implementation, enforcement, and assessment of institutional ethical codes.
Department Compulsory Requirements
T1207 Selected Topics in Mathematics
This course reviews the basic concepts of real numbers and their properties, exponents and logarithms properties. In
addition it gives the students basic knowledge of linear algebra concepts includes; matrices and their operations,
determinants, invertible matrices, solving linear systems of equations, vector spaces, eigenvalues and eigenvectors,
and linear Transformations. Also, it studies basic number theory concepts; divisibility theory, linear diophantine
equations, prime numbers, prime factorization, and congruence’s. Then, relations will be discussed including
definitions and examples, inverses and composites of relations, equivalence relations, and partitions. Next, we
introduce the basic concepts and results for graph theory. At the end, we do almost the calculations we see using
Mat Lab software.
T1219 Theory of Computing
The course includes the following topics, Introduction to the theory of computation , deterministic and non-deterministic automata, regular expressions, context free languages, push down automata, and Turing machines.
T1224 Computer Logic Design
This course combines digital logic design with computer organization and architecture. The first part covers number systems and conversion, minterm and maxterm expansions, combinatorial logic circuit, examples of common combinational circuits such as: adders-subtractor, multiplexers, encoders and decoders, sequential circuits flip-flops, counters and registers. The second part of this course introduces the concepts of computer architecture and organization, it covers: machine level data and instruction representation, CPU performance analysis, organization of the processor datapath and control, pipelining and memory system hierarchy
T1229 Data Structures and Algorithms
This course will cover data structure basics including arrays, records, classes and objects, stacks, queues, it also covers algorithm design and analysis techniques such as divide-and-conquer, dynamic programming, and greedy algorithms. Specific topics include algorithm analysis, recurrences and asymptotic analysis; searching, sorting; algorithms for fundamental graph problems, such as depth-first search, connected components, topological sort, shortest paths. Hash tables and recursion are covered as well.
T1230 Data Structures and Algorithms Lab
The lab focuses on applying the concepts of data structures and algorithms and their implementations in solving problems. These applications include uses of ADT like list, stack, queue, trees, and graphs. Analysis of algorithm behavior asymptotically and comparisons among them using different algorithm techniques incremental, and divide and conquer techniques. Practice on using greedy and dynamic programming meta techniques to solve optimization problems.
T1152 Discrete Information Structures
This course focuses on the fundamentals of logic (the laws of logic, rules of inferences, quantifiers, proofs of theorems, digital logic circuits, numbering systems), Fundamental principles of counting (permutations, combinations), set theory, relations and functions, graphs, trees and sorting.
T1214 Data Base Systems (1)
This course aims to give the students the ability to design databases. We will stress the fundamentals of data modeling and design. The languages and facilities provided by database management system and system implementation techniques. We will introduce the students the basic concepts and terminology, and conceptual modeling principles
T1323 Operating Systems (1)
The course will start with a brief historical perspective of the evolution of operating systems over the last fifty years and then cover the major components of most operating systems. This discussion will cover the tradeoffs that can be made between performance and functionality during the design and implementation of an operating system. Particular emphasis will be given to three major OS subsystems: process management (processes, threads, CPU scheduling, synchronization, and deadlock), memory management (segmentation, paging, swapping), and file systems; and on operating system support for distributed systems
T1225 Data Base Systems Lab.
This course complements the database 1 course where practical issues in database are discussed. Students are taught basic skills on using MS ACCESS database management system according to theory of database provided in database 1 course
T1400 Field Training
students are required to perform a field training in companies related to IT, the training hours required are 160 hours. students are followed up by faculty of IT
T1470 Introduction to Graduation Project
students are required to study and analyze a problem related to IT. they should then propose and analyze solutions to the problem and the choose the most suitable solution according to some criterion. students should follow software engineering steps for the analysis of the problem and the design of the solution. this course is a prepares students to implement their graduation project
T1474 Graduation Project
following the introduction to graduation project course, students here will implement their solution according to their analysis in the previous course. students are then asked to defend their work in a jury of three members of IT faculty staff. students are asked to submit their original work with the final formal documentation for their project.
T3280 Introduction to Computer Networks
This course introduces the essential principles of computer networks, with a focus on network architecture, layered protocol structures, and the fundamentals of data and packet communication. Students will examine the foundational concepts of network design, starting with the architecture that supports scalable and reliable communication. Key topics include the data link layer—covering framing, error detection, error correction, and link-level flow control—and the network layer, which addresses packet forwarding, routing protocols, and logical addressing. By the end of the course, students will gain a comprehensive understanding of the protocols and mechanisms that enable reliable and efficient data exchange across networks, preparing them for advanced studies in networking..
T2203 Web Programming (1)
The course aims at introducing the fundamental concepts and languages of the Web - including HTML5, CSS3, and powerful JavaScript libraries. Students will learn the semantics of a web page and how to abstract information in a universal form on the web with HTML5. Students will learn how to make things "pretty" and presentable using CSS3. And finally - interactivity and user-personalization will be added using JavaScript. By the end of the course, students will understand: the fundamental cross-browser issues that inhibit the progress of web technology as we know it, the ideas behind a well-designed interactive website for the Google Chrome and Mozilla Firefox browsers, and the tools needed to continue learning.
T3281 Networking protocols
This course provides a detailed understanding of essential Internet protocols. It includes ARP, IP, ICMP, IGMP, UDP, TCP, routing protocols such as RIP, OSPF and BGP, multicasting and multicast routing protocols such as DVMRP, MOSPF and PIM, application protocols such as DNS, DHCP, FTP and HTTP.
T1309 Mobile Devices Programming (1)
This course aims to introduce the basic principles of mobile programming under mobile operating system such as Android OS . Students will learn how to install the libraries and plug-ins required to build a mobile application, how to use components in their applications, and how to publish their application in a format that can be installed on mobile devices.
T3282 Wireless networks
This course provides a foundational understanding of wireless communication principles and technologies, focusing on the architecture, standards, and protocols that enable modern wireless systems. Students begin with an introduction to the fundamentals of wireless communication, including the history, evolution, and basic structure of wireless networks. Key topics include wireless signal propagation, with a focus on factors affecting signal strength and the challenges posed by fading. The course then explores essential modulation techniques for transmitting information over wireless channels, along with channel coding and error control methods to ensure reliable communication. Additionally, students will examine multiple access techniques such as FDMA, TDMA, CDMA, and OFDMA. This course is ideal for those looking to understand the core technologies driving wireless communication networks
T3287 Cyber security
This course aims to give a broad understanding of computer security. Topics include security risks, attacks, prevention and defense methods; techniques for writing secure programs; an overview of the foundations for cryptography, security protocols and access control models
T3283 Networking protocols Lab
This course covers the practical part of basics of networks protocols course. In this lab students will use practical and simulation tools for implementing and applying different types of protocols for networks settings scenarios. Mainly student will do experiments related to application layer protocols and network layer protocols.
T3290 Computer networks Lab
A set of experiments to design, apply, analyze, and evaluate communication network protocols. Students should employ their knowledge to identify a problem, propose alternative solutions, implement a prototype using available network protocols, and evaluate the results.
T3381 Basics of Information systems Security
Covers the concepts of information assurance, explicit and implicit policy design, use of basic computer security mechanisms, authentication, access control, policy types. Topics include: Design and use of basic network security mechanisms, asset identification and valuation, determining threats to assets and their vulnerabilities, prioritizing and selecting countermeasures, implementing and deploying countermeasures, and continuing maintenance and assessment of security mechanisms. Introduces firewalls, network intrusion detection, Viruses, Worms, Trojan horses, and other forms of malicious code
T3386 Basics of Cryptography
This is an introductory course on the methods, algorithms, techniques, and tools of data security and cryptography. The course covers the following topics, Classical Cryptosystems, Basic Number Theory, Block Cipher Algorithms: DES, 3DES, and AES, Public Key Cryptography: RSA, Discrete Logarithms, and Digital Signatures.
T3389 Wireless Protocols and Security
This course explores key wireless communication standards and protocols that shape modern connectivity, beginning with IEEE 802.11 standards for wireless LANs, including Wi-Fi protocols, performance optimizations, and security advancements. It then covers IEEE 802.15, which supports low-power, short-range wireless communications for personal area networks and IoT applications, including Bluetooth and Zigbee technologies. Students will further examine LTE-Advanced and 5G networks, studying their architectures, capabilities, and improvements for modern broadband. The course also addresses wireless security, discussing encryption, authentication, and data integrity protocols essential for secure communication. This comprehensive approach prepares students for expertise in advanced wireless standards and technologies across diverse applications in networking.
T3487 Penetration testing
This course covers in-depth methodologies, techniques, and tools used to identify vulnerabilities, exploit, and assess security risk to networks, operating systems, and applications. students will learn techniques to expose weaknesses in a network or system by employing reconnaissance, published data, and scanning tools. at the end , students will use their skills and knowledge to test and improve systems and network security.
T2341 Web Programming (2)
This course aims at providing students information, knowledge, and skills necessary to design and develop dynamic, database-driven web pages using Application Server Scripting language. More specifically, this course introduces the Application Server language syntax and semantics. Also, it covers in depth the most important techniques used to build dynamic web sites. Additionally, students learn how to connect to any database, and perform hands on practice with a database to create database-driven HTML forms and reports. Additionally, students will learn Web programming skills/techniques such as user authentication, data validation, dynamic data updates, and manipulating of server XML/JSON files. Students also learn how to configure Application server with Web Server.
T3320 Computer Networks Administration
This course teaches the skills needed to install, configure, and manage a network infrastructure using the latest Windows Server 2022 operating system. This course will help and protect your network by applying different strategies “in securing and administering your networks” using Active Directory Domain Service (ADDS) rule, Group Policy Management, DNS, DHCP, IIS installation and configuration, Certification Authority for secure certificates, Remote Access Server and VPN
T3321 Computer Networks Administration Lab
Course teaches VMware, installation and configuration, Using PowerShell commands to test and check networks, installation of Server 2022, adding ADDS rule to server, creating users and groups, managing DNS server, Applying Group Policy Object to maintain control over users and PC’s, Installation of IIS rule to create websites, Installation of Certification Authority to create https for servers and internal websites sites, Installation of RAS rule for VPN and remote access
T3486 Computer Networks Defense
Concentrates on computer network defense and countermeasures by providing a solid foundation in advanced network security fundamentals. Covers both the theoretical and practical aspects of network security. The concepts of the defense-in-depth strategy and technologies are covered along with network security policy design and implementation. This is followed by the three key network defense technologies in depth: firewalls, intrusion detection and prevention systems, and virtual private network.
T3490 Computing Forensics and Incident Response
The course will learn students how to investigate the digital artifacts left on hard drives, logs and other networking devices. It focuses on how to conduct data preservation and analysis on different platforms. Students will also get exposure to the Techniques, Tactics and Procedures (TTPs) of the prominent Threat Actors and will learn to conduct digital investigations with a sound process by first learning about different kind of attacks and how they can be detected via forensic investigations. Understanding the concepts of Evidence Collection, Host-Based Analysis, Memory (RAM) Analysis and Log Analysis
T3495 Computing Forensics and Incident Response Lab
The lab will focus on practical training of conducting investigations on the digital artifacts left on hard drives, logs and other networking devices. It provides students with best tools and procedures used conduct data preservation and analysis on different platforms. students will apply the knowledge they obtained during the course to practically perform evidence collection, analysis , and reporting for different investigations scenarios.
Department Elective Requirements
T1283 IT Project Management
The IT Project Management course introduces the fundamentals of project management, beginning with project definition through the post-project review. There will be emphasis placed on applying project management concepts and techniques to IT projects. This includes consideration of project planning, scheduling, budgeting, human resources and the consideration of change management required to implement projects
T1310 Mobile Devices Programming (2)
This course aims to teach students full programming of mobile applications and how to link them to databases taken in the database management course, in addition to the possibility and release of the application on various promotional methods, the course also contains how to design the application in very easy ways, and to view the user
T1317 Special Topics
The topics of this course are selected among different recent topics in the field of IT. the topics are selected by the instructor of the course and students will be informed of the contents of the course during registration time.
T2340 Multimedia Programming
This course is providing an easy-to-follow introduction to creating interactive multimedia applications. Students will be familiarized with a programming language designed for interactive multimedia development using OOP Principles. The course then moves on to multimedia tools, where students will discover how to integrate 2D/3D graphics, audio, animation, and video into interactive applications. Students will have the skills to develop and deploy interactive applications, on multiple platforms such as desktop and mobile
T1315 Data Base Systems (2)
This course provides an in-depth exploration of advanced database concepts, focusing on both SQL (relational) and an introduction to NoSQL (non-relational) database systems
T1315 Data Base Systems (2)
This course provides an in-depth exploration of advanced database concepts, focusing on both SQL (relational) and an introduction to NoSQL (non-relational) database systems
T2445 Introduction to XML and Semantic Web
This course aims to provide the basic overview of the Semantic Web and how they can be applied to enhance data exchange and integration. Students will firstly learn the core fundamentals of XML (Extensible Markup Language) as a standard for data interchange between applications and between organizations, and XML related technologies — including XSL, schemas, XPath, XQuery and DOM. After that, students will learn the basic overview of what the Semantic Web is and how it can be applied, mainly the Semantic Web language, RDF graph database (i.e., RDF triple store), and its applications.
T3483 Distributed Systems
This course provides an overview of the principles and challenges involved in designing and implementing distributed systems. Topics include communication protocols, fault tolerance, data consistency, scalability, and distributed algorithms. Students will learn how multiple computers coordinate to provide reliable, scalable, and fault-tolerant systems for real-world applications. By the end of the course, students will have the foundational knowledge to understand and evaluate the architecture and design of distributed systems
T3484 Cloud Computing
This course first introduces cloud computing and its platforms and then it looks at how scale affects systems properties, issues (such as virtualization, availability, locality, performance, and adaptation), system models, architectural models, environment and application requirements (such as fault tolerance, content distribution). This course also reviews the state of the art in resource management of cloud environments (composed of different platforms and organizations) to support current applications and their requirements
T3395 Internet of Things Fundamentals
The Internet of Things (IoT) is transforming industries by enabling advanced data collection, connectivity, and analysis across a vast array of connected devices. This course provides a foundational understanding of IoT, covering key components, technologies, and concepts essential to creating IoT solutions. Students will learn the fundamentals of IoT architecture, communication protocols, and data analysis, gaining insights into how IoT integrates with cloud computing and big data. Real-world case studies will showcase successful IoT implementations, highlighting the potential business opportunities and innovations IoT can uncover
T3387 Protocol design and validation
This course is an introduction to the formal design, specifications, and validation of communication protocols. Topics include structured protocol design, protocol models, protocol validation, and protocol correctness requirements. Protocol modeling techniques such as FSM models and Petri net models are considered. Protocol verification techniques: Communicating FSM, reachability analysis, verification using checking, protocol design validation. A known verification modeling language such as PROMELA is considered. Specification and Description Language (SDL) may be considered.
T1211 Data Analysis
This course introduces students with essential skills in analyzing and interpreting data using common tools and techniques. It typically covers topics like data cleaning, basic statistics, transformation,
visualization, and working with tools such as Excel, R, SQL, or Python
libraries to manipulate and analyze data. By the end of the course, students should be able to import, manipulate, and visualize datasets to uncover trends and insights for decision-making
T1311 Data Engineering
The Data Engineering course provides students with the skills needed to design, build, and maintain scalable data pipelines essential for data science workflows. Covering topics like data architecture, data storage, and distributed systems, the course focuses on tools and technologies such as SQL, Hadoop, Spark, and cloud platforms. Students will learn how to handle large volumes of structured and unstructured data, ensure data quality, and optimize data processing for efficiency and scalability. The course also emphasizes the importance of integrating data systems to support machine learning models and analytics, preparing students for critical roles in the data science ecosystem
T1344 Artificial Intelligence
This course provides a comprehensive introduction to the field of Artificial Intelligence, designed for students who are new to the topic. It covers fundamental concepts and techniques used to build intelligent systems, with an emphasis on both theoretical foundations and practical applications. Students will learn about intelligent agents, problem-solving and search algorithms, supervised and unsupervised learning algorithms, Knowledge representation, and reasoning about knowledge
T1345 Machine Learning Techniques
This course provides a broad introduction to machine learning and statistical pattern recognition. Topics include: supervised learning (generative/discriminative learning, parametric/non-parametric learning, neural networks, support vector machines); unsupervised learning (clustering, dimensionality reduction, kernel methods); learning theory (bias/variance tradeoffs, practical advice); reinforcement learning and adaptive control. The course will also discuss recent applications of machine learning, such as to robotic control, data mining, autonomous navigation, bioinformatics, speech recognition, and text and web data processing
T1413 Advanced Topics in Data Science
This course will comprise selected and advanced topics in computational challenges associated with data analysis. The topics may change from year to year and are approved by the department once the course is offered.
T1203 Human Computer Interaction
This course explores the principles and practices of Human-Computer Interaction (HCI), focusing on the design, evaluation, and implementation of interactive computing systems for human use. Students will examine user-centered design processes, usability principles, and evaluation techniques essential for creating intuitive, accessible, and effective digital experiences. Through hands-on projects, students will learn to analyze user needs, design user interfaces, and apply prototyping tools to build and test interactive applications. Topics include cognitive psychology fundamentals, interaction design, visual design principles, accessibility, user research methods, and emerging HCI trends like virtual and augmented reality, AI-driven interfaces, and ubiquitous computing. By the end of the course, students will gain the skills needed to create user-friendly applications across various platforms and devices, preparing them for roles in user experience (UX) design, usability engineering, and product development.