Skip Ribbon Commands
Skip to main content
   YU Faculty Websites>>  Dr. Mohammad A. Al-Jarrah Sign In
Use SHIFT+ENTER to open the menu (new window).
Advanced Operating Systems
Process synchronization and inter-process communication, kernel module programming,interrupt service routine, device drivers, debugger, distributed operating systems: structure,file system and coordination, protection and security concepts. The Linux operating system structure, distributed computing, Linux clusters and Linux device drivers
Advance Embedded Systems
Embedded system concepts, hardware architecture, design and debugging, embedded processor selection, software development methodologies, real-time Linux, synchronization mechanisms, interrupt latency, application programming interface, interrupt service routine, application design consideration
Digital system design using FPGAs
Basic semiconductor physics, digital logic families, design methodologies, digital logic circuits, programmable logic devices, digital logic implementation with CPLD and FPGA, Verilog compilation for CPLDs and FPGAs, synthesis of Altera CPLD and FPGA, synchronous versus asynchronous design, clock skew and path delays, PCB layout, post routing issues, embedded RAM and design criteria
Design and verification of digital hardware using HDL
HDL for digital design, Verilog module and coding structure: data types, expressions, and statements. Hierarchical design approach, verification methodologies, simulator compiler control, value change dump, sample design for simulation, designing combinational and sequential circuits, finite state machines, and test benches.
Realtime embedded systems
Design of microprocessor-based embedded system application. Embedded system elements: sensor/actuator devices, A/D and D/A I/O interfaces, commercial real-time operating system, multi-tasking application software. Topics include: real-time kernel configuration and extension, main loop designs, multi-tasking, inter-task communication, cooperative and priority pre-emptive designs, hard real-time scheduling theory and design, latency, response.
time, system performance, and development and testing techniques
Image processing and computer vision
Digitization and coding of images, characterization and representation of digital images in spatial and frequency domains, image restoration, perception and enhancement, filtering of twodimensional signals, image reconstruction, advanced techniques for interpretation, analysis, and classification of digital images. Topics include methods for: segmentation, feature extraction, recognition, stereo vision, 3-D modeling, and analysis of time varying imagery
Advanced computer networks
Basic networking concepts, IP addressing mechanisms, packet filtering, network security basics, cracking algorithms, the IP security protocol and VPN clients, tunneling devices and embedded security products, TCP/IP protocol stack, network management issues and
requirements, wireless networking LAN, WAN, and Bluetooth
Principles of object oriented programming and design
Overview of object oriented Programming methodology (OOP), classes, operator overloading and conversions, inheritance, polymorphism, exception handling. principles of the object-oriented analysis and design including, behavioral modeling of object oriented software, structural modeling of object oriented software, modeling of the dynamicity of object oriented software, design of distributed object oriented software using J2EE and .NET technology.
Artificial intelligence for engineers
Artificial intelligence representations, techniques, and architectures used to build applied systems and to account for intelligence system from engineering point of view, applications of rule chaining, heuristic search, logic, constraint propagation,
constrained search, and other problem-solving paradigms. In addition, applications of decision trees, neural nets, SVMs and other learning paradigms.
Digital Logic Design
Fundamentals of digital electronics, Binary number system; Boolean algebra, logic gates, digital circuit analysis, gate-level and block level design of combinational digital circuits: adders/subtractors, comparators, multiplexers, decoders. Analysis, design and applications of sequential logic circuits: flip-flops, registers, counter, and their design procedures, memory elements: RAM and ROM
Object Oriented Programming Design
Overview of OOP language, Object Oriented Programming methodologies, Classes and data abstraction, Constructors and destructors, Operator Overloading and conversions, Subclasses and Inheritance, Virtual functions and polymorphism, Templates and Exception handling. Hands-on experience on theoretical engineering topics in a comprehensive application laboratory
Engineering Computation and Simulation
Overview of engineering computation algorithms and simulation environments, Issues in engineering Solution to sets of linear equations,  curve fitting, Finite difference techniques and applications, Numerical integration, Numerical Solution of ordinary differential equations,  Numerical Solution of partial differential equations, Random number generation, Simulation of linear continuous-time dynamic systems, Simulation of discrete-event systems, simulation of random processes
Microprocessor and microcontroller Systems   Design
Introduction to microprocessors and Microcontrollers, Embedded Controllers  and application, Instruction Set and Register Set for microprocessors and microcontrollers,  programming microprocessors and microcontroller,  microprocessor and microcontrollers Hardware Configuration, Resets and Interrupts, Clock and Timer Systems, Memory maps, Analog-To-Digital (A/D) and  Digital- To analog (D/A), Converters, parallel interfacing , serial interfacing, microprocessor and microcontroller applications
Computer Hardware Design Using HDL language
The objective of the course is to provide a comprehensive coverage of digital hardware design concepts using HDL. The basics of HDL module and coding structure: data types, expressions, and statements will be introduced. Introduction to hierarchical and behavioral design approaches are tackled
Object-Oriented Modeling and Applications
Principles of the Object-Oriented paradigm including, advanced issues of inheritance and polymorphism, Object-Oriented analysis, Object-Oriented Design, behavioral modeling of object oriented software,  structural modeling of object oriented software, modeling of the dynamicity of object oriented software, Design patterns and components; the design patterns part includes creational, structural and behavioral patterns, and the components, software design utilizing technologies such as J2EE and .NET framework
Algorithms and Data Structures
Introduction to algorithms and abstract data types and structures, data structure includes arrays, linked lists, queues, stacks, binary trees, Graph, hash tables, Algorithm includes sorting algorithms, searching algorithms, shortest path in a graph, algorithm analyses including Big-Oh analysis, programming techniques includes static versus dynamic memory allocation, recursion, and hasing techniques
Fundamentals of Computer Graphics
Introduction to computer graphics hardware, algorithms, and software. principles of line generators, affine transformations, line and polygon clipping, splines, interactive techniques, perspective projection, solid modeling, hidden surface algorithms, lighting models, shading, and animation. Standard computer graphics API and libraries to reinforce concepts and study fundamental computer graphics algorithms
Computer Architecture
Basic computer organization, central processing unit, arithmetic logic unit, microprogramming control and control unit, arithmetic processor, input/output units, memory units
Computer Interfacing
Design and interfacing of the 80X86 PC. In-depth description of the 8086/ 8088 microprocessor-based systems: bus buffering, memory interfacing, interrupt handling, keyboard and display interfacing, floppy drive controller interfacing, and direct memory access (DMA) controller interfacing. The specific 8086/ 8088 microprocessor-supporting chips: 8284 Clock Generator and Driver, 8288 Bus Controller, 8251 USART, 8255 PPI, 8259 PIC, and 8237 DMA Controller
Database Management Systems
Introduction and History, DBMS Architecture, Storage Hierarchy, Indexes, Entity-  relationship (E-R) modeling, the relational model, Relational Query Language (SQL), Query processing and optimization, Transaction Processing (Transactional properties, Concurrency control, Locking, and Crash recovery), introduction to distributed databases. Required software tools: A main-stream commercial DBMS such as SQL 2000 or Oracle. Individual projects are given for the students to sharpen their database development skills using latest software tools and concepts.
Software Engineering
Fundamentals of software engineering and the software development process. Topics covered include: Software project management, project planning and scheduling, Software requirements and specifications, Software systems modeling and design techniques, CASE tools and software development environments. Software testing, documentation and maintenance, software cost analysis and estimation
Operating Systems Design
Operating system structures, process concept, hierarchy of processes, semaphores, inter-process communication, CPU scheduling, deadlocks, memory management, virtual memory, secondary storage management, file systems, I/O systems, study development of a sample operating system
Operating Systems Programming
Philosophy and structure of the Win32 API  and Unix system services: file system, process and thread management, inter-process communication, network programming, and synchronization. Microsoft Windows and UNIX TCP and UDP Communications. Connection-Oriented Client-Server Architecture. Remote procedure calls and COM overview. Individual projects are given to students to enhance their systems programming development skills using latest software tools and concepts. The project divided into sub-tasks runs thought the whole semester
Principles of Embedded  Systems
Fundamentals of embedded system hardware and firmware. Embedded processor selection, hardware/firmware partitioning, glue logic, circuit design, popular microcontroller for embedded systems, architecture and instruction set of the microcontroller, hardware-software co-design techniques and verification techniques, embedded programming environments, real-time embedded systems, real-time scheduling
Computer Networks
Study of computer network architectures, protocols, and interfaces. The OSI reference model and Internet architecture. LAN and WAN technologies, networking and internetworking techniques, packet/cell switching, , end-to-end protocols, congestion control, network security,  and an in-depth coverage of TCP/IP