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
Concepts of a graph. Undirected graphs vs. directed graphs. Computer representation of graphs; Euler graph and De Bruijn sequences. Graph isomorphism. Shortest path algorithm. Minimum Spanning trees algorithms: Kruscal and Prim algorithms. Depth first search for directed and undirected graphs. Maximum flow in a network: Ford-Fulkerson Algorithm. NP-complete graph problems: graph coloring, maximum independent set, minimum vertex cover, traveling salesman problem.The students assessment will be based on assignment, quizzes and exams
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.
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.
Object-oriented Programming (OOP) Environment; Input/Output; Loops; Decision; Function; Array and Strings; Data structures; Encapsulation; Advanced variables; Object Oriented Programming; Useful OO features; Class and object; Polymorphism; Exceptions handing; Applet; I/O streams; Threads, Files; Weekly exercises in lab.
Records. Classes and data abstraction. Inheritance and composition. Templates. Contiguous list. Stacks, Stack operations and Implementation of Stacks as arrays. Queues, Queue operations and Implementation of Queues as arrays.
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.
The course would basically cover the following areas: Multi-threading and synchronization, Storage and I/O ( i.e.Memory and Garbage Collection, File Structure, I/O Streams, Serialization), defensive programming techniques (error handling, exceptions, assertions, debugging aids), current programming trends (functional and/or scripting), code testing, and tuning strategies and techniques.
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.