To navigate through the Ribbon, use standard browser navigation keys. To skip between groups, use Ctrl+LEFT or Ctrl+RIGHT. To jump to the first Ribbon tab use Ctrl+[. To jump to the last selected command use Ctrl+]. To activate a command, use Enter.

This course studies the
mathematical elements of computer science. Topics include propositional logic;
predicate logic; mathematical reasoning; techniques of proof; mathematical
induction; set theory; number theory; matrices; sequences and summations;
functions, relations and their properties, elementary graph theory, and tree.

Main
concepts of computer architecture; hardware components of a computer;
instruction set: instruction
formats, encoding of instructions, types; Execution unit: registers design,
combinational shifters, ALU, division and multiplication algorithms; control
unit: register transfer language, hardwired and microprogrammed control unit;
memory unit: RAM, cache memory, associative memory, virtual memory;
Input/output processors; introduction to
multiprocessor systems and parallel processing

The course is the basic course in numerical methods. It introduces students to: Error analysis; Finding roots of a function: bracketing and iterative methods; Roots: direct and indirect solution of systems of linear equations; Solution of nonlinear systems; Approximation and interpolation; Numerical integration and differentiation; Programming language programs in parallel with material or using MATLAB . Weekly practice in the lab.

This course is an introduction to key design principles and techniques for interactively visualizing data. The major goals of this course are to understand how visual representations can help in the analysis and understanding of complex data, how to design effective visualizations, and how to create your own interactive visualizations using modern web-based frameworks.

This course is designed to help students to
gain rapid software application skills such as: Solaris System Software, Sun,
Unix, Cisco, MSE and others. in this course the student will be able to develop
and design a web applications and services, mobile applications and others
using certified software's from Microsoft company or certified software's to
achieve the final goal of the course which is getting an intentional
certificate from international companies. Weekly practice in the lab.

This course describes the architecture, components, and
operations of routers and switches in a small network. Participants learn how
to configure a router and a switch for basic functionality

Introduction to high-performance computing, processor architectures, memory systems, data and parallel decompositions, parallel languages and architectures, multiprocessors, multi-computers; routing topologies; shared memory and passage passing parallel processing, PRAM model (exclusive versus concurrent reads and writes) and sample applications.

Wireless networks and their basic operation, different types of wireless technologies and systems, the basics of how they operate, different types of wireless voice, data and broadcast services, key commercial systems. Wi-Fi wireless networks, Bluetooth wireless technology, GSM cellular networks, cellular internet access via Wireless access protocol (WAP), GPRS and UMTS networks, wireless networks operating system; Symbian OS, Palm OS. Mobile IP and Mobile routing, Transport layer over wireless networks, Mobile wireless network applications.

This
course enables students to understand and implement operating systems functions
in managing computer systems component. It includes the following major topics:
Introduction to Hardware and Software Concepts; Process and CPU Scheduling,
Threads, Synchronous and Concurrent Execution, Deadlock and Indefinite
Postponement; Memory Management: Physical and Virtual Memory; Management of
External Storage and I/O Devices: Files Management; Performance and
Optimization; Security and Protection; and Distributed Systems.

This course covers different important techniques that
used in designing and analyzing efficient Algorithms such as: dynamic
programming, greedy algorithms, and Genetic algorithm.

In addition, in this course, we describe the idea of
different optimization problem and explain how to design the advance algorithms
to find the optimal solution. This course describes a variety of heuristic
search methods including dynamically dimensioned search, genetic algorithms,
greedy algorithm.

Students will select projects
from a range of different optimization problems and solve this problem using
one of heuristic search methods that they learn in this course.

This course explores key concepts and essential technologies of computer networks and broad range of topics in networking, including: General overview:Networks applications, Network classifications and topologies, Network layers, Channel performance measures, transmission media, Communication Network Protocols and architecture; Data link layer: framing, error detection and correction, CSMA/CD, LAN IEEE standards; Network layer: IP service model, IP Addressing, subnetting, Host configuration DHCP, ARP Protocol, ICMP protocol; Transport layer: UDP protocol, TCP protocol, TCP reliable transfer and sliding window, TCP flow and congestion control; Application layer: DNS protocol, NAT protocol, HTTP protocol, persistent and non-persistent HTTP connection.

Main
concepts of Logic Design; Boolean Algebra; Basic Definitions; Basic Theorems
and Properties; Boolean Functions; Canonical and Standard Forms; Digital Logic
Gates; Minimization Methods; Combinational Logic; Sequential Logic. Numbering
Systems; Binary Codes; Boolean Algebra; Gate-Level Minimization; Algebraic
Simplifications; Karnaugh Maps; Don't-Care conditions; NAND and NOR
Implementation; Combinational Logic; Adders and subtractors; Decoders and
Encoders; Multiplexers and Demultiplexors; ROMS and PLAs; Sequential Logic;
Flip Flops; Registers, Counters, and Serial adder.

The course covers the basics of data
structures like: Records, Classes and data abstraction, Inheritance and
composition, Templates, Enumeration Data type, Contiguous list and list
operations, Contiguous Stacks and stack operations, Contiguous Queues and queue
operations and Recursion.

Pointers. Classes. Virtual functions and abstract
classes. Overloading. Recursion. Linked list: singly, doubly, circular. Stacks,
Stack operations and Implementation of Stacks as linked-list. Queues, Queue
operations and Implementation of Queues as linked-list. Trees, Binary Trees.

Sets,
Relations, Closure and Languages, Finite Automata, deterministic and
nondeterministic, Closure and pumping lemma, Regular languages and expressions,
Context-Free Grammar, Regular languages and Context-Free languages, pushdown
automata, closure, determinism and parsing, LL (1) Grammar, Turing
machines and machine schemas, examples, Introduction to P
and NP classes.

Definition of an algorithm; Algorithm design and techniques, such as sequential versus divide-and-conquer; Algorithm analysis; Concept of basic operations; Concept of worst, best, and average case analysis; Complexity analysis: big O, Omega and Theta notations; Recurrence equations and recursive algorithms; Searching and sorting algorithms; Concept of graphs; Graph algorithms.

The course is basic course in numerical methods. It introduces students to: Error analysis; Finding roots of a function: bracketing and iterative methods; Roots: direct and indirect solution of systems of linear equations; Solution of nonlinear systems; Approximation and interpolation; Numerical integration and differentiation; Programming language programs in parallel with material or using MATLAB . Weekly practice in the lab.