Skip redundant pieces

600 Level EECS Courses

Here you will find all availble EECS courses listed by course number. The tabs above futher organize the courses by their course level. If there is a courses that you cannot find listed, or have questions about a course that are not answered by the courses description feel free to Contact Us.


EECS 611 Electromagnetic Compatibility

3 credit hours

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

Prerequisite(s): EECS 220 and EECS 312

Back to top

EECS 622 Microwave and Radio Transmission Systems

3 credit hours

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.

Prerequisite(s): EECS 420 and EECS 461

Back to top

EECS 628 Fiber Optic Communication Systems

3 credit hours

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.

Prerequisite(s): EECS 220 and PHSX 313 or equivalent and upper-level EECS eligibility

Back to top

EECS 638 Fundamentals of Expert Systems

3 credit hours

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.

Prerequisite(s): EECS 560 or consent of instructor

Back to top

EECS 643 Advanced Computer Organization

3 credit hours

Advanced Computer Organization (3). Principles and techniques of instruction level parallelism, Tomasulo’s algorithm, branch prediction, reservation stations, recorder buffers, memory hierarchies. Parallel and scalable architectures, global directory caches, synchronization primitives, memory consistency, multithreading. Only one of EECS 643 and EECS 645 may be used to satisfy EECS degree requirements.

Prerequisite(s): EECS 443

Back to top

EECS 644 Introduction to Digital Signal Processing

3 credit hours

Discrete time signal and systems theory, sampling theorem, z-transforms, digital filter design, discrete Fourier transform, FFT, and hardware considerations.

Prerequisite(s): EECS 360

Back to top

EECS 645 Computer Architecture

3 credit hours

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.

Prerequisite(s): EECS 388

Back to top

EECS 647 Introduction to Database Systems

3 credit hours

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. Student cannot receive credit for both EECS 647 and EECS 746.

Prerequisite(s): EECS 448

Back to top

EECS 648 Software Engineering Tools

3 credit hours

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.

Prerequisite(s): EECS 448

Back to top

EECS 649 Introduction to Artificial Intelligence

3 credit hours

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.

Prerequisite(s): EECS 368

Back to top

EECS 660 Fundamentals of Computer Algorithms

3 credit hours

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.

Prerequisite(s): EECS 560 and either EECS 461 or MATH 526

Back to top

EECS 662 Programming Languages

3 credit hours

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.

Prerequisite(s): EECS 368, EECS 388 and EECS 560

Back to top

EECS 665 Compiler Construction

4 credit hours

Compiler Construction (4). Compilation of simple expressions and statements. Organization of a compiler including symbol tables, lexical analysis, syntax analysis, intermediate and object code generation, error diagnostics, code optimization techniques and run-time structures in a block-structured language such as PASCAL or C. Programming assignments include using tools for lexer and parser generator, and intermediate, and object code generation techniques. Laboratory exercises will provide hands-on experience with the tools and concepts required for the programming assignments.

Prerequisite(s): EECS 368, EECS 448, EECS 510

Back to top

EECS 670 Introduction to Semiconductor Processing

3 credit hours

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)

Prerequisite(s): Senior standing in C&PE or EECS, or consent of instructor

Back to top

EECS 672 Introduction to Computer Graphics

3 credit hours

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.

Prerequisite(s): EECS 448

Back to top

EECS 678 Introduction to Operating Systems

4 credit hours

Introduction to Operating Systems (4). The objective 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, b) define the basic system components that support the operating system’s machine independent abstractions on particular target architectures, c) consider how the design and implementation of different systems components interact and constrain one another, not merely how one or two important parts work in isolation, and d) understand the means by which fundamental problems in operating systems can be analyzed and addressed. Programming assignments address topics including process creation, inter-process communication, system call implementation, process scheduling and virtual memory. Laboratory exercises primarily focus on use of tools and concepts required for the programming assignments but include a small number of independent topics.

Prerequisite(s): EECS 388 and EECS 448

Back to top

EECS 690 Special Topics

1 - 3 credit hours

Arranged as needed to present appropriate material to groups of students. May be repeated for additional credit.

Prerequisite(s): Upper-level EECS eligibility and consent of instructor.

Back to top

EECS 692 Directed Reading

1 - 3 credit hours

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.

Prerequisite(s): Upper-level EECS eligibility and consent of instructor.

Back to top