List of COE Courses (Old)

COE 202 Digital Logic Design(3-0-3)
Introduction to information representation and number systems. Boolean algebra and switching theory. Manipulation and minimization of completely and incompletely specified Boolean functions. Physical properties of gates: fan-in, fan-out, propagation delay, timing diagrams, and tri-state drivers. Combinational circuits design using multiplexers, decoders, comparators, and adders. Sequential circuit analysis and design, basic flip-flops, clocking, and timing diagrams. Registers, counters, RAMs, ROMs, PLAs, PLDs, and FPGA’s.
Note: COE 202 and COE 203 together are equivalent to EE 200. Students who take EE 200 cannot take COE 202 or COE 203 for credit.
Prerequisite: PHYS 102

COE 203 Digital Logic Design Lab (0-3-1)
Introduction to information representation, Signals, 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.
Co-requisite:  COE 202

COE 241 Data and Computer Communications (3-0-3)
Information representation and signals. Introduction to data communication. Frequency response, bandwidth, filtering, and noise. Fourier series and transform. Introduction to the Z-transform. Information theory concepts such as the 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 300 Principles of Computer Engineering Design (1-3-2)
Practical and professional skills necessary for COE practice. Design projects successful execution steps. Teamwork, project management, and professional communication skills. Codes of professional conduct, ethics & responsibility.
Prerequisite: Junior Standing

COE 301 Computer Organization (3-3-4)
Introduction to computer organization, machine instructions, addressing modes, assembly language programming, integer, and floating-point arithmetic, CPU performance and metrics, non-pipelined and pipelined processor design, data path and control unit, pipeline hazards, memory system, and cache memory.
Prerequisites:  COE 202 and ICS 102

COE 306 Introduction to Embedded Systems (3-3-4)
Introduction to Embedded Systems. Microcontroller Hardware. ARM Processor. CPU Programming. Memory and I/O. Interfacing: Parallel and Serial Communication. A/D and D/A conversion Embedded system design methodologies. Specifications. Designing robust software for embedded systems. RTOS features.
Prerequisites:  COE 203 & COE 301

COE 344 Computer Networks (3-3-4)
TCP/IP top-down approach. Introduction to computer networks. Application layer design issues and protocols. Transport layer design issues, protocols, and congestion control mechanisms. Socket programming. Analysis of the Network layer design issues, and internetworking. MAC layer design issues and protocols. Multimedia network applications are explored.
Note: This course cannot be taken for credit with ICS 342.
Prerequisites: COE 241, STAT 319

COE 350 Begin Cooperative Work (0-0-0)
The starting of cooperative work in the summer just preceding the senior year. The description is as given in COE 351.

COE 351 Cooperative Work (0-0-9)
A continuous period of 28 weeks spent in the 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.

COE 352 End Cooperative Work (0-0-0)
This course is for students who choose to start their coop program during the second term of the academic year.
Prerequisite: COE 351

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:    This course is NOT open for COE students. It cannot be taken for credit with COE 241.
Prerequisite: 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.
Prerequisites: ENGL 214, Junior Standing, Approval of the Department

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. Performance analysis, performance prediction, asymptotic bounds on performance. Simulation and modeling of computer systems. Experimental and analytical approaches. Introduction to queuing network modeling. Case studies.
Prerequisites:  STAT 319 or Consent of the Instructor

COE 403 Computer Architecture (3-0-3)
Fundamentals of computer design, power, cost, performance, instruction set principles, instruction and arithmetic pipelines, dynamic and speculative execution, precise exception, memory hierarchy, multilevel caches, virtual memory, storage and I/O, multicores, multiprocessors, and clusters, New trends in computer architecture.
Prerequisite:  COE 301

COE 405 Design and Modeling of Digital Systems (3-0-3)
Review of sequential circuits design and analysis, Data path and control unit design, Design with Hardware Description languages, Design with Field-Programmable Gate Arrays (FPGAs), Block interfacing, and high-level-synthesis.
Prerequisite: COE 202

COE 408 Reconfigurable Computing (3-0-3)
Review of Digital System Design, Software-Hardware partitioning, FPGA architectures, Schematic Design Entry, Design with HDL, Simulations, Design issues, Dynamic Re-configuration, and applications.
Prerequisite: COE 405

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

COE 421 Fault-Tolerant Computing (3-0-3)
Introduction to fault-tolerant computing (FTC).  Goals of fault tolerance (FT).  Design techniques to achieve FT. Evaluation of FT systems. Reliability modeling and analysis of FT systems. Availability modeling. Logic-level fault testing and tolerance. Error detection and correction. Diagnosis and reconfiguration for system-level malfunctions. Case studies of practical fault tolerant systems.
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 schedulability, 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 

COE 423 Distributed Systems (3-0-3)
Theory and practice in the design and implementation of distributed computing systems are covered, including interprocess communication, remote procedure calls, distributed file systems, synchronization, distributed transactions, replicated data, security, and specifications for distributed programs. Programming assignments include using current distributed technologies (sockets). Real-world distributed systems case studies, and examples ranging from the Internet to file systems. This course is intended to prepare students to work on corporate software development teams developing enterprise applications.
Note: Cannot be taken for credit with ICS 437
Prerequisite:  Senior Standing

COE 424 Introduction to Smart Cards & RFID Technology (3-0-3)
Overview of different types of smart cards, smart card applications, architectures, standards, operating systems, security, management, and fabrication. RFID concepts and fundamentals include; components of RFID systems, architectures, middleware functionality, and related standards. RFID RLTS (Real Time Location Systems) and ubiquitous computing. Privacy and security techniques, engineering design tradeoffs in designing both smart card and RFID systems.
Prerequisites: Senior standing or Consent of Instructor

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.
Prerequisites: Junior standing or Consent of Instructor

COE 441 Local Area Networks (3-0-3)
Introduction to Local Area Networks (LANs). Classes of LANs. LAN design issues. LAN topologies. LAN transmission media. LAN protocols: Medium Access Control (MAC) and Logic Link Control (LLC). LAN standards. Network software: Network operating systems. LAN performance modeling and analysis. Internetworking: Bridges, Routers, and Gateways. Reliability, availability, survivability, and security. Case studies.
Prerequisite: COE 241 or Consent of the Instructor

COE 443 High-Speed Networks (3-0-3)
Introduction to high-speed networking. Impact of high speed on communication protocols. Multiple traffic types integration, and quality-of-service differentiation. Design and performance issues of high-speed networks.  Standard high-speed protocols and networks.  Examples of high-speed networks such as Gigabit Ethernet, Terabit networks, and Photonic networks. Case studies. Future directions.
Prerequisite:  COE 344

COE 444 Internetwork Design and Management (3-0-3)
Overview of computer networks. Principles of internetworking. Internetworking hardware. Bridging and switching technologies. Virtual LANs. Routing strategies. The network development life cycle. Network analysis and design methodology. Enterprise network design model. Backbone design concepts. Network security design. Structured cabling systems. Network design algorithms. Traffic flow analysis. Network reliability. Network management (SNMP). Network administration. Case studies.
Prerequisite:  COE 344

COE 445 Internet Engineering and Technologies (3-0-3)
Overview of current internet challenges and its next-generation architecture. Overview of modern Internet protocols and supporting algorithms. Information retrieval architecture, design, and performance evaluation: search engines, proxy servers, and content distribution networks. Network programming.
Prerequisite:  COE 344

COE 446 Mobile Computing (3-0-3)
Introduction to different types of mobile computing; cellular networks, wireless mobile ad hoc and sensor networks, wireless LAN, and so on. Discussion of different IEEE standardized protocols and their implementation and performances. New wireless technologies such as LTE and LTE advance. Quality of Service (QoS) issues. Modeling and optimization methods of wireless protocols.
Prerequisite: COE 344

COE 447 Fundamentals of Optical Networking (3-0-3)
Passive and Active Optical Components. Optical Modulation and Demodulation. Transmission System Design. SONET/SDH and other Client Layers. WDM Networks. Routing and Wavelength Assignment. Control and Management. Protection and Restoration. Access Techniques. Traffic Grooming. Optical Packet/Burst Switching.
Prerequisite: COE 344 or consent of the professor

COE 451 Computer & Network Security (3-0-3)
Introduction to computer security (concepts, threats, attacks, assets, scope, trends). Cryptographic Protocols and standards. Integrity verification mechanisms. Wireless network security and associated protocols. Software tools to apply security in user environments. Access Control models and mechanisms. Database security, Intrusion detection systems, Firewalls. Malicious software, DoS attacks, Trusted computing, and multilevel security.
Note: Cannot be taken for credit with ICS 444
Prerequisite:  COE 344

COE 461 Principles of VLSI Design (3-0-3)
State-of-the-art MOS Transistors, their operation, and limitations. CMOS digital circuits, static & dynamic logic, combinational and sequential circuits. Circuit design and propagation delay. CMOS fabrication technology, layout, and design rules stick diagrams, IC Design and Verification Tools, subsystem design and case studies, and practical considerations.
Prerequisite: EE 203

COE 462 Design Automation of VLSI Circuits (3-0-3)
Introduction to computer-aided design of integrated circuits. Design approaches, design steps, and corresponding design automation problems and tools. Logical and physical partitioning. Solution techniques for floor planning, placement, global routing, and detailed routing. Strategies for the grid and channel routing. Layout generation problem and solutions. Symbolic layout, layout editors, and compaction. Silicon compilation.
Prerequisites: COE 461 or Consent of the Instructor

COE 464 Testing of Digital Circuits (3-0-3)
Introduction to the testing problem, fault modeling: stuck-at, bridging, transistor-open and transistor-short faults, delay faults. Fault simulation, Test generation for Combinational circuits, Test generation for sequential circuits, Design for testability, Built-in self-test, and Delay fault testing. New trends in testing.
Prerequisite: Senior Standing

COE 465 VLSI System Design Methodology (3-0-3)
CMOS VLSI system design options; Full-custom and semi-custom designs. Design flows of ASICs; front-end and back-end design flow. 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 in VLSI design using CAD tools.
Prerequisite: COE 405

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

COE 484 Introduction to Robotics (3-0-3)
Taxonomy of robots, Internet robotics, autonomous robots, robotic sensor networks, and applications. Motion, linear algebra, motion coordination, singularities, and multiple solutions. Vision, sensing and perception, robot vision and programming, self-localization, Kalman and Monte-Carlo approach.  Intelligence, Autonomous robotics, robot mechanisms, and control, control and planning architectures, reactive, subsumptive, and deliberative control behaviors, and behavior-based control programming. Humanoid robots. Introduction to multi-robot systems.
Prerequisite: Senior Standing

COE 485 Senior Design Project (1-6-3)
Various design phases lead to a practical engineering solution. Feasibility study, preparation of specifications, and the methodology for the design. Detailed design and implementation, testing, debugging, and documentation.
Prerequisite: Senior Standing

COE 487 Computer Vision Processing (3-0-3)
Introduction to the concepts and applications in computer vision. Cameras and projection models, low-level image processing methods such as filtering and edge detection; mid-level vision topics such as segmentation and clustering; shape reconstruction from stereo, as well as high-level vision tasks such as object recognition, scene recognition, face detection, and human motion categorization.
Note: Cannot be taken for credit with ICS 483
Prerequisite: Senior Standing

COE 488 Data Acquisition Interfacing (3-0-3)
Data acquisition systems, basic sampling concepts, and data collection fundamentals. Interfaces. Special instruments. IEEE standards. RS 232C data acquisition software technique. I/O operation queuing. Hardware for data acquisition systems. Examples and designs.
Prerequisite: COE 301