EECS 700: Special Topics (1-5) Courses on special topics of current interest in electrical engineering, computer engineering, or computer science, given as the need arises. May be repeated for additional credit. Prerequisites: Variable |
EECS 710: Information Security and Assurance (3) Identifying critical information assets; information security, integrity, and availability; security risks and risk avoidance; security models; access control mechanisms; computer viruses, worms, Trojan horse and other malicious login; encryption, cryptography, and key management technologies; operating systems security; database security; network security; e-commerce security; security policies, management and auditing. Prerequisites: Graduate standing in EECS |
EECS 711: Security Management and Audit (3) Administration and management of security of information systems and networks, intrusion detection systems, vulnerability analysis, anomaly detection, computer forensics, auditing and data management, risk management, contingency planning and incident handling, security planning, e-business and commerce security, privacy, traceability and cyber-evidence, legal issues in computer security. Prerequisites: EECS 710 |
EECS 712: Network Security (3) Introduction to the basic concepts, components, protocols, and software tools to achieve secure communication in a public network. The concept of encryption, integrity, authentication, security models, and the robustness analysis. Emphasis on the application level protocols and vulnerabilities: firewalls, viruses, worm attack, Trojan horses, password security, secure multicast, biometrics, VPNs, internet protocols such as SSL, IPSec, PGP, and SNMP. The policies for access control, user privacy, and trust establishment and abuse in open environments such as eBay. Prerequisites: EECS 563 or 780 |
EECS 713: High-Speed Digital Circuit Design (3) Basic concepts and techniques in the design and analysis of high-frequency digital and analog circuits. Topics include: transmission lines, ground and power planes, layer stacking, substrate materials, terminations, vias, component issues, clock distribution, cross-talk, filtering and decoupling, shielding, signal launching. Prerequisites: EECS 312 and EECS 420. |
EECS 716: Formal Language Theory (3) Formal language generation by grammars, recognition by automata (finite and pushdown automata, Turing machines), and equivalence of these formulations; elementary containment and closure properties. Emphasis on context-free, deterministic context-free and regular languages.
Prerequisites: EECS 510 or equivalent. |
EECS 718: Graph Algorithms (3) This course introduces students to computational graph theory and various graph algorithms and their complexities. Algorithms and applications covered will include those related to graph searching, connectivity and distance in graphs, graph isomorphism, spanning trees, shortest paths, matching, flows in network, independent and dominating sets, coloring and covering, and Traveling Salesman and Postman problems. Prerequisites: EECS 560 or graduate standing with consent of instructor. |
EECS 720: Electromagnetics for Communications and Radar (3) Topics in electromagnetics relevant to wireless communications, optics and fiberoptics, radar and remote sensing. Subjects covered included space waves, guided waves, radiation and antennas, scattering, electromagnetic properties of materials, and optics. Prerequisites: EECS 420 or equivalent |
EECS 721: Antennas (3) Gain, Pattern, and Impedance concepts for antennas. Linear, loop, helical, and aperture antennas (arrays, reflectors, and lenses). Cylindrical and biconical antenna theory. Prerequisites: EECS 720 |
EECS 723: Microwave Engineering (3-4) Survey of microwave systems, techniques, and hardware. Guided-wave theory, microwave network theory, active and passive microwave components. The four-hour version of the course includes a lab. Prerequisites: EECS 420 |
EECS 725: Introduction to Radar Systems (3) Basic radar principles and applications. Radar range equation. Pulsed and CW modes of operation for detection, ranging, and extracting Doppler information. Prerequisites: EECS 360, EECS 420, and EECS 461. EECS 622 recommended |
EECS 728: Fiber-optic measurement and sensors (3) The course will focus on fundamental theory and various methods and applications of fiber-optic measurements and sensors. Topics include: optical power and loss measurements, optical spectrum analysis, wavelength measurements, polarization measurements, dispersion measurements, PMD measurements, optical amplifier characterization, OTDR, optical components characterization and industrial applications of fiber-optic sensors. Prerequisites: EECS 628 or equivalent. |
EECS 730: Introduction to Bioinformatics (3) This course provides an introduction to bioinformatics. It covers computational tools and databases widely used in bioinformatics. The underlying algorithms of existing tools will be discussed. Topics include: molecular biology databases, sequence alignment, gene expression data analysis, protein structure and function, protein analysis, and proteomics. Prerequisites: Data Structures class equivalent to EECS 560, and Introduction to Biology equivalent to BIOL 150, or consent of instructor. |
EECS 735: Automated Theorem Proving (3) Computer-based theorem-proving methods for selected domains such as plane geometry, symbolic integral calculus, and propositional calculus are reviewed. Mechanical theorem-proving procedures for the first-order predicate calculus are studied in depth. Includes resolution, semantic resolution, hyper-resolution, linear resolution, and paramodulation. Applications of these procedures to areas such as proofs of program correctness, deductive question answering, problem solving, and program synthesis. Prerequisites: EECS 649 and a knowledge of mathematical logic equivalent to that supplied by EECS 210. Infrequently offered. LEC |
EECS 737: Computational Genomics (3) This course focuses on the computational analysis of genomes. Computational methods are studied in tandem with applied studies of genome structure, function, and evolution. Topics include chromatin structure and function, genome architecture and evolution, DNA composition analysis, and processes behind gene expression; methodologies covered include sequence analysis and modeling, dynamic programming, formal language and linguistic methods, Markov chains and optimization methods, information theory, and molecular modeling. Prerequisites: EECS 730, or consent of instructor. |
EECS 738: Machine Learning (3) “Machine learning is the study of computer algorithms that improve automatically through experience” (Tom Mitchell). This course introduces basic concepts and algorithms in machine learning. A variety of topics such as Bayesian decision theory, dimensionality reduction, clustering, neural networks, hidden Markov models, combining multiple learners, reinforcement learning, Bayesian learning etc. will be covered.
Prerequisites: Graduate standing in CS or CoE or consent of instructor. |
EECS 739: Scientific Parallel Computing (3) This course is concerned with the application of parallel processing to problems in the natural sciences and engineering. State-of-the-art computing methodologies are studied along with contemporary applications. The course takes a performance-oriented applied approach, with attention to parallel algorithms, parallel system architecture, compilation issues, and system evaluation. Prerequisites: Graduate standing in science or engineering (or consent of instructor) and experience with C, C++, or FORTRAN |
EECS 740: Image Processing (3) The objective of this course is to give students a hands on introduction to the fundamentals of digital image/video processing. A wide variety of image/video processing applications will be discussed including: acquisition, enhancement, filtering, and restoration. Particular emphasis will be given to motion estimation techniques and image/video compression. Spatial domain and Fourier domain approaches will be used extensively. Prerequisites: EECS 672 or EECS 744 |
EECS 743: Static Analysis (3) This course presents an introduction to techniques for statically analyzing programs. Coverage includes theoretical analysis, definition and implementation of data flow analysis, control flow analysis, abstract interpretation, and type and effects systems. The course presents both the underlying definitions and pragmatic implementation of these systems. Prerequisites: EECS 662 or EECS 665 or equivalent |
EECS 744: Digital Signal Processing I (3) Discrete-time representation of signals and systems, z-transform properties, signal/system correlation, sampling theory, analysis of linear time-invariant systems, filter implementation, digital filter design, discrete Fourier transform, and the fast Fourier transform Prerequisites: EECS 360 |
EECS 745: Implementation of Networks (3) Laboratory-focused implementation of networks. Topics include direct link networks (encoding, framing, error detection, reliable transmission, SONET, FDDI, network adapters, Ethernet, 802.11 wireless networks); packet and cell switching (ATM, switching hardware, bridges & extended LANs); internetworking (Internet concepts, IPv6, multicast, naming/DNS); end-to-end protocols (UDP, TCP, APIs and sockets, RPCs, performance); end-to-end data (presentation formatting, data compression, security); congestion control (queuing disciplines, TCP congestion control and congestion avoidance); high-speed networking (issues, services, experiences); voice over IP (peer-to-peer calling, call managers, call signaling, PBX and call attendant functionality). Prerequisites: Computer networks and protocols and TCP/IP |
EECS 746: Database Systems (3) Introduction to the concept of databases and their operations. Basic database concepts, architectures, and data storage structures and indexing. Though other architectures are discussed, focus is on relational databases and the SQL retrieval language. Normalization, functional dependencies, and multivalued dependencies also covered. Culminates in the design and implementation of a simple database with a web interface. Prerequisites: EECS 448 or consent of instructor. Students cannot receive credit for both EECS 647 and EECS 746. |
EECS 747: Mobile Robotics (3) Design, construction and programming of mobile robots. Topics include computational hardware, designing and prototyping, sensors, mechanics, motors, power, robot programming, robot design principles, and current research in mobile robotics. Prerequisites: Knowledge of at least one modern programming language. |
EECS 749: Knowledge-Based Systems (3) General concepts of intelligent problem solving, rule-based systems, distributed AI, reasoning under uncertainty, case-based reasoning, subsymbolic techniques. Prerequisites: At least one class in Artificial Intelligence. |
EECS 750: Advanced Operating Systems (3) This course builds on the foundation established by an introductory course in operating systems concepts (e.g. EECS 678). Some previously covered topics are revisited in far greater detail, including code review of relevant portions of the Linux kernel source code. Examples include: computation representation by processes, system calls, interrupt processing and interrupt concurrency, process execution scheduling, and concurrency control methods. Advanced topics, such as system performance analysis, time keeping, clock synchronization, virtualization, real - time implications for system design and scheduling, and device driver implementation are introduced for the first time. Approximately one- quarter to one- third of the class is devoted to reading, presenting and discussing conference and journal papers either illustrating classic breakthroughs in system architectures and methods or current research issues. Selection of the specific papers is done each semester, and students in the class are encouraged to suggest candidate topics and/or papers for consideration. Prerequisites: An undergraduate course in operating systems fundamentals. For example, EECS 678 or equivalent. |
EECS 752: Concurrent Software Systems (3) Introduction to design and implementation of concurrent (multi-threaded, parallel, or distributed) software systems. The course examines problems and solutions common to all concurrent software, including interference, deadlock, consensus, resource allocation, coordination, global predicate evaluation, ways of expressing concurrency, concurrent I/O, debugging, fault tolerance, and heterogeneity Prerequisites: EECS 448 and EECS 678 |
EECS 753: Embedded and Real Time Computer Systems (3) This course will cover emerging and proposed techniques and issues in embedded and real time computer systems. Topics will include new paradigms, enabling technologies, and challenges resulting from emerging application domains Prerequisites: EECS 645 and EECS 678 |
EECS 755: Software Modeling and Analysis (3) Modern techniques for modeling and analyzing software systems. Course coverage concentrates on pragmatic, formal modeling techniques that support predictive analysis. Topics include formal modeling, static analysis, and formal analysis using model checking and theorem proving systems. Prerequisites: EECS 368 or equivalent. |
EECS 761: Advanced Programming Paradigms (3) An investigation of alternative programming paradigms and their representative effect on programming expressiveness and style. Emphasis is on a comparative understanding of a spectrum of programming paradigms, with some facility in the use of at least one typical language representative of each paradigm studied. This course will review and investigate as appropriate imperative, functional, object-oriented, parallel, logical, and scripting programming paradigms, plus additional paradigms as relevant. Prerequisites: EECS 662 or equivalent or consent of instructor. |
EECS 762: Programming Language Foundation I (3) This course presents a basic introduction to the semantics of programming languages. The presentation begins with basic lambda calculus and mechanisms for evaluating lambda calculus terms. Types are introduced in the form of simply typed lambda calculus and techniques for type inference and defining type systems are presented. Finally, techniques for using lambda calculus to define, evaluate and type check common programming language constructs are presented. Prerequisites: EECS 662 or equivalent. |
EECS 763: Introduction to Multiprocessor Systems on Chip (MPSoC) (3) This course covers the latest trends in advanced computer architecture for multiprocessor systems on chip for embedded and real time systems. Topics covered include multicore architectures, modeling abstractions, run time systems, and Hw/Sw co-design techniques. Prerequisites: EECS 645 and EECS 678 or equivalents |
EECS 764: Analysis of Algorithms (3) Models of computations and performance measures; asymptotic analysis of algorithms; basic design paradigms including divide-and-conquer, dynamic programming, backtracking, branch-and-bound, greedy method and heuristics; design and analysis of approximation algorithms; lower bound theory; polynomial transformation and the theory of NP-completeness; additional topics may be selected from arithmetic complexity, graph algorithms, string matching, and other combinatorial problems. Prerequisites: EECS 660 or equivalent |
EECS 766: Resource Sharing for Broadband Access Networks (3) Connections between network customers and the network come in many forms, wireless data systems, e.g., IEEE 802.16, wireless cellular systems, e.g. 3G, coax cable networks, e.g., DOCSIS, fiber optic communications systems, e.g., EPON, copper twisted pair, e.g., DSL, and powerline communications systems. All of these systems use various resource sharing strategies. The resource sharing strategy is matched to the necessities of specific systems as well as their operating environments. There are commonalities between these strategies as well as differences. This course will look at resource sharing from a general perspective and then examine specific systems to underscore their commonalities and differences. Systems to be studied in detail include, DOSCIS, IEEE 802.16/Wi-Max, WCDMA, HSDPA/HSUPA, EV-DO, EPON, ZigBee/IEEE802.15.4, powerline networks. The use of cognitive radio communications technologies in future access networks will be introduced. Prerequisites: EECS 461, and EECS 563 or EECS 780 |
EECS 767: Information Retrieval (3) The objective of this course is to give students a hands-on introduction to information retrieval systems. Classical textual information retrieval systems are studied, followed by presentation of current research in the area. Topics include: file structures, term-weighting schemes, text preprocessing, World Wide Web search engines, multimedia retrieval systems, artificial intelligence applications. Prerequisites: EECS 647 or graduate standing |
EECS 773: Advanced Graphics (3) Advanced topics in graphics and graphics systems. Topics at the state of the art typically selected from: photorealistic rendering; physically-based lighting models; ray tracing; radiosity; physically-based modeling and rendering; animation; general texture mapping techniques; point-based graphics; collaborative techniques; and others Prerequisites: EECS 672 or permission of instructor. |
EECS 774: Geometric Modeling (3) Introduction to the representation, manipulation, and analysis of geometric models of objects. Implicit and parametric representations of curves and surfaces, with an emphasis on parametric freeform curves and surfaces such as Bezier and Nonuniform Rational B-Splines (NURBS). Curve and surface design and rendering techniques. Introduction to solid modeling: representations and basic algorithms. Projects in C/C++ using OpenGL. Prerequisites: EECS 672 or permission of instructor. |
EECS 775: Visualization (3) Data representations, algorithms, and rendering techniques typically used in Visualization applications. The emphasis is on Scientific Visualization and generally includes topics such as contouring and volumetric rendering for scalar fields, glyph and stream (integral methods) for vector fields, and time animations. Multidimensional, multivariate (MDMV) visualization techniques; scattered data interpolation; perceptual issues Prerequisites: General knowledge of 3D graphics programming or permission of instructor. |
EECS 780: Communication Networks (3) Comprehensive in-depth coverage to communication networks with emphasis on the Internet and the PSTN (wired and wireless). Extensive examples of protocols and algorithms will be presented at all levels, including: client/server and peer-to-peer applications; session control; transport protocols, the end-to-end arguments and end-to-end congestion control; network architecture, forwarding, routing, signalling, addressing, and traffic management; quality of service, basic queuing (basic M/M/1 and Little's law) and multimedia applications; LAN architecture, link protocols, access networks and MAC algorithms; physical media characteristics and coding; network security and information assurance; network management. Students cannot receive credit for both EECS 563 and EECS 780. Prerequisites: EECS 168 and EECS 461. |
EECS 781: Numerical Analysis I (3) Finite and divided differences. Interpolation, numerical differentiation, and integration. Gaussian quadrature. Numerical integration of ordinary differential equations. Curve fitting. (Same as MATH 781). Prerequisites: MATH 320 and knowledge of a programming language |
EECS 782: Numerical Analysis II (3) Direct and interactive methods for solving systems of linear equations. Numerical solution of partial differential equations.Numerical determination of eigenvectors and eigenvalues. Solution of nonlinear equations. (Same as MATH 782). Prerequisites: EECS 781 |