Department Welcome
Academic Members
List and details of academic members of the department.
Study Plan
Details about the study plan and curriculum.
Course Curriculum: 134 Credit Hours
Guidance Plan
Guidelines and plan for student guidance.
Course Curriculum: 134 Credit Hours
List of Competencies
Computer Science - List of Competencies
- Knowledge and understanding:
- Overview the theoretical and technical concepts related to computer science.
- Analyze a complex computing problem
- Apply principles of computing and other relevant disciplines to identify software solutions.
- Understand computing contemporary issues and devise viable solutions for them.
- Understand and engage in continuing professional development.
- Practical Skills:
- Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline.
- Use a variety of computer programming languages to implement solutions for different computing problems
- Apply programming language concepts, such as data models, control structures, language translation and testing and debugging, in the development of software systems.
- Communication skills:
- Communicate effectively in a variety of professional contexts.
- Recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles.
- Thinking skills:
- Think out-of-the-box and be ready to participate in IT- related business ventures.
- Understand and engage in continuing professional development.
Course Description
Detailed descriptions of the courses offered.
401492 | 3 CH. | Prerequisite | Co-requisite | |
---|---|---|---|---|
3 | 0 | Department Approval+ Completion of 90 C.H | - | |
The purpose of this course is to give actual experience in different industrial, commercial, administrative enterprises or companies. Application of what has been learned during the first three years of their study in the university is stressed. The course also teaches how to be self-confident when faced with problems |
401111 | 3 CH. | Prerequisite | Co-requisite | |
---|---|---|---|---|
0 | 3 | - | - | |
The course covers fundamental ideas in discrete mathematics and their application in computer science. The course covers miscellaneous of topics: Permutations and combinations, regular expressions and finite state machines, grammars, languages, and parsing, propositional logic, predicate calculus, sets and relations, functions, and graphs. The course is a mix of basic theoretical concepts in computer science and a hands-on application of those ideas. |
401120 | 1 CH. | Prerequisite | Co-requisite | |
---|---|---|---|---|
0 | 3 | - | 401121 | |
This course supports the Programming Fundamentals course. Topics covered include simple data types, expressions and statements, program flow control structures. |
401121 | 3 CH. | Prerequisite | Co-requisite | |
---|---|---|---|---|
3 | 0 | - | - | |
This course introduces beginning computer programming skills with a guide to developing applications. The students can develop useful programs while learning the basics knowledge of programming skills. This course also provides the principle of elements object-oriented technique. By learning the course topics, the students will be motivated to find real life problems in computer science and solve it using programming. |
401122 | 3 CH. | Prerequisite | Co-requisite | |
---|---|---|---|---|
3 | 0 | 401121 | 401123 | |
This course focuses on Object-Oriented programming and design concepts including abstraction, encapsulation, modularity, reuse and information hiding. Topics covered include: classes, objects in addition to relationships between classes such as: inheritance, association, aggregation and composition in addition to concepts related to generic programming such as overloading, overriding and polymorphism. The course also covers the concepts of interfaces, and abstract methods and classes in addition to wrapper classes and exception handling. It also introduces students to generics and collections and GUI. It focuses on how to apply these in solving practical problems using a modern software development environment while committing to programming and other OOP best practices. |
401123 | 1 CH. | Prerequisite | Co-requisite | |
---|---|---|---|---|
0 | 3 | - | 401122 | |
All theoretical material covered in Object Oriented Programing class will be accompanied with practical assignments and projects in this lab. |
401151 | 3 CH. | Prerequisite | Co-requisite | |
---|---|---|---|---|
3 | 0 | - | - | |
This course introduces the students to the main concepts and principles behind computing. The covered topics include: number systems, computer hardware and software, principles of software engineering, principles of databases and its management, introduction to computer security breaches and malware, algorithmic thinking, and computer ethics. |
401211 | 3 CH. | Prerequisite | Co-requisite | |
---|---|---|---|---|
3 | 0 | 401111 | - | |
This course emphasizes theoretical models of computation. The principal objective of this class is to identify and prove the capabilities and limitations of particular models of computation. Models of computation that are covered include finite automata, pushdown automata, and Turing machines. Models of language description such as grammars (regular, context-free, ) are studied. Some complexity theory is covered as well. Complexity classes discuss the type of problems that current computer can handle. Finally, the mathematical concepts that are related to the computability are also introduced. |
401212 | 3 CH. | Prerequisite | Co-requisite | |
---|---|---|---|---|
3 | 0 | 401122 | - | |
This course provides students with solid foundations in the basic concepts of programming data structures. The main objective of the course is to teach how to select and design computer structures that are appropriate for problems that might be encountered. Topics covered in this course include: linked lists, queues, stacks, trees, and other linked structures; also array list, heaps, hash tables and graphs. The course is carried out within an object-oriented framework. Java programming language is used for implementation. |
401222 | 3 CH. | Prerequisite | Co-requisite | |
---|---|---|---|---|
3 | 0 | - | - | |
This course provides basic skills in problem solving and program development using C++. Topics include: data types, elementary programming concepts in addition to logical and mathematical expressions and predefined functions. It also introduces the concepts of input and output using files and council and provides basic programming skills related to control structures selection and repetition and arrays handling. The course also covers functions and its related concepts such as prototyping, overloading and both virtual and inline functions. Concepts of object-oriented programming are also introduced in this course including: object and class, inheritance and header files. The course also introduces the concepts of pointers, reference types and exception handling. |
401223 | 3 CH. | Prerequisite | Co-requisite | |
---|---|---|---|---|
3 | 0 | 401122 | - | |
This course introduces .NET Programming using the C# programming language. Emphasis is placed on understanding the syntactical features of the language and also how to effectively use the design of the language to develop robust software. The course assumes at least one year of programming in C++ and/or Java. The course uses the features that are most important to programmers: Object Oriented Programming, strings, graphics, graphical user interface (GUI) components, exception handling, multithreading, file processing, prepackaged data structures, database processing, Internet and World-Wide-Web-based client/server networking, and distributed computing. C# language is appropriate for implementing Internet- and World-Wide-Web-based applications that seamlessly integrate with PC-based applications. |
401224 | 1 CH. | Prerequisite | Co-requisite | |
---|---|---|---|---|
0 | 3 | - | 401223 | |
All theoretical material covered in the Advanced Object Oriented Programing and GUI class will be accompanied with practical assignments and projects in this lab. |
401231 | 3 CH. | Prerequisite | Co-requisite | |
---|---|---|---|---|
3 | 0 | - | 401151 | |
The aim of the course is to prepare the students for studying computer hardware (architecture and organization). The main topics covered in this course include: number systems and conversions between them, data representations, Boolean algebra and its application in circuit design, the logical gates and their relations. Tin addition, the students the topics that include combinational and sequential circuit analysis and design, digital circuit design optimization methods using logic gates, multiplexers, decoders, registers, counters and programmable logic arrays. |
401241 | 3 CH. | Prerequisite | Co-requisite | |
---|---|---|---|---|
3 | 0 | 401151 | - | |
This course covers: definition of computer networks and their objectives and applications. Computer network architecture: layering, protocols and standard models, the ISO OSI and TCP/IP reference models. It covers the application layer and its protocols (HTTP, FTP etc). The transport protocols namely UDP and TCP. The network layer and IP, introduction to routing algorithms. Data link layer: data link layer functions and standards, error check and correction. |
401251 | 3 CH. | Prerequisite | Co-requisite | |
---|---|---|---|---|
2 | 2 | 401212 | - | |
This course introduces students to database concepts related to database design, implementation and administration. Topics covered including: Relational Database fundamentals, relational algebra and calculus in addition to data modeling with E-R, functional dependencies and normalization. The course also provides students with practical skills in SQL including DDL, DML, DCL, in addition to advanced sub-queries, views and other concepts related to group, date and conversion functions and catalogues. The course also introduce students to other database related concepts such as Object-Oriented databases and other emerging technologies e, g. XML, data warehousing, OLAP and data mining. |
401313 | 3 CH. | Prerequisite | Co-requisite | |
---|---|---|---|---|
3 | 0 | 401212 | - | |
This course examines techniques for the design and analysis of efficient algorithms useful in practice. Topics covered include: sorting (bubble, insertion, heap, merging, quick, etc.), search trees, hashing, and dynamic programming, graph algorithms (shortest paths, network flow, coloring, etc.) and NP-complete problems. Throughout the course there is a focus on performance, computational complexity, and actual implementation of the studied algorithms using C#, C++, and/or Java. |
401314 | 3 CH. | Prerequisite | Co-requisite | |
---|---|---|---|---|
3 | 0 | 401313 | - | |
This course introduces the fundamentals concepts of Artificial Intelligence (AI), its evolution, and real-life applications. It covers the main aspects of AI, i.e., intelligent agents, problem formulation, and problem solving using uninformed and heuristic search algorithms. Moreover, students will be familiar with constraint satisfaction problems, adversarial search and games, expert systems, and genetic algorithms. The main concepts of machine learning, its tasks and respective algorithms are also introduced. Real world applications will be investigated through practical implementations using Python programming language. |
401315 | 3 CH. | Prerequisite | Co-requisite | |
---|---|---|---|---|
3 | 0 | 401111+401122 | - | |
This course offers an in-depth exploration of fundamental concepts in 2D and 3D computer graphics. It introduces 2D raster graphics techniques, including scan conversion, simple image processing, and interaction techniques. The course also discusses graphics optimization via leading clipping algorithms such as Laing and Cohen. Finally, the course introduces the students to programming in openGL as a fundamental tool for producing high quality graphics. |
401318 | 3 CH. | Prerequisite | Co-requisite | |
---|---|---|---|---|
3 | 0 | 401314 | - | |
This course gives an introduction to AI search methods, neural networks (NNs), single-layer perceptions, ADALINE, perception learning, and multi-layer feed forward neural networks. Also discussed are supervised learning and back propagation, unsupervised and competitive learning? The course discusses Kohonen's self-organizing maps (SOM) and radial basis function network. An introduction to genetic algorithms (GAs) is presented including representation GA terminology and operators (crossover, mutation, inversion). Also given are the theory of GA, schema properties, implicit parallelism, selection, replacement and reproduction strategies ('roulette wheel', elitism, ring and tournament based selection), premature convergence, coding and scaling, GA advantages, disadvantages and applications and GA for evolving neural networks. |
401321 | 3 CH. | Prerequisite | Co-requisite | |
---|---|---|---|---|
3 | 0 | 401223 | 401322 | |
This course equips the students with hands-on experience in a range of tools used in creating web pages and applications including HTML, CSS, Javascript, XML, server-side programming (PHP), AJAX. And other selected cutting-edge technologies. The course presents a variety of web applications including web servers and content management systems such as Joomla! and Wordpress. |
401322 | 1 CH. | Prerequisite | Co-requisite | |
---|---|---|---|---|
0 | 3 | - | 401321 | |
This laboratory supports the Web-Based Programming and Applications course; it provides the students with hands-on experience in a variety of practical web applications. Students will work on creating front-end web design (using HTML, CSS, XML, JavaScript ) and back-end programs (using PHP, AJAX ) |
401324 | 3 CH. | Prerequisite | Co-requisite | |
---|---|---|---|---|
3 | 0 | 401223 | - | |
This course examines programming languages taxonomy, design, evaluation and implementation and provides a comparative analysis of programming languages with emphasis on their design considerations, advantages, shortcoming and appropriateness for certain applications. The course also discusses concepts related to the formal definition of programming languages such as: syntax, semantics, lexical analysis and parsing. The course also provides a comparative analysis of variable declaration, typing, binding and scoping in different programming languages in addition to other concepts related to programming units, procedures and functions such as loading, parameter passing and modes. It also discusses different available control structures in various programming languages in addition to arrays and records handling. |
401331 | 3 CH. | Prerequisite | Co-requisite | |
---|---|---|---|---|
3 | 0 | 401231 | - | |
The course introduces the students to computer architecture and organization. It provides students with a deep knowledge on the basic components and their interaction to deliver the functionality of the computer. The topics covered include: the hardware components, input/output modules, caches, pipelining, stalls, memory, processors, Amdahl s law, addressing, and so on. Studying the computer performance is the heart of the course and will be studied thoroughly. |
401332 | 3 CH. | Prerequisite | Co-requisite | |
---|---|---|---|---|
3 | 0 | 401331 | - | |
The course is concerned with design and implementation of an operating system. The covered fundamental topics include: threads and processes, synchronization, concurrency handling using different techniques (semaphores, hardware solutions, ) memory/ cache management strategies, processor scheduling, multiprocessing, parallel processing, hardware organization, disk scheduling and file management. |
401333 | 3 CH. | Prerequisite | Co-requisite | |
---|---|---|---|---|
3 | 0 | 401241 | - | |
This course introduces students to the principal concepts of distributed systems. The course covers fundamental concepts the CS students need to broaden their knowledge in a special spectrum of computer applications: distributed applications. Thus, characteristics of distributed system architecture, naming, consistency and replication, fault tolerance, security, synchronization, and distributed file management will be discussed. Other concepts such as distributed concurrency and distributed query processing will be touched in some details. Furthermore, CORBA, RMI (Remote Method Invocation), and RPC |
401342 | 3 CH. | Prerequisite | Co-requisite | |
---|---|---|---|---|
3 | 0 | 401241 | - | |
Computer and Network Security is concerned with studying the security practices and principles of computer and networks. This course covers a variety of topics include basic computer security concepts, common attacking techniques, common security policies, basic cryptographic tools, authentication, access control, network intrusion detection, software security, operating system security, network security, legal and ethical issues in computer security. The learning outcome is students must be able to understand the basic principles and practices in computer and network security. In particular, understand what the foundational theory is behind computer security, what the common threats are, and how to play with the games with attackers. |
401443 | 3 CH. | Prerequisite | Co-requisite | |
---|---|---|---|---|
3 | 0 | 401241 | - | |
This course builds an understanding of the core issues encountered in the design of wireless networks. It also exposes students to fairly recent paradigms in wireless communication. Topics include transmission fundamentals, wireless channel, coding techniques and error control, satellite and cellular networks, cordless systems, mobile IP and management, multiple access techniques and wireless protocols, wireless LAN, IEEE 802.11, and ad hoc and sensor networks. |
401355 | 3 CH. | Prerequisite | Co-requisite | |
---|---|---|---|---|
3 | 0 | 401251 | - | |
This course provides coverage to the concepts of systems analysis and design which covers problem analysis, structured programming, stepwise refinement and project management and planning tools. The course introduces the types of software systems e.g. ERP, Embedded systems and their typical sources. It also discusses software development processes e. g. such as SDLC, Agile and XP and discusses the various techniques used in information gathering. The course focus on providing coverage to both data and process modeling e.g. CD, DFD, ER and data dictionary while introducing the students to UML and other object-oriented analysis and design concepts. |
401423 | 3 CH. | Prerequisite | Co-requisite | |
---|---|---|---|---|
2 | 2 | 401241+401223 | - | |
This module introduces concepts of advanced programming to develop network programs (client/server programs). It focuses on multithreading, networking, datastreams, socket programming. A selected programming language is used such as Java. Students will be expected to create multithreaded TCP/UDP clients and servers. |
401425 | 3 CH. | Prerequisite | Co-requisite | |
---|---|---|---|---|
3 | 0 | 401423 | - | |
This course focuses on enhancing students skills in Java and its API libraries. Students will learn to use essential API packages, such as collections for storing generic groups of objects, Swing for building GUI applications, and JDBC to be able to connect to a database. Students will also learn to use inner classes, regular expressions, remote method invocation (RMI), CORBA, servlets, and Java server pages (JSP). |
401426 | 3 CH. | Prerequisite | Co-requisite | |
---|---|---|---|---|
3 | 0 | 401321 | - | |
Course description: This course focuses on expanding and enriching the server-side web programming skills. Students will learn to develop Web applications that use three-tier architecture, session management, object-oriented techniques, and advance database interactions using PHP. Concepts such as advanced CSS, Ajax, rich interactive Web environments, authentication, and security will also be explored. |
401431 | 3 CH. | Prerequisite | Co-requisite | |
---|---|---|---|---|
3 | 0 | 401331 | - | |
This course builds on the gained knowledge in computer architecture course. It provides a deeper look at the organizational, architectural, and functional properties of computer systems. The discussed topics include, but not limited to, assembly level machine organization, memory systems organization and architecture, alternative architectures, device interfaces, boosting performance with pipelining, exploiting memory hierarchy and, multiprocessors, multi-coring, and clusters. |
401433 | 3 CH. | Prerequisite | Co-requisite | |
---|---|---|---|---|
3 | 0 | 401211 | - | |
The design and implementation of a compiler is studied, including compiler organization, lexical analysis, searching methods and symbol tables, formal languages and grammar, parser construction, code syntax, and code generation. |
401436 | 3 CH. | Prerequisite | Co-requisite | |
---|---|---|---|---|
3 | 0 | 401331 | - | |
This course introduces parallel computer systems. The course covers topics such as sequential and parallel execution, synchronization, pipelines and vector processing. SIMD and MIMD machines are studied. Multi-stage and computer interconnection networks are presented. The routing and the flow control in these networks are discussed. Shared memory, multicomputer systems, caches and cache coherence are covered. Data flow systems are introduced and analyzed. |
401447 | 3 CH. | Prerequisite | Co-requisite | |
---|---|---|---|---|
3 | 0 | 401241 | - | |
This advanced course introduces students to contemporarily topics include physical layer, data link layer, transport protocols, routing protocols, link-level protocols, wireless networking, multimedia networking, and network security. Specifically, topics will include, but not limited to, Internet architecture and core protocols for congestion control, forwarding, and routing; approaches to achieve reliability, scalability, and design of data center networks, wireless networks, and content delivery. |
401451 | 3 CH. | Prerequisite | Co-requisite | |
---|---|---|---|---|
3 | 0 | 401355 | - | |
This course focuses on providing students with analytical and problem solving skills required for developing modern software systems in a formal and systematic fashion. The focus of this course is object-oriented analysis and design using UML. The course introduces various concepts, approaches, tools and methodologies related to software engineering which concern software development process including: requirements analysis, design and testing. The course provides the students with the opportunity to demonstrate what they learn on real-life applications which involves using CASE tools. |
401453 | 3 CH. | Prerequisite | Co-requisite | |
---|---|---|---|---|
2 | 2 | 401251 | - | |
This course provides students with skills in database programming and other related technologies which covers database management systems design and catalog in addition transaction processing and concurrency control. The course also provides coverage to database security and authorization and introduces the concepts of triggers, programming units and packages in addition to database user interface design and reports generation. |
401454 | 3 CH. | Prerequisite | Co-requisite | |
---|---|---|---|---|
3 | 0 | Department Approval | - | |
This course covers hot topics in computer science or any of its essential subfields or areas these topics may cover: programming, image processing, artificial intelligence, data science, security and networking. The course may involve critical studying hot theories; research and computation applications or any other computer related emerging technology. This course may be delivered in form of normal lectures or seminars related to one or list of hot topics. The specific topic to be taught in this course is decided by the interest of both the instructor and students |
401457 | 3 CH. | Prerequisite | Co-requisite | |
---|---|---|---|---|
3 | 0 | 401453 | - | |
This course involves advanced database programming and applications development which covers user interface programming and reports programming and generation. It also covers creating server-side and client-side programming units e.g. functions, procedures packages and triggers and interfacing database with other technologies e.g. Java, XML etc. |
401491 | 3 CH. | Prerequisite | Co-requisite | |
---|---|---|---|---|
3 | 0 | Department Approval+ Completion of 99 C.H. | - | |
This course centers on a project under the guidance of an instructor. Oral reports are given before the group in a seminar situation. The project involves some aspect of computer science and results will be presented in a final written report. |
401492 | 3 CH. | Prerequisite | Co-requisite | |
---|---|---|---|---|
3 | 0 | Department Approval+ Completion of 90 C.H. | - | |
The purpose of this course is to give actual experience in different industrial, commercial, administrative enterprises or companies. Application of what has been learned during the first three years of their study in the university is stressed. The course also teaches how to be self-confident when faced with problems. |
401335 | 3 CH. | Prerequisite | Co-requisite | |
---|---|---|---|---|
3 | 0 | 401221 | - | |
Machine learning trends are being adopted in a wide range of technologies. This course provides a broad introduction to the fundamental methods of machine learning. The course discusses the theoretical foundation of machine learning techniques for supervised (clustering, dimensionality reduction, kernel methods), unsupervised learning (clustering, dimensionality reduction, kernel methods) in addition to machine learning algorithms. Finally, the course will improve students practical skills by designing and developing recent machine learning applications. |
401336 | 3 CH. | Prerequisite | Co-requisite | |
---|---|---|---|---|
3 | 0 | 401335 | - | |
Neural networks have enjoyed several waves of popularity over the past half century. This course covers the history and the state-of-art of Neural networks and Deep learning approaches. The students will learn designing neural network architecture, Basic neuron models, Basic neural network models, and Basic learning algorithms. The students will develop applications by solving assignments in pattern recognition, image processing, computer vision. Finally, the students will have opportunities to investigate open problems in this area. |
401454 | 3 CH. | Prerequisite | Co-requisite | |
---|---|---|---|---|
3 | 0 | Department Approval | - | |
This course covers hot topics in computer science or any of its essential subfields or areas these topics may cover: programming, image processing, artificial intelligence, data science, security and networking. The course may involve critical studying hot theories; research and computation applications or any other computer related emerging technology. This course may be delivered in form of normal lectures or seminars related to one or list of hot topics. The specific topic to be taught in this course is decided by the interest of both the instructor and students |
401455 | 3 CH. | Prerequisite | Co-requisite | |
---|---|---|---|---|
3 | 0 | Department Approval | - | |
This course can be used to allow provide the students with a chance to study topics of current interest in computer science. Topics can be selected from the list below but not limited to it, an instructor can propose a different topic and if accepted by the department it will be considered: APPLICATIONS: Database and Information Systems, Security and Cryptography , Computational Science and Engineering, Visual Computing and Interaction , Machine Learning and Data Mining. FOUNDATIONS: Algorithms, Programming Languages and Software Engineering, Security and Cryptography, and Computational Science and Engineering. |
401456 | 3 CH. | Prerequisite | Co-requisite | |
---|---|---|---|---|
3 | 0 | Department Approval | - | |
This course can be used to allow provide the students with a chance to study topics of current interest in computer science. Topics can be selected from the list below but not limited to it, an instructor can propose a different topic and if accepted by the department it will be considered: SYSTEMS: Operating Systems and Distributed Systems, Programming Languages and Software Eng., Database and Information Systems, Computer Architecture and Embedded Systems, Security and Cryptography, Machine Learning and Data Mining, and Networking. |
401491 | 1 CH. | Prerequisite | Co-requisite | |
---|---|---|---|---|
1 | 0 | Department Approval | - | |
The graduation project is an opportunity for students to employ their four-year experience and skills. The project targets two fundamental skills that students urgently need in their careers: software production and documentation. In part 1 of the project (graduation project 1), students should plan for their project with the guidance of the advisor. The planning includes problem definition, objectives, state-of-the-art, system analysis, solution design, and required technologies to implement the project. |
401492 | 2 CH. | Prerequisite | Co-requisite | |
---|---|---|---|---|
2 | 0 | Department Approval | - | |
Part 2 of the graduation project (the following semester) is a continuation of the work accomplished in part 1. It includes implementation of the application, software testing, and software documentation. The documentation must follow professional guidelines, which include problem motivation, how the system addresses the problem, record all the analysis and design artifacts, and a user manual. Upon the consent of the advisor, students must defend their projects to finish the requirement for the graduation project. |
401361 | 3 CH. | Prerequisite | Co-requisite | |
---|---|---|---|---|
3 | 0 | 401332 | - | |
Part 2 of the graduation project (the following semester) is a continuation of the work accomplished in part 1. It includes implementation of the application, software testing, and software documentation. The documentation must follow professional guidelines, which include problem motivation, how the system addresses the problem, record all the analysis and design artifacts, and a user manual. Upon the consent of the advisor, students must defend their projects to finish the requirement for the graduation project. |
Program Learning Outcomes
Computer Science Program Learning Outcomes
Student learning outcomes describe what students are expected to know and be able to do by the time of graduation. By the time of graduation, the Computer Science Department's program must enable students to attain an ability to:
PLO1: Apply computer science theory and software development fundamentals to produce computing-based solutions
PLO2: Determine an algorithm’s efficiency, computability and resource usage.
PLO3: Utilize the latest tools and technologies in computing to develop creative and innovative solutions.
PLO4: Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline.
PLO5: Conduct scientific research and practical projects that produce significant software solutions.