Undergraduate Courses

Computer Engineering

Introduction to Computer Engineering. Binary number system. Digital circuits. Boolean algebra and switching theory. Manipulation and minimization of Boolean functions. Combinational circuit analysis and design, multiplexers, decoders, adders. Sequential circuit analysis and design, basic flip-flops, clocking, and edge-triggering, registers, counters, timing sequences, state assignment and reduction techniques. Register transfer level operations. Machine level programming.

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.

Pre-Requisites: PHYS102

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.

Pre-Requisites: COE202*

Co-Requisites: COE 202

Introduction to computer organization. Octal and hexadecimal number systems, ASCII codes. Assembly language programming, instruction formats and types, memory and I/O instructions, arithmetic instructions, addressing modes, stack operations, and interrupts. ALU design. RTL, microprogramming, and hardwired control design. Practice of assembly language programming.

Pre-Requisites: (COE202 Or EE200) And ICS102

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.

Pre-Requisites: ICS104

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.

Pre-Requisites: MATH102

Introduction to AI; Uniformed vs. informed search. Constraint satisfaction. Logic and Reasoning pattern; Propositional Logic; Reasoning Patterns. 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 of AI.

Pre-Requisites: ISE291

Practical and professional skills necessary for the COE practice. Design projects successful execution steps. Team work, project management and professional communication skills. Codes of professional conduct, ethics & responsibility.

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.

Pre-Requisites: COE202 And (ICS104 Or ICS102)

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).

Pre-Requisites: COE202 Or CISE204 Or CIE204

Microprocessor architecture and organization. Bus types, architecture, and buffering techniques. Memory and I/O subsystems, organization, timing and interfacing. Peripheral controllers and programming. Practice on the design of a microprocessor system, testing, debugging, and reporting.

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.

Pre-Requisites: EE236 And (COE301 Or COE233)

Digital computers and digital systems, binary systems, number systems, base conversion and binary codes. Basic logic elements, Boolean algebra, and manipulation of Boolean functions. Flip-flops, clocking, and registers. Computer organization, CPU, ALU, main memory, and I/O devices. Note: This course is NOT open for COE students. It cannot be taken for credit with COE 202 and COE 203.

Memory hierarchy and cache memory. Integer and floating point arithmetic. Instruction and arithmetic pipelining, superscalar architecture. Reduced Instruction Set Computers. Parallel architectures and interconnection networks.

Introduction to data communication. Overview of the OSI model. Frequency response, bandwidth, filtering, andnoise. Fourier series and Fourier transform.Information theory concepts: Nyquist's 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, and flowcontrol). Multiplexing.

Pre-Requisites: MATH102

Introduction to data communication. Overview of the OSI model. Frequency response, bandwidth, filtering and noise. Fourier series and Fourier transform. Information theory concepts: Nyquist?s theorem, Shannon?s and Sampling theorems. 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 and switching.

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.

Pre-Requisites: (COE241 Or COE341 Or EE207 Or CISE315 Or CIE315) And (STAT319 Or EE315 Or ISE205)

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.

Pre-Requisites: COE344 Or ICS343 Or EE400

The starting of the cooperative work in the summer just preceding the senior year. Description as given in COE 351.

A continuous period of 28 weeks spent in industry with the purpose of acquiring practical design 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.

This course is the same as COE 350. The only difference is that COE 352 is for students who choose to start their coop program during the second term of the academic year.

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.

MOS transistor operation and limitations. MOS digital logic circuits (NMOS and CMOS), static, dynamic and sequential MOS logic. IC fabrication and processing. Layout and mask generation. IC design and verification tools. Applications and case studies.

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

Pre-Requisites: COE292

Overview of system features and components. Microprocessor types and specifications. Motherboards, bus slots and I/O cards, memory, power supply, input devices, video display hardware, and audio hardware. Floppy disk, hard disk, and CD-ROM drives and controllers. Network cards. Preventive maintenance, backups, and warranties. Software and hardware diagnostic tools. Software and hardware troubleshooting. Applications.

The purpose of this course is to help improve students? ability for presenting their technical work. In addition, the course emphasizes the various social and ethical responsibilities of the computing professional. It teaches students about the nature of engineering as a profession, codes of professional conduct, ethics & responsibility, and the role of professional societies. Case studies of conflict between engineering professional ethical values and external demands. The course features students? participation in discussions held by faculty members and invited guests.

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.

Pre-Requisites: ENGL214

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.

Pre-Requisites: ENGL214

The purpose of this course is to integrate student's knowledge of hardware and software in the design, implementation, debugging, and documentation of one major system. The twin learning experience of making hardware versus software decisions, and participating in a structured design are integrated into the same design exercise. Contrary to COE 485, this is a structured course whereby students are trained by the course instructor to work in teams in implementing a number of mini projects in addition to one major common project at the end of the course.

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.

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.

Pre-Requisites: STAT319 Or EE315 Or ISE205

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.

Pre-Requisites: COE301 Or COE233 Or EE390 Or CISE414 Or CIE414

Design methodology. Hardware modeling basics. Modeling concurrency and timing aspects. Behavioral, structural, and data flow level modeling using hardware descriptionlanguages (HDLs). System level modeling and design of practical processors, controllers, arithmetic units, etc. Translation of instruction sets to hardware models for software emulation. Case studies.

Principles of RISC design methodologies. Designing an instruction set from a RISC perspective. Optimized register usage. RISC compilers. RISC assessment. A general purpose RISC processor example. An application oriented RISC processor example. Future directions.

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.

Pre-Requisites: COE302

Special topics in issues related to computer architecture and digital systems design. Topics and specifics will be announced well before the course starting date.

Finite state machines, state minimization and assignment, extended state tables. ASM charts, RT level modeling. Use of programmable logic devices in digital design and synthesis (PLAs, PLDs, FPGAs). Design and analysis of asynchronous logic: level mode sequential circuits, analysis and design of fundamental mode circuits, reduction of state and flow tables, races, cycles, race-free assignment, and hazards.

This is the first of two courses for the multidisciplinary, capstone project. Multidisciplinary teams will be formed, projects will be defined, and project management discussed.

This is the second of two courses for the multidisciplinary, capstone project. Multidisciplinary teams undertake product definition, generation of conceptual designs, product development, and presentation of final products. Students integrate knowledge acquired from prior courses into multidisciplinary projects with multiple constraints and use engineering standards while further developing their communication skills and life-long learning techniques.

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.

Pre-Requisites: COE301 Or COE233 Or EE390 Or CISE414 Or CIE414

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.

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.

Pre-Requisites: COE306 Or EE390 Or CISE414 Or CIE414

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.

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.

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.

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.

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.

Special topics in issues related to parallel and distributed systems. Topics and specifics will be announced well before the course starting date.

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.

Pre-Requisites: COE344 Or ICS343 Or EE400

Introduction to computer networks. Circuit, message, packet, and cell switching. The OSI model. WAN and LAN design issues. LAN standards. Network layer design issues. Routing and congestion control. Internetworking. ISDN, B-ISDN, and ATM. Transport layer design issues and protocols. Application layer design issues and protocols. Examples of protocol suites and networks. Note: This course cannot be taken for credit with ICS 432.

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.

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 subnetting 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.

Pre-Requisites: COE344 Or ICS343 Or EE400

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.

Introduction to mobile computing, which are wireless randomly moving devices with/without administration center. Studying exciting 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.

Pre-Requisites: COE344 Or ICS343 Or EE400

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 professor

Special topics in issues related to computer communication networks. Topics and specifics will be announced well before the course starting date.

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.

Pre-Requisites: EE203 Or EE236 Or EE234

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

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.

Pre-Requisites: COE344 Or ICS343

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 project.

Pre-Requisites: COE344 Or ICS343 Or EE400

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.

Pre-Requisites: COE344 Or ICS343 Or EE400

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.

Pre-Requisites: COE344 Or ICS343 Or EE400

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.

Pre-Requisites: COE344 Or ICS343 Or EE400

Sub-micron CMOS technology. BiCMOS process technology, device design considerations, device modeling, BiCMOS digital integrated circuits, BiCMOS digital circuit applications. GaAs process technology, device design, and digital logic design. Comparison between CMOS, BiCMOS, and GaAs performance. Future trends.

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.

Pre-Requisites: EE203 Or EE236

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.

Pre-Requisites: EE203 Or EE236

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.

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.

Pre-Requisites: COE302

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.

Pre-Requisites: (COE292 Or ICS102 Or ICS103) And (MATH208 Or PHYS210 Or MATH202 Or MATH225)

Special topics in issues related to VLSI and Design Automation. Topics and specifics will be announced well before the course starting date.

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.

Pre-Requisites: COE344 Or ICS343 Or EE400

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

Various design phases leading to a practical engineering solution. Feasibility study, preparation of specifications, and the methodology for the design. Detailed design and implementation, testing, debugging, and documentation.

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.

Data acquisition systems, basic sampling concepts, 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.

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

Special topics in issues related to computer engineering. Topics and specifics will be announced well before the course starting date.