List of COE Courses (Graduate Programs)


COE 501-Computer Architecture (3-0-3)
Hardware and software approaches to ILP, dynamic, speculative, VLIW, and superscalar execution models. Examples and case studies. Dynamic branch prediction techniques. Memory hierarchy, cache, virtual memory, cache coherence, and memory system performance. Parallel architecture models, coherence protocols, and interconnection networks. The students are expected to carry out research projects in related fields of study.

Pre-requisite: Graduate Standing

COE 502-Parallel Processing Architecture (3-0-3)
Introduction to parallel processing architecture, sequential, parallel, pipelined, and dataflow architectures. Parallel program models. Basic parallel programming techniques, problem decomposition, assignment, orchestration, and mapping. Examples and case studies of static, semi-static, and dynamic application parallelism. Performance: evaluation, scalability, and workload selection.

Pre-requisite: Graduate Standing

COE 504-Heterogeneous Computing (3-0-3)
Introduction to Hard-RT, Soft-RT, and Firm-RT heterogeneous systems. Network heterogeneous computing: design issues, architecture, programming paradigm, environment, and Middleware Technologies. Applications and case studies. The students are expected to carry out research projects in related fields of study.

Pre-requisite: Graduate Standing

COE 506: GPU Programming and Architecture (3-0-3)
Basics of conventional CPU architectures, their extensions for single instruction multiple data processing (SIMD) generalizations of single instruction multiple thread processing (SIMT) in modern GPUs. GPU architecture is basic in terms of functional units. CUDA programming model. Architecture-specific details (like memory access coalescing, shared memory usage, GPU thread scheduling) that affect program performance. OpenCL/OpenACC which can be used for programming both CPUs and GPUs in a generic manner. Different architecture-aware optimization techniques are relevant to both CUDA and OpenCL. Application development
examples in well-known GPU computing scenarios.

Pre-requisites: COE 502

COE 509: Special Topics in Computer Architecture and HPC (3-0-3)
Advanced topics selected from current issues in Computer Architecture and High-Performance Computing.

Pre-requisites: Graduate Standing and Consent of Instructor

COE 510: Programming Methods for Robotics (3-0-3)
Introduction to the key elements of robotics programming. Key skills in implementing robotic software for real-time systems. Robot programming methods using ROS (Robot Operating System) include creating ROS service servers, implementing ROS nodes, communication between ROS nodes, and ROS data structures. Simulation of robotics systems, such as SLAM using ROS frameworks. Hands-on experience in using ROS for programming ground robots and UAVs.

Pre-requisites: Graduate Standing

COE 511: Multi-agent Robotic Networks (3-0-3)
Principles of algebraic graph theory. Ad hoc networks: IoT and sensor network enabling technologies, Machine to Machine (M2M) routing protocols. Network topology, connectivity maintenance, fault tolerance, and coverage. Autonomous multi-robot systems formations, maintenance, and control. Building a network of robots to achieve a common goal, e.g., cooperative Simultaneous Localization and Mapping (SLAM). Case studies.

Pre-requisites: AE 581

COE 512: Sensing and Actuation for Intelligent Robots (3-0-3)
Integration of computational intelligence with advanced sensors and actuators for robotic systems perception. Computer vision, robot perception and place recognition, feature extraction, vision object tracking, and obstacle avoidance. Data acquisition and control, robotic system integration. Basic topics in micro-electro-mechanical systems (MEMS) and smart materials sensing and actuation. A basic introduction to microcontroller‐based embedded systems, I/O interfacing, task scheduling, and other related topics.

Prerequisites: Graduate Standing

COE 515: Introduction to Smart Systems (3-0-3)
Introduction to smart systems. Sensors and actuators: working principles, classifications, performance, characteristics, interfacing with feedback control, and data acquisition. Embedded systems: types, architectures, memory management, and interfacing. Concurrency: software and hardware interruptions, timers. Embedded operating systems: components, considerations, configuration, and resource management. Embedded systems integration and programming, profiling, and code optimization. Power management and energy harvesting.

Pre-requisite: Graduate Standing

COE 516: Internet of Things Security (3-0-3)
Introduction to security principles and technologies related to the Internet of Things (IoT) and its components: devices, operating systems, sensors, data storage, networking and communication protocols, and system services. IoT vulnerabilities, attacks, and mitigation techniques. Hands-on and case studies.

Prerequisite: Graduate Standing

COE 520-Queuing Theory and Network Applications (3-0-3)
Introduction to network applications, discrete random variables, continuous random variables, and characteristic functions. Introduction to stochastic processes. Discrete-time Markov chains, continuous-time Markov chains. Introduction to queuing theory, M/M/1 and derivative queues, and M/G/1 queues. Burke’s theorem. Jackson’s theorem: an open and closed network of queues. Applications to computer networks and case studies.

Pre-requisite: Graduating Standing

COE 523: Distributed Computing (3-0-3)
Introduction to distributed computing and systems: processes, tasks, threads, and abstraction. Architectural models of distributed systems and their design issues. Mutual exclusion, condition variables, and atomic instructions. Time and synchronization. Distributed algorithms and their models of execution. Consensus and leader election protocols. Distributed file systems. Distributed ledgers. Scalability-enabling techniques: partitioning and replication. CAP theorem. Locking and transactions: 2PL and 2PC. ACID transactions. Programming constructs and techniques: sockets programming, remote procedure calls. Fault-tolerance. Logging and crash recovery. Examples of distributed systems: DNS and CND. Hands-on sessions.

Pre-requisites: Graduate Standing

COE 530: Quantum Computer & Architecture (3-0-3)
Digital logic: logic gates, combinational digital circuits. Computer organization: Instruction set architecture. Quantum gates. Quantum circuits. Quantum architecture. Quantum Programming. Quantum Compilers. Qubit control and measurement. Quantum Benchmarking.

Pre-requisites: Graduate Standing

COE 531: Advance Quantum Computing and Communication (3-0-3)
Combinatorial optimization. Quantum Optimization. Variational quantum algorithms. Quantum noise models. Quantum error-correction. Quantum fault-tolerance. Quantum communication protocols. Quantum key exchange: BB84. Quantum Internet. 

Pre-requisites: Graduate Standing

COE 532: Emerging Quantum Technologies (3-0-3)
Recent advances in emerging technologies in quantum hardware. Quantum Internet. Advanced quantum algorithms and quantum machine learning. Applications of quantum computing. 

Pre-requisites: ICS 561, COE 531, PHYS 514

COE 540-Computer Networks (3-0-3)
Review of Computer network layering concepts and quality of service requirements. Physical Layer, Data Link Layer; ARQ Strategies; Analysis of ARQ Strategies. Multi-access communication. Network Layer. Routing in Data Networks. Flow and Congestion Control. Transport Layer. Application Layer: peer-to-peer networking, Content Distribution networks. Studying a number of classic and current papers on these subjects. Case studies.

Pre-requisite: Graduate Standing

COE 541-Local and Metropolitan Area Networks (3-0-3)
Local and Metropolitan Area Networks classes, standards, and network architectures. The physical layer for LANs and MANs. Introduction to basic Queueing Models. Multiple access techniques and protocols for advanced Local and Metropolitan Area Networks. Design issues, and performance modeling and analysis. Interworking and network management for LAN and MAN. Case studies include Gigabit/Terabit Ethernet, Gigabit WiFi, G/EPONs, etc. Emerging LAN and MAN technologies.

Pre-requisite: Graduate Standing

COE 542-Information-Centric Networking (3-0-3)
Exploring issues with current Internet architecture. Introduction of the concept of Information-Centric Networking (ICN) and how it addresses those issues. Components of ICN such as caching, data-naming, routing and forwarding, and security. ICN proposed architectures such as Named-Data Networks (NDN), Networks of Information (NetInf), Data-Oriented Network Architecture (DONA), and Publish-Subscribe Internet Routing Paradigm (PSIRP).

Pre-requisite: Graduate Standing

COE 543-Mobile Computing and Wireless Networks (3-0-3)
Introduction to radio frequency propagation models. The physical layer for advanced mobile systems. Cellular configurations and interference mitigation and coordination methods. Multiple access techniques for wireless networks. Wireless network architecture. Mobility solutions for mobile networks (Mobile-IP, Session Initiation Protocol, mobile-Stream Control Transport Protocol, etc.). Quality of service, reliability, and security in a mobile computing environment. 5th generation wireless networks. Case studies include Wireless Personal Area Networks (e.g. Bluetooth, Zigbee, etc.), Wireless Local Area Networks (e.g. 802.11n, 802.11ac, etc.) Wireless Metropolitan and Wide Area Networks (e.g. WiMAX-2, LTE/LTE-Advanced, 5G, etc.).

Pre-requisite: Graduate Standing

COE 544-Wireless Ad hoc Networks (3-0-3)
Introduction to the most recent advanced Mobile Ad hoc Networks (MANETs) routing protocols. Issues that are related to design protocols such as scheduling, capacity, medium access, QoS, topology control, and mobility tracking will be covered. In addition, modeling techniques as well as delay models will be covered using Linear Programming.

Pre-requisite: Graduate Standing

COE 545-Wireless Sensor Networks (3-0-3)
The basic hardware and software platforms for sensor networks will address in detail several algorithmic techniques for deployment, localization, synchronization, MAC, sleep scheduling, data routing, querying processing, topology management, and energy-aware protocols. Hands-on experience through programming projects involving different platforms. In addition, different microcontrollers, such as Arduino will be used to interface different wireless communication transceivers with sensors.

Pre-requisite: Graduate Standing

COE 546-Computer Network Design (3-0-3)
Introduction to different types of computer networks: LANs, VLANs, Inter VLAN Routing, ISL/802.1Q Trunking, and WANs. STP and, PVST protocols, in addition to ACL (Standard and Extended). Subnetting and Interior and Exterior for Routing for IPv4 and IPv6. Multicasting, Internet Group Management Protocol (IGMP) and Multicast Listener Discovery (MLD) protocols, Software Defined Networking (SDN). Reliability. Data in support of network design. Packet tracer simulator/emulator or other simulation tools will be used heavily. 

Pre-requisite: Graduate Standing

COE 547-Network Management (3-0-3)
Overview of network management. Network management standards and models. Network management system design. Network configuration management. Network management protocols: SNMP and RMON. Network management tools and systems. Network management applications. SNMPv3 security engine. SNMPv3 access control. SNMPv3 authentication and encryption protocols. Security management.

Pre-requisite: Graduate Standing

COE 548-Cloud Computing: Architecture and Security (3-0-3)
Study of cloud computing principles, architectures, and actual implementations. Cloud solutions performance evaluation. Performance issues such as security, cost, usability, and utility of cloud computing solutions will be studied both theoretically and in hands-on exercises. How to construct and secure a private cloud computing environment based on open-source solutions, and how to federate it with external clouds.

Pre-requisite: Graduate Standing

COE 550-Introduction to Internet of Things (3-0-3)
IoT systems design and architecture: elements of IoT system, potentials, constraints, and applications. IoT access technologies. IoT networking protocols such as 6LoWPAN. IoT application layer protocols such as MQTT and CoAP, and Wireless Personal Area Networks (WPAN) such as ZigBee. Low Power Wide Area Networks (LPWAN) such as LoRaWAN. IoT network architecture: cloud, fog, and edge layers.

Pre-requisite: Graduating Standing

COE 551-Computer and Network Security (3-0-3)
Overview of Online attacks, Malware, Social engineering, Physical and Communication security, Access control techniques, Cryptography: Classical cipher, Mathematical cipher, Stream cipher, Block cipher, public key. Other information security: Steganography, Hashing, Secret sharing, Software reverse engineering & Program security, Firewalls & IP sec, Security policy & risk management, Advanced security topics.

Pre-requisite: Graduate Standing

COE 552-Software Defined Networking (3-0-3)
SDN paradigm and decoupling of control-plane and data-plan. OpenFlow. Controller design and network programmability. Open-source controllers: Floodlight, NOX/POX, Open Daylight, etc. Traffic engineering using SDN (e.g. e.g.,le B4, Microsoft SWAN, and SDX). SDN virtualization: Flow Visor, Open vSwitch, and Network Function Virtualization (NFV). SDN for data centers, enterprise networks, wireless and mobile networks, and for service provider networks. Case studies.

Pre-requisite: Graduate Standing

COE 553-Fault Tolerance and Reliability in Computer Networks (3-0-3)
Introduction to concepts of faults, errors, and failures. Basic concepts of dependable computing include dependability attributes, means, and validation. Stochastic modeling techniques in the context of network reliability analysis. Error detection and correction techniques. Fault-tolerant topology design. The practices of reliable and fault-tolerant computer network design. Case studies.

Pre-requisite: Graduate Standing

COE 557: Emerging Advanced Networks  (3-0-3)
Recent advanced emerging technologies in computer networks, such as software-defined networking (SDN) and network functions virtualization (NFV), information-centric networking, smart grid communications, new wireless generations (6G and beyond), security aspects of new emerging technologies, etc. Students will search the literature for the state of the art of the most significant emerging technologies, explore new ideas through simulation projects, and finally present their findings.

Pre-requisite: COE 540

COE 558: Cloud and Edge Computing (3-0-3)
Internet and web protocols and technologies. Basics of web development: frontend, backend, and full stack. Web services and RESTful APIs. Introduction to utility computing: Cloud and Edge computing. Cloud Service-oriented architecture and microservices. The XaaS pyramid. Serverless computing. Cloud resource management. Automated deployment and operations techniques. Virtualization and containerization. Cloud data storage: block storage, object storage, and file storage. Cloud "Big data" processing: MapReduce and Hadoop, Spark, BigTable. Cloud-native applications. Security of Cloud Computing.

Pre-requisite: Graduate Standing

COE 559 Special Topics in Computer Networks and Security (3-0-3)
Any state-of-the-art topics or topics of recent interest in any areas of computer systems and applications that may not fit well with the description of the previously mentioned courses.

Prerequisite: Consent of the Instructor.

COE 561-Digital System Design and Synthesis (3-0-3)
Overview of modern digital systems, Digital system hierarchy & abstraction levels, Design and Modeling using HDL, Design optimization and performance criteria, High-Level synthesis, Digital system implementation using FPGAs.

Pre-requisite: Graduating Standing

COE 562-VLSI System Design (3-0-3)
Review of MOS transistors, modeling, scaling, sizing, and physical design (layout). IC Design Styles, Combinational and sequential logic, static CMOS, Dynamic circuits, and pass-transistor logic. Clocking strategies, clock skew, setup, hold & propagation delays, self-timed logic, I/O design. Design considerations of regular structures: ROMs, PLAs, arithmetic circuits. CAD tools used in VLSI design (schematic, layout, DFT ...etc.). CMOS memory architecture, design constraints. ROM, SRAM, and DRAM cells. Single and double-ended bit line sensing. Multiport register files. The course is project-oriented stressing the use of CAD tools throughout class projects.

Pre-requisite: Graduate Standing

COE 563-Synthesis and Optimization of Digital Systems (3-0-3)
Digital design styles, design representations, abstraction levels & domains, Binary Decision Diagrams, Satisfiability and Covering problems, Two-level logic synthesis and optimization: Exact and heuristic techniques, Testability properties of two-level circuits, Multi-level logic synthesis and optimization, Observability and controllability don't care conditions, Testability properties of multilevel circuits, Synthesis of minimal delay circuits, Sequential logic synthesis: state minimization, state encoding, retiming, Technology mapping, High-level synthesis: data flow and control sequencing graphs, scheduling, allocation.

Pre-requisite: Graduating Standing

COE 565: Introduction to Hardware Security and Trust (3-0-3)
Introduction to Hardware (HW) Supply Chain; Design, Manufacturing, and Test. Review of Cryptography primitives. Attacks on HW & Mitigation techniques; Physical & Invasive attacks, Side-channel Attacks, Fault-injection Attacks, and FPGA Security. Supply Chain Attacks & Mitigation techniques; Attacks on Electronic Design Automation (EDA) Tools, HW Trojans, HW Intellectual Property (HWIP) theft, over-use, and counterfeiting, IC over-production, and counterfeiting, HW-based Physically Unclonable Functions (PUFs), True Random Number Generators (TRNG), and Root of Trust, HW Watermarking, Metered-HWIPs, and Logic Locking.

Pre-requisite: Graduate Standing and Prior Knowledge of Hardware Design

COE 566-VLSI ASIC Design (3-0-3)
Review of MOS transistors, modeling, scaling, sizing, physical design (layout), and static versus dynamic logic. MOS logic optimization of delay and area. IC Design Styles, Hardware description languages, ASIC design flows. ASIC design with HDL. ASIC library design, cell characterization, design area, and delay. Standard-cell design methodology, propagation delay, design area, critical path, placement and routing of cells, design optimization, and back annotation. HDL modeling, technology mapping, and synthesis. ASICs test techniques, fault models, boundary scans, and DFT. The course emphasizes hands-on experience through the use of available design tools for the design of ASIC VLSI.

Pre-requisite: Graduate Standing

COE 567-Digital System Modeling and Verification (3-0-3)
Introduction and approaches to digital system verification. Simulation versus Formal Verification. Levels of hardware modeling (circuit, switch, gate, RTL, and Behavioral levels). Hardware description languages, Principle of Formal hardware modeling, and verification. Model-checking; binary and word-level decision diagrams, symbolic methods, Mathematical logic (First-order logic, Higher-Order Logic, Temporal Logic). Abstraction mechanisms for hardware verification. Automated theorem provers. Verification using Specific Calculus. Formal verification versus formal synthesis. Future trends in hardware verification.

Pre-requisite: Graduating Standing

COE 568-Design of Re-Configurable ASICS (3-0-3)
Review of modern digital systems and their designs. Hardware description languages, ASIC design flows. Field programmable gate Arrays: Architectures, Configuration Techniques, Design Parameters, and Models. FPGA Design Flow. Application Domains, Custom computing machines, and FPGA-based hardware accelerators. Case studies and contemporary issues in reconfigurable computing.

Pre-requisite: Graduate Standing

COE 571-Digital System Testing (3-0-3)
Basic principles and practice of digital system testing, Test Economics, Fault models, Fault simulation, Test generation for Combinational and Sequential circuits, Test compaction, Test Compression, Fault Diagnosis, Delay-fault testing, Design for testability, Boundary Scan, Built-in self-test: logic BIST and memory BIST, Testing of system-on-chip.

Pre-requisite: Graduating Standing

COE 572-Computer Aided Design of Digital Systems (3-0-3)
An up-to-date survey of design automation techniques for digital hardware designers. Digital design languages, System level simulation. Register-transfer-level description and simulation. Gate-level simulation. Partitioning, placement, and routing for printed and integrated circuits. Fault simulation and test generation. Automated documentation. Integrated design systems. Hands-on experience with an actual design automation system

Pre-requisite: Graduate Standing

COE 579 Special Topics in Digital Sys. Design and Automation (3-0-3)
Advanced topics selected from current issues in the area of digital system design and automation.

Pre-requisite: Consent of Instructor.

COE 581-Digital Forensics (3-0-3)
Research-oriented graduate course in digital forensics. The course aims to provide an extensive background suitable for those interested in conducting research in this area, as well as for those interested in learning about digital forensics in general. The course focuses on technical issues and open problems in the area. Topics include fundamentals of digital forensics; digital forensics models; OS artifacts forensics; live and memory forensics; network forensics; mobile devices forensics; current tools and their limitations; legal and ethical issues.

Pre-requisite: Graduating Standing

COE 587-Performance Evaluation and Analysis (3-0-3)
Simulation of the functions of a computer system, Analytical and stochastic methods of performance, Graph models for multiprocessors, and parallel processing. Performance measures. Performance evaluation techniques. Application areas. The modeling cycle. Flow analysis. Bottleneck analysis. Hierarchical modeling. Case studies.

Pre-requisite: Graduate Standing

COE 588-Modeling and Simulation of Computer and Networks Systems (3-0-3)
Computation as a third tool for the scientific method; Simulating probabilities, random variables, and stochastic processes; Discrete-event simulation; performance laws; event graphs; random number and variate generation; Monte Carlo methods; output analysis; case studies.

Pre-requisite: Graduating Standing

COE 589: Special Topics in Computer Systems and Applications (3-0-3)
Advanced topics selected from current issues in the area of digital system design and automation.

Pre-requisite: Consent of Instructor.

COE 590: Reinforcement Learning for Self-Adaptive Systems (3-0-3)
Models, architectures, and development environments of self-adaptive software systems (SAS) for security and resiliency. Theoretical foundations, development toolkit, and evaluation of autonomous self-adaptive systems using reinforcement learning (RL). RL Algorithms include Policy-based reinforcement, Value-based SARSA and DQN, Hybrid RL Actor-critic and Proximal Policy Optimization, and Multi-agents RL. Assurability and robustness of self-adaptive systems against adversarial learning. Case studies of RL-based self-adaptive systems using OpenAI Gym and UCB Ray to improve security, resilience, and quality of experience of interconnected systems. Cybersecurity applications of self-adaptive systems that include risk-aware cyber mission planning, cyber deterrence, security orchestration and response, and cyber deception. Non-Cybersecurity applications of self-adaptive systems such as rescue mission planning, smart environment, gaming, and smart manufacturing.

Pre-requisite: Graduating Standing

COE 592: Machine Learning on Embedded Systems (3-0-3)
Introduction to Embedded and Efficient Machine Learning and Intelligence. TinyML applications and use cases. Efficient training techniques (distributed training, gradient compression, and on-device transfer learning). Efficient inference techniques (model compression, pruning, quantization, efficient neural architecture search, and distillation). Application-specific model optimization techniques. TinyML frameworks, tools, and techniques. Emerging topics and research in Embedded and Efficient Machine Learning methods and applications. Hands-on experience in implementing deep learning applications on resource-constrained devices. Pre-requisite knowledge: Basic knowledge of machine learning and deep learning

Pre-requisite: Graduate Standing

COE 593-Multimedia Systems (3-0-3)
Multimedia architecture and systems in ubiquitous computing devices. Time-Frequency Representation, Predictive Coding, Speech Analysis and Synthesis, Image Understanding and Modeling, Image Compression Techniques, Color Models and Color Applications, 3-D Representation, Illumination Models, Graphics Systems, MPEG Standards, Video Compression, Video Conferencing, Digital Rights Management. Distributed machine learning systems and computational challenges.

Pre-requisite: Graduate Standing

COE 595: Advanced Computer Vision Processing (3-0-3)
Introduction to computer vision processing and intelligence. Vision sensing and imaging techniques. Image representation, Image processing, Feature detection and matching, and Feature extraction. Image classification, object detection and tracking, semantic segmentation, motion, and depth estimation. Deep learning for visual intelligence. 3D Vision. Introduction to embedded computer vision. Emerging topics and research in computer vision methods, systems, and applications. Hands-on experience in building computer vision applications.

Pre-requisite: Graduate Standing

COE 596-Intelligent Computing (3-0-3)
Overview of natural evolution and its application as a problem-solving tool. Genetic algorithm and its extensions. Simulated annealing and taboo search. Evolution strategies and genetic programming. Social computing. Plant-based algorithms. Neural networks. Quantum computing. Examples and applications.

Pre-requisite: Graduating Standing

COE 597-Real-Time Systems (3-0-3)
Introduction to real-time systems, concurrency, and timing constraints, real-time programming: task model and specification, event loop, never-ending tasks, periodic and aperiodic tasks, thread synchronization, inter-task communication, synchronization, memory management, scheduling: rate-monotonic scheduling, EDF, resource sharing, priority inheritance, sporadic servers, multiprocessor scheduling, reliability, and fault tolerance. Digital feedback control systems for example RTS, implementation strategies, sampling rate and
effect of task scheduling on control latency, case studies.

Pre-requisite: COE 515 or Consent of Instructor

COE 599-Seminar (1-0-0)
Graduate students are required to attend the seminars by faculty members, visiting scholars, and fellow graduate students. Additionally, each student must present at least one seminar on a timely research topic. Among other things, this course is designed to give the students an overview of research in COE, and a familiarity with research methodology, journals, and professional societies in his discipline. Graded on a Pass or Fail basis.

Pre-requisite: Graduating Standing. Not to be taken with COE 699

COE 600- Computer Networks Project (0-0-3)
A project on an independent study performed under the supervision of a COE faculty advisor. A written report should be submitted, presented, and orally examined by a faculty committee.

Pre-requisite: None

COE 601-Massively Parallel Computing (3-0-3)
Introduction to massively parallel multiprocessors and their programming models. Streaming multiprocessor, SIMD, and multithreading. Highly multithreaded architectures, thread-Level parallelism, resources sharing, thread scheduling, score-boarding, transparent scalability. Data dependence analysis, recurrences, races. Shared memory, atomicity, mutual exclusion, barrier, and synchronization. Memory hierarchy optimization, locality and data placement, data reuse, loop reordering transformations, shared-memory usage, global memory bandwidth, and accesses. Control flow, SIMD, thread block partitioning, vector parallel reduction, tree-structured computation, serialized gathering, Predicated execution, and dynamic task queues. Applications of static, semi-static, and dynamic parallel computations: dense and sparse linear Algebra, bucket sorting, N-body simulation, and ray tracing.

Pre-requisite: COE 501

COE 606-Independent Research (3-0-3)
This course is intended to allow M.Sc. students to conduct research-related independent study. The faculty offering the course should submit a research plan to be approved by the COE Graduate Program Committee. The student is expected to deliver a public seminar and a written report on his research outcome at the end of the course. The course is graded on a Pass or Fail basis. To select adequate subjects, prior arrangement with the instructor is required. Graded on a Pass or Fail basis.

Pre-requisite: Prior Arrangement with the Instructor

COE 610-Computer Engineering Master Thesis (0-0-6)
The student has to undertake and complete a research topic under the supervision of a faculty member in order to probe in depth a specific problem in Computer Engineering. Graded on a Pass or Fail basis.

Co-Requisite: COE 599

COE 619- Project (0-0-6)
A graduate student will arrange with a faculty member to conduct an industrial research project related to the MX program the student enrolled in. Subsequently, the students shall acquire skills and gain experience in developing and running actual industry-based projects. This project culminates in the writing of a technical report and an oral technical presentation in front of a board of professors and industry experts.

Pre-requisite: Graduate Standing

COE 642-Computer Systems Performance (3-0-3)
Queuing theory. Stochastic Petri nets and Markov Chains. Separable queuing networks. Priority queuing systems. Queuing networks, product forms, and various solution techniques. Matrix geometric solutions to queuing theory. Bounds and approximations. Fluid analysis and diffusion processes. Evaluation studies: monitoring techniques, modeling methods, and model validation. Simulations and variance reduction techniques. Application of queuing theory to computer time sharing & multi-access systems, multiprocessor systems, and interconnection networks. Computer communication networks. Case studies of several distributed and network system configurations.

Pre-requisite: COE 520

COE 644-Radio Resource Management (3-0-3)
Radio resource management and performance analysis in transporting homogenous/heterogeneous traffic in wireless communication networks. Traffic characteristics, connection admission control, packet scheduling, access control, and mobility and handoff management. Cases studies on mobile wireless networks and wireless sensor networks.

Pre-requisite: COE 543

COE 645 Wireless Network Security (3-0-3)
Security for contemporary wireless communication networks such as cellular networks, wireless LANs, mobile ad-hoc networks, wireless sensors, and mesh networks. Study of diverse attack types such as radio signal jamming, MAC-layer attacks, routing attacks, Sybil, Blackhole attacks, and O/S dependent attacks. Study of countermeasures and scope for each of these attacks. Light-weight security for resource-constrained wireless devices. Secure multi-casting. Key management techniques for wireless networks.

Pre-requisite: COE 551

COE 647-Multimedia Networks (3-0-3)
Fundamentals concepts in multimedia systems. Resource management issues in distributed/networked multimedia systems, QoS routing, and multicasting. Traffic shaping, Traffic engineering, Task and message scheduling, Internet QoS. Adaptive multimedia applications over the Internet. Storage architecture and scalable media servers. Compression techniques, and synchronization techniques for multimedia. Multimedia over wireless networks. Case studies.

Pre-requisite: COE 540

COE 661-System-On-Chip Modeling and Design (3-0-3)
A current-day system on a chip (SoC) consists of several different microprocessor subsystems together with memories and I/O interfaces. This course covers SoC design and modeling techniques with an emphasis on architectural exploration, assertion-driven design, and the concurrent development of hardware and embedded software. This is the 'front end' of the design automation toolchain.

Pre-requisite: COE 561

COE 665-Hardware/Software Co-Design on Embedded Systems (3-0-3)
Embedded System Design Considerations, Classical Design Methods, co-representation, Performance Modeling, Co-design Trade-offs, Functional Decomposition, Partitioning, Design methodologies, Co-design Environments, Abstract Models, Recent Techniques in Co-design, Case Studies.

Pre-requisite: COE 561

COE 691 Special Topics in Computer Engineering - I (3-0-3)
Advanced selected topics in computer engineering.

Pre-requisite: Graduate standing and Consent of Instructor.

COE 692 Special Topics in Computer Engineering - II (3-0-3)
Advanced selected topics in computer engineering.

Pre-requisite: Graduate standing and Consent of Instructor.

COE 693 Special Topics in Computer Engineering - III (3-0-3)
Advanced selected topics in computer engineering.

Pre-requisite: Graduate standing and Consent of Instructor.

COE 699 Seminar (1-0-0)
PhD students are required to attend Departmental seminars delivered by faculty, visiting scholars, and graduate students. Further, each PhD student should present at least one seminar on a timely research topic. The course is graded as pass or fail. To secure a passing NP grade in this course, the student should have passed the PhD Comprehensive Exam. A student registered in the Seminar Course will be assigned an IC (incomplete) grade in case he fails the PhD Comprehensive exam in that semester. The IC grade will be changed to a passing NP grade once he passes the PhD Comprehensive Exam latest by the following semester to avoid having the IC grade changed to F.

Pre-requisite: Graduate Standing. Not to be taken with COE 599

COE 701 -Directed Research I (3-0-3)
This course is intended to allow students to conduct research on advanced problems in their Ph.D. area of specialization. Among other things, this course is designed to give the students an overview of research in COE, and a familiarity with research methodology, journals, and professional societies in his discipline. At the end of the course, the student must deliver a public seminar to present his work and findings. The course is graded on a Pass or Fail basis.

Pre-requisite: Prior arrangement with an instructor

COE 702-Directed Research II (3-0-3)
This course is intended to allow students to conduct research on advanced problems in their Ph.D. area of specialization. Among other things, this course is designed to give the students an overview of research in COE, and a familiarity with research methodology, journals, and professional societies in his discipline. At the end of the course, the student must deliver a public seminar to present his work and findings. The course is graded on a Pass or Fail basis.

Pre-requisite: Prior arrangement with an instructor

COE 711-Computer Engineering Ph.D. Pre-Dissertation (0-0-3)
This course enables the student to submit his PhD Dissertation Proposal and defend it in public. The student passes the course if the PhD Dissertation committee accepts the submitted dissertation proposal report and upon successfully passing the Dissertation proposal public defense. The course grade can be NP, NF, or IP.
Co-Requisite: COE 699

Pre-requisite: Ph.D. Candidacy

COE 712-Computer Engineering Ph.D. Dissertation (0-0-9)
This course enables the student to submit his PhD Dissertation Proposal and defend it in public. The student passes the course if the PhD Dissertation committee accepts the submitted dissertation proposal report and upon successfully passing the Dissertation proposal public defense. The course grade can be NP, NF, or IP.

Pre-requisite: COE 711