A. Mandatory Courses
CSC 111 – Computer ProgrammingI (321) 

Course Description 
Introduction to computers and programs. Programmer’s algorithm, byte code and Java Virtual Machine. Java program’s structure, constants, variables and builtin data types. The arithmetic, assignment, increment and decrement operators. Classes and object definition, UML representation of a class, declaration of objects (Instance variables), primitive types and reference types. Relational and logical operators, Boolean expressions, conditional statements, loop statements. Object oriented principles, encapsulation and information hiding, methods and the message passing principles, setters, and getters. Methods in depth, passing parameters, constructors, setters. Arrays, usefulness of arrays, declaration of arrays, access to array elements, operations on arrays. 
Prerequisite 
CT 101  IT Skills. 
Textbook 

Course Objectives 
The course aims at giving the students a broad foundation in the fundamental concepts of object oriented programming accompanied by specific labs to develop the basic skills in object oriented programming with Java. It introduces the basic concepts and principles of the Object Oriented approach such as: (i) Abstraction and Encapsulation principles, (ii) Classes, objects and the constructor concepts, (iii) Information hiding principle and the assessors concept. (iv) Methods, the message passing and the overloading principles. 
CSC 113 – Computer ProgrammingII (321) 

Course Description 
This course continues the coverage of the fundamental concepts of Object Oriented Programming started in Programming I (CSC 111). It covers more advanced concepts and topics such as relationships between classes, inheritance, polymorphism, abstract classes, error handling, interfaces, generics and data structures such as linked lists, stacks and queues, in addition to graphical user interface. 
Prerequisite 
CSC 111  Computer Programming I. 
Textbook 

Course Objectives 
The objective of this course is to develop the students' ability to use the basics of objectoriented design and programming. The students learn the characteristic features of object orientation – classes, methods, polymorphism, and inheritance – through both the lectures and a sequence of illustrative programming assignments. Students will also study list data structures, eventdriven programming and graphical user interface tools. 
CSC 212 – Data Structures (301) 

Course Description 
Fundamental concepts of data structures. Performance measurement of algorithms. Implementation and use of lists, stacks, queues, priority queues, trees, heaps, hash tables and graphs. Recursion. Students will do programming assignments. 
Prerequisite 
CSC 113  Computer Programming II. 
Textbook 

Course Objective 
The objective of this course is to teach the fundamentals of data structures needed in the remainder of the curriculum and develop students’ problem solving and computer programming skills. 
CSC 215 – Procedural Programming With C (221) 

Course Description 
Introduction to the procedural programming paradigm. A brief history of C. C primitive data types, variables and constants, operators (arithmetic operators, logical operators, and access operators). Control structures. Procedures and parameter passing. Userdefined types. Pointers. 
Prerequisite 
CSC 111  Computer Programming I 
Textbook


Course Objectives

The objective of this course is to teach students the design and implementation of C programs. They also are meant to understand when to use procedural vs. OO programming. 
CSC 220 – Computer Organization (221) 

Course Description 
The course introduces basic digital logic design techniques and integrates the topics of generic assembly language programming, computer organization, and computer design. The objectives of this course are to: help students learn the fundamental elements of computer architecture from a functional, hardware perspective; foster an appreciation of organizational models and design decisions that determine the overall performance, capabilities, and limitations of a computer system; and help students understand the interdependencies among assembly languages, computer organization, and design. Topics include Introduction to basic computer organization and how the computer works; DeMorgan’s Law, simplifying circuits using Karnaugh maps, Instruction code, Computer registers, Instruction set, Timing and control; Register Transfer Language HDL ( Hardware Description Language) and Microoperations; Computer Arithmetic Logic Unit Design. Hardwired control unit, instruction set, introduction to addressing modes; Central Processing Unit Design, Register organization, Instruction format, Addressing modes. 
Prerequisite 
MATH 151 Discrete Mathematics 
Textbook 

Course Objectives 
The course aims to give the students:

CSC 227 – Operating Systems (301) 

Course Description 
This is an introductory course in Operating Systems. As such, it is intended to cover many of the concepts related to most of the actual Operating Systems. Although the study of a particular Operating System is out of the scope of this course, nevertheless, we will cover most of the concepts found in any existing Operating System. We will review computer system and operating system structures, processes and threads (concepts of, communication, synchronization and deadlocks), CPU Scheduling, memory management and virtual memory. 
Prerequisite 
CSC 212  Data Structures. 
Textbook 

Course Objectives 
Course objective is to provide the concepts of operating systems design and implementation. It identifies and describes the major and common components of an operating system with stating their functions and purposes especially process management (process scheduling, and synchronization), and memory management (segmentation, paging, and swapping). 
CSC 281 – Discrete Mathematics for Computer Science (301) 

Course Description 
Logic and methods of proofs. Basic Discrete Structures: Sets, Functions, Recursive definitions, Sequences and Summations. Growth of functions. Integers and Division, Rings & Fields, Applications of Number Theory. Combinatorics: Counting techniques, Permutations and Combinations, Binomial Coefficients, Permutation and Combinations with repetition, Recurrence Relations, Generating Functions. Discrete Structures: Relations, Graphs, Trees and Finite State Machines. Discrete Probability (optional). 
Prerequisite 
STAT 101  An Introduction to Probability & Statistics. MATH 151  Discrete Mathematics. 
Corequisite 
CSC 212 – Data Structures. 
Textbook 

Course Objectives 
The course is an introductory course in discrete mathematic with emphasis on how this theory can be invoked to develop efficient algorithms and systems. Also, it serves as the mathematical prerequisite for many advanced courses. 
CSC 304 – Ethical Issues in Computing & Research Methods (301) 

Course Description 
This course seeks to equip students with sufficient knowledge of Computer Ethics to enable them to recognize the ethical nature of certain issues that arise in the Information and Communications Technology (ICT) workplace. The course studies the effect of the proliferation of computers in our world, the impact of computers in the social, economic, political, and other aspects of our life. It covers the moral and legal obligations of computer professionals and issues concerning security, privacy versus freedom of information, ethics and professionalism, intellectual property rights, research methods: collecting and analyzing data, critical evaluation of research, report writing, choosing and evaluating references, and presentation skills. 
Prerequisite 
CSC 113 Computer Programming II. 
Textbook 

Course Objectives 
The objective of the course is to provide the students with the main concepts of computer ethical issues and to introduce scientific research methods. 
CSC 311 – Design and Analysis of Algorithms (301) 

Course Description 
Mathematical essentials; sorting; space and time complexity; algorithm design methods: greedy algorithms, divide and conquer, and dynamic programming; introduction to graph theory; and NPcompleteness. 
Prerequisite 
CSC 281  Discrete Mathematics. CSC 212 Data Structures 
Textbook 

Course Objectives 
The course aims at giving the students a broad foundation in the fundamental concepts of objectoriented programming accompanied by specific labs to develop the basic skills in objectoriented programming with Java. It introduces the basic concepts and principles of the ObjectOriented approach such as (i) Abstraction and Encapsulation principles, (ii) Classes, objects and the constructor concepts, (iii) Information hiding principle and the assessors' concept. (iv) Methods, the message passing and the overloading principles. 
CSC 329 – Computer Networks (301) 

Course Description 
This course covers the theoretical as well as handson knowledge of Computer Networks covering all the fundamental aspects of networking such as OSI, TCP/IP, LANs, MANs,WANs, Routing Protocols, Switching etc. This course will discuss the design of small to medium size networks as well as different networking issues related to routing and switching. 
Prerequisite 
CSC 227  Operating Systems. 
Textbook 

Course Objectives 
The objective of this course is to equip students with theoretical as well as handson knowledge of Computer Networks covering all the fundamental aspects of networking such as OSI, TCP/IP, LANs, WAN, Routing Protocols, Switching etc. At the end of the course, students should be able to handle small to mediumsize networks and have the ability to implement and troubleshoot different networking issues related to routing and switching. 
CSC 339 – Theory of Computation (301) 

Course Description 
Mathematical preliminaries. Regular languages, regular expression, deterministic and nondeterministic finite automata, closure properties and pumping lemma. Contextfree grammar and languages, pushdown automata and pumping lemma. Turing machines, the ChurchTuring Thesis, Computability. Decidability and the Halting problem. Complexity, class P and NP. 
Prerequisite 
CSC 281  Discrete Mathematics for Computer Science. 
Corequisite 
CSC 311  Design and Analysis of Algorithms. 
Textbook 

Course Objectives 
The course aims at answering two questions: What can be computed by a machine? And how efficiently? It starts by presenting machines models, then addresses the computability problem, and then the complexity of algorithms and their classification according to it. 
CSC 340 – Programming Languages and Compilation (301) 

Course Description 
Programming Languages: features, design and translation issues. Lexical Analysis. Syntactic Analysis. Semantic Analysis. Code Generation. 
Prerequisite 
CSC 339  Theory of Computation. 
Textbook 

Course Objectives 
The objective of this course is to explore different types of programming languages and their features and study translation/compilation techniques used in translating the highlevel languages to a machine language. A basic compiler for a small programming language will be implemented during the semester. 
CSC 343 – Systems Analysis and Design (301) 

Course Description 
This course focuses on the principles of software development including the lifecycle models and different phases of the software development process: requirements analysis, specification and design. The key objective of this course is to learn the modular design of software and documenting the design using symbolic representations, i.e., UML diagrams. Objectoriented techniques are key to the course. However, this is not a programming course. The key characteristic is having teams of three to four students work on developing software systems over a course of one semester. This work includes a feasibility study, requirements analysis and objectoriented design. 
Prerequisite 
CSC 212  Data Structures. 
Textbook: 

Course Objectives 
The purpose of this course is to present software engineering as a body of knowledge. The course is designed to present software engineering concepts and principles in parallel with the software development life cycle. 
CSC 361 – Artificial Intelligence (301) 

Course Description 
The course will provide an introduction to artificial intelligence. Topics include problemsolving using search (search procedures e.g. depthfirst, breadthfirst, A*, etc.), constraint satisfaction problems, game playing, knowledge representation and inference procedures. Abstract highlights cover an advanced AI topic (e.g. machine learning, natural language processing). Students will do a small project in this course as well. 
Prerequisite 
CSC 212  Data Structures. 
Textbook 

Course Objectives 
The objective of this course is to develop the students' ability to understand the concepts of AI. The students will be taught and required to practice the informed and uninformed search techniques, problem formulation, optimization techniques, knowledge representation and detailed game theory. The students are expected to present their skills by a course project. 
CSC 380 – Introduction to Database Concepts (301) 

Course Description 
Purpose of Database Systems, View of Data, Data Models, Data Definition Language, Data Manipulation Language, Transaction Management, Storage Management, Database Administrator, Database Users, Overall System Structure. Entity Sets, Relationship Sets, Design Issues, Mapping Constraints, Keys, ER Diagram, Design of an ER Database Schema. Structure of Relational Databases, Relational Algebra, Extended RelationalAlgebraOperations, Modification of the Database, Reduction of an ER Schema to Tables. Basic Structure, Set Operations, Aggregate Functions, Null Values, Nested Subqueries, Derived Relations, Views, Modification of the Database, Joined Relations, DDL, DML. First Normal Form, Relational Database Design, Functional Dependencies, Decomposition, BoyceCodd Normal Form, Third Normal Form, Overall Database Design Process. 
Corequisite 
CSC 212  Data Structures. 
Textbook 

Course Objectives 
This course aims at giving the students a broad foundation in the fundamental concepts of database. This should allow students to design and implement reallife databases, in addition, to evaluate existing ones. Students will be able to use the query of different types of complexity. 
CSC 429 – Computer Security (301) 

Course Description 
Security principle, model and attacks. Cryptography, public key and secretkey cryptography. Authentication and digital signature. Key management and cryptographic protocol. Access control. Building secure system. Security in operating systems. Security in computer networks. Management and analysis of security. Risk assessment. Computer security policy. International information security standards. Intrusion detection and incident response. 
Corequisite 
CSC 329  Computer Networks 
Textbook 
Introduction to Computer Security, Mat Bishop. 
Course Objectives 
The course aims at giving the students a broad foundation in the fundamental concepts of Computer Security. It introduces the basic concept and principles of computer security such as Security requirements, encryption, access control, malicious software, security policy and management. 
CSC 453  Parallel Processing (301) 

Course Description 
Introduction to parallel processing. Models of parallel machines. Parallel programming paradigms and models. Performance analysis of parallel systems. Parallel programming languages and frameworks. 
Prerequisite 
CSC 227  Operating Systems. 
Textbook 

CSC 457 – Internet Technologies (301) 

Course Description 
An overview of Internet technologies (definitions, evolutions, examples, and, applications). Publishing and browsing technologies. Internet tools. TCP/IP and Client/server architectures. WWW, HTTP and HTML for text, images, links and forms. Webbased applications development: clientside scripting, serverside scripting and the MVC design approach. WEB site development. Security and privacy. 
Prerequisite 
CSC 329 – Computer Networks. 
Textbook 

Course Objectives 
The goal of this course is to provide an introduction to the basic concepts of the technologies that are used on the Internet. Students learn about building blocks of internet. They learn about various protocols used by internet. Students learn about web servers, search engines and software tools required to implement a website. 
CSC 496 – Graduation ProjectI (200) 

Course Description 
This course is the first part of a sequence of two courses (CSC496 and CSC497) that in entirety constitute the BSc graduation capstone project. In this project, the student is expected to develop software for a specific problem by applying previously learned concepts and methods during the course of the project. In this course, the student is typically expected to study the problem, see what others have done, perform the analysis, determine the requirements and suggest/design a solution. The project will culminate in a formal public presentation, and written documentation. Oral and written progress reports are required. The project topic may be provided by the faculty, by the student(s) or by the industry. The topic is subject to departmental approval. 
Prerequisite 

Course Objectives 
This course is a semesterlong team project, where students apply a broad range of skills learned in earlier courses, and demonstrate their competence in technical material, communications, and project skills. 
CSC 497 – Graduation ProjectI (400) 

Course Description 
This course is the second part of a sequence of two courses (CSC496 and CSC497) that in entirety constitute the BSc graduation capstone project. In this project, the students will continue the software development of the problem they picked in CSC496. The project will culminate in the delivery of a working system, a formal public presentation, and written documentation. Oral and written progress reports are required. 
Prerequisite 
CSC 496  Graduation ProjectI. 
Course Objectives 
This course is a semesterlong team project, where students continue what they did in the first part of this project. In this part there are expected to do the actual implementation and evaluation. 
CSC 979 – Practical Training – (100) 

Course Description 
Training is an important aspect of the educational process in CCIS. The student is required to join a government or private sector IT centre. The aim of the training is to acquire experience in applying what he learned in real life. The training is evaluated by the training advisor at the IT centre and by the CCIS training committee. 
Prerequisite 
The student must have finished at least 95 hours in the BSc program. 
Course Objectives 
This summer training for college students aims to provide them with a sound foundation out of theoretical and practical hands on knowledge and experience in the field of computer science. The course will provide students insight in to design methodology and implementation using different types of programming languages in different environments. 
CSC 226 – Unix OS Environment (120) 

Course Description 
Overview of the Unix OS, basic concepts, usage of the help and man and info commands. Unix file system and basic commands. Redirection and pipelining. Filtering commands: line searching, (grep, egrep and frep), line content manipulation (cut, sort, tr …). Line visualization (pr, pg, more, tail, fmt, …), comparing files (diff and cmp). Users and userrights. Process management. The command find. Shell programming. The awk and sed commands. 
Prerequisite 
CSC 111  Computer Programming I . 
Textbook 

CSC 261 – Artificial Intelligence Programming Languages (301) 

Course Description 
This course provides an overview of functional, logic and constraint logic programming paradigms used in the context of artificial intelligence. The course focuses on Prolog language syntax and semantics: lists, operators, arithmetic, structures, input/output, builtin predicates, etc. It emphasizes constraint handling and solving combinatorial problems involving constraints. 
Prerequisite 
CSC113  Computer Programming II. 
Textbook 

CSC 320 – Systems Programming (301) 

Course Description 
The course aims to give the students a theoretical and practical understanding of the programming interface to a Unix system, including the system call interface and many of the functions provided in the standard C library. Topics covered include an overview of the basic Unix programming concepts, an introduction to shell programming, unbuffered I/O, the standard I/O library, the environment of a Unix process, process control, signals, and interprocess communication. 
Prerequisite 
CSC 227 Operating Systems. 
Textbook 

Course Objectives 

CSC 384 Applied Numerical Computation (301) 

Course Description 
This is an introductory course on Numerical Analysis and Methods. Topics include: errors and their propagation, floatingpoint computation, algorithms and numerical stability, linear systems of equations, interpolation, difference equations, curve fitting, nonlinear equations, numerical differentiation and integration. 
Prerequisite 
CSC 311  Design and Analysis of Algorithms. 
Textbook 

CSC 386 – Algorithms and Techniques for Database Management Systems (301) 

Course Description 
The goal of this course is to introduce the students to the following fundamental data management issues: database file organization, indexing, query processing and optimization, transaction, concurrency control, recovery system as well as other advanced topics. 
Prerequisite 
CSC 380  Introduction to Database Concepts 
Textbook 
“Database System Concepts”. Silberschatz Mc Graw Hill Fourth/Fifth Edition

Course Objectives 
The main objective of this course is to provide an indepth understanding of Database Management Systems. In particular, students will be exposed to the internal structures and algorithms of a relational database system in order to facilitate their ability to later build database systems in general 
CSC 412– Simulation and Modeling (301) 

Course Description 
Introduction to Simulation. Concepts in Discreteevent Simulation (DES). Components of DES. Monte Carlo simulation, the life cycle of a simulation study, input and output data analysis, world views and time control, random number generation, credibility assessment of simulation results, simulation languages, Parallel and Distributed Simulation, applications of simulation using contemporary simulation modelling and support software. 
Prerequisite 
CSC 111  Computer Programming I STAT 101  An Introduction to Probability & Statistics 
Textbook 

CSC 430 – Computer Arabization (301) 

Course Description 
System Arabization level (screen Arabization, keyboard Arabization, printer Arabization, font and codepage manipulation, creating visual Arabic interfaces, etc.);Introduction to Arabic natural language processing (Arabic morphological analysis, Arabic syntax and semantics, Classical models, Applications); Applying neural networks in Arabic natural language processing (neural networks for Arabic morphological analysis, neural networks for syntactic analysis); The phonetic properties of the Arabic language (Arabic allophones, isolating Arabic allophones, characterization of Arabic allophones, using Arabic allophones in some applications. 
Prerequisite 
CSC 220 – Computer Organization CSC 227 Operating Systems 
Textbook 
Collection of papers and articles. 
Course Objectives 
The objective of this course is to be aware of the stateoftheart in Computer Arabization. 
CSC 440–HumanComputer Interaction (301) 

Course Description 
Introduction to HCI. The Human User: Capabilities and Limitations. The Computer: Capabilities and Limitations. The Interaction: Models of Interaction and Interaction Styles. Usability Principles: Principles of HCI that support userfriendliness. Interface design: dialogue notation and design  Visual Design. Design support: Systems that support the design process. Usability Evaluation. Introduction to Speech Computing and other Forms of Input/output. 
Prerequisite 
CSC 343 – Systems Analysis and Design 
Textbook 

CSC 443 – IT/Software project management (301) 

Course Description 
Project life cycle; Project constraints; Project organization; Risk management; Project cost; Integrated schedule and critical path analysis; Baseline cost; Team building; Project planning; Reporting on project status; Closing and signoff. 
Prerequisite 
CSC 343 – Systems Analysis and Design 
Textbook 

CSC 446 – Design Patterns (301) 

Course Description 
This course aims at giving the student the ability to design programs using patterns. A design pattern is a general repeatable solution to a commonly occurring problem in software design. Design patterns deal specifically with problems at the level of software design. Definition, the context of use will be introduced along with their classification. Some of the most used patterns will be studied such as : Abstract factory, Factory method, Builder, Lazy initialization, Object pool, Prototype, Singleton, Adapter, Bridge, Composite, Decorator, Façade, Flyweight ,Proxy, Chain of responsibility, Command, Interpreter, Iterator, Mediator, Observer. 
Prerequisite 
CSC 343 – Systems Analysis and Design 
Textbook 

CSC 456 – Distributed Systems (301) 

Course Description 
Understanding the main characteristics of distributed systems and the various design choices required for building a distributed system such as the architectural models varying from client/server to peertopeer, gridcomputing; the communication models varying from clientpull (RPC/RMI, Message Queuing, …) to serverpush models (publishsubscribe, …); the synchronization techniques based on the system clock, on the logical clock (timestamp) and on the token ring; the standard middlewares such as RPC, RMI, Corba and SOAP. 
Prerequisite 
CSC 329 – Computer Networks. 
Textbook 

Course Objectives 
The course aims at giving the students a broad foundation in the fundamental concepts of distributed systems accompanied by the specific project to develop the basic skills in network programming using RMI or RPC. It introduces the basic architectural models of distributed systems as well as the communication paradigms such as Publish/Subscribe, Message passing, Remote Procedure Call/ Remote Method Invocation, Message Queuing, etc. Besides, it presents various techniques of synchronization. It aims too to introduce distributed algorithms such as election, mutual exclusion, etc. 
CSC 459 – NetCentric Computing (301) 

Course Description 
Overview of most important distributed algorithms such as election, mutual exclusion, termination detection and concurrency control; Objectbased distributed systems concepts and the CORBA standard middleware; Introduction to componentbased distributed systems with a focus on implementation issues and on related technologies; SOA and Webservices technologies with focus on SOAP and WSDL; Advanced distributed computing models such peertopeer and Grid computing with an emphasis on related technologies such as Juxta, Net and Globus toolkit. 
Prerequisite 
CSC 329  Computer Networks. 
Textbook 

CSC 462 – Machine Learning (301) 

Course Description 
This course gives an overview to machine learning concepts, techniques, and algorithms. Topics include: inductive learning, decision trees, artificial neural networks, instancebased learning, clustering, reinforcement learning, and some examples of application domains. 
Prerequisite 
CSC 361 Artificial Intelligence. 
Textbook 

CSC 463 – Knowledge Engineering and Expert Systems (301) 

Course Description 
The course will provide an introduction to knowledgebased systems. Topics include: knowledge representation and inference, representing uncertainty using probabilistic logic and fuzzy logic, nonmonotonic reasoning and knowledge acquisition. The students will do a programming project related to knowledgebased systems. 
Prerequisite 
CSC 361 Artificial Intelligence. 
Textbook 

CSC 476 – Computer Graphics (301) 

Course Description 
This course is an introduction to computer graphics, with an emphasis on application programming using OpenGL software. The topics covered are Introduction to Computer Graphics  Graphics Display Devices  Drawing Based Graphics Primitives  Transformation of Object  3D Affine Transformation.ThreeDimensional Viewing  Tools for Raster Displays  Scan conversion Algorithms  Defining and Filling Regions of Pixel.  Filling PolygonDefined Regions.  Aliasing :Antialiasing Techniques.  Creating more Shades and Colors. 
Prerequisite 
CSC 212  Data Structures. 
Textbook 

CSC 478 – Digital Image Processing and Analysis (301) 

Course Description 
Introduction; Image Sensing and Acquisition; Some Basic Gray Level Transformations for Image Enhancement.; Image Contrast Enhancement Using Histogram Processing; Image Smoothing Using Spatial Filters; Image Sharpening Using Spatial Filters; Point, Line and Edge Detection; Basic image compression procedures; Basic Global and Adaptive Thresholding for Image Segmentation; Optimal Global and Adaptive Thresholding for Image Segmentation; RegionBased Image Segmentation and EdgeBased Segmentation; Image Restoration in the Presence of NoiseSpatial Filtering; Image Enhancement in Frequency Domain; Objects Representation and Description; introduction to Object Recognition. 
Prerequisite 
CSC 212  Data Structures. 
Textbook 

CSC 484 – Information Retrieval (301) 

Course Description 
This course is intended to prepare students to understand the underlying theories and methods for searching and retrieval of text and bibliographic information, analysis of the relevance, utility, statistical and linguistic methods for automatic indexing, query formulation, output ranking, filtering methods, measures of retrieval effectiveness and retrieval experimentation Methodology. 
Prerequisite 
CSC 380  Introduction to Database Concepts 
Textbook 

CSC 489 – Selected Topics in Computer Science (301) 

Course Description 
This course aims at introducing the students to a different area of Computer Science. This will be achieved by exposing them to new tools, techniques, and research in Computer Science. 
Prerequisite 
The student must finish 100 Credit Hours. 
Textbook 
Journals and Magazines relevant to the topics covered. 
A. Mandatory Courses:
Department Courses 

Code 
Course Name  Credit Hours  Prerequisite  Corequisite 
PHYS 104 
General Physics 2 
4 


MATH 106 
Integral Calculus 
3 
MATH 101 

MATH 151 
Discrete Mathematics 
3 
MATH 101 

CSC 215 
Procedural Programming With C 
3 (2. 2. 0) 
CSC 111 

CSC 220 
Computer Organization 
3 (2. 2. 1) 
MATH 151 

MATH 244 
Linear Algebra 
3 
MATH 106 

CSC 281 
Discrete Mathematics for Computer Science 
3 (3. 0. 1) 
STAT 101, MATH 151 

CSC 304 
Ethical Issues in Computing and Research Methods 
3 (3. 0. 1) 
CSC 113 

CSC 311 
Design and Analysis of Algorithms 
3 (3. 0. 1) 
CSC 281 CSC 212 

CSC 329 
Computer Networks 
3 (3. 0. 1) 
CSC 227 

CSC 339 
Theory of Computation 
3 (3. 0. 1) 
CSC 281 

CSC 340 
Programming Languages and Compilation 
3 (3. 0. 1) 
CSC 339 

CSC 343 
Systems analysis and design 
3 (3. 0. 1) 
CSC 212 

CSC 380 
Fundamentals of Database Systems 
3 (3. 0. 1) 

CSC 212 
CSC 361 
Artificial Intelligence 
3 (3. 0. 1) 
CSC 212 

CSC 429 
Computer security 
3 (3. 0. 1) 
CSC 329 

CSC 453 
Parallel Processing 
3 (3. 0. 1) 
CSC 227 

CSC 457 
Internet Technologies 
3 (3. 0. 1) 
CSC 329 

CSC 496 
Graduation Project I 
2 (2. 0. 0) 
CSC 343 انهاء 95 ساعة 

CSC 497 
Graduation Project II 
4 (4. 0. 0) 
CSC 496 

CSC 479 
Practical Training 
1 
Finishing 95 hours 

XXX XXX 
One course from List A 
4 



Total 
66 


B. Elective Course
Department Electives  
Code 
Course Name 
Credit Hours 
Prerequisite 
Corequisite 
CSC 226 
Unix OS Environment 
2 (1. 2. 0) 
CSC 111 

CSC 261 
Artificial Intelligence Programming Languages 
3 (3. 0. 1) 
CSC 113 

CSC 320 
Systems Programming 
3 (3. 0. 1) 
CSC 227 

CEN 333 
Computer Architecture for Computer Science 
3 (3. 0. 1) 
CSC 227 

CSC 384 
Applied Numerical Computation 
3 (3. 0. 1) 
CSC 311


CSC 386 
Algorithms & Techniques for Database Management Systems 
3 (2. 2. 0) 
CSC 380 

CSC 412 
Simulation and Modeling 
3 (3. 0. 1) 
CSC 111 STAT 101 

CSC 430 
Computer Arabization 
3 (3. 0. 1) 
CSC 220 CSC 227 

CSC 440 
HumanComputer Interaction 
3 (3. 0. 1) 
CSC 343 

CSC 443 
Software/IT Project Management 
3 (3. 0. 1) 
CSC 343 

CSC 446 
Design Patterns 
3 (3. 0. 1) 
CSC 343 

CSC 456 
Distributed Systems 
3 (3. 0. 1) 
CSC 329 

CSC 459 
NetCentric Computing 
3 (3. 0. 1) 
CSC 329 

CSC 462 
Machine Learning 
3 (3. 0. 1) 
CSC 361 

CSC 463 
Knowledge Engineering & Expert Systems 
3 (3. 0. 1) 
CSC 361 

CSC 476 
Computer Graphics 
3 (3. 0. 1) 
CSC 212 

CSC 478 
Digital Images Processing & Analysis 
3 (3. 0. 1) 
CSC 212 

CSC 484 
Information Retrieval 
3 (3. 0. 1) 
CSC 380 

CSC 489 
Selected Topics in Computer Science 
3 (3. 0. 1) 
Finishing 100 hours 

List A: List of Science Courses 

Code 
Course Name 
Credit Hours 
Prerequisite 
Corequisite 
PHYS 103

General Physics (1) 
4 


CHEM 108 
Introduction to Organic Chemistry 
4 
CHEM 101 

PHYS 210 
Classical Mechanics 1 
4 
MATH 101 

List B: List of Elective Courses from other Departments 

Code 
اCourse Name 
Credit Hours 
Prerequisite 

SWE 333 
Software Quality Assurance 
2 
CSC 343 

IS 335 
Database Management Systems 
3 
CSC 380 

IS 432 
SemiStructured Data 
3 
CSC 380 

SWE 434 
Software Testing and Validation 
3 
CSC343 

CEN 445 
Networks Protocols &Algorithms 
3 
CSC 329 

IS 463 
Introduction to Data Mining 
3 
CSC 361 

IS 466 
Decision Support Systems 
3 
CSC 380 

SWE 483 
Mobile Application Development 
3 
CSC 113 

IC 100 
Studies in The Prophet Biography 
2 


QURN 100 
Quran Kareem 
2 


IC 101 
Principles in Islamic Culture 
2 


IC 102 
Family in Islam 
2 


IC 103 
Economic System in Islam 
2 


IC 104 
Islamic Political System 
2 


IC 105 
Human Rights 
2 


IC 106 
Medical Jurisprudence 
2 


IC 109 
Development Role Of Women

2 
