COE 202 Digital Logic Design (3-0-3) Introduction to information representation and number systems. Boolean algebra and switching theory. Canonical forms: minterms and maxterms. Manipulation and minimization of completely and incompletely specified Boolean functions. Propagation delay, timing diagrams. Primitive and complex gates. Combinational circuits design. Multiplexers, decoders, encoders, comparators, adders. Sequential circuit analysis and design, basic flip-flops, clocking and timing diagrams. Registers, counters. Introduction to Verilog. Note: Not to be taken for credit with CISE 204. Prerequisite: PHYS 102 |
COE 203 Digital Logic Design Lab (0-3-1) Introduction to information representation, Signals and bits, Logic implementation using discrete logic components (TTL, CMOS). Introduction to Field Programmable Logic Arrays (FPGAs) design flow: design capture (schematic capture, HDL design entry, design verification and test, implementation (including some of its practical aspects), and debugging. Use of CAD tools to design, simulate and implement digital logic circuits on FPGA prototyping boards. Introduction to Verilog. Corequisite: COE 202 |
COE 233 Digital Logic & Computer Organization (3-0-3) Number systems. Boolean Algebra and Minimization of Boolean functions. Combinational circuits analysis and design: multiplexers, decoders, adders, and the ALU. Sequential circuits analysis: flip-flops, Registers. MIPS instruction set architecture. Assembly language: selection and repetition structures. Single cycle and pipelined processor design. Memory hierarchy. ROM, RAM, and cache memories. Evaluation of processor and cache performances. Note: Not to be taken for credit with COE 301, Not open for COE students. Prerequisite: ICS 104 |
COE 241 Data and Computer Communications (3-0-3) Introduction to data communication. Brief overview of the OSI model. Frequency response, bandwidth, filtering, and noise. Fourier series and transform. Introduction to the Z-transform. Information theory concepts such as Nyquist theorem, Shannon theorem, and Sampling theorem. Analog and digital modulation techniques. Pulse Code Modulation (PCM). Communication systems circuits and devices. Data encoding. Physical Layer Protocols. Data Link Control (point to point communication; design issues; link management; error control; flow control). Multiplexing Techniques. Prerequisite: MATH 102 |
COE 292 Introduction to Artificial Intelligence (3-0-3) Introduction to AI; Agents and environments. Uninformed vs. informed search. Constraint satisfaction. Probabilistic inference; conditional probability and independence. Supervised learning using Nearest Neighbor and SVM. Clustering with mean-shift algorithm. Overview of Neural Networks and training. Overview of deep learning and applications. Feature extraction techniques in Computer Vision. Applications in reinforcement learning. Ethical concerns in AI. Prerequisite: ISE 291 |
COE 301 Computer Organization (3-3-4) Introduction to computer organization, machine instructions, assembly language programming, addressing modes, control flow, assembly-language procedures, translating high-level language constructs into assembly, floating-point arithmetic, CPU performance and metrics, CPU design, datapath and control, pipelined instruction execution, pipeline hazards, memory hierarchy, cache memory. Note: Not to be taken for credit with COE 233. Prerequisite: COE 202 and ICS 104 |
COE 302 Design and Modeling of Digital Systems (3-0-3) Digital design methodology. Review of combinational and sequential circuit design. Design of digital systems composed of data path and control units. Hardware description language-based modeling of digital systems. Synthesis and optimization of digital systems. Digital system design using field-programmable gate arrays (FPGAs). Prerequisite: COE 202 or CISE 204 |
COE 306 Introduction to Embedded Systems (3-3-4) Introduction to Embedded Systems, Embedded system design methodologies, Microcontroller Hardware, ARM Processor, Memory and I/O, Interfacing: Parallel and Serial Communication, Pulse Width Modulation, A/D and D/A conversion, Designing robust software for embedded systems, RTOS features. Prerequisites: COE 301 or COE 233) and EE 236 |
COE 344 Computer Networks (3-3-4) Introduction to computer networks. Application layer design issues and protocols. Transport layer design, protocols, and congestion control. Socket programming. Network layer services, routing algorithms, and routing in the Internet. Link layer and multiple access protocols. Local area networks devices. Wireless links/networks. Note: Not to be taken for credit with ICS 343. Prerequisite: (COE 241 or EE 207 or CISE 315), (STAT 319 or EE 315 or ISE 205) |
COE 346 Computer & Network Security (3-0-3) Introduction to computer security (concepts, threats, attacks, assets, scope, trends). Cryptographic protocols and standards. Integrity verification mechanisms. Network security and associated protocols. Software tools to apply security in user environments. Access control models and mechanisms. Intrusion detection systems, firewalls. Malicious software, DoS attacks, trusted computing and multilevel security. Hardware security (design, threats, safeguards). Note: Not to be taken for credit with ICS 444. Prerequisite: COE 344 or ICS 343 or EE 400 |
COE 353 Fundamentals of Computer Communications (3-0-3) Digital communications fundamentals. Voice and data transmission equipment. Communications channels. Data coding and modulation. Multiplexing. Modems. Transmission media. Data transmission codes and protocols. Software packages. Data networks. Planning and design of communication networks. Note: Not to be taken for credit with COE 241, Not open for COE students. Prerequisite: Junior Standing |
COE 384 Fundamentals of Computer Engineering Design (3-3-4) The general engineering design process as exercised by professional computer engineers. Formulation of practical engineering problems. Customer needs analysis. Brainstorming in design projects. Essential design concepts and skills, problem-solving and decision-making, team work and project management, conceptual modeling, evaluation of economic feasibility, and proper project/work documentation. New emerging computer engineering technologies. Through projects, students utilize computer engineering technologies to design and implement effective solutions for the industry. Prerequisite: COE 292 |
COE 398 Internship (0-0-6) A continuous period of 15 weeks spent in industry with the purpose of acquiring practical experience in different areas of Computer Engineering. During this period, a student is exposed to the profession of Computer Engineering by working in the field. Students are required to submit a final report and give a presentation about their experience and the knowledge they gained during their cooperative work. Prerequisite: ENGL 214 and Junior Standing |
COE 399 Summer Training (0-0-0) The aim of the summer training is to provide students with direct on-the-job experience working with professionals in the field. This training provides an opportunity to expose students to the reality of professional practice. Students are required to submit a report and make a presentation on their summer training experience and the knowledge gained. Prerequisite: ENGL 214 and Junior Standing |
COE 401 Modeling and Simulation of Computer and Network Systems (3-0-3) Computation as a 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. Prerequisite: Senior Standing |
COE 402 Computer System Performance Evaluation (3-0-3) Introduction to computer system performance analysis and evaluation. Review of basic probability distributions and basic concepts of statistics. Performance measures and measurement techniques. Simulation and modeling of computer systems. Experimental and analytical approaches. Introduction to queuing network modeling. Case studies. Prerequisites: STAT 319 or EE 315 or ISE 205 |
COE 403 Computer Architecture (3-0-3) Introduction to parallel computer architecture. Power, cost, performance. Pipelined CPU cores and dynamic instruction execution. Hardware multithreading and synchronization. Vector and SIMD processing. Multilevel cache hierarchy and cache coherence. Perspectives on parallel programming. Server and storage architecture. Prerequisite: COE 301 or COE 233 or EE 390 or CISE 414 |
COE 408 Reconfigurable Computing (3-0-3) Review of Digital System Design and Hardware Description Languages. FPGA Architectures. FPGA Design Flow. Software-Hardware partitioning. SW/HW interfacing (PCIe). FPGA design patterns. Computing models and applications. Soft processors. Prerequisite: COE 302 |
COE 409 Special Topics in Comp. Arch. & Dig. Sys. Design (3-0-3) Special topics in issues related to computer architecture and digital systems design. Topics and specifics will be announced well before the course starting date. Prerequisite: Senior Standing |
COE 420 Parallel Computing (3-0-3) Introduction to parallel computing. Parallel architectures: MIMD, SIMD, communication, and mapping. Performance measures, speedup, efficiency, and limitations of parallel processing. Problem decomposition and parallel algorithm design. Basic communications. Modeling of parallel programs: granularity, scalability, and execution time. Parallel programming: message-passing and threads. Examples of parallel algorithms and applications: matrix, sorting, graph, and search. New trends in parallel computing. Prerequisite: COE 301 or COE 233 or EE 390 or CISE 414 |
COE 421 Fault Tolerant Computing (3-0-3) Introduction to fault tolerant computing. Fault classification. Types of redundancy. Basic measures of fault tolerance. Hardware and software fault tolerance. Information redundancy. Fault-tolerant networks. Checkpointing. Fault detection in cryptographic systems. Case studies. Prerequisite: Senior Standing |
COE 422 Real-Time Systems (3-0-3) Introduction to real-time systems. Uniprocessor scheduling of independent tasks, hard versus soft real-time, reference model, dynamic scheduling, utilization-based scheduling, demand-based scheduling, static priority systems, deadlines, and fairness. Basic operating-system functions needed for real-time computing, real-time and non-real-time operating systems. Advanced scheduling: preemptive versus non-preemptive scheduling, dynamic versus static priorities, synchronous versus asynchronous job releases. Multiprocessors and distributed systems, priority ceiling protocol and end-to-end scheduling. Prerequisite: COE 306 or EE 390 or CISE 414 |
COE 423 Distributed Systems (3-0-3) Theory and practice in the design and implementation of distributed computing systems; including inter-process communication, remote procedure calls, distributed file systems, synchronization, distributed transactions, replicated data, security and specifications for distributed programs. Distributed technologies (sockets). Real-world distributed systems case studies and examples. Note: Not to be taken for credit with ICS 437. Prerequisite: Senior Standing |
COE 424 Introduction to Smart Cards & RFID Technology (3-0-3) An overview of different types of smart cards both contact & contactless. State of the art advances in NFC (Near Field Communication). RFID concepts and fundamentals including components of RFID systems, RFID middleware. Passive vs Active RFID. RFID related standards. RFID tag features: tag sensitivity, RSSI, impedance match. Anti-collision techniques. RFID security: EPC mutual authentication pros & cons. Prerequisite: Junior Standing |
COE 425 Data Management Systems (3-0-3) Introduction to the fundamental theories and practices of Data Acquisition, Distribution and Warehousing. Generic Structure of IT systems in Production-oriented and Service-oriented Organizations. Industrial and Business Automation Levels. Differences in Computer Architecture, Operating systems, Languages, Network protocols and Databases between Industrial Automation and Office Automation Domains. Most commonly used standards and Technologies. Case studies. Prerequisite: Junior Standing |
COE 426 Data Privacy (3-0-3) Data privacy: definition and terminologies. Difference between data security and privacy. Data privacy attacks. Data privacy laws and regulations. Privacy risk and impact assessment. Privacy engineering, management, and evaluation. Data anonymization. Statistical privacy. Differential privacy. Cryptographic privacy. Homomorphic encryption. Secure multi-party computation. Secure data outsourcing. Data hiding and steganography. Anonymous networks. Trusted execution environment. Applications of privacy preserving technologies in computer systems and applications. Prerequisite: Senior standing |
COE 427 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 CDN. Hands-on sessions. Prerequisites: Senior Standing |
COE 429 Special Topics in Parallel and Distributed Systems (3-0-3) Special topics in issues related to parallel and distributed systems. Topics and specifics will be announced well before the course starting date. Prerequisite: Senior Standing |
COE 441 Local Area Networks (3-0-3) Introduction to local area networks (LANs). Classes of LANs and LAN design issues. LAN topologies and LAN transmission media. LAN medium Access Control (MAC) and logic link control (LLC) protocols. LAN performance modeling and analysis. Internetworking: bridges, switches, routers, and gateways. Virtual LANs. LAN reliability, availability, survivability, and security. High speed wireless and Ethernet LANs. Emerging Gigabit, Terabit, and Photonic networks. Case studies and future directions. Prerequisite: COE 344 or ICS 343 or EE 400 |
COE 444 Network Design (3-0-3) Introduction to types of computer networks: LANs, VLANs, and WANs. STP and PVST protocols, in addition to ACL (Standard and Extended) to be covered. IPv4 and IPv6 sub netting and routing. Network development life cycle. Network analysis and design methodology. Link topology and sizing; Routing; Reliability. Data in support of network design. Data center design and implementation. Introduction to Packet tracer simulator/emulator or other network simulation tools. Note: Not to be taken for credit with ICS 443. Prerequisite: COE 344 or ICS 343 or EE 400 |
COE 446 Mobile Computing (3-0-3) Introduction to mobile computing, which are wireless randomly moving devices with/without administration center. Studying existing infrastructure/infrastructure-less wireless protocols in order to design computer networks. Quality of Service (QoS) issues and performance evaluation of various wireless protocols using simulation programs. Prerequisite: COE 344 or ICS 343 or EE 400 |
COE 449 Special Topics in Computer Comm. and Networking (3-0-3) Special topics in issues related to computer communication networks. Topics and specifics will be announced well before the course starting date. Prerequisite: Senior Standing |
COE 450 Introduction to Smart Systems (2-3-3) Introduction to smart systems. Sensors and actuators: working principles, classifications, performance, characteristics, interfacing with feedback control, and data acquisition. Embedded systems: architecture, types, and interfacing. Real-time operating systems: components, requirements, configuration, and scheduling. Embedded software: development, software stack, hardware abstraction, and tools. Power management and energy harvesting for embedded systems. Prerequisite: EE 203 or EE 236 |
COE 452 Principles of Cloud-based Systems (3-0-3) Introduction to Cloud Computing. Cloud characteristics and deployment models. Cloud architectures and enabling technologies. Cloud operations: resource provisioning and load balancing. Cloud performance guarantees: service quality metrics and service level agreement. Cloud infrastructure design, development, and migration. Cloud infrastructure management and monitoring. Cost metrics and pricing models. Cloud laws and regulations. Software-defined networking and network function virtualization. Hands-on activities and case studies. Project. Prerequisite: COE 344 or ICS 343 |
COE 453 Cloud and Edge Computing (3-0-3) Internet and web protocols and technologies (HTTP). Basics of web development: frontend, backend, and full-stack (HTML, CSS, Javascript, Node.js). 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. Virtualization and containerization (Docker and Kubernetes). Cloud data storage: BigTable, Dynamo, and Cassandra. Batch cloud processing: MapReduce and Hadoop, Spark, BigTable. Cloud-native applications. Security of Cloud computing. Hands-on activities and projects. Prerequisite: COE 344 or ICS 343 or EE 400 |
COE 454 Internet of Things (2-3-3) IoT systems design and architecture: elements of IoT system, potentials, constrains, and applications. IoT access technologies: 802.15.4, BLE, LoRaWAN, NB-IoT, Sigfox, and 802.11ah. IoT networking protocols: IPv4, IPv6, 6LoWPAN, and RPL. IoT application layer protocols: HTTP, MQTT, and CoAP. Wireless Personal Area Network (WPAN) using ZigBee network. Low Power Wide Area Network (LPWAN) using LoRAWAN. Machine-to-Machine (M2M) and Machine-to-Cloud (M2C) communication. IoT network architecture: cloud, fog, and edge layers. IoT system security. Data analytics for IoT. Prerequisite: COE 344 or ICS 343 or EE 400 |
COE 456 Wireless Sensor Networks (3-0-3) Basic concepts in Wireless Sensor Networks (WSN). Introduction to deployment, localization, synchronization, medium access control, sleep scheduling, energy-aware protocols and data aggregation. Wireless sensor network platforms: hardware and software. Communication architecture and protocols for WSN. Prerequisite: COE 344 or ICS 343 or EE 400. |
COE 458 Internet of Drones (3-0-3) Introduction to Unmanned Aircraft System (UAS) basics. Students will be introduced to fundamental concepts underlying technologies such as: UAS networking, mobility models, ad hoc networking, anti-collision and routing protocols, medium access protocols, power aware protocols, basic security, and how computers represent numbers, text, images, and sound. Prerequisite: COE 344 or ICS 343 or EE 400. |
COE 461 Principles of VLSI Design (3-0-3) Introduction to Semiconductors; doping, mobility, and currents. MOS Transistors; operation and limitations. CMOS digital logic circuits, static & dynamic logic, combinational and sequential circuits, propagation delay. Circuit design and transistor sizing. Spice Simulations. MOS IC fabrication, layout and design rules, stick diagrams. IC Design and Verification Tools. Subsystem design and case studies, and practical considerations. Prerequisite: EE 203 or EE 236 |
COE 462 Design Automation of VLSI Circuits (3-0-3) Introduction to EDA (Electronic Design Automation). Design approaches. Levels of Abstraction, Design phases, and corresponding DA problems and tools. Physical design (partitioning, floor planning, placement, global routing and detailed grid and channel routing). Introduction to non-deterministic algorithms to solve hard VLSI physical design problems. Optimization for area, power, and performance. Modeling and simulation of digital systems using HDLs. Cell libraries. Layout generation problem and solutions. Symbolic layout, layout editors and compaction. Silicon compilation. Prerequisite: EE 203 or EE 236 |
COE 464 Testing of Digital Circuits (3-0-3) Introduction to the testing problem, fault modeling, stuck-at, bridging, transistor-open, transistor-short and delay faults. Fault simulation, gate-level testing, automatic test pattern generation (ATPG) algorithms. Testing of sequential circuits. Fault Diagnosis. Design-for-testability (DFT). Built-in Self-Test. Test compaction and compression. Prerequisite: Senior Standing |
COE 465 VLSI System Design Methodology (3-0-3) CMOS VLSI system design options; Full-custom and semicustom designs. Design flows of ASICs; front-end and back-end design flows. Design & verification CAD tools. Chip Layout, place and route, and design rules checking. Concepts and tools in floor planning, placement and routing, layout generation and design synthesis. The course stresses hands-on experience of VLSI design using CAD tools. Prerequisite: COE 302 |
COE 466 Quantum Architecture and Algorithms (3-0-3) An introduction to the model of quantum computation, quantum hardware, quantum processors, quantum circuits and instruction sets, quantum programming languages, quantum Fourier transform, quantum error correction, quantum algorithms, and applications of quantum computing. Prerequisite: COE292 (or ICS 102 or ICS 103) and MATH208 (or PHYS210 or MATH225) |
COE 469 Special Topics in VLSI and Design Automation (3-0-3) Special topics in issues related to VLSI and Design Automation. Topics and specifics will be announced well before the course starting date. Prerequisite: Senior Standing |
COE 482 Pervasive and Ubiquitous Computing (3-0-3) Introduction to ubiquitous and pervasive computing. Designing, building and evaluating ubiquitous computing technologies in order to create novel user experiences. Capturing and disseminating context information through sensors and sensor networks. Sensor network coverage, localization, synchronization, sleep scheduling, connectivity, routing, energy efficiency, data centric and transport protocols. Context-aware applications and intelligent objects and applications. Prerequisite: COE 344 or ICS 343 or EE 400 |
COE 484 Introduction to Robotics (3-0-3) Taxonomy of robots, robot arms, autonomous robots, robotic sensor networks, Internet robotics and applications. Kinematics, linear algebra, motion coordination, singularities, and multiple solutions. Modeling robots using state-space representation, linearization, LTI systems, internal stability, input-output stability, output and state feedback. Controller design techniques using pole-placement, controllability, and observability matrices. Motion planning, Bug, Dijkestra, A*, D* algorithms, probabilistic sampling. Robot vision, essential image processing filters, camera models, image motion and tracking, visual servoing. Prerequisite: Senior Standing |
COE 487 Computer Vision Processing (3-0-3) Introduction to vision processing. Illumination and imaging techniques. Planar and stereo-vision, pixel representation, preprocessing, smoothing, enhancement, and equalization. Edge detection, gradient, Laplacian, and thresholding. Segmentation, linear, polygonal, and Fourier descriptors. Introduction to 3D structures. Shape matching, search approaches, interpretation, and recognition. Note: Not to be taken for credit with ICS 483 or EE 410. Prerequisite: Senior Standing |
COE 497 Undergraduate Research (3-0-3) The course is intended to expose the student to the process of scientific research. The student is expected to acquire research skills and methodologies including formulation of a research plan, organization of a literature review, selection of appropriate research methodologies, design and implementation, assessment, analysis, and presentation. By the end of the course, students will complete a technical paper and will be encouraged to participate in conferences and present their work. Prerequisite: Junior Standing and a minimum GPA of 3 out of 4 |
COE 499 Special Topics in Computer Engineering (3-0-3) Special topics in issues related to computer engineering. Topics and specifics will be announced well before the course starting date. Prerequisite: Senior Standing |