Electrical Engineering and Computer Science
The technological advances that have made our society what it is today are due largely to the efforts of electrical engineers, computer engineers, and computer scientists. Among these advances are radio, television, telephones, wireless and mobile communications, personal computers, workstations, mainframe computers, aircraft avionics, satellite electronics, automobile electronics, office machinery, medical electronic equipment, video games, electric power generation and distribution systems, telecommunications, computer networks (including the Internet), personal entertainment products, radar, defense electronics, artificial intelligence, and a variety of computer software.
Vision and Mission
The vision of the EECS department is to provide a stimulating and challenging intellectual environment.
- To have classes populated by outstanding students.
- To be world class in an increasing number of selected areas of research.
- To have faculty members with high visibility among their peers.
The mission of the EECS department is
- To educate the next generation of electrical engineers, computer engineers, and computer scientists.
- To discover, apply, and disseminate knowledge.
- To be an asset to the community and to society.
The department offers 5 Bachelor of Science (B.S.) degrees:
- Electrical Engineering,
- Computer Engineering,
- Computer Science,
- Interdisciplinary Computing, and
- Information Technology.
Each features a firm grounding in mathematics, basic science, computer and engineering science, and advanced studies in the theory and design of various systems as well as hands-on experience. Degree programs in electrical engineering, computer engineering and computer science are accredited. The recently approved interdisciplinary computing and information technology degree programs are not yet eligible for accreditation review.
The department offers Ph.D. degrees in electrical engineering and computer science; and M.S. degrees in electrical engineering, computer engineering, computer science, and information technology. The M.S. degree in information technology can be completed at the KU Edwards Campus in the Kansas City area.
The department has graduate focus areas in applied electromagnetics, communications systems, computer systems design, computing in the biosciences, information assurance and management, intelligent informatics, internet engineering and management, languages and semantics, network engineering, network systems, radar systems and remote sensing, RF systems engineering, security and assurance, signal processing, software engineering and management and theory of computing. Class lists and teaching schedules are available in the graduate office or on the department's website. Other areas of study can be constructed, in conjunction with a faculty advisor, to fit individual student needs.
EECS 101. New Student Seminar. 1 Hour.
A seminar intended to help connect freshmen and transfer EECS students to the EECS department, their chosen profession, and each other. Topics include overviews of the various disciplines, curricula and advising, ethics and professionalism, student organizations and extracurricular activities, senior projects, and career planning. Graded on a satisfactory/unsatisfactory basis. LEC.
EECS 137. Visual Basic for Engineers. 3 Hours.
Introduction of computer-based problem solving techniques for engineering practice with emphasis on good programming practices and the integration of appropriate computational and related tools. Solutions are computed using Visual Basic, specifically VBA within Excel. Elementary numerical and statistical methods are applied to the solution of sets of linear and nonlinear algebraic equations, linear regression, and root finding. Microsoft Office is used with the computational tools to provide integrated report generation capability. Two lectures and a weekly laboratory instruction. Prerequisite: MATH 104. LEC.
EECS 138. Introduction to Computing: _____. 3 Hours NM.
Algorithm development, basic computer organization, syntax and semantics of a high-level programming language, including testing and debugging. Concept of structure in data and programs, arrays, top-down design, subroutines and library programs. Abstract data types. System concepts such as compilation and files. Nature and scope of computer science. Prerequisite: MATH 101 or MATH 104, or meeting the requirements to enroll in MATH 115 or MATH 121 or MATH 125 or MATH 145. LEC.
EECS 140. Introduction to Digital Logic Design. 4 Hours.
An introductory course in digital logic circuits covering number representation, digital codes, Boolean Algebra, combinatorial logic design, sequential logic design, and programmable logic devices. Prerequisite: Corequisite: MATH 104. LEC.
EECS 141. Introduction to Digital Logic: Honors. 4 Hours.
An introductory course in digital logic circuits covering number representation, digital codes, Boolean algebra, combinatorial logic design, sequential logic design, and programmable logic devices. This course is intended for highly motivated students and includes honors-level assignments. Prerequisite: Co-requisite: MATH 121, or MATH 125 or MATH 145, plus either acceptance into the KU Honors Program or consent of instructor. LEC.
EECS 168. Programming I. 4 Hours.
Problem solving using a high level programming language and object oriented software design. Fundamental stages of software development are discussed: problem specification, program design, implementation, testing, and documentation. Introduction to programming using an object oriented language: using classes, defining classes, and extending classes. Introduction to algorithms and data structures useful for problem solving: arrays, lists, files, searching, and sorting. Student will be responsible for designing, implementing, testing, and documenting independent programming projects. Professional ethics are defined and discussed in particular with respect to computer rights and responsibilities. Prerequisite: Corequisite: MATH 104. LEC.
EECS 169. Programming I: Honors. 4 Hours.
Problem solving using a high level programming language and object oriented software design. Fundamental stages of software development are discussed: problem specification, program design, implementation, testing, and documentation. Introduction to programming using an object oriented language: using classes, defining classes, extending classes. Introduction to algorithms and data structures useful for problem solving: arrays, lists, files, searching, and sorting. Students will be responsible for designing, implementing, testing, and documenting independent programming projects. Professional ethics are defined and discussed in particular with respect to computer rights and responsibilities. This course is intended for highly motivated students and includes honors-level assignments. Prerequisite: Co-requisite: MATH 121 or MATH 125 or MATH 145, plus either acceptance into the KU Honors Program or consent of instructor. LEC.
EECS 210. Discrete Structures. 4 Hours.
Mathematical foundations including logic, sets and functions, general proof techniques, mathematical induction, sequences and summations, number theory, basic and advanced counting techniques, solution of recurrence relations, equivalence relations, partial order relations, lattices, graphs and trees, algorithmic complexity, and algorithm design and analysis. Throughout there will be an emphasis on the development of general problem solving skills including algorithmic specification of solutions and the use of discrete structures in a variety of applications. Prerequisite: EECS 168 or 169 (or equivalent) and MATH 122 or MATH 126 or MATH 146. LEC.
EECS 211. Circuits I. 3 Hours.
Analysis of linear electrical circuits: Kirchoff's laws; source, resistor, capacitor and inductor models; nodal and mesh analysis; network theorems; transient analysis; Laplace transform analysis; steady-state sinusoidal analysis; computer-aided analysis. Prerequisite: Co-requisite: MATH 220 and MATH 290. LEC.
EECS 212. Circuits II. 4 Hours.
Continued study of electrical circuits: Steady-state power analysis, three-phase circuits, transformers, frequency response, and two-port network analysis. Prerequisite: EECS 211. LEC.
EECS 220. Electromagnetics I. 4 Hours.
Vector analysis. Electrostatic and magnetostatic fields in a vacuum and material media. Electromagnetic fields and Maxwell's equations for time-varying sources. The relationship between field and circuit theory. Simple applications of Maxwell's equations. Prerequisite: MATH 220, MATH 290, PHSX 211, and EECS 211. LEC.
EECS 221. Electromagnetics I. 3 Hours.
Electrostatic and magnetostatic fields in a vacuum and material media. Electromagnetic fields and Maxwell's equations for time-varying sources. The relationship between field and circuit theory. Simple applications of Maxwell's equations. Prerequisite: MATH 127, MATH 220, EECS 211, and either PHSX 210 or PHSX 211. LEC.
EECS 268. Programming II. 4 Hours.
This course continues developing problem solving techniques by focusing on the imperative and object-oriented styles using Abstract Data Types. Basic data structures such as queues, stacks, trees, and graphs will be covered. Recursion. Basic notions of algorithmic efficiency and performance analysis in the context of sorting algorithms. Basic Object-Oriented techniques. An associated laboratory will develop projects reinforcing the lecture material. Three class periods and one laboratory period per week. Prerequisite: EECS 168 or EECS 169. LEC.
EECS 312. Electronic Circuits I. 3 Hours.
Introduction to diodes, BJTs and MOSFETs, and their use in electronic circuits, especially digital circuits. Prerequisite: Upper-level eligibility. Corequisite: EECS 212. LEC.
EECS 315. Electric Circuits and Machines. 3 Hours.
Introduction to DC and AC electrical circuit analysis techniques, AC power calculations, transformers, three-phase systems, magnetic circuits, and DC and AC machines with a focus on applications. Not open to electrical or computer engineering majors. Prerequisite: A course in differential equations and eight hours of physics. LEC.
EECS 316. Circuits, Electronics and Instrumentation. 3 Hours.
Introduction to DC and AC electrical circuit analysis, operational amplifiers, semiconductors, digital circuits and systems, and electronic instrumentation and measurements with a focus on applications. Not open to electrical or computer engineering majors. Students may not receive credit for both EECS 316 and EECS 317. Prerequisite: A course in differential equations and eight hours of physics. LEC.
EECS 317. Electronics and Instrumentation. 2 Hours.
Introduction to operational amplifiers, semiconductors, digital circuits and systems, and electronic instrumentation and measurements with a focus on applications. Not open to electrical or computer engineering majors. Students may not receive credit for both EECS 316 and EECS 317. Prerequisite: EECS 315. LEC.
EECS 318. Circuits and Electronics Lab. 1 Hour.
Laboratory exercises intended to complement EECS 316 and EECS 317. Experiments include DC circuits, analog electronics, and digital electronics. Not open to electrical or computer engineering majors. Prerequisite: Corequisite: EECS 316 or EECS 317. LAB.
EECS 360. Signal and System Analysis. 4 Hours.
Fourier signal analysis (series and transform); linear system analysis (continuous and discrete); Z-transforms; analog and digital filter analysis. Analysis and design of continuous and discrete time systems using MATLAB. Prerequisite: Upper level of EECS Eligibility, and EECS 212. LEC.
EECS 368. Programming Language Paradigms. 3 Hours.
The course is a survey of programming languages: their attributes, uses, advantages, and disadvantages. Topics include scopes, parameter passing, storage management, control flow, exception handling, encapsulation and modularization mechanism, reusability through genericity and inheritance, and type systems. In particular, several different languages will be studied which exemplify different language philosophies (e.g., procedural, functional, object-oriented, logic, scripting). Prerequisite: EECS 268 and upper-level EECS eligibility. LEC.
EECS 388. Embedded Systems. 4 Hours.
This course will address internal organization of micro-controller systems, sometimes called embedded systems, used in a wide variety of engineered systems: programming in C and assembly language; input and output systems; collecting data from sensors; and controlling external devices. This course will focus on one or two specific microprocessors, software development and organization, and building embedded systems. Prerequisite: EECS 140 or EECS 141, EECS 168 or EECS 169, and upper-level EECS eligibility. LEC.
EECS 399. Projects. 1-5 Hours.
An electrical engineering, computer engineering, or computer science project pursued under the student's initiative, culminating in a comprehensive report, with special emphasis on orderly preparation and effective composition. Prerequisite: Upper-level EECS eligibility and consent of instructor. IND.
EECS 412. Electronic Circuits II. 4 Hours.
Discrete and integrated amplifier analysis and design. Introduction to feedback amplifier analysis and design. Introduction to feedback amplifiers. Prerequisite: EECS 312 and upper-level EECS eligibility. LEC.
EECS 420. Electromagnetics II. 4 Hours.
This course applies electromagnetic analysis to high frequency devices and systems where wave propagation effects cannot be neglected. Topics covered include transmission lines, space waves, waveguides, radiation, and antennas. Laboratory experiments include transmission line, waveguide, and antenna measurements and characterizations. 3 hours lecture, 1 hour laboratory. Prerequisite: EECS 220 and upper-level EECS eligibility. LEC.
EECS 441. Power Systems Engineering II. 3 Hours.
A continuation of ARCE 640 that integrates system components into functional, safe, and reliable power distribution systems for commercial, industrial and institutional (CII) facilities. Service entrance design, distribution system layout and reliability, emergency and standby power system design, medium-voltage distribution systems, symmetrical fault analysis, and special equipment and occupancies. (Same as ARCE 641.) Prerequisite: Either ARCE 640 or EECS 212, and Upper-Level EECS Eligibility. LEC.
EECS 443. Digital Systems Design. 4 Hours.
The design of digital systems from a hardware point of view. The implementation of functional and control units using programmable logic devices. Introduction to VHDL and its use in modeling and designing digital systems. Prerequisite: EECS 388. LEC.
EECS 444. Control Systems. 3 Hours.
An introduction to the modeling, analysis, and design of linear control systems. Topics include mathematical models, feedback concepts, state-space methods, time response, system stability in the time and transform domains, design using PID control and series compensation, and digital controller implementation. Prerequisite: EECS 212 and EECS 360. LEC.
EECS 448. Software Engineering I. 4 Hours.
This course is an introduction to software engineering, and it covers the systematic development of software products. It outlines the scope of software engineering, including life-cycle models, software process, teams, tools, testing, planning, and estimating. It concentrates on requirements, analysis, design, implementation, and maintenance of software products. The laboratory covers CASE tools, configuration control tools, UML diagrams, integrated development environments, and project specific components. Prerequisite: EECS 268 and upper-level EECS eligibility. LEC.
EECS 461. Probability and Statistics. 3 Hours.
Introduction to probability and statistics with applications. Reliability of systems. Discrete and continuous random variables. Expectations, functions of random variables, and linear regression. Sampling distributions, confidence intervals, and hypothesis testing. Joint, marginal, and conditional distribution and densities. Prerequisite: MATH 290, MATH 220 and upper-level EECS eligibility. LEC.
EECS 470. Electronic Devices and Properties of Materials. 3 Hours.
An introduction to crystal structures, and metal, insulator, and semiconductor properties. Topics covered include the thermal, electric, dielectric, and optical properties of these materials. A significant portion of this course is devoted to the properties of semiconductors and semiconductor devices. Prerequisite: PHSX 313 and upper-level EECS eligibility. LEC.
EECS 498. Honors Research. 1-2 Hours.
Arranged to allow students to satisfy the independent research requirement for graduation with departmental honors. Prerequisite: Consent of instructor and upper-level EECS eligibility. IND.
EECS 501. Senior Design Laboratory I. 3 Hours.
A lecture/laboratory course involving the design and implementation of prototypes of electrical and computer type products and systems. The project specifications require consideration of ethics, economics, manufacturing, and safety. Prerequisite: EECS 412. LEC.
EECS 502. Senior Design Laboratory II. 3 Hours AE61.
A lecture/laboratory course involving the design and implementation of prototypes of electrical and computer type products and systems. The project specifications require consideration of ethics, economics, health, manufacturing, and safety. Prerequisite: EECS 501. LEC.
EECS 510. Introduction to the Theory of Computing. 3 Hours.
Finite state automata and regular expressions. Context-free grammars and pushdown automata. Turing machines. Models of computable functions and undecidable problems. The course emphasis is on the theory of computability, especially on showing limits of computation. May be taken for graduate credit. (Same as MATH 510.) Prerequisite: EECS 210 and upper-level EECS eligibility. LEC.
EECS 512. Electronic Circuits III. 3 Hours.
Feedback amplifier circuit analysis, power amplifiers, analog IC op-amp techniques and analysis, filter approximation and realization, oscillators, wave generators and shapers. Prerequisite: EECS 412. LEC.
EECS 541. Computer Systems Design Laboratory I. 3 Hours.
A two semester lecture/laboratory course involving the specification, design, implementation, analysis, and documentation of a significant hardware and software computer system. Laboratory work involves software, hardware, and hardware/software trade-offs. Project requirements include consideration of ethics, economics, manufacturing, safety, and health aspects of product development. Can be taken only during the senior year. Prerequisite: EECS 443 and EECS 448. LEC.
EECS 542. Computer Systems Design Laboratory II. 3 Hours AE61.
A two semester lecture/laboratory course involving the specification, design, implementation, analysis, and documentation of a significant hardware and software computer system. Laboratory work involves software, hardware, and hardware/software trade-offs. Project requirements include consideration of ethics, economics, manufacturing, safety, and health aspects of product development. Can be taken only during the senior year. Prerequisite: EECS 541. LEC.
EECS 544. Electric Machines & Drives. 3 Hours.
Introduction to electric machine theory, operation, and control. Electric machines covered include DC generators and motors, AC synchronous generators and motors, AC induction generators and motors, as well as fractional horsepower and special purpose motors. Motor starting and controls for both DC and AC machines are also covered including an introduction to power electronics and variable frequency drives (VFD). (Same as ARCE 644). Prerequisite: Either ARCE 640 or EECS 212, and Upper-Level EECS Eligibility. LEC.
EECS 545. Electric Energy Production and Storage. 3 Hours.
An introduction to utility scale and small scale (distributed generation) electric energy production and storage systems. This course addresses the technical, operational, economic, environmental, and social characteristics associated with both traditional and nontraditional electric energy production systems along with associated grid integration, energy delivery, and regulatory issues. Traditional energy production systems covered include fossil fuel, hydroelectric, and nuclear power plants. Non-traditional energy production systems covered include fuel cells, photovoltaics (PV), concentrated solar power (CSP), wind, geothermal, and other emerging technologies. (Same as ARCE 645.) Prerequisite: Either ARCE 640 or EECS 212, and Upper-Level EECS Eligibility. LEC.
EECS 547. Power System Analysis I. 3 Hours.
Introduction to the analysis of commercial, industrial, and utility power systems. Emphasis is placed on modeling system components which include transmission and distribution lines, transformers, induction machines, and synchronous machines and the development of a power system model for analysis from these components. System modeling will be applied to short-circuit studies and used to analyze symmetrical faults, to develop sequence networks using symmetrical components, and analyze unsymmetrical faults. (Same as ARCE 647.) Prerequisite: Either ARCE 640 or EECS 212, and Upper-Level EECS Eligibility. LEC.
EECS 548. Power System Analysis II. 3 Hours.
Continuation of EECS 547 that uses power system modeling developed in EECS 547 to analyze power system load flow, operation and economic dispatch, stability, and transient response. The impact of alternative energy sources, energy storage, DC transmission and interties, and other emerging technologies on power system operation and reliability will be addressed throughout the course. (Same as ARCE 648.) Prerequisite: ARCE 647 or EECS 547 or consent of instructor. LEC.
EECS 560. Data Structures. 4 Hours.
Data abstraction and abstract data types. Topics include the design and implementation of dictionary, priority queues, concatenated queue, disjoint set structures, graphs, and other advanced data structures based on balanced and unbalanced tree structures. Special emphasis will be placed on the implementations of these structures and their performance tradeoffs. Both asymptotic complexity analysis and experimental profiling techniques will be introduced. Labs will be used to provide students with hands-on experience in the implementations of various abstract data types and to perform experimental performance analysis. Prerequisite: EECS 210 and EECS 448. LEC.
EECS 562. Introduction to Communication Systems. 4 Hours.
A first course in communications, including lectures and integrated laboratory experiments. After a review of spectral analysis and signal transmission, analog and digital communications are studied. Topics include: sampling, pulse amplitude modulation, and pulse code modulation; analog and digital amplitude, frequency, and phase modulation; frequency and time division multiplexing; and noise performance of analog modulation techniques. Prerequisite: EECS 212 and EECS 360. LEC.
EECS 563. Introduction to Communication Networks. 3 Hours.
An introduction to the principles used in communication networks is given in this course. Topics include a discussion of the uses of communications networks, network traffic, network impairments, standards, layered reference models for organizing network functions. Local Area Network technology and protocols are discussed. Link, network, transport layer protocols, and security are introduced. TCP/IP networks are stressed. VoIP is used as an example throughout the course. Basic concepts of network performance evaluation are studied, both analytical and simulation techniques are considered. Prerequisite: EECS 168 and either EECS 461 or MATH 526. LEC.
EECS 565. Introduction to Information and Computer Security. 3 Hours.
An introduction to the fundamentals of cryptography and information and computer security. Introduces the basic concepts, theories, and protocols in computer security. Discusses how to apply such knowledge to analyze, design and manage secure systems in the real world. Topic covered: the basics of cryptography, software security, operating system security, database security, network security, privacy and anonymity, social engineering, digital forensics, etc. Corequisite: EECS 678 and Prerequisite: Upper-Level EECS Eligibility. LEC.
EECS 581. Computer Science Design I. 3 Hours.
The background and planning phase of a two-semester, team-oriented lecture/laboratory course involving the specification, design, implementation, and documentation of a significant software system. The course includes the consideration of project management, ethics, economics, and technical writing. Can be taken only during the senior year. Prerequisite: EECS 448. Co-Requsite: EECS 510 and EECS 560. LEC.
EECS 582. Computer Science Design II. 3 Hours AE61.
The design and implementation phase of a two-semester, team-orientated lecture/laboratory course involving the specification, design, implementation, and documentation of a significant software system. The course includes the consideration of project management, ethics, economics, and technical writing. Can be taken only during the senior year. Prerequisite: EECS 581. LEC.
EECS 611. Electromagnetic Compatibility. 3 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 systems. Prerequisite: EECS 220 and EECS 312. LEC.
EECS 622. Microwave and Radio Transmission Systems. 3 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: Corequisite: EECS 420 and EECS 461. LEC.
EECS 628. Fiber Optic Communication Systems. 3 Hours.
Description and analysis of the key components in optical communication systems. Topics covered include quantum sources, fiber cable propagation and dispersion characteristics, receiver characteristics, and system gain considerations. Prerequisite: EECS 220 and PHSX 313 or equivalent and upper-level EECS eligibility. LEC.
EECS 638. Fundamentals of Expert Systems. 3 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: EECS 560 or consent of instructor. LEC.
EECS 639. Introduction to Scientific Computing. 3 Hours.
A basic introduction to scientific computing and numerical analysis. Topics include linear equation solving, least squares, nonlinear equation-solving, optimization, interpolation, numerical integration and differentiation, ordinary differential equations, and the fast Fourier transform (FFT). Vectorization, efficiency, reliability, and stability of numerical algorithms will be stressed. Applications of algorithms to real-world problems, such as image processing, medicine, electronic circuits, flight trajectories, and molecular modeling, will be emphasized. Students cannot receive credit for both EECS 639 and EECS 781 or MATH 781. Prerequisite: MATH 127, MATH 290, and EECS 168 or equivalent. LEC.
EECS 643. Advanced Computer Organization. 3 Hours.
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: EECS 443. LEC.
EECS 644. Introduction to Digital Signal Processing. 3 Hours.
Discrete time signal and systems theory, sampling theorem, z-transforms, digital filter design, discrete Fourier transform, FFT, and hardware considerations. Prerequisite: EECS 360. LEC.
EECS 645. Computer Architecture. 3 Hours.
The structure, design, analysis, and evaluation of computer processors and systems. The design of instruction sets. Principles and techniques of parallelism at the data transfer (memory hierarchy), data processing (pipelines), and concurrent instruction execution. Prerequisite: EECS 388. LEC.
EECS 647. Introduction to Database Systems. 3 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 ones based on relational algebra and relational calculus; brief description of predicate calculus. Theory of databases, normal forms, normalization, candidates 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: EECS 448. LEC.
EECS 649. Introduction to Artificial Intelligence. 3 Hours.
General concepts, search procedures, two-person games, predicate calculus and automated theorem proving, nonmonotonic logic, probabilistic reasoning, rule based systems, semantic networks, frames, dynamic memory, planning, machine learning, natural language understanding, neural networks. Prerequisite: Corequisite: EECS 368. LEC.
EECS 660. Fundamentals of Computer Algorithms. 3 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: EECS 560 and either EECS 461 or MATH 526. LEC.
EECS 662. Programming Languages. 3 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: EECS 368 and EECS 388 and EECS 560. LEC.
EECS 664. Introduction to Digital Communication Systems. 3 Hours.
An introduction to building digital communication systems in discrete time, including lectures and integrated laboratory exercises. Topics covered include signal spaces, base-band modulation, bandpass modulation, phase-locked loops, carrier phase recovery, symbol timing recovery, and basic performance analysis. Prerequisite: EECS 360 and EECS 461. LAB.
EECS 665. Compiler Construction. 4 Hours.
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: EECS 368, EECS 448, and EECS 510. LEC.
EECS 670. Introduction to Semiconductor Processing. 3 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: Senior standing in C&PE or EECS, or consent of instructor. LEC.
EECS 672. Introduction to Computer Graphics. 3 Hours.
Foundations of 2D and 3D computer graphics. Structured graphics application programming. Basic 2D and 3D graphics algorithms (modeling and viewing transformations, clipping, projects, visible line/surface determination, basic empirical lighting, and shading models), and aliasing. Prerequisite: EECS 448. LEC.
EECS 678. Introduction to Operating Systems. 4 Hours.
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 system, 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: EECS 388 and EECS 448. LEC.
EECS 690. Special Topics: _____. 1-3 Hours.
Arranged as needed to present appropriate material to groups of students. May be repeated for additional credit. Prerequisite: Varies by topic, plus Upper-level EECS eligibility and consent of instructor. LEC.
EECS 692. Directed Reading. 1-3 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: Upper-level EECS eligibility and consent of instructor. IND.
EECS 700. Special Topics: _____. 1-5 Hours.
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. Prerequisite: Varies by topic. LEC.
EECS 710. Information Security and Assurance. 3 Hours.
This introductory security course covers a wide range of topics in the area of information and network security, privacy, and risk: the basic concepts: confidentiality, integrity and availability; introduction to cryptography; authentication; security models; information and database security; computer systems security; network security; Internet and web security; risk analysis; social engineering; computer forensics. Prerequisite: Graduate standing in EECS, or permission of the instructor. LEC.
EECS 711. Security Management and Audit. 3 Hours.
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, human factors and usability issues, policy, legal issues in computer security. Prerequisite: EECS 710. LEC.
EECS 712. Network Security and its Application. 3 Hours.
This course focuses on network-based information and communication systems, and examines network technologies and service applications to provide the students with a comprehensive introduction to the field of network security and its application. The course covers key concepts and critical network security services including authentication and access control, integrity and confidentiality of data, routing, firewalls, virtual private networks, web security, virus protection, and network security architecture and policy development. The students are expected to understand the technical vulnerabilities of networked systems and to develop methods to eliminate or mitigate those vulnerabilities. Prerequisite: EECS 710 and one of the following: IT 422, EECS 563, or EECS 780. LEC.
EECS 713. High-Speed Digital Circuit Design. 3 Hours.
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. Prerequisite: EECS 312 and senior or graduate standing. EECS 420 recommended. LEC.
EECS 716. Formal Language Theory. 3 Hours.
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. Prerequisite: EECS 510 or equivalent. LEC.
EECS 718. Graph Algorithms. 3 Hours.
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. Prerequisite: EECS 560 or graduate standing with consent of instructor. LEC.
EECS 721. Antennas. 3 Hours.
Gain, Pattern, and Impedance concepts for antennas. Linear, loop, helical, and aperture antennas (arrays, reflectors, and lenses). Cylindrical and biconical antenna theory. Prerequisite: EECS 360 and EECS 420, or EECS 720, or permission of the instructor. LEC.
EECS 723. Microwave Engineering. 3 Hours.
Survey of microwave systems, techniques, and hardware. Guided-wave theory, microwave network theory, active and passive microwave components. Prerequisite: EECS 420. LEC.
EECS 725. Introduction to Radar Systems. 3 Hours.
Basic radar principles and applications. Radar range equation. Pulsed and CW modes of operation for detection, ranging, and extracting Doppler information. Prerequisite: EECS 360, EECS 420, EECS 461. EECS 622 recommended. LEC.
EECS 728. Fiber-optic Measurement and Sensors. 3 Hours.
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. Prerequisite: EECS 628 or equivalent. LEC.
EECS 730. Introduction to Bioinformatics. 3 Hours.
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. Prerequisite: Data Structures class equivalent to EECS 560, and Introduction to Biology equivalent to BIOL 150, or consent of instructor. LEC.
EECS 731. Introduction to Data Science. 3 Hours.
This course covers topics in data collection, data transmission, and data analysis, in support of discoveries and innovations based on massive amounts of data. EECS 731 surveys current topics in data science. It provides a comprehensive review of theory, algorithms, and tools that are used in data science and prepares students to take in-depth following up courses in EECS. EECS 731 is a project-oriented course. It offers hands-on experience for students to integrate knowledge from a wide-range of topics in data science without dwelling on any particular subfield of data science. Prerequisite: EECS 268 or experience with object oriented programming and large programs. MATH 290 or experience with linear algebra. EECS 461 or MATH 526 or experience with probability and statistics. Or consent from the instructor. LEC.
EECS 735. Automated Theorem Proving. 3 Hours.
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. Prerequisite: EECS 649 and a knowledge of mathematical logic equivalent to that supplied by EECS 210. Infrequently offered. LEC.
EECS 738. Machine Learning. 3 Hours.
"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. Prerequisite: Graduate standing in CS or CoE or consent of instructor. LEC.
EECS 739. Parallel Scientific Computing. 3 Hours.
This course is concerned with the application of parallel processing to real-world problems in engineering and the sciences. State-of-the-art serial and parallel numerical computing algorithms are studied along with contemporary applications. The course takes an algorithmic design, analysis, and implementation approach and covers an introduction to scientific and parallel computing, parallel computing platforms, design principles of parallel algorithms, analytical modeling of parallel algorithms, MPI programming, direct and iterative linear solvers, numerical PDEs and meshes, numerical optimization, GPU computing, and applications of parallel scientific computing. Prerequisite: MATH 122 or MATH 126; MATH 290; experience programming in C, C++, or Fortran; EECS 639 (or equivalent.) Highly recommended: MATH 127 or MATH 223. LEC.
EECS 740. Digital Image Processing. 3 Hours.
This course gives a hands-on introduction to the fundamentals of digital image processing. Topics include: image formation, image transforms, image enhancement, image restoration, image reconstruction, image compression, and image segmentation. Prerequisite: EECS 672 or EECS 744. LEC.
EECS 741. Computer Vision. 3 Hours.
This course gives a hands-on introduction to the fundamentals of computer vision. Topics include: image formation, edge detection, image segmentation, line-drawing interpretation, shape from shading, texture analysis, stereo imaging, motion analysis, shape representation, object recognition. Prerequisite: EECS 672 or EECS 744. LEC.
EECS 742. Static Analysis. 3 Hours.
This course presents an introduction to techniques for statically analyzing programs. Converge 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. Prerequisite: EECS 665 or EECS 662 or equivalent. LEC.
EECS 743. Advanced Computer Architecture. 3 Hours.
This course will focus on the emerging technologies to build high-performance, low-power, and resilient microprocessors. Topics include multiprocessing, reliability-and-variability-aware computer architecture designs, energy-efficient computer systems, on-chip networks, 3D microprocessor designs, general-purpose computation on graphics processing units, and non-volatile computer memory. The course responds to VLSI technologies ability to provide increasing numbers of transistors and clock speeds to allow computer architects to build powerful microprocessors and computer systems and the challenges (e.g. resilience, energy-efficiency) that the growth in microprocessor performance is facing from the aggressive technology scaling. Prerequisite: EECS 643 or EECS 645, or equivalent. A good understanding of C/C++ and having basic Unix/Linux skills is required. LEC.
EECS 744. Communications and Radar Digital Signal Processing. 3 Hours.
The application of DSP techniques to specialized communications and radar signal processing subsystems. Topics include A-D converters, specialized digital filters, software receiver systems, adaptive subsystems and timing. Prerequisite: An undergraduate course in DSP such as EECS 644. LEC.
EECS 745. Implementation of Networks. 3 Hours.
EECS 745 is a laboratory-focused implementation of networks. Topics include direct link networks (encoding, framing, error detection, reliable transmission, SONET, FDDL, network adapters, Ethernet, 802.11 wireless networks); packet and cell switching (ATM, switching hardware, bridges and 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 signalling, PBX and call attendant functionality). Prerequisite: EECS 563 or EECS 780. LEC.
EECS 746. Database Systems. 3 Hours.
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. Prerequisite: EECS 448 or consent of instructor. Students cannot receive credit for both EECS 647 and EECS 746. LEC.
EECS 747. Mobile Robotics. 3 Hours.
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. Prerequisite: Knowledge of at least one modern programming language. LEC.
EECS 749. Knowledge Based Systems. 3 Hours.
General concepts of intelligent problem solving, rule-based systems, distributed AI, reasoning under uncertainty, case-based reasoning, subsymbolic techniques. Prerequisite: At least one class in Artificial Intelligence. LEC.
EECS 750. Advanced Operating Systems. 3 Hours.
In this course, we will study advanced topics in operating systems for modern hardware platforms. The topics include: multicore CPU scheduling, cache and DRAM management, flash-based storage systems and I/O management, power/energy management, and cloud systems. We will discuss classical and recent papers in each of these topics. We will also study advanced resource management capabilities in recent Linux kernels. The course will consist of lectures, student presentations, and a term project. Prerequisite: EECS 678. LEC.
EECS 753. Embedded and Real Time Computer Systems. 3 Hours.
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. Prerequisite: EECS 645 and EECS 678. LEC.
EECS 755. Software Modeling and Analysis. 3 Hours.
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. Prerequisite: EECS 368 or equivalent. LEC.
EECS 759. Estimation and Control of Unmanned Autonomous Systems. 3 Hours.
An introduction to the modeling, estimation and control of unmanned autonomous systems. Topics include model identification, complementary filters, Kalman filters, attitude estimation, position estimation, attitude keeping controller, path planning, etc. The successful completion of this course will prepare students for advanced studies in robotics & controls. (Same as AE 759.) Prerequisite: MATH 627 or EECS 461 or equivalent, AE 551 or EECS 444 or equivalent; or by consent of instructor. LEC.
EECS 761. Programming Paradigms. 3 Hours.
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. The course will review and investigate as appropriate imperative, functional, object-oriented, parallel, and logical programming paradigms, plus additional paradigms as relevant. Prerequisite: EECS 662 or equivalent, or consent of instructor. LEC.
EECS 762. Programming Language Foundation I. 3 Hours.
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. Prerequisite: EECS 662 or equivalent. LEC.
EECS 763. Introduction to Multiprocessor Systems on Chip. 3 Hours.
This course covers the latest trends in advanced computer architecture for multiprocessor systems on chip for embedded and real time systems (MPSoC). Topics covered include multicore architectures, modeling abstractions, run time systems, and Hw/Sw co-design techniques. Prerequisite: EECS 678 and EECS 645 or equivalents. LEC.
EECS 764. Analysis of Algorithms. 3 Hours.
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. Prerequisite: EECS 660 or equivalent. LEC.
EECS 765. Introduction to Cryptography and Computer Security. 3 Hours.
Comprehensive coverage to the fundamentals of cryptography and computer and communication security. This course serves as the first graduate level security course, which introduces the core concepts, theories, algorithms and protocols in computer and communication security, and also prepares students for advanced security courses. This course first covers the mathematical foundation of cryptography and its applications in computer security. The course also covers a wide range of topics: information and database security, software and computer systems security, network security, Internet and web security. Prerequisite: EECS 678 and EECS 563 or EECS 780, or the instructor's approval. LEC.
EECS 766. Resource Sharing for Broadband Access Networks. 3 Hours.
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., DOSCIS, 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/IEEE 802.15.4, powerline networks. The use of cognitive radio communications technologies in future access networks will be introduced. Prerequisite: EECS 461 and EECS 563 or EECS 780. LEC.
EECS 767. Information Retrieval. 3 Hours.
This class introduces algorithms and applications for retrieving information from large document repositories, including the Web. Topics span from classic information retrieval methods for text documents and databases, to recent developments in Web search, including: text algorithms, indexing, probabilistic modeling, performance evaluation, web structures, link analysis, multimedia information retrieval, social network analysis. Prerequisite: EECS 647 or permission of instructor. LEC.
EECS 768. Virtual Machines. 3 Hours.
Understand the fundamental principles and advanced implementation aspects of key virtual machine concepts. Topics include principles of virtualization, binary translation, process and system level virtual machines, JIT complication and optimizations in managed environments, garbage collection, virtual machine implementation issues, and virtual machine security. Includes in-depth coverage of the latest developments and research issues in the filed of virtual machines. Prerequisite: EECS 665 and either EECS 643 or EECS 645 or consent of instructor. LEC.
EECS 769. Information Theory. 3 Hours.
Information theory is the science of operations on data such as compression, storage, and communication. It is one of the few scientific fields fortunate enough to have an identifiable beginning - Claude Shannon's 1948 paper. The main topics of mutual information, entropy, and relative entropy are essential for students, researchers, and practitioners in such diverse fields as communications, data compression, statistical signal processing, neuroscience, and machine learning. The topics covered in this course include mathematical definitions and properties of information, mutual information, source coding theorem, lossless compression of data, optimal lossless coding, noisy communication channels, channel coding theorem, the source channel separation theorem, multiple access channels, broadcast channels, Gaussian noise, time-varying channels, and network information theory. Prerequisite: EECS 461 or an equivalent undergraduate probability course. LEC.
EECS 773. Advanced Graphics. 3 Hours.
Advanced topics in graphics and graphics systems. Topics at the state of the art are 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. Prerequisite: EECS 672 or permission of instructor. LEC.
EECS 774. Geometric Modeling. 3 Hours.
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 base algorithms. Projects in C/C++ using OpenGL. Prerequisite: EECS 672 or permission of instructor. LEC.
EECS 775. Visualization. 3 Hours.
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. Prerequisite: General knowledge of 3D graphics programming or instructor's permission. LEC.
EECS 776. Functional Programming and Domain Specific Languages. 3 Hours.
An introduction to functional programming. Topics include learning how to program in Haskell; IO and purity in software engineering; functional data structures and algorithms; monads and applicative functors; parsing combinators; Domain Specific Languages (DSLs) and DSL construction; advanced type systems; making assurance arguments; testing and debugging. Prerequisite: EECS 368 or equivalent or consent of instructor. LEC.
EECS 780. Communication Networks. 3 Hours.
Comprehensive in-depth coverage to communication networks with emphasis on the Internet and the PSTN (wired and wireless, and IoT - Internet of Things). Extensive coverage of protocols and algorithms will be presented at all levels, including: social networking, overlay networks, 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, signaling, addressing, and traffic management, programmable and software-defined networks (SDN); quality of service, queuing and multimedia applications; LAN architecture, link protocols, access networks and MAC algorithms; physical media characteristics and coding; network security and information assurance; network management. Prerequisite: EECS 563 or equivalent or permission of instructor. LEC.
EECS 781. Numerical Analysis I. 3 Hours.
Finite and divided differences. Interpolation, numerical differentiation, and integration. Gaussian quadrature. Numerical integration of ordinary differential equations. Curve fitting. (Same as MATH 781.) Prerequisite: MATH 320 and knowledge of a programming language. LEC.
EECS 782. Numerical Analysis II. 3 Hours.
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). Prerequisite: EECS 781. LEC.
EECS 784. Science of Communication Networks. 3 Hours.
Comprehensive introduction to the fundamental science that is the basis for the architecture, design, engineering, and analysis of computer networks. Topics covered will include foundations on: Structure of networks: graph theory, complex systems analysis, centrality, spectral analysis, network flows, and network topology; Identification of network entities: naming, addressing, indirection, translation, and location; Operation of protocols and information transfer: automata, control theory, Petri nets, layering and cross-layering, protocol data units; Policy and tussle: game theory, decision theory; Resilience: dependability (reliability, availability, and maintainability), performability, fault tolerance, and survivability. Open-source tools will be used for network modelling and analysis. Prerequisite: EECS upper-level eligibility, graduate standing, or permission of the instructor. LEC.
EECS 800. Special Topics: _____. 1-5 Hours.
Advanced 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. Prerequisite: Varies by topic. LEC.
EECS 801. Directed Graduate Readings. 1-3 Hours.
Graduate level directed readings on a topic in electrical engineering, computer engineering, or computer science, mutually agreed-on by the student and instructor. May be repeated for credit on another topic. Prerequisite: Consent of instructor. RSH.
EECS 802. Electrical Engineering and Computer Science Colloquium and Seminar on Professional Issues. 1 Hour.
A colloquium/seminar series in which presentation are provided on a broad variety of scholarly and professional topics. Topics related to the issues of responsible scholarship in the fields of computing and electrical engineering will be discussed. Student are also required to attend a series of colloquia and submit written reports. Course will be graded Satisfactory/Fail and is required for all EECS graduate students. Prerequisite: Graduate standing in the EECS Department. LEC.
EECS 810. Software Engineering and Management. 3 Hours.
Principal concepts in software engineering with a focus on formalism as well as managerial issues; software development models; software process models; software configuration management; software development life cycle activities; project management; planning and estimation; requirements engineering, software architecture, software modular design; software reusability; implementation strategies; testing techniques; software quality assurance; software evolution; metrics and measurements, ethics and professionalism. Prerequisite: Programming experience, preferably in Java or C++. LEC.
EECS 811. IT Project Management. 3 Hours.
Management issues in the creation, development, and maintenance of IT systems; effort and cost estimation techniques; project planning and scheduling; resource allocation; risk analysis and mitigation techniques; quality assurance; project administration; configuration management; organizational issues; software process modeling; process improvement; frameworks for quality software. LEC.
EECS 812. Software Requirements Engineering. 3 Hours.
Objectives, processes, and activities of requirements engineering and requirements management; characteristics of good requirements; types of requirements; managing changing requirements; languages, notations, and methodologies; formal and semi-formal methods of presenting and validating the requirements; requirements standards; traceability issues. Prerequisite: EECS 810. LEC.
EECS 814. Software Quality Assurance. 3 Hours.
Software quality engineering as an integral facet of development from requirements through delivery and maintenance; verification and validation techniques; manual and automated static analysis techniques; fundamental concepts in software testing; test case selection strategies such as black-box testing, white-box testing; formal verification; unit, integration, system, and acceptance testing; regression testing; designing for testability; models for quality assurance; reviews, inspection, documentation, and standards; industry and government standards for quality. Prerequisite: EECS 810. LEC.
EECS 816. Object-Oriented Software Development. 3 Hours.
Abstract data types, objects and classes, class associations, modeling with objects, domain modeling, use case modeling, interactive and incremental development, object-oriented analysis and design, components, frameworks, UML and Unified Process, reusability, design patterns, object management, and CORBA. Prerequisite: EECS 810. LEC.
EECS 818. Software Architecture. 3 Hours.
Designing architectures; software architectural styles and patterns; architectural components and connectors; architectural modeling and analysis, architectural deployment, designing for nonfunctional properties such as efficiency, scaleability, adaptability, and security; domainspecificsoftware architectures; architecture product lines; architecture description languages (ADLs); standards. Prerequisite: EECS 810. LEC.
EECS 819. Cryptography. 3 Hours.
Introduction to the mathematical background, basic concepts, components, and protocols to enforce secrecy, integrity, and privacy through cryptographic mechanisms. The concept of symmetric and asymmetric encryption, integrity verification, authentication, key establishment and update, and authorization. Emphasis on the design of protocols that apply and integrate various modules to achieve safety objectives: time-stamping, digital signature, bit commitment, fair coin-flip, zero knowledge proof, oblivious transfer, and digital cash. The policies for key generation and management, information storage and access control, legal issues, and design of protocols for real applications. Prerequisite: EECS 765. LEC.
EECS 820. Advanced Electromagnetics. 3 Hours.
A theorem-based approach to solving Maxwell's equations for modeling electromagnetic problems encountered in microwave systems, antennas, scattering. Topics include waves, source modeling, Schelkunoff equivalence principle, scattered filed formulations, electromagnetic induction, reciprocity principles, Babinet's principle, and construction of solutions in various coordinate systems. Prerequisite: EECS 420. LEC.
EECS 823. Microwave Remote Sensing. 3 Hours.
Description and analysis of basic microwave remote sensing systems including radars and radiometers as well as the scattering and emission properties of natural targets. Topics covered include plane wave propagation, antennas, radiometers, atmospheric effects, radars, calibrated systems, and remote sensing applications. Prerequisite: EECS 420 and EECS 622. LEC.
EECS 824. Microwave Remote Sensing II. 3 Hours.
Description and analysis of basic microwave remote sensing systems including radars and radiometers as well as the scattering and emission properties of natural targets. Topics covered include measurement and discrimination, real-aperture side-looking airborne radars, synthetic-aperture side-looking airborne radar systems, scattering measurements, physical mechanisms and empirical models for scattering and emission. Prerequisite: EECS 823. LEC.
EECS 825. Radar Systems. 3 Hours.
Description and analysis of radars of various types. Resolution in angle, range, and speed. Ambiguities. Return from point and area targets. Detection in the presence of noise and fading. Tracking and MTI. Amplitude measurement. Imaging radars. Prerequisite: EECS 360, EECS 420, and EECS 461. LEC.
EECS 828. Advanced Fiber-Optic Communications. 3 Hours.
An advanced course in fiber-optic communications. The course will focus on various important aspects and applications of modern fiber-optic communications, ranging from photonic devices to systems and networks. Topics include: advanced semiconductor laser devices, external optical modulators, optical amplifiers, optical fiber nonlinearities and their impact in WDM and TDM optical systems, polarization effect in fiber-optic systems, optical receivers and high-speed optical system performance evaluation, optical solution systems, lightwave analog video transmission, SONET & ATM optical networking, and advanced multi-access lightwave networks. Prerequisite: EECS 628 or equivalent. LEC.
EECS 830. Advanced Artificial Intelligence. 3 Hours.
A detailed examination of computer programs and techniques that manifest intelligent behavior, with examples drawn from current literature. The nature of intelligence and intelligent behavior. Development of, improvement to, extension of, and generalization from artificially intelligent systems, such as theorem-provers, pattern recognizers, language analyzers, problem-solvers, question answerers, decision-makers, planners, and learners. Prerequisite: Graduate standing in the EECS department or Cognitive Science or permission of the instructor. LEC.
EECS 831. Introduction to Systems Biology. 3 Hours.
This course provides an introduction to systems biology. It covers computational analysis of biological systems with a focus on computational tools and databases. Topics include: basic cell biology, cancer gene annotation, micro RNA identification, Single Nucleotide Polymorphism (SNP) analysis, genetic marker identification, protein-DNA interaction, computational Neurology, vaccine design, cancer drug development, and computational development biology. Prerequisite: Introduction to Bioinformatics equivalent to EECS 730, or consent of instructor. LEC.
EECS 833. Neural Networks and Fuzzy Systems. 3 Hours.
Fundamental theory of adaptive systems. Evolution of artificial neural networks and training algorithms. Pattern classification, function approximation, and system optimization. Introduction to fuzzy set theory and neuro-fuzzy models for pattern classification. Application of neural networks in signal and image processing problems. Pattern classification for biological systems. Prerequisite: Graduate standing in the EECS department or permission of instructor. LEC.
EECS 835. Protein Bioinformatics. 3 Hours.
This course emphasizes the applications of computational algorithms to main problems in protein bioinformatics and molecular biology. A variety of topics, including protein sequence alignments, profiles and protein structure classification and prediction, will be either introduced briefly or discussed in detail. Students will be asked to present some selected research papers. Prerequisite: EECS 730. LEC.
EECS 837. Data Mining. 3 Hours.
Extracting data from data bases to data warehouses. Preprocessing of data: handling incomplete, uncertain, and vague data sets. Discretization methods. Methodology of learning from examples: rules of generalization, control strategies. Typical learning systems: ID3, AQ, C4.5, and LERS. Validation of knowledge. Visualization of knowledge bases. Data mining under uncertainty, using approaches based on probability theory, fuzzy set theory, and rough set theory. Prerequisite: Graduate standing in CS or CoE or consent of instructor. LEC.
EECS 838. Applications of Machine Learning in Bioinformatics. 3 Hours.
This course is introduction to the application of machine learning methods in bioinformatics. Major subjects include: biological sequence analysis, microarray interpretation, protein interaction analysis, and biological network analysis. Common biological and biomedical data types and related databases will also be introduced. Students will be asked to present some selected research papers. Prerequisite: EECS 730 and EECS 738. LEC.
EECS 839. Mining Special Data. 3 Hours.
Problems associated with mining incomplete and numerical data. The MLEM2 algorithm for rule induction directly from incomplete and numerical data. Association analysis and the Apriori algorithm. KNN and other statistical methods. Mining financial data sets. Problems associated with imbalanced data sets and temporal data. Mining medical and biological data sets. Induction of rule generations. Validation of data mining: sensitivity, specificity, and ROC analysis. Prerequisite: Graduate standing in CS or CoE or consent of instructor. LEC.
EECS 841. Computer Vision. 3 Hours.
The objective of this course is to give students a hands on introduction to the fundamentals of computer vision. Topics include: Image Formation, Image Segmentation, Binary Image Analysis, Edge Detection, Line Drawing Interpretation, Shape from Shading, Motion Analysis, Stereo, Shape Representation, and Object Recognition. The objective of this course is to give students a hands-on introduction to the fundamentals of computer vision. Prerequisite: EECS 740 or equivalent. LEC.
EECS 843. Programming Language Foundation II. 3 Hours.
This course presents advanced topics in programming language semantics. Fixed point types are presented followed by classes of polymorphism and their semantics. System F and type variables are presented along with universal and existential types. The lambda cube is introduced along with advanced forms of polymorphism. Several interpreters are developed implementing various type systems and associated type inference algorithms. Prerequisite: EECS 762. LEC.
EECS 844. Adaptive Signal Processing. 3 Hours.
This course presents the theory and application of adaptive signal processing. Topics include adaptive filtering, mathematics for advanced signal processing, cost function modeling and optimization, signal processing algorithms for optimum filtering, array processing, linear prediction, interference cancellation, power spectrum estimation, steepest descent, and iterative algorithms. Prerequisite: EECS 861 and background in fundamental signal processing (such as EECS 644.) LEC.
EECS 861. Random Signals and Noise. 3 Hours.
Fundamental concepts in random variables, random process models, power spectral density. Application of random process models in the analysis and design of signal processing systems, communication systems and networks. Emphasis on signal detection, estimation, and analysis of queues. This course is a prerequisite for most of the graduate level courses in radar signal processing, communication systems and networks. Prerequisite: An undergraduate course in probability and statistics, and signal processing. LEC.
EECS 862. Principles of Digital Communication Systems. 3 Hours.
A study of communication systems using noisy channels. Principal topics are: information and channel capacity, baseband data transmission, digital carrier modulation, error control coding, and digital transmission of analog signals. The course includes a laboratory/computer aided design component integrated into the study of digital communication systems. Prerequisite: EECS 562. Corequisite: EECS 861. LEC.
EECS 863. Network Analysis, Simulation, and Measurements. 3 Hours.
Prediction of communication network performance using analysis, simulation, and measurement. Topics include: an introduction to queueing theory, application of theory to prediction of communication network and protocol performance, and analysis of scheduling mechanisms. Modeling communication networks using analytic and simulation approaches, model verification and validation through analysis and measurement, and deriving statistically significant results. Analysis, simulation, and measurement tools will be discussed. Prerequisite: EECS 461 or MATH 526, and EECS 563 or EECS 780. LEC.
EECS 864. Multiwavelength Optical Networks. 3 Hours.
Introduce methodologies for multiwavelength optical network analysis, design, control, and survivability. The focus of the course is formulating the problem in the design of optical networks and studying several design methodologies. The control and management of optical networks are introduced as well as related protocols. Prerequisite: EECS 563 and EECS 780. LEC.
EECS 865. Wireless Communication Systems. 3 Hours.
The theory and practice of the engineering of wireless telecommunication systems. Topics include cellular principles, mobile radio propagation (including indoor and outdoor channels), radio link calculations, fading (including Rayleigh, Rician, and other models), packet radio, equalization, diversity, error correction coding, spread spectrum, multiple access techniques (including time, frequency, and code), and wireless networking. Current topics of interest will be covered. Prerequisite: Corequisite: EECS 861. LEC.
EECS 866. Network Security. 3 Hours.
This course provides in-depth coverage on the concepts, principles, and mechanisms in network security and secure distributed systems. The topics that will be covered include: network security primitives, risks and vulnerabilities, authentication, key management, network attacks and defense, secure communication protocols, intrusion detection, exploit defenses, traffic monitoring and analysis, and privacy mechanisms. Prerequisite: EECS 765 and EECS 563 or EECS 780, or the instructor's approval. LEC.
EECS 868. Mathematical Optimization with Applications. 3 Hours.
A mathematical study of the minimization of functions. The course provides an introduction to the mathematical theory, implementation, and application of a variety of optimization techniques, with an emphasis on real-world applications. Optimization problem formulation. Unconstrained and constrained minimization, including conditions for optimality. Specific techniques for solving linear and nonlinear programming problems. Convergence of algorithms. Prerequisite: MATH 590 or EECS 639, or the consent of the instructor. LEC.
EECS 869. Error Control Coding. 3 Hours.
A study of communication channels and the coding problem. An introduction to finite fields and linear block codes such as cyclic, Hamming, Golay, BCH, and Reed-Solomon. Convolutional codes and the Viberbi algorithm are also covered. Other topics include trellis coded modulation, iterative (turbo) codes, LDPC codes. Prerequisite: EECS: 562 or equivalent. LEC.
EECS 876. Advanced Topics in Functional Languages. 3 Hours.
Topics may include: type classes; concurrency and STMs; the IO and ST monads; template Haskell and quasi-quoting; precise data structures; tools and testing support; generics; grammarware and parsing; operational Haskell; compiling functional languages; correctness by construction' GADTs and dependent types; Rank-2 polymorphism and Rank-n polymorphism. Prerequisite: EECS 776 or equivalent or consent of instructor. LEC.
EECS 881. High-Performance Networking. 3 Hours.
Comprehensive coverage of the discipline of high-bandwidth low-latency networks and communication, including high bandwidth-×-delay products, with an emphasis on principles, architecture, protocols, and system design. Topics include high-performance network architecture, control, and signaling; high-speed wired, optical, and wireless links; fast packet, IP, and optical switching; IP lookup, classification, and scheduling; network processors, end system design and protocol optimization, network interfaces; storage networks; data-center networks, end-to-end protocols, mechanisms, and optimizations; high-bandwidth low-latency applications and cloud computing. Principles will be illustrated with many leading-edge and emerging protocols and architectures. Prerequisite: EECS 563 or EECS 780, or permission of the instructor. LEC.
EECS 882. Mobile Wireless Networking. 3 Hours.
Comprehensive coverage of the disciplines of mobile and wireless networking, with an emphasis on architecture and protocols. Topics include cellular telephony, MAC algorithms, wireless PANs, LANs, MANs, and WANs; wireless and mobile Internet; mobile ad hoc networking; mobility management, sensor networks; satellite networks; and ubiquitous computing. Prerequisite: EECS 563 or EECS 780, or permission of the instructor. LEC.
EECS 888. Internet Routing Architectures. 3 Hours.
A detailed study of routing in IP networks. Topics include evolution of the Internet architecture, IP services and network characteristics, an overview of routing protocols, the details of common interior routing protocols and interdomain routing protocols, and the relationship between routing protocols and the implementation of policy. Issues will be illustrated through laboratories based on common routing platforms. Prerequisite: EECS 745. LEC.
EECS 891. Graduate Problems. 1-5 Hours.
Directed studies of advanced phases of electrical engineering, computer engineering, computer science or information technology not covered in regular graduate courses, including advanced laboratory work, special research, or library reading. Prerequisite: Consent of instructor. RSH.
EECS 899. Master's Thesis or Report. 1-6 Hours.
EECS 900. Seminar. 0.5-3 Hours.
Group discussions of selected topics and reports on the progress of original investigations. Prerequisite: Consent of instructor. LEC.
EECS 929. Electromagnetic Propagation and Scattering in Random Media. 3 Hours.
Polarimetric plane-wave propagation, including the complex propagation matrix and Stokes vector representation. Electromagnetic scattering, including the scattering matrix, Mueller matrix, scattering cross-section, absorption cross-section, extinction cross-section, Mie scattering, and Rayleigh scattering. Volume scattering in random media, including the Born approximation, Rayleigh scattering statistics, multiple scattering mechanisms, Radiative transfer theory, and volume scattering above a dielectric half-space. Propagation through random media, including the extinction coefficient, the optical theorem, and the distorted Born approximation. Scattering from rough surfaces, including the Kirchoff, Physical Optics and small-perturbation models. Prerequisite: EECS 720. LEC.
EECS 940. Theoretic Foundation of Data Science. 3 Hours.
A review of statistical and mathematical principles that are utilized in data mining and machine learning research. Covered topics include asymptotic analysis of parameter estimation, sufficient statistics, model selection, information geometry, function approximation and Hilbert spaces. Prerequisite: EECS 738, EECS 837, EECS 844 or equivalent. LEC.
EECS 955. Theoretical Foundations of Software Construction. 3 Hours.
This course presents the mathematical basis for software that is correct-by-construction. Students will learn basic mathematical techniques for representing, composing and refining software specifications and how they are realized in software systems. Prerequisite: EECS 762 or EECS 755. LEC.
EECS 965. Detection and Estimation Theory. 3 Hours.
Detection of signals in the presence of noise and estimation of signal parameters. Narrowband signals, multiple observations, signal detectability and sequential detection. Theoretical structure and performance of the receiver. Prerequisite: EECS 861. LEC.
EECS 983. Resilient and Survivable Networking. 3 Hours.
Graduate research seminar that provides an overview of the emerging field of resilient, survivable, disruption-tolerant, and challenged networks. These networks aim to remain operational and provide an acceptable level of service in the face of a number of challenges including: natural faults of network components; failures due to misconfiguration or operational errors; attacks against the network hardware, software, or protocol infrastructure; large-scale natural disasters; unpredictably long delay paths either due to length (e.g. satellite and interplanetary) or as a result of episodic connectivity; weak and episodic connectivity and asymmetry of wireless channels; high-mobility of nodes and subnetworks; unusual traffic load (e.g. flash crowds). Multi-level solutions that span all protocol layers, planes, and parts of the network will be systemically and systematically covered. In addition to lectures, students read and present summaries of research papers and execute a project. Prerequisite: EECS 780; previous experience in simulation desirable. LEC.
EECS 998. Post-Master's Research. 1-6 Hours.
EECS 999. Doctoral Dissertation. 1-12 Hours.
IT 310. Computer Organization and Platform Technologies. 3 Hours.
Machine-level representation of data, digital logic and digital systems, computer architecture and organization, computing infrastructure, introduction to multiprocessing systems, firmware, hardware and software integration , introduction to intersystems communications, enterprise deployment management introduction to virtual machine emulation, platform technologies. Prerequisite: Upper-level IT eligibility. LEC.
IT 320. System and Network Administration. 3 Hours.
This course introduces operating systems and network administration and presents topics related to selection, installation, configuration, and maintenance of operating systems and computer networks. Topics to be covered include: Unix and Windows operating systems installation, configuration, and maintenance, server administration and management, client and server services, user and group management and support, software systems installation and configuration, content management and deployment, security management, network administration, backup management and disaster recovery, resource management, automation management, operating systems and Web domain management, operating systems and application version control management. A laboratory component will provide hands-on experience with system and network administration. Prerequisite: Knowledge of Linux/Unix operating systems, IT 310, and upper-level IT eligibility. LEC.
IT 330. Web Systems and Technologies. 3 Hours.
IT 340. Computer and Information Security. 3 Hours.
Fundamentals of computer security, security mechanisms, information states, security attacks, threat analysis models, vulnerability analysis models, introduction to cryptography, authentication, intrusion detection, intrusion prevention (firewalls), operating systems security, database security, software security, host hardening, incident and disaster response. Prerequisite: Upper-level IT eligibility. LEC.
IT 342. Information Security Management. 3 Hours.
The objective of this course is to present topics related to the administration and management of information security. Topics to be covered include: security fundamentals, operational issues, cost-benefit analysis, asset management, security risk management, security policies and enforcement, risk avoidance, risk prevention, risk transfer, security services, security forensics, contingency planning, security auditing. A laboratory component will provide hands-on experience with security management and administration. Prerequisite: IT 340 and upper-level IT eligibility. LEC.
IT 399. Directed Reading in IT. 1-4 Hours.
Reading under the supervision of an instructor on a topic in Information Technology. The topic, expected outcome, evaluation criteria, and the number of credit hours must be mutually agreed on by the student and the instructor. Course may not be used to fulfill major elective requirements. Consent of the department required for enrollment. Prerequisite: Consent of instructor and upper-level IT eligibility. LEC.
IT 410. Software Engineering and Management. 3 Hours.
This course introduces the software development life cycle and key concepts related to software engineering. Topics include software process models, software project management, software requirements engineering, formal and informal modeling, software architecture, software design, coding and implementation, software testing and quality assurance, software deployment, and software evolution. Additional topics such as software metrics and measures, application domains, software engineering standards, and software configuration management will also be presented. This is a project-driven course. Prerequisite: Knowledge of programming (comparable to EECS 268), SA&D 402, and MATH 365, and upper-level IT eligibility. LEC.
IT 414. Database Design. 3 Hours.
The objective of this course is to present key concepts related to database design and implementation. Topics to be discussed include: database architecture, relational data model, SQL, database design life cycle, conceptual data modeling, relational database normalization, query processing, transaction processing, database security, and database administration. This is a project-driven course. Prerequisite: IT 310, senior standing, and upper-level IT eligibility. LEC.
IT 416. System Integration and Architecture. 3 Hours.
This course introduces system integration and architecture. Key concepts to be presented include: system architecture, system requirements, organizational context, acquisition and sourcing, system and component integration, middleware platforms, design patterns, integrative coding, scripting coding, testing and quality assurance, system deployment. Prerequisite: IT 410. LEC.
IT 420. Operating Systems. 3 Hours.
This course introduces operating systems principles and associated key concepts. Topics to be discussed include: processes and threads, concurrency, scheduling and dispatch, memory management, processor management, device management, security and protection, file system, disk scheduling, real-time and embedded systems, fault tolerance, scripting, and an introduction to virtualization. Prerequisite: MATH 365, IT 320, and IT 342, and upper-level IT eligibility. LEC.
IT 422. Computer Networks. 3 Hours.
Foundations of computer networking with practical applications and network administration, with emphasis on the Internet and wireless public switched telephone network. Topics to be covered include routing and switching, routing algorithms, physical layer, data link layer, network layer, network security, network management, and application areas. Prerequisite: IT 320. LEC.
IT 424. Network Security. 3 Hours.
This course covers the fundamental concepts, principles, and mechanisms in network and distributed system security. The topics that will be covered include: network security primitives, distributed authentication, key management, secure communication protocols, firewalls, intrusion detection, traffic monitoring and analysis, email and Web security, etc. Prerequisite: IT 340, IT 422, and senior standing. LEC.
IT 430. Human-Computer Interaction. 3 Hours.
This course introduces principles of human-computer interaction. Important topics to be presented include: human factors, human-centered design and evaluation, graphical user interfaces, multimedia system integration, interactive systems development, computer-supported cooperative work, human cognitive skills, accessibility, alternative input/output media, and emerging technologies. Prerequisite: Consent of the instructor. LEC.
IT 450. Social and Professional Issues. 3 Hours AE51.
This course will provide an overview of the history of computing and presents key concepts related to the social and professional aspects of IT. Topics to be covered include: pervasive themes in IT, social context of computing, intellectual property, legal issues in computing, professional and ethical issues and responsibilities, privacy and civil liberties. Prerequisite: Consent of the instructor. LEC.
IT 452. Special Topics in IT: _____. 3 Hours.
This course introduces a special topic of current interest in information technology, offered as the need arises. May be repeated for additional credit. Prerequisite: Upper-level IT eligibility and consent of instructor. LEC.
IT 490. IT Capstone I. 3 Hours AE61.
Capstone is a senior level course designed to allow a student to review, analyze, integrate, and apply technical knowledge in a meaningful and practical manner. The student will be expected to complete an approved academic project in IT that may be in collaboration with an industrial partner. Prerequisite: Senior standing. LEC.
IT 492. IT Capstone II. 3 Hours.
IT Capstone II is a continuation of IT Capstone, is a senior level course designed to allow a student to review, analyze, integrate, and apply technical knowledge in a meaningful and practical manner. The student will be expected to complete an approved academic project in IT that may be in collaboration with an industrial partner. Prerequisite: Senior standing. LEC.