EECS 611: Electromagnetic Compatibility (3) A study of unwanted generation and reception of radio-frequency radiation from analog and digital electronic systems and how these emissions/receptions can be reduced. Topics covered include sources of radiation, grounding, shielding, crosstalk, electrostatic discharge, and practical design and layout schemes for reducing unwanted radiation and reception. Also covered are the major governmental electromagnetic compatibility (EMC) regulations and standards that apply to commercial electronic devices and system Prerequisites: EECS 220 and EECS 312 |
EECS 622: Microwave and Radio Transmission Systems (3) Introduction to radio transmission systems. Topics include radio transmitter and receiver design, radiowave propagation phenomenology, antenna performance and basic design, and signal detection in the presence of noise. Students will design radio systems to meet specified performance measure. Prerequisites: EECS 420; Co-requisites: EECS 461, EECS 562 |
EECS 628: Fiber Optic Communication Systems (3) Description and analysis of the key components in optical communications systems. Topics covered include quantum sources, propagation and dispersion characteristics of fiber, receiver characteristics, and system gain considerations. Prerequisites: EECS 220 and PHSX 313 or equivalent and upper-level EECS eligibility |
EECS 638: Fundamentals of Expert Systems (3) Basic information about expert systems: architecture of an expert system, building expert systems, uncertainty in expert systems, taxonomy of expert systems. Knowledge representation: first order logic, production systems, semantic nets, frames. Uncertainty in expert systems, one-valued approaches: probability theory, systems using Bayes' rule and systems using certainty theory; two-valued approaches: systems using Dempster-Shafer theory and system INFERNO; set-valued approaches: systems using fuzzy set theory and systems using rough set theory. Prerequisites: EECS 560 or consent of instructor |
EECS 643: Advanced Computer Organization (3) Principles and techniques of instruction level parallelism, Tomasulo’s algorithm, branch prediction, reservation stations, reorder buffers, memory hierarchies. Parallel and scalable architectures, multiprocessor organizations, global and distributed bus architectures, snoopy and global directory caches, synchronization primitives, memory consistency, multithreading. Prerequisites: EECS 443 |
EECS 644: Introduction to Digital Signal Processing (3) Discrete time signal and systems theory, sampling theorem, z-transforms, digital filter design, discrete Fourier transform, FFT, and hardware considerations. Prerequisites: EECS 360 |
EECS 645: Computer Architecture (3) The structure and design of computing systems. Examination and analysis of computing systems. Examination and analysis of instruction set architectures, pipelined control and arithmetic units, vector processors, memory hierarchies, and performance evaluation. Prerequisites: EECS 388 |
EECS 647: Introduction to Database Systems (3) Introduction to the concept of databases and their operations. Basic concepts, database architectures, storage structures and indexing, data structures: hierarchical, network, and relational database organizations. Emphasis on relational databases and retrieval languages SQL, QBE, and one based on relational algebra and relational calculus; brief description of predicate calculus. Theory of databases, normal forms, normalization, candidate keys, decomposition, functional dependencies, multi-valued dependencies. Introduction to the design of a simple database structure and a data retrieval language. Prerequisites: EECS 448 |
EECS 648: Software Engineering Tools (3) This course focuses on the software engineering tools and practices currently in use in the industry, supporting the complete software development lifecycle. The course provides hands-on experience with current software development tools. Topics include software engineering artifacts, team structure and roles, work contracts, requirements elicitation and analysis, specifications, supplementary specifications, use-case models, activity diagrams, use-case specifications, traceability, technical design, design review meetings, coding standards, code quality, code reviews, and modern software engineering tools. Prerequisites: EECS 448 |
EECS 649: Introduction to Artificial Intelligence (3) General concepts, search procedures, two person games, predicate calculus and automated theorem proving, nonmonotonicic logic, probabilistic reasoning, rule based systems, semantic networks, frames, dynamic memory, planning, machine learning, natural language understanding, neural networks. Prerequisites: EECS 368 |
EECS 660: Fundamentals of Computer Algorithms (3) Basic concepts and techniques in the design and analysis of computer algorithms. Models of computations. Simple lower bound theory and optimality of algorithms. Computationally hard problems and the theory of NP-Completeness. Introduction to parallel algorithms. Prerequisites: EECS 560 and either EECS 461 or MATH 526 |
EECS 662: Programming Languages (3) Formal definition of programming languages, including specification of syntax and semantics. Simple statements including precedence, infix, prefix, and postfix notation. Global properties of algorithmic languages including scope of declaration, storage allocation, grouping of statements, binding time of constituents, subroutines, coroutines, and tasks. Run-time representation of program and data structures. Prerequisites: EECS 368, EECS 388 and EECS 560 |
EECS 665: Compiler Construction (3) Compilation of simple expressions and statements. Organization of a compiler including symbol tables, lexical scan, syntax scan, object code generation, error diagnostics, code optimization techniques and run-time structures in a block-structured language such as PASCAL or B. Use of compiler writing languages and boot-strapping. Prerequisites: EECS 368, EECS 448, EECS 510 |
EECS 670: Introduction to Semiconductor Processing (3) An overview of various processes to fabricate semiconductor devices and integrated circuits. Topics covered include crystal growth, oxidation, solid-state diffusion, ion implantation, photolithography, chemical vapor deposition, epitaxial growth, metalization, and plasma etching of thin films. (Same as C&PE 655) Prerequisites: Senior standing in C&PE or EECS, or consent of instructor |
EECS 672: Introduction to Computer Graphics (3) Foundations of 2D and 3D computer graphics. Structured graphics application programming. Basic 2D and 3D graphics algorithms (affine transformations, clipping, projections, visible line/surface determination, basic empirical lighting and shading models), overview of freeform curves and surfaces, and antialiasing. Prerequisites: EECS 448 |
EECS 678: Introduction to Operating Systems (3) The purpose of this course is to provide the students with the concepts necessary to enable them to: a) identify the abstract services common to all operating systems, and explore the many variations possible, b) define the basic system components that carry out these machine independent abstractions, c) understand how the entire system fits together, not merely how one or two important parts interact, and d) understand the means by which fundamental problems in operating systems can be analyzed. Prerequisites: EECS 388 and EECS 448 |
EECS 690: Special Topics (1 - 3) Arranged as needed to present appropriate material to groups of students. May be repeated for additional credit. Prerequisites: Upper-level EECS eligibility and consent of instructor. |
EECS 692: Directed Reading (1 - 3) Reading under the supervision of an instructor on a topic chosen by the student with the advice of the instructor. May be repeated for additional credit. Consent of the department required for enrollment. Prerequisites: Upper-level EECS eligibility and consent of instructor. |