Courses
Computer Engineering Certificate Courses
ECE 506 - Architecture Of Parallel Computers
Units: 3
The need for parallel and massively parallel computers. Taxonomy of parallel computer architecture, and programming models for parallel architectures. Example parallel algorithms. Shared-memory vs. distributed-memory architectures. Correctness and performance issues. Cache coherence and memory consistency. Bus-based and scalable directory-based multiprocessors. Interconnection-network topologies and switch design. Brief overview of advanced topics such as multiprocessor prefetching and speculative parallel execution. Credit is not allowed for more than one course in this set: ECE 406, ECE 506, CSC 406.
Offered in Fall Spring Summer
ECE 517 - Object-Oriented Design and Development
Units: 3
The design of object-oriented systems, using principles such as the GRASP principles, and methodologies such as CRC cards and the Unified Modeling Language [ULM]. Requirements analysis. Design patterns Agile Methods. Static vs. dynamic typing. Metaprogramming. Open-source development practices and tools. Test-first development. Project required, involving contributions to an open-source software project.
Offered in Fall and Spring
ECE 546 - VLSI Systems Design
Units: 3
Digital systems design in CMOS VLSI technology: CMOS devise physics, fabrication, primitive components, design and layout methodology, integrated system architectures, timing, testing future trends of VLSI technology.
Offered in Spring Only
ECE 547 - Cloud Computing Technology
Units: 3
Study of cloud computing principles, architectures, and actual implementations. Students will learn how to critically evaluate cloud solutions, how to construct and secure a private cloud computing environment based on open source solutions, and how to federate it with external clouds. Performance, security, cost, usability, and utility of cloud computing solutions will be studied both theoretically and in hands-on exercises. Hardware-, infrastructure-, platform-, software-, security-, - "as-a-service".
Offered in Fall Only
ECE 560 - Embedded System Architectures
Units: 3
Concepts of architectures for embedded computing systems. Emphasis on hands-on implementation. CPU scheduling approaches to support multithreaded programs, including interrupts, cooperative schedulers, state machines, and preemptive scheduler [real-time kernel]. Communication and synchronization between threads. Basic real-time analysis. Using hardware peripherals to replace software. Architectures and design patterns for digital control, streaming data, message parsing, user interfaces, low power, low energy, and dependability. Software engineering concepts for embedded systems. Students may not receive credit for both ECE 460 and ECE 560.
Offered in Fall Only
ECE 561 - Embedded System Design
Units: 3
Design and implementation of software for embedded computer systems. The students will learn to design systems using microcontrollers, C and assembly programming, real-time methods, computer architecture, interfacing system development and communication networks. System performance is measured in terms of power consumption, speed and reliability. Efficient methods for project development and testing are emphasized. Credit will not be awarded for both ECE 461 and ECE 561. Restricted to CPE and EE Majors.
Offered in Spring Only
ECE 563 - Microprocessor Architecture
Units: 3
Architecture of microprocessors. Measuring performance. Instruction-set architectures. Memory hierarchies, including caches, prefetching, program transformations for optimizing caches, and virtual memory. Processor architecture, including pipelining, hazards, branch prediction, static and dynamic scheduling, instruction-level parallelism, superscalar, and VLIW. Major projects.
Offered in Fall and Spring
ECE 564 - ASIC and FPGA Design with Verilog
Units: 3
Design of digital application specific integrated circuits [ASICs] and Field Programmable Gate Arrays [FPGAs] based on hardware description languages [Verilog] and CAD tools. Emphasis on design practices and underlying methods. Introduction to ASIC specific design issues including verification, design for test, low power design and interfacing with memories. Required design project. Expected Prior Experience or Background: ECE 310 is useful but not assumed. Functionally, I assume that students are familiar with logic design, including combinational logic gates, sequential logic gates, timing design, Finite State Machines, etc.
Offered in Fall Only
ECE 566 - Compiler Optimization and Scheduling
Units: 3
Provide insight into current compiler designs dealing with present and future generations of high performance processors and embedded systems. Introduce basic concepts in scanning and parsing. Investigate in depth program representation, dataflow analysis, scalar optimization, memory disambiguation, and interprocedural optimizations. Examine hardware/software tade-offs in the design of high performance processors, in particular VLIW versus dynamically scheduled architectures. Investigate back-end code generation techniques related to instruction selection, instruction scheduling for local, cyclic and global acyclic code, and register allocation and its interactions with scheduling and optimization.
Offered in Spring Only
ECE 570 - Computer Networks
Units: 3
General introduction to computer networks. Discussion of protocol principles, local area and wide area networking, OSI stack, TCP/IP and quality of service principles. Detailed discussion of topics in medium access control, error control coding, and flow control mechanisms. Introduction to networking simulation, security, wireless and optical networking.
Offered in Fall Spring Summer
ECE 573 - Internet Protocols
Units: 3
Principles and issues underlying provision of wide area connectivity through interconnection of autonomous networks. Internet architecture and protocols today and likely evolution in future. Case studies of particular protocols to demonstrate how fundamental principles applied in practice. Selected examples of networked clinet/server applications to motivate the functional requirements of internetworking. Project required.
Offered in Fall and Spring
ECE 574 - Computer and Network Security
Units: 3
This course presents foundational concepts of computer and network security and privacy. It covers a wide breadth of concepts, including; Fundamentals of computer security and privacy, including security models, policies, and mechanisms; Cryptography for secure systems, including symmetric and asymmetric ciphers, hash functions, and integrity mechanisms; Authentication of users and computers; Network attacks and defenses at the network and application layers; Common software vulnerabilities and mitigation strategies; Secure operating systems and seminal access control models and policies; Principles of intrusion detection; Privacy, including considerations of end-user technologies.
Offered in Fall and Spring
ECE 575 - Introduction to Wireless Networking
Units: 3
Introduction to cellular communications, wireless local area networks, ad-hoc and IP infrastructures. Topics include: cellular networks, mobility mannagement, connection admission control algorithms, mobility models, wireless IP networks, ad-hoc routing, sensor networks, quality of service, and wireless security.
Offered in Spring Only
ECE 576 - Networking Services: QoS, Signaling, Processes
Units: 3
Topics related to networking services, signaling for setting up networking services, such as SIP and IMS, networking architectures for providing QoS for networking services, such as MPLS, DiffServ and RAC, signaling protocols for setting up QoS connections in the transport stratum, such as LDP and RSVP-TE, video-based communications, and capacity planning models for dimensioning services.
Offered in Fall and Spring
ECE 577 - Switched Network Management
Units: 3
Topics related to design and management of campus enterprise networks, including VLAN design; virtualization and automation methodologies for management; laboratory use of open space source and commercial tools for managing such networks.
Offered in Fall Only
ECE 579 - Introduction to Computer Performance Modeling
Units: 3
Workload characterization, collection and analysis of performance data, instrumentation, tuning, analytic models including queuing network models and operational analysis, economic considerations.
Offered in Fall and Spring
ECE 705 - Memory Systems
Units: 3
Covers recent research on overcoming the problem of memory access and memory speed, two major limitations on the speed of computers. Overview of the current state of memory technologies, novel cache structures and management techniques, prefetching,memory compression, and parallelism at the instruction and thread levels. Research papers required.
ECE 706 - Advanced Parallel Computer Architecture
Units: 3
Advanced topics in parallel computer architecture. Hardware mechanisms for scalable cache coherence, synchronization, and speculation. Scalable systems and interconnection networks. Design or research project required.
Offered in Spring Only
ECE 720 - Electronic System Level and Physical Design
Units: 3
Study of transaction-level modeling of digital systems-on-chip using SystemC. Simulation and analysis of performance in systems with distributed control. Synthesis of digital hardware from high-level descriptions. Physical design methodologies, including placement, routing, clock-tree insertion, timing, and power analysis. Significant project to design a core at system and physical levels. Knowledge of object-oriented programming with C and register-transfer-level design with verilog or VHDL is required.
Offered in Fall Only
ECE 721 - Advanced Microarchitecture
Units: 3
Survey of advanced computer microarchitecture concepts. Modern superscalar microarchitecture, complexity-effective processors, multithreading, advanced speculation techniques, fault-tolerant microarchitectures, power and energy management, impact of new technology on microarchitecture. Students build on a complex simulator which is the basis for independent research projects.
Offered in Spring Only
YEAR: Offered Alternate Even Years
ECE 745 - ASIC Verification
Units: 3
This course covers the verification process used in validating the functional correctness in today's complex ASICs [application specific integrated circuits]. Topics include the fundamentals of simulation based functional verification, stimulus generation, results checking, coverage, debug, and formal verification. Provides the students with real world verification problems to allow them to apply what they learn.
Offered in Spring Only
ECE 773 - Advanced Topics in Internet Protocols
Units: 3
Cutting-edge concepts and technologies to support internetworking in general and to optimize the performance of the TCP/IP protocol suite in particular. Challenges facing and likely evolution for next generation intenetworking technologies. This course investigates topics that include, but may be not limited to: Internet traffic measurement, characteriztion and modeling, traffic engineering, network-aware applications, quality of service, peer-to-peer systems, content-distribution networks, sensor networks, reliable multicast, and congestion control.
Offered in Spring Only
ECE 774 - Advanced Network Security
Units: 3
A study of network security policies, models, and mechanisms. Topics include: network security models; review of cryptographic techniques; internet key management protocols; electronic payments protocols and systems; intrusion detection and correlation; broadcast authentication; group key management; security in mobile ad-hoc networks; security in sensor networks.
Offered in Spring Only
ECE 775 - Advanced Topics in Wireless Networking
Units: 3
Reviews the current state of research in wireless networks, network architectures, and applications of wireless technologies; students will design, organize, and implement or simulate systems in a full-semester research project. For students with background in networking and communications who wish to explore research and development topics.
Offered in Fall Only
ECE 776 - Design and Performance Evaluation of Network Systems and Services
Units: 3
Introduction to the design and performance evaluation of network services. Topics include top-down network design based on requirements, end-to-end services and network system architecture, service level agreements, quantitative performance evaluation techniques. Provides quantitative skills on network service traffic and workload modeling, as well as, service applications such as triple play, internet [IPTV], Peer-to-peer [P2P], voice over IP [VoIP], storage, network management, and access services.
Offered in Spring Only
ECE 777 - Telecommunications Network Design
Units: 3
Analytic modeling and topological design of telecommunications networks, including centralized polling networks, packet switched networks, T1 networks, concentrator location problems, routing strategies, teletraffic engineering and network reliability.
Offered in Spring Only