Brief Course Descriptions

 

Course Title & No.Brief Course Description
Computer Skills 0102120 This course is designed to provide basic knowledge of computers and their applications. It will also emphasize the use of computers and technology during their university and future careers. The course discusses a variety of computer applications, including Word processing, spreadsheet, and multimedia presentations. Towards the end of the course, the students explore computer hardware, software, internet generations and their applications. Moreover, ethical issues related to computers software and Internet-based applications will be delivered.
Introduction to Programming 0102220 This course introduces principles of computer programming using Java as a programming language. The course introduces the concept of algorithms and trains students to compile, run and debug Java programs. Also, the course includes topics such as simple data types; operators and expressions; variables; input and output; control structures (conditional and repetition statements); methods; libraries; arrays and some of their applications.
Object-Oriented Programming 0102221 This course provides students with deep understanding of object-oriented programming concepts. Topics covered include classes, objects, Instantiation, methods, and instance variables, I/O, encapsulation, static fields and static methods, overloading, constructors, scope of declarations, overriding, composition, Java API packages, inheritance, garbage collection, polymorphism, final methods and final classes abstract classes and methods, interfaces, and introduction to GUI.
Computer Organization 0102240 This course introduces the fundamentals of computer organization and machine architecture. It covers logical components and circuits, data representations, register transfer, bus and memory transfers, arithmetic microoperations, logic microoperations and shift microoperations, instruction codes, registers, common bus system, timing and control, instruction cycle, register-reference instructions, memory-reference instructions, I/O instructions, design control logic circuits for Basic computer, programming the Basic computer, addressing modes, stack, organization main memory, DMA, I/O, pipelined datapath, execution of pipeline microoperations, pipelined control, RISC, and CISC.
Data Structures and Algorithms0102270 This course introduces the basics of data structures such as Bags, Abstract Data Type, trees, heaps, stacks and queues. Students will also learn how to design new algorithms for each new data structure studied, create and perform simple operations using Recursion, sorting techniques, and ADT list. The efficiency of algorithms is also covered by discussing many topics such as motivation to measuring an algorithm's efficiency, big-Oh notation, and picturing the efficiency.
Introduction to Artificial Intelligence 0102308 This course covers the nature of intelligence; Problem-solving; Knowledge and Reasoning; Uncertain Knowledge and Reasoning; and some concepts about learning in real life.
Database Systems 0102330 This course introduces the basic concepts of databases, which include database system architecture; entity-relationship model; hierarchical, network, and relational data models; functional dependencies and normal forms. Design, implementation, and optimization of SQL query languages; and security and integrity. Explore XML, the de-facto standard to exchange data in the internet. Introduce students to usage of databases through the Internet by using specific languages for purpose such as PHP.
System Analysis & Design/ 0102331 This course introduces the object-oriented analysis design using Unified Modeling Language (UML), which includes the unified process development cycle; use case analysis; , dynamic and static diagrams; object-oriented principles (encapsulation, inheritance, polymorphism), design principles (coupling and cohesion) and design patterns. The course includes a large- scale software development project.
Operating Systems 0102340 This course covers the basics of operating system concepts starting from its history. The course covers the Processes including process and threads scheduling, inter-process communication, critical section problem, and CPU scheduling It also covers the concepts of Input/output including principles of I/O hardware and software, disk arm scheduling and deadlocks; Memory management including swapping, paging, virtual memory and page replacement algorithms; File systems including File system structures, access, protection and inodes. Some examples of operating systems will be introduced.
Formal Languages and Automata Theory/ 0102341 This course introduces fundamental concepts in automata theory and formal languages including finite automata (deterministic and non-deterministic finite accepters), regular expressions, regular grammar, regular and non-regular languages, push-down automata, context-free languages and Turing machine.
Web Development 0102420 This course introduces the basics programming and scripting languages for the Web development. It covers basic concepts of the World Wide Web (WWW), HTML 5, CSS 4, JavaScript 1.8, XML, and PHP 7.
Programming Languages and Compilers/ 0102421 This course introduces students to the fundamental concepts of compilers. It covers compiler architectures, data types and representation, grammatical production process, properties of grammars, grammar formalism, lexical analysis, lexical versus syntactic analysis, creating a lexical analyzer, transition table compression, symbol tables, bottom-up parsing, top-down parsing, exception handling, Symantec analysis, code generation, preprocessing the intermediate code, optimization techniques, general optimization, code size reduction, and power reduction and energy saving.
Computer Networks 0102450 This course introduces computer network uses, computer network components and classifications. Further this course covers computer network architectures, network Layers; network access; physical layer and data link layer, network layer, transport layer and application layer. Furthermore, the course will introduce IP Addressing, sub-netting and computer network security.
Introduction to distributed systems 0102451 This course introduces the theory of distributed systems and networks, including distributed systems and network characteristics, Models of distributed computation, Inter-process communication techniques, Client-server applications, Synchronization issues, logical clocks, vector clocks, direct dependency clocks, matrix clocks, Global property evaluation and Global computation, Middleware software, types of network interaction, fault tolerance and recovery from failure.
Computer Ethics 0102453 This course addresses a definition of ethics, provides a framework for making ethical decisions, and analyzes in detail several areas of ethical issues that computer professionals are likely to encounter in the workplace. Topics include philosophical, business and professional ethics, software reliability, intellectual property, copyrights, privacy, data mining, and computer security.
Introduction to Computer Graphics 0102460 This course introduces basic concepts of computer graphics. It includes graphics geometry, primitives, and two- and three-dimensional representations. It also covers geometric transformations, window clipping, and computer animation. OpenGL is used to illustrate the techniques and algorithms covered in the course.
Simulation and Modeling 0102480 This course covers Modeling and Simulation Process principles; data collection and analysis; Monte Carlo simulation; event scheduling; dealing with uncertainty; confidence intervals; Terminating and steady state analysis; and Input Distribution Modeling. The course will use MATLAB to conduct the modeling and simulation techniques and learned algorithms.
Data and Web Mining 0102481 This course introduces principles and techniques of (Web) data mining. Topics include: different data mining techniques such as classification, prediction, clustering and reasoning. The course go through the cycle of data mining starting from collecting the data all the way to evaluating and interpretation the results. Some challenges are covered that are concern with Web data mining in particular such as data integration for e-commerce, Web data warehousing, and Web personalization and recommender systems. The course will use Weka as a data mining tool.
Foundations of Software Engineering 0103220 This course introduces basic concepts of software engineering by focusing on software engineering process: development and maintenance. The course covers the software engineering lifecycle models and deliverables; requirements analysis and specification; architectural and detailed design; verification and validation and software maintenance issues.
Software Requirements and Specification 0103320 This course introduces requirements engineering within software life-cycle: requirements elicitation and modeling issues and techniques; documentation and management of requirements; standards and CASE tools; cognitive and socio-organizational issues
Software Design and Development 0103330 This course is designed to teach students the knowledge, understanding, skills and values to solve problems through the creation of software solutions. The course introduces students to the nature of software design, design process, agile-based design, architectural design and distributed architecture. It also introduces popular design frameworks, such as object-oriented design, function-oriented design, and aspect-oriented design. The course is concluded with user interface design and its contemporary design issues.
Formal Specifications and Design Methods 0103331 This course introduces the formal methods in detail and their usage in requirements specification and software design. The course will start with introduction of formal specification, algebraic specification, and specification in Z language. Requirements and design strategies using Z language will be taught in detail. Design formal methods such as statecharts and Petri-net models will also be covered thoroughly. The course will also introduce students with Alloy, B-Method and B-Event method to specify and design complex systems. Object-Oriented formal language, OCL, will be taught with implementation on real-life complicated systems. The course will be concluded with software verification and validation methodologies.
Software Project Management 0103420 This course develops the basic principles of project management, including concepts from the initiating, planning, executing, monitoring & controlling, and closing process groups. Introduces fundamentals from the ten project management knowledge areas: integration, scope, time, cost, quality, human resources, communications management
Object-Oriented Analysis and Design 0103430 This course introduces the object-oriented analysis and design, which includes the Unified Process development cycle; object oriented principles (encapsulation, inheritance, polymorphism), use case analysis; Unified Modeling Language (UML), dynamic and static diagrams; design principles (coupling and cohesion) and design patterns. The course includes a large-scale software development project.
User Interface Design 0103431 This course covers the principles of designing, developing and testing appealing and effective user interface (UI) and user experience (UX) for desktop, web and mobile applications. They will learn about UI and UX design patterns, usability testing, and learnability. Issues and guidelines of designing modern and contemporary interfaces of small screened devices, such as Android and iPhone, will also be part of the course. The growing field of Big data demands effective data visualization on modern devices. We will learn methods and best practices to present such information in an effective manner on the applications along with creation and testing of modern Dashboards.
Software Measurement and Testing 0103440 This course is an introduction to software testing and metrics within the context of software quality engineering: module and unit testing; integration and acceptance testing; quality factors and metrics; verification and validation; review and inspections; reliability, security and safety assurance; and automated software testing.
Software Evolution and Maintenance 0103441 This course provides concepts and advanced technologies in software evolution: Program comprehension; construction of reusable software; separation of concerns; techniques for reverse engineering and re-engineering software; design for change layered design and incremental; and also analyze an existing system, explore possible change strategies, and construct a plan for evolving each of the systems major components.
Circuit Analysis I 0104230 This course is an introduction to linear circuit analysis. Topics include Ohm’s law; Kirchhoff’s laws; resistor combinations; nodal and loop analysis techniques; superposition theorem; source transformation; Thevenin’s and Norton’s theorems; maximum power transfer; capacitance and inductance; first- and second-order transient analysis.
Digital Logic Design 0104240 This course presents the theory of number systems, binary arithmetic, Boolean algebra, digital circuits and systems, stressing techniques for the analysis and synthesis of combinational and sequential logic systems. It covers the operations of basic logic gates, example of some combinational and sequential circuits such as adders, subtractors, decoders, encoders, multiplexers, demultiplexers, latches, flip-flops, counters and shift registers.
Computer Architecture 0104242 This course introduces the fundamental concepts of computer architecture. It covers computer abstractions, operations of the computer hardware, representing instructions in the computer, MIPS addressing for 32-Bit immediates and addresses, parallelism and instructions synchronization, arithmetic for computers, floating Point, parallelism and computer arithmetic, the processor, building a data path, pipelined datapath and control, data hazards and control hazards, memory technologies, basics of caches, measuring and improving cache performance, virtual machines, virtual memory, and parallel processors.
Circuit Analysis II 0104330 This course covers sinusoidal steady-state circuit analysis including phasors, impedance, admittance and analysis techniques; steady-state power analysis including instantaneous, average, and complex power; mutual inductance and transformers; frequency response; resonant circuits; passive filters; and two-port networks.
Electronic Circuits 0104331 This course covers diode circuits and applications; Field-Effect Transistors (FET) and Bipolar Junction Transistors (BJT); DC biasing of amplifiers; small signal models for transistors; the types of single-stage amplifiers; and multistage amplifiers.
Digital Electronics 0104333 This course discusses digital design techniques for integrated circuits. Emphasis is on the design of logic gates and circuits at the transistor level. A number of different logic families are described, including CMOS, ECL, TTL, and BiCMOS.
Microprocessor and Assembly Language 0104350 This course covers: the architecture of the microprocessor, microprocessor instructions, assembly language, basic I/O and memory interfaces.
VLSI Systems and Design 0104430 This course introduces VLSI design in CMOS technology, and provides a background on CMOS layout and physical design. The theory of MOS transistors is addressed along with characterization and performance estimation of CMOS circuits. In addition, the course covers array subsystems including decoders and memory systems, and provides an introduction to Verilog and VHDL to be used to design and simulate a finite state machine. Lab sessions are required.
Digital Systems Design 0104440 This course covers the concepts of sequential logic including Finite State Machine (FSM) models (Mealy and Moore), state transition tables and state diagrams. The course addresses FSM implementation with D and JK flip-flops, and design issues with regard of state reduction in FSMs and incompletely specified sequential circuits. The topic of Algorithmic State Machines (ASMs) is also addressed as well as asynchronous circuits and hazards. Throughout this course, the students learn a Hardware Description Language such as VHDL or Verilog to be used in designing with programmable logic (e.g. PLD, ROM, FPGA.) Lab sessions are required.
Advanced Computer Architecture 0104441 This course covers advanced concepts in computer architecture. Topics include instruction set architecture, pipelining, instruction-level parallelism, caches and virtual memory design, input/output systems, multiprocessors, and SIMD.
Real-Time Embedded Systems 0104450 This course introduces real-time embedded systems. It covers the different types of processors, where ARM processor will be intensely discussed. This course also, covers real-time operating systems, system design and modeling for developing real-time embedded systems, differentiates between general purpose operating systems and real-time operating system. Then, formulate real-time applications, which based on embedded systems.
Computer Network Protocols and Applications 0105400 This course introduces concepts and principles in today’s networks and various aspects of computer networking, including layered network architecture, TCP/IP suite, application layer protocols, client-server and P2P paradigms, transport layer protocols (TCP/UDP), packet delay, packet loss, throughput in packet switched networks, reliable data transfer, flow control and congestion control, IPv4/IPv6 addressing, subletting, CIDR, IP packet delivery and routing, Internet Control Message Protocol (ICMP), RIP, OSPF, BGP, data-link layer Protocols: ARP/RARP and Ethernet, and Multiprotocol Label Switching (MPLS).
Cryptography and Computer Network Security 0105410 This course introduces the basics of cryptography and its application to computer-network security services and mechanisms. It covers an overview of network security, security attacks, security services, security mechanisms, symmetric cipher, substitution techniques, transposition techniques, rotor machines, steganography, block cipher principles, differential and linear cryptanalysis, Data Encryption Standard (DES), Simplified-DES, Euclidean Algorithm, modular arithmetic, finite fields of the form GF(p), polynomial arithmetic, finite fields of the form GF(2^n), Advanced Encryption Standard (AES), Simplified-AES, asymmetric cipher model, principles of public-key cryptosystems, RSA Algorithm, digital signatures, Message Authentication Codes (MACs), and web security issues.
Computer Network Management 0105411 This course introduces the methods, techniques and tools for the management of telecommunication systems and networks. SNMP network management; OSI network management; CMIP; Web-based Network Management; Remote Monitoring (RMON, RMON2). Issues to be addressed include: configuration and name management, fault and performance management, security, and accounting management
Network Programming 0105420 This course introduces the students to the basic concepts of networks programming using Java programming language and its network libraries. The course covers the TCP/IP protocol stack, Internet Addressing and URL, Client-Server Model, Peer-to-Peer Model , I/O Streams, TCP Sockets, UDP Sockets, Multithreading and Multiplexing, Secure sockets, File Handling, Non-Blocking I/O, RMI, CORBA, Servlets, and Web Services.
Mobile IP 0105421 This course focuses on IP-based mobile telecommunications, especially with Mobile IPv6 protocol. The course topics include the concepts of mobile nodes, mobile agents, home agent discovery, binding with node/agent actions, IP security for mobile nodes and their home agents, and the operation of Mobile IPv6 with Internet Multimedia Subsystem (IMS) and Session Initiation Protocol (SIP).
Advanced Networks 0105520 This course presents various advanced topics in computer networks. The course covers layered communication architecture, reliable data transfer, TCP connection management, flow control, principles of congestion control, mechanisms of congestion control, Quality of Service (QoS), Integrated Services Architecture (ISA), Differentiated Services, IP performance metrics, Voice over IP, IPv6, VPN networks, Software Defined Networks (SDNs), Network Functions Virtualization (NFV), cloud computing, and the Internet of Things (IoT).
Data and Computer Communications 0106320 This course provides an overview of data communication and networks. Topics include transmission impairments analysis (Nyquist and Shannon) and mediums, modulation/ demodulation, Physical and Data Link Control layers issues, and multiplexing mechanisms.
Signals and Systems Analysis 0106330 This course covers the followings topics: Continuous- and discrete- time signals and system, Continuous and discrete linear time-invariant systems. Fourier Analysis: Fourier series and Fourier Transform. Laplace Transform and Z- transform.
Random Signals and Systems 0106331 This course includes discussion of probabilistic models, conditional probability; vectors of random variables; distributions and density functions; expectations and characteristic functions; independence; laws of large numbers; central-limit theorem; random process concepts; random signal analysis concepts
Introduction to Communications Systems 0106340 This course includes a review of signals, linear systems and Fourier theory, signals bandwidth and spectra, an analysis of analogue modulation systems (AM, PM and FM), synchronizations, characterization and effect of noise, transceiver architectures of analog systems, and overview of pulse code modulation
Electromagnetic Theory 0106350 This course introduces the basic concepts and mathematics of the classical Electromagnetic Theory. Topics include vector algebra, coordinate systems, a discussion of static electric field dielectrics, polarization, field distributions of charges, steady electric currents, field at boundary conditions, and Maxwell’s equations. Prior knowledge of vector calculus, differential equation and undergraduate level electromagnetic theory is required.
Digital Signal Processing 0106430 This course includes a review of discrete-time signals and systems properties and representation, sampling of continues time signals. The course will cover digital processing of continuous-time signals, a review of Z-transform, frequency response and impulse response for linear time-invariant systems. It also covers the design of Finite impulse response (FIR) filters and infinite impulse response (IIR) filters. Discrete Fourier Series and Discrete Fourier Transform (DFT). Fast Fourier Transform (FFT). Fourier analysis of signals using Discrete Fourier Transform.
Digital Communication 0106440 This course reviews probability, random variables and signal representation. It also introduces the power and energy analysis for signals using time domain and frequency domain. The course introduces the concept of data formatting, sampling theory, Nyquist Criteria, uniform and non-uniform quantization, digital modulation/demodulation techniques for baseband and band-pass signals, Intersymbol interference (ISI) and Equalization channel coding/decoding methods and techniques
Wireless Communications Fun-damentals 0106441 This course covers: Transmission fundamentals; RF wave propagation, Channel characterization, Multiple Access techniques; Spread spectrum; Wireless cellular concepts and Satellite communications.
Antennas 0106450 This course is designed to familiarize a student with the field of antenna theory and electromagnetic radiation. Topics will include: Antenna parameters; Radiation integrals; Dipole and loop antennas; Travelling-wave antennas; Aperture and microstrip patch antennas; Linear and planar antenna arrays.
Satellite Communications 0106550 This course covers the historical perspective, orbital mechanics and constellations, satellite space segments, satellite propagation, link budgets, satellite access techniques.
Calculus 10107101 This course introduces the functions, foundation of trigonometry functions and its graphs, Limits and continuity, the concept and methods of Differentiation, curve sketching, maximum-minimum problems, related rates, Mean Value Theorem, the concept of anti-derivative, Riemann integral, logarithm, and exponential functions
Linear Algebra 0107102 This course covers Linear equations, Gaussian elimination, Matrices, Algebraic properties of matrix operations, determinants, vector spaces, subspaces, basis and dimensions, Linear dependence and independence, Linear transformations, eigenvalues and eigenvectors.
Probability Theory and Statistics 0107103 This course covers a progression of topics from introduction to statistics, constructing and interpreting graphs, measures of central tendency, measures of dispersion (or variation), measures of position, linear regression and correlation analysis, the fundamental principle of probability, discrete probability distributions and Continuous (i.e. normal) distribution, and Estimating Single Population Parameters (confidence interval estimation). Applications and problem-solving are emphasized.
Calculus 20107104 This course covers the following topics: applications of definite integrals to calculate volumes and lengths of plane curves, and area of surfaces of revolution, techniques of integration, first order differential equations, infinite sequences and series, power series, parametric equations, polar coordinates, vectors and the geometry of space.
Discrete Structures 0107200 This course covers how to formulate and represent problems mathematically, think logically and apply mathematical techniques for solving such problems. To this end, students will learn logic and proof, sets, functions, induction and recursion. The course will also cover some combinatorial principles and methods such as counting, permutation and combination. Key topics involving discrete probability, Boolean algebra, graphs and trees are also covered.
Introduction to Numerical Methods 0107201 This course provides an overview of the practical experience in utilizing algorithms for solving numerical problems arising in applied sciences. Topics covered will include solution of linear and nonlinear systems, curve fitting and least square line, numerical differentiation and integration, solution of differential equations and system of linear Algebraic equations, Interpolation and polynomial approximation. A computer will be utilized in solving problem assignments.
Engineering Math 0107202 This course introduces the ordinary differential equations (ODEs) which can be used in many engineering applications. This course also provides an introduction to Laplace transform that may have a useful role in circuit analysis and control. There are other important topics covered in this course such as vector analysis and complex calculus which can be used in solving such engineering problems (e.g. fluid mechanics, thermodynamics, etc.).
Physics 10108103 This course covers: Introduction to the concepts of vectors, motion in one dimension, motion in two dimensions, Newton's laws of motion, circular motion, work and energy, and potential energy.
Physics 20108203 This course gives view of electric charge and electric field, Coulomb’s law, Gauss’s Law and its applications, Capacitance and dielectric, Current and Resistance, Ohm’s Law, Direct current circuits, Kirchhoff’s rules, and Magnetic fields.