Undergraduate study
»» University Requirements
»» Department Requirements
»» Recommended Course Sequence
»» Course Description
 
901099computer
 pre- requisite: ( - )
»» More
 
901130Computer Science -1
 pre- requisite: ( - )
Introduction to Personal Computers (PCs). Computer history and applications; the binary numbering system, data representation; computer organization: central processing unit, memory, input/output units; logic gates; introduction to operating systems, MS Windows, word processing using MS Word, and spreadsheets using Excel; Introduction to the Internet and the World Wide Web; elementary homepage development; HTML. Last Update: 9/2010 By W.Q
»» More
 
901131Computer Science -2 (scientific)
 pre- requisite: ( - )
This module aims to introduce the principles of problem solving strategy and imperative programming. A student completing this module should: 1- Be able to understand the fundamental programming constructs. 2- Be able to develop a flowchart. 3- Understand a typical C program environment. 4- Be able to write programs C
»» More
 
901132Computer Science-2 For the Humanities
 pre- requisite: ( - )
null
»» More
 
901133
 pre- requisite: ( - )
»» More
 
901200Discrete Mathematics
 pre- requisite: ( - )
This course is an introduction to the formal mathematical concepts of computer science for the beginning student and covers a wide variety of diverse topics that serve as the mathematical framework for the design and analysis of algorithms. Topics include elementary logic, set theory, induction and recursion, relations, functions, Boolean algebra, tree structures, permutations and combinations and an introduction to graph theory and finite state machines
»» More
 
901210Object-Oriented Programming
 pre- requisite: ( - )
Object-oriented programming (OOP) is a programming paradigm that uses "objects" and their interactions to design applications and computer programs. It is based on several techniques, including inheritance, modularity, polymorphism, and encapsulation. It was not commonly used in mainstream software application development until the early 1990s. Many modern programming languages now support OOP. From this module, the student will learn the art of the object-oriented programming using C Programming Language after having a background in the procedural paradigm that was introduced in the module ?Programming Fundamentals".
»» More
 
901211Programming in Java
 pre- requisite: ( - )
Object-oriented programming (classes, objects, messaging, inheritance), Java language features (interfaces, exceptions, packages, concurrency, garbage collection), use of the built-in packages (lang, util, io, networking, awt), applications and applets, security and verification, Java implementation and the virtual machine. test
»» More
 
901212Programming in Python
 pre- requisite: ( - )
This course introduces the student to the Python language. The course provides insight into the features of Python such as lists, functions, working with files, dictionaries and sets, errors and exception handlings, using modules, GUI, that make it an excellent choice for developing projects of any size.
»» More
 
901220Digital Logic Design
 pre- requisite: ( 901130 )
The objective of this course is to familiarize the student with fundamental principles of digital design. It provides coverage of classical hardware design for both combinational and sequential logic circuits. The course is supported by a digital logic design laboratory that uses the IDL-800 Digital Lab. device. This instrument is a circuit evaluator that enables users to design and connect standard Integrated Circuits.
»» More
 
901230Data Structure and File Processing
 pre- requisite: ( - )
Complexity of algorithms, matrices, strings, lists, stacks and queues, hash tables, graphs and networks, trees, types of files and their internal structures, example algorithms.
»» More
 
901300Computational Theory
 pre- requisite: ( - )
»» More
 
901310Visual Programming
 pre- requisite: ( - )
Window-based, object-oriented, and event-driven application design and implementation employing modern programming languages and tools. Building visual components (windows, menus, frames, message-boxes, buttons, lists, input/out boxes), managing containers and layout, event-handlers, and exceptions. Employing GUI class libraries. A suitable programming environment to be selected for the course based on technology trends. Laboratory component is mandatory.
»» More
 
901320Computer Architecture
 pre- requisite: ( - )
The role of performance, essential notions of computer systems design, datapath and control of processor, memory hierarchies, control units, registers, data transfer and buses. The characteristics of instruction sets, pipeline techniques, high-speed memories like cache, and multiprocessors
»» More
 
901321Computer Networks
 pre- requisite: ( - )
Structure of data communication systems, OSI reference model, physical layer, switching and multiplexing, data link layer, error detection, error and flow control, switched networks, medium access protocols in broadcast networks, network layer, internetworking fundamentals, transport layer.
»» More
 
901325Computer Networks
 pre- requisite: ( - )
Structure of data communication systems, OSI reference model, physical layer, switching and multiplexing, data link layer, error detection, error and flow control, switched networks, medium access protocols in broadcast networks, network layer, internetworking fundamentals, transport layer.
»» More
 
901327Wireless and Mobile Networking
 pre- requisite: ( - )
»» More
 
901330System Design and Analysis
 pre- requisite: ( - )
Overview of the organization of current computer systems, data collection, dataflow diagrams, processes, modeling of objects, planning and information change, security and protection issues. Syllabus The main topics covered in this course are: 1) SYSTEMS ANALYSIS FUNDAMENTALS - ASSUMING THE ROLE OF THE SYSTEMS ANALYST. -UNDERSTANDING ORGANIZATION STYLE AND ITS IMPACT ON INFORMATION SYSTEM. -DETERMINING FEASIBILITY AND MANAGING ANALYSIS AND DESIGN ACTIVITY. 2) INFORMATION REQUIREMENT ANALYSIS - SAMPLING AND INVESTIGATING HARD DATA. INTERVIEWING. USING QUESTIONNAIRES. OBSERVING DECISION-MAKER BEHAVIOR AND THE OFFICE ENVIRONMENT. PROTOTYPE AND RAPID APPLICATION DEVELOPMENT. 3) THE ANALYSIS PROCESS - USING DATA FLOW DIAGRAMS. ANALYZING SYSTEMS USING DATA DICTIONARIES. DESCRIBING PROCESS SPECIFICATION AND STRUCTURED DECISIONS. ANALYZING SEMI STRUCTURED DECISION SUPPORT SYSTEM. PREPARING THE SYSTEM PROPOSAL. WRITING AND PRESENTING THE SYSTEM PROPOSAL. 4) THE ESSENTIALS OF DESIGN DESIGNING EFFECTIVE OUTPUT. DESIGNING EFFECTIVE INPUT. DESIGNING DATABASE. DESIGNING USER INTERFACES. DESIGNING ACCURATE DATA-ENTRY PROCEDURES. 5) SOFTWARE ENGINEERING AND IMPLEMENTATION - QUALITY ASSURANCE THROUGH SOFTWARE ENGINEERING. - SUCCESSFULLY IMPLEMENTING THE INFORMATION SYSTEM. - OBJECT-ORIENTED SYSTEM ANALYSIS AND DESIGN AND UML.
»» More
 
901331Database Management System
 pre- requisite: ( - )
Introducing the fundamental concepts necessary for designing, using, and implementing database systems and applications.
»» More
 
901332Operating System
 pre- requisite: ( - )
The course covers concurrent processes and synchronization mechanisms, processor scheduling, memory management, file management, I/O management, deadlock management, and performance of operating systems.
»» More
 
901340Analysis and Design of Algorithms
 pre- requisite: ( - )
Syllabus: Algorithm analysis, Efficiency of algorithms, Complexity of algorithms, Divide & Conquer, Heap sort, Binomial heap, Quick sort, Counting sort, Binary search tree & Red-Black tree, Matrix-chain multiplication & Greedy algorithm, Knapsack problem, Huffman code, Graph & Toplogical sort, Minimum spanning tree, Shortest paths, Binomial heaps.
»» More
 
901350Computer Graphics
 pre- requisite: ( - )
Introduction: Graphics systems, Color models. Input Devices: Physical and logical devices, Interaction with mouse, keyboard. 2D Algorithms: Window and Viewports, Line drawing, Filling algorithms. Vectors Concept of vectors, Clipping algorithm. 2D Transforms: Basic 2D Transforms, Homogeneous coordinates. 3D Modeling: Surfaces, Wireframe and Solid models. 3D Transforms: Affine transformations, Projections. Rendering: Hidden surface removal, Illumination models. .
»» More
 
901410
 pre- requisite: ( - )
»» More
 
901411Advanced Programming Tools
 pre- requisite: ( - )
»» More
 
901420Internetworking and Applications
 pre- requisite: ( - )
This is a graduate-level course in internetwork and application. The objective of this course is to give students a deeper understanding of internetworking and routed network protocols. bridges and gateways, internetworking protocols (IP, TCP, DNS, ARP, RARP, ICMP, EGP), networking management protocols, Internetworking applications: FTP, E-mail, and WWW. Client/server programming using sockets.
»» More
 
901430Fundamentals os Distribute and Parallel Systems
 pre- requisite: ( - )
»» More
 
901431Parallel Distributed Database
 pre- requisite: ( - )
»» More
 
901440Compilers
 pre- requisite: ( - )
This course tends to give the student the concepts of the language engineering and compiler construction. The course will cover the theoretical and implementation aspects of language processing. Emphasis will be on the design and construction of compilers. There are several substantial programming assignments associated with this course: Compiler Design, Lexical Analysis, Syntax Analysis - grammars, LL(1) parsers, LR(1) parsers, Semantic Processing, Code generation and optimization . To show how to apply the theory of language translation introduced in the prerequisite courses to build compilers and interpreters and practice with a compiler for a small language.
»» More
 
901470Expert Systems & Artificial Inttelligence
 pre- requisite: ( - )
The primary goal of Artificial Intelligence is to build computer systems to solve problems that are hard for typical computer systems to solve, but easy for people. Because of this, emphasis will be placed on the simulation of human intelligence. General problem solving techniques will be studied for the greater part of the course. These will then be extrapolated to show their relevance to specific sub-areas of the discipline. )
»» More
 
901480
 pre- requisite: ( - )
»» More
 
901481Special Topics
 pre- requisite: ( - )
»» More
 
901498null
 pre- requisite: ( - )
null
»» More
 
901499Graduation Project
 pre- requisite: ( - )
A student's prepares a project proposal, carries out the necessary work and submit monthly progress reports to his supervisor. The graduation project should be a substantial development project or a propsed solution for a theoretical computer science problem. A final report is to be written and presented to a 3-member examination committee that includes the supervisor.
»» More
 
901710Programming Languages Structure
 pre- requisite: ( - )
»» More
 
901711Parallel Programming
 pre- requisite: ( - )
»» More
 
901720Advanced Computer Networks
 pre- requisite: ( - )
This course will covers advanced fundamental design and mplementation principles of Internet, key networking issues and their solutions. This course will cover synthesis approach, looking at the network as a whole: identify, study common architectural components, protocol mechanisms, design/implementation principles and trade-offs. Several important topics in depth will be investigated, topics that are not covered in an introductory networking course. See the reading materials for addition information on topics covered in the course. The students are required to read and review required readings on their own, preferably in advance, including those that are not covered in the lectures. In addition, additional supplemental reading materials will be provided to the students
»» More
 
901730Distributed Operating Systems
 pre- requisite: ( - )
»» More
 
901732Advanced Database Systems
 pre- requisite: ( - )
»» More
 
901740Object Oriented Software Development
 pre- requisite: ( - )
0
»» More
 
901750Analysis of Algorithms
 pre- requisite: ( - )
The course covers : Asymptotic notation. Algorithm analysis methods. Greedy algorithms and divide-and-conquer algorithms. Dynamic programming. Probabilistic algorithms. Applications to sorting, scheduling, and graphs. Theoretical models for computing computational complexity. NP-complete and NP hard problems. Approximation algorithms. Details as follows:
»» More
 
901770Advanced Artificial Intelligence
 pre- requisite: ( - )
»» More
 
901780Advanced Computer Architecture
 pre- requisite: ( - )
This course provides the basic knowledge necessary to understand the hardware operation of digital computers and covers the three subjects associated with computer hardware. Topics include quantitative principles of computer architecture design, instruction set design, processor architecture: pipelining and instruction level parallelism, cache and virtual memory, multiprocessors, multi-computers and interconnection networks, message passing, wormhole routing, and case studies.
»» More
 
901791Seminar
 pre- requisite: ( - )
»» More
 
901795Scientific Research Methods in Computer Science
 pre- requisite: ( - )
»» More
 
901796Comprehensive Exam
 pre- requisite: ( - )
»» More
 
902354null
 pre- requisite: ( - )
null
»» More