Electrical & Computer Engineering
View courses in
-
ENG EC 719: Statistical Learning Theory
Classical and contemporary theories of machine learning. Topics/emphasis may change based on instructor preference in different years. A project involving computer implementation of a learning or inference algorithm accompanied by or in support of theoretical analysis is required -
ENG EC 720: Digital Video Processing
Review of sampling/filtering in multiple dimensions, human visual system, fundamentals of information theory. Motion analysis: detection, estimation, segmentation, tracking. Image sequence segmentation. Spectral analysis of image sequences. Video enhancement: noise reduction, super-resolution. Video compression: transformation, quantization, entropy coding, error resilience. Video compression standards (H.26X and MPEG families). Future trends in image sequence compression and analysis. Homework and project will require MATLAB programming. -
ENG EC 724: Advanced Optimization Theory and Methods
Introduces advanced optimization techniques. Emphasis on nonlinear optimization and recent developments in the field. Topics include: unconstrained optimization methods such as gradient, conjugate direction, Newton and quasi-Newton methods; constrained optimization methods such as gradient projection, feasible directions, barrier and interior point methods; duality theory and methods; convex duality; and introduction to other advanced topics such as semi-definite programming, incremental gradient methods and stochastic approximation algorithms. Applications drawn from control, production and capacity planning, resource allocation, communication and neural network problems. Same as ENG ME 724 and ENG SE 724. Students may not receive credits for both. -
ENG EC 725: Queueing Systems
Performance modeling using queueing networks analysis of product form and nonproduct form networks, numerical methods for performance evaluation, approximate models of queueing systems, optimal design and control of queueing networks. Applications from manufacturing systems, computer systems, and communication networks. Same as ENG ME 725 and ENG SE 725. Students may not receive credits for both. -
ENG EC 726: Personal Knowledge Engineering
Introduction to concepts and methods of Knowledge Engineering on a personal scale. Aimed at students who foresee the need to structure and activate information on their own terms in research, business, authoring, presence on the Internet, etc., or do original research in that area. Includes expressing tasks, processes, and documents in terms of essential features and goals, and how to let computers translate this ?deep structure? into the ?surface expression? appropriate to a desired use. Specifically, how to create ?personal agents? to extend the reach in various directions (memory enhancement, Web mining, and task automation). Among the methodological issues to be treated: semantic tagging (e.g., XML) vs. informal structuring; Markovian vs. Bayesian search methods; making the design/fabricate/evaluate cycle accessible to the layman; scripting language as a personal servant. -
ENG EC 727: Advanced Coding Theory
Advanced topics in the theory of error-correcting codes, with an emphasis on decoding algorithms. Various codes and corresponding decoding algorithms: cyclic (BCH, Reed-Solomon), Reed-Muller, Golay, algebraic-geometry (Goppa, Hermitian), and iteratively-decoded codes (turbo and LDPC), graph-based decoding; trellis construction and decoding (Viterbi algorithm), belief propagation (sum-product, min-sum). Various applications: cryptography, data synchronization, and tiling. -
ENG EC 728: Design and Testing for Distributed Software-Intensive Systems
Systems and software requirements definition, architectural software design, object-oriented software development and testing, with emphasis on distributed software-intensive systems (i.e., software for telecommunications, real-time control systems, etc.) Individual project involving requirements definition and a team project involving object-oriented software architecture, design and testing. -
ENG EC 730: Information-Theoretical Design of Algorithms
Recently developed information-theoretical approach to the analysis and design of computer algorithms. Previous knowledge of information theory or the theory of algorithms is not required, though desirable. Main topics include the complexity of algorithms; P, E, NP, and NP?hard problems; basic concepts of information theory, optimal coding; information-theoretical approach to sorting, order statistics, binary search, decision trees, hashing, minimization of Boolean functions, test, and similar problems; and design of efficient computer algorithms. -
ENG EC 731: Applied Plasma Physics
Statistical description of plasmas as many-body systems. Liouville equation. Distribution functions. Transport phenomena in plasmas. Fokker-Planck theory. Applications for MHD power generation, sputtering, plasma deposition, ambipolar diffusion in machine plasmas. Kinetic equations for plasma. Maxwell-Vlasov theory of plasma waves and plasma instability. Applications to microwave devices, particle beams, space and laboratory plasmas. Fluctuations, correlations, and plasma radiation. -
ENG EC 732: Combinatorial Optimization and Graph Algorithms
of algorithms for the solution of optimization problems with discrete decision spaces. Review of linear programming and duality. Discussion of advanced network optimization algorithms and matroid optimization. Approximate algorithms for NP-Hard optimization problems. Submodular optimization. Same as ENG SE 732. Students may not receive credits for both. -
ENG EC 733: Discrete Event and Hybrid Systems
Review of system theory fundamentals distinguishing between time-driven and event-driven dynamics. Modeling of Discrete Event and Hybrid Systems: Automata, Hybrid Automata, Petri Nets, basic queueing models, and stochastic flow models. Monte Carlo computer simulation: basic structure and output analysis. Analysis, control and optimization techniques based on Markov Decision Process theory with applications to scheduling, resource allocation and games of chance. Perturbation Analysis and Rapid Learning methods with applications to communication networks, manufacturing systems, and command-control. Same as ENG ME 733 and ENG SE 733. Students may not receive credits for both. -
ENG EC 734: Hybrid Systems
The course offers a detailed introduction to hybrid systems, which are dynamical systems combining continuous dynamics (modeled by differential equations) with discrete dynamics (modeled by automata). The covered topics include modeling, simulation, stability analysis, verification, and control of such systems. The course contains several applications from both natural and manmade environments, ranging from gene networks in biology, to networked embedded systems in avionics and automotive controls, and to motion planning and control in robotics. Same as ENG ME 734 and ENG SE 734. Students may not receive credits for both. -
ENG EC 741: Randomized Network Algorithms
Probabilistic techniques and paradigms in the design and evaluation of network algorithms. Review of basic concepts in probability, graph theory, and algorithms. Tail inequalities and Chernoff bounds. Ball and bins and random graph models. Markov chains and random walks. The probabilistic method. Monte Carlo methods. Introduction to martingales, networking applications: distributed content storage and look-up in P2P networks, IP traceback, fountain codes, universal hash functions, packet routing. Same as ENG SE 741. Students may not receive credit for both. -
ENG EC 744: Mobile Ad Hoc Networking and Computing
Mobile routers, wireless interconnectivity, and an unpredictably changing topology characterize a Mobile Ad hoc Network (MANET). Covers MANET-specific topics related to resource discovery, handoff, MAC-layer, security, routing, mobility and location management, self-organization, caching, and practical implementations. -
ENG EC 745: Nanomedicine: Principles and Applications
The use of nanoscience and technology for biomedical problems has spawned a field of applications ranging from nanoparticles for imaging and therapeutics, to biosensors for disease diagnostics. Nanomedicine is a rapidly growing field that exploits the novel properties of nanoscale materials and techniques to rapidly advance our understanding of human biology and the practice of medicine. This course focuses on the fundamental properties, synthesis and characterization of nanomaterials, coupled with their applications in nanomedicine, including: micro- and nano-particles for drug delivery and imaging, microfluidics for in vitro diagnostics, nanomaterials and platforms for biological applications. The biomedical applications include cancer, cardiovascular disease, and infectious diseases. Same as ENG BE 745. Students may not receive credit for both. -
ENG EC 749: Interconnection Networks to Multicomputers
Interconnection network topologies. Static and dynamic networks. Routing in multicomputer networks. Network flow control. Deadlocks in routing. Multicast and broadcast. Fault-tolerance and reliability of interconnection networks. Modules for realization (nodes and routers). Performance metrics for different topologies. -
ENG EC 751: Design of Asynchronous Circuit and Systems
Very large-scale integrated circuit design. Review of MOSFET basics. Functional module design, including BiCMOS, combinational and sequential logic, programmable logic arrays, finite-state machines, ROM, and RAM. Fabrication techniques, layout strategies, scalable design rules, design-rule checking, guidelines for testing and testability. Analysis of factors affecting speed of charge transfer, power requirements, and control and minimization of parasitic effects. Survey of VLSI applications. Extensive CAD laboratory accompanies course. -
ENG EC 752: Theory of Computer Hardware Testing
At the present time cost of testing is much higher than cost of design and manufacturing for computer systems. The course will contain a unified presentation of approaches for testing and diagnosis of computer hardware. Gate-level testing, functional testing, testing and diagnosis of microprocessors, memory testing, and random testing. Design for testability. Data compression of test responses. Architectures for built-in self-testing and self-diagnosis. Self-error-detection and self-error-correction in processors and memories. -
ENG EC 753: Fault-Tolerant Computing
This course will cover techniques for design of fault-tolerant digital devices with on-line self-error-detection and self-error-correction. Fault-tolerant PLAs, gate arrays, and computer memories. Fault-tolerant computer architectures. Application of error-detecting and error-correcting codes for design of reliable devices with self-error detection/correction. Design of self-checking checkers. Combining on-line and off-line error-detecting techniques. Reliability analysis of fault-tolerant devices. Self-error detection/correction for multiprocessors. -
ENG EC 754: Computer-Aided Verification and Synthesis
This course will introduce the fundamental theory in computer-aided verification and synthesis for building provably dependable computer systems. The topics covered include logic specifications, modeling formalisms, verification techniques, and inductive synthesis strategies. A special focus of the course is on interplay between deductive reasoning (logical inference and constraint solving) and inductive inference (learning from data). We will also survey applications of these techniques to a wide range of problems in hardware, software, cyber-physical systems, robotics, and biology.

