PREVIOUS | UP | CONTENTS |

The number and title of each course is followed by the number of semester hours it carries, the semester(s) during which it is taught (F=fall, S=spring, U=summer), its prerequisites, its corequisites, and any courses with which it is cross-listed.

Where a course has both a 5000- and 6000-level number, the 5000-level version is intended for undergraduates, and the 6000-level version is for honors and graduate students. The two versions of the class will meet together, but extra work will be expected of honors and graduate students.

Courses that have only 6000-level numbers may be taken by graduate and advanced undergraduate students.

Current class schedules and registration information are available on line.

Some elective classes are not offered every year. Check the on-line schedule or the Computer Engineering advisor to see which classes will be offered in upcoming semesters.

**CS 1010** **Introduction to Unix** (0.5,FSU)

- An introduction to the Unix workstations used in the
College of Engineering CADE Lab. Topics include the X Windows system,
Unix shell commands, file system issues, text editing with Emacs,
accessing the World Wide Web, and electronic mail. Self-paced course
using online teaching aids.

**EE 1020** **EE Problem Solving with Matlab** (1,SU) Prereq: MATH 1050, MATH 1060.

- Introduction to the field of Electrical Engineering through programming in
the Matlab language. Students design various components of a prototype
communication system while learning about the following aspects of Matlab:
script and function files, math functions, commands for array construction and
manipulation, string expressions, logical operators, control flow, and
graphics. No prior knowledge of Electrical Engineering is assumed.

**CS 1050** **Computers in Society** (3,FS) Social/Behavioral Science
Exploration Course

- Survey of the social issues that surround the increasingly
pervasive roles that computers play in society. Topics include
privacy of personal information, encryption and interception of
communications, risks posed by unreliable computer systems,
freedom of speech in cyberspace, intellectual property as it
relates to downloadable media, computer-based crime, and
computers in the workplace. Case studies will focus on
computer-related issues of current public interest. No
background in computer technology is required or assumed beyond
the ability to use a computer to send e-mail, browse the web,
and write papers.

**EE 1270** **Introduction to Electrical and Computer Engineering** (4,SU) Coreq: EE 1020, MATH 1220, PHYCS 2210.

- The basics of analog and digital circuits as an introduction to electrical
and computer engineering. Concepts of voltage, current, power, resistance,
capacitance, and inductance. Circuit analysis techniques such as Kirchhoff's
Laws, node voltages, and mesh currents. Thevenin's and Norton's equivalent
circuits. Simple op-amp and timing circuits. Alternating current and
impedance.

**CS 1410** **Introduction to Computer Science I** (4,FS) Coreq: MATH 1210, CS 1010.

- The first course required for students intending to major in computer
science and computer engineering. Introduction to the engineering
and mathematical skills required to effectively program computers, and to
the range of issues confronted by computer scientists. Roles of
procedural and data abstraction in decomposing programs into
manageable pieces. Introduction to object-oriented programming.
Extensive programming exercises that involve the application of
elementary software engineering techniques.

**CS 2100** **Discrete Structures** (3,F) Prereq: CS 1410.

- Introduction to propositional logic, predicate logic, formal logical
arguments, finite sets, functions, relations, inductive proofs,
recurrence relations, graphs, and their applications to Computer
Science.

**EE 2270** **Fundamentals of Electric Circuits** (4,F) Prereq: EE 1270, 1020; Coreq: PHYCS 2220.

- Fundamental electric-circuit techniques, including Kirchhoff's laws,
impedance, superposition, phasor transforms, RLC solutions in the time domain,
sinusoidal steady-state systems, frequency response, filters, Fourier-series
methods, Laplace-transform techniques, transformers.

**EE 2280** **Fundamentals of Engineering Electronics** (4,S) Prereq: EE 2270; Coreq: MATH 2250.

- Fundamentals of electronic circuits and components, network models of
amplifiers, basic semiconductor device physics, diodes, bipolar and MOS
transistors, basic analog and digital circuit elements, frequency response,
feedback and stability. Introduction to computer circuit simulation.

**CS 2420** **Introduction to Computer Science II** (4,SU) Prereq: CS 1410.

- The second course required for students intending to major in
computer science and computer engineering. Introduction to the
problem of engineering computational efficiency into programs.
Classical algorithms (including sorting, searching, and graph
traversal) and data structures (including stacks, queues, linked
lists, trees, hash tables, and graphs). Analysis of program space and
time requirements. Extensive programming exercises that require the
application of elementary techniques from software engineering.

**CS 3100** **Models of Computation** (3,F) Quantitatively Intensive B.S.\
Course. Prereq: CS 2420, CS 2100.

- Models of sequential computation, including finite-state automata,
push-down automata, and Turing machines.

**EE 3110** **Engineering Electronics II** (4,F) Prereq: EE 2280.

- Analog and digital integrated circuit techniques, filters and tuned
amplifiers, signal generator, waveform shaping circuits, power amplifier and
power semiconductor devices, computer models and computer simulations of
complex devices and circuits.

**CS 3200** **Scientific Computation** (3,S) Prereq: CS 2420, MATH 2250.

- Scientific computation relevant to computer science and
engineering; floating-point arithmetic, systems of linear equations
(direct and iterative techniques), nonlinear equations (univariate and
multivariate), interpolation and differentiation (divided differences),
integration (mechanical and Gaussian quadratures, optimal quadratures),
approximation by spline functions (natural splines and B-splines,
optimality of splines).

**EE 3300** **Fundamentals of Electromagnetics and Transmission Lines** (4,F) Prereq: EE 2280.

- Brief introduction to vector calculus, definition of electric and magnetic
fields. Maxwell's equations in integral and differential forms,
electromagnetic-wave propagation in free space and in material regions,
Poynting theorem, and electromagnetic power. Transmission lines (transient
and steady-state analysis), Smith chart, and impedance matching techniques.
Basic principles of radiation and propagation in waveguides.

**CS 3500** **Software Practice I** (4,F) Prereq: CS 2420.

- Practical exposure to the process of creating large
software systems, including requirements specifications, design,
implementation, testing, and maintenance. Emphasis on software
process, software tools (debuggers, profilers, source code
repositories, test harnesses), software engineering techniques (time
management, code and documentation standards, source code management,
object-oriented analysis and design), and team development practice.
Much of the work will be in groups and will involve modifying
preexisting software systems.

**EE 3500** **Fundamentals of Signals and Systems** (4,F) Prereq: EE 2270, MATH 2210.

- Transform domain analysis of passive circuits. Linear and time invariant
systems in continuous-time and discrete-time domains. System representations
using impulse response functions, frequency responses and transfer functions.
Realizations of linear time-invariant systems. Fourier analysis of continuous
and discrete-time signals. Sampling theorem. Filter design from
specifications.

**CS 3505** **Software Practice II** (3,S) Prereq: CS 3500.

- An in-depth study of traditional software development (using UML) from
inception through implementation. The entire class is team-based, and will
include a project that uses an agile process.

**EE 3510** **Introduction to Feedback Systems** (4,S) Prereq: EE 3500.

- Laplace transforms, boundedness, and convergence of signals. Transfer
functions, stability, steady-state responses and transient responses, effect
of initial conditions, state-space representations. Feedforward and feedback
control, steady-state error and integral control, Routh-Hurwitz criterion,
root-locus method, application to phase-locked loops. Bode plots, Nyquist
criterion, gain and phase margins. The z-transform and the analysis of
discrete-time signals and systems. Sampled-date systems, conversion between
continuous-time and discrete-time systems.

**EE 3530** **Engineering Probability and Statistics** (3,S) Prereq: MATH 2210.

- An introduction to probability theory and statistics, with an emphasis on
solving problems in electrical and computer engineering. Topics in
probability include discrete and continuous random variables, probability
distributions, sums and functions of random variables, the law of large
numbers, and the central limit theorem. Topics in statistics include sample
mean and variance, estimating distributions, correlation, regression, and
hypothesis testing. Engineering applications include failure analysis,
process control, communication systems, and speech recognition.

**CS/EE 3700** **Fundamentals of Digital System Design** (4,S) Quantitatively
Intensive B.S. Course. Prereq: CS 1410 or CS 2000, PHYCS 2220.

- Techniques for reasoning about, designing, minimizing and
implementing digital circuits and systems. Combinatorial (logic and
arithmetic) and sequential circuits are covered in detail leading up to
the design of complete small digital systems using finite state
machine controllers. Use of computer-aided tools for design,
minimization, and simulation of circuits. Laboratory is included
involving circuit implementation with MSI, LSI, and field programmable
gate arrays.

**CS/EE 3710** **Computer Design Laboratory** (3,F) Prereq: CS/EE 3700, CS/EE 3810.

- Working in teams, students employ the concepts of digital logic
design and computer organization to design, implement, and test a
computing system. Interface I/O devices and develop associated
software/firmware. Extensive use of CAD and software tools.

**CS/EE 3810** **Computer Organization** (4,F) Quantitatively Intensive B.S. Course. Prereq: CS 2420 or CS 2000.

- An in-depth study of computer architecture and design, including
topics such as RISC and CISC instruction set architectures, CPU
organizations, pipelining, memory systems, input/output, and
parallel machines. Emphasis is placed on performance measures and
compilation issues.

**CS/EE 3960** **Special Topics** (1-4)

- Special topics courses are taught every year. Check the on-line schedule
for a current listing of offerings.

**EE 3960-3962** **Undergraduate Special Topics** (1-5)

**CS/EE 3991** **Computer Engineering Junior Seminar** (0.5,F) Prereq: CE major status.

- Presentations from faculty and industry representatives to discuss
trends in computer engineering, professionalism, ethics, the impact of
engineering in global and societal contexts, lifelong learning, and
contemporary issues.

**CS/EE 3992** **Computer Engineering Pre-Thesis/Pre-Project** (1,S) Prereq: CS/EE 3710 and 3991, CE major status; Coreq: CS/EE 5780.

- Fundamentals of project planning (scoping, group selection, risk assessment,
scheduling, backup planning, strategy, etc.) are covered in the first half of
the course. The second half involves student presentations and critique of
proposals in progress. The final result of the course will be an approved
project or thesis proposal.

**CS 4010** **Teaching Introductory Computer Science** (1,FS) Prereq: Permission of instructor.

- Issues confronted by undergraduate teaching assistants in
introductory computer science courses, including leading lab sections,
conducting office hours, grading assignments, communicating with
students. Each student must currently be an undergraduate teaching
assistant in the School of Computing. May be taken for credit up to
three times.

**CS 4100** **Advanced Algorithms and Data
Structures** (4,S) Quantitatively Intensive B.S. Course. Prereq: CS 2100, CS 2420.

- Study of algorithms, data structures, and complexity analysis beyond
the introductory treatment from CS 2420. Balanced trees, heaps, hash
tables, string matching, graph algorithms, external sorting and
searching. Dynamic programming, exhaustive search. Space and time
complexity, derivation and solution of recurrence relations,
complexity hierarchies, reducibility, NP completeness. Laboratory
practice.

**CS 4400** **Computer Systems** (4,F) Prereq: CS 3500, CS 3810.

- Introduction to computer systems from a programmer's point of view.
Machine level representations of programs, optimizing program
performance, memory hierarchy, linking, exceptional control flow,
measuring program performance, virtual memory, concurrent
programming with threads, network programming.

**CS 4500** **Software Engineering Laboratory** (3,S) Prereq: CS 3505, senior standing in Computer Science.

- Development of significant software systems by small
student groups, with emphasis on applying sound, disciplined software
engineering practice.

**CS 4540** **Web Software Architecture** (3,S) Prereq: CS 3505.

- Software architectures, programming models, and programming
environments pertinent to developing web applications. Topics include
client-server model, multi-tier software architecture, client-side
scripting (JavaScript), server-side programming (Servlets and
JavaServer Pages), component reuse (JavaBeans), database connectivity
(JDBC), and web servers.

**CS 4550** **Simulation** (3,F) Prereq: CS 3505.

- Basic simulation modeling, modeling complex systems, basic
probability and statistics for simulation, building valid simulations,
random numbers, and output data analysis. Both discrete event and
continuous simulation may be covered.

**CS/EE 4710** **Computer Engineering Senior Project** (3,F) Prereq: CS/EE 3710, 3992, and 5780.

- This is the capstone project course for Computer Engineering majors who do
not choose to do a thesis. Projects are done in groups and are of the
student's choosing. Classroom sessions are devoted to improving presentation
skills and serve as peer reviews of the ideas and work done to date. Multiple
in-progress oral presentations are required as is a final written project
report and a final oral presentation.

**CS 4950** **Independent Study** (1-4)

**CS 4960-4964** **Special Topics** (1-4)

- Special topics courses are taught every year. Check the on-line schedule
for a listing of offerings.

**EE 4960-4962** **Undergraduate Special Topics** (1-5)

**CS/EE 4991** **Computer Engineering Senior Thesis I** (2,F) Prereq: CS/EE 3992 and approved senior thesis proposal.

- Students work on original senior thesis project under the direction
of their approved thesis advisor. This course along with CS/EE 4992
substitute for CS/EE 4710 (Computer Engineering Senior Project) for
students who have chosen to do a thesis.

**CS/EE 4992** **Computer Engineering Senior Thesis II** (2,S) Prereq: CS/EE 4991.

- Students work on an original senior thesis project under the
direction of their approved thesis advisor, make an oral
presentation at the annual student technical conference, and prepare
and submit their senior thesis for approval. This course along with
CS/EE 4991 substitute for CS/EE 4710 (Computer Engineering Senior
Project) for students who have chosen to do a thesis.

**CS 5100** **Foundations of Computer Science** (3,S) Prereq: CS 3100, CS 4100.

- A survey of topics in theoretical computer science,
focusing on computability and complexity. Turing machines, decidability,
relative computability, recursion theorem, non-deterministic TMs, complexity
measures, time and space hierarchies, P and NP, NP-completeness, program
specification and verification. Undergraduates only.

**EE 5201** **Semiconductor Device Physics I** (3,F) Prereq: MSE 3210 or PHYCS 3740.

- Physical principles that underlie operation of semiconductor electronic
devices with emphasis on silicon integrated circuits. Physics of
semiconductor materials, equilibrium in electronic systems, metal
semiconductor contacts, p-n junction theory, junction field effect
transistors, introduction to operation of bipolar transistors.

**EE 5202** **Semiconductor Device Physics II** (3,S) Prereq: EE 5201.

- Continuation of EE 5201. Bipolar transistors, silicon-silicon dioxide
system, insulated gate field effect transistors (IGFETs). Mathematical models
for computer simulation of bipolar and MOS devices. Second order effects
associated with very small geometry devices, and other devices of current
interest.

**EE 5211** **Semiconductor Device Physics Laboratory I** (1,F) Coreq: EE 5201.

- Hands on experience in the fabrication of silicon devices. Use of oxidation,
donor and acceptor diffusion, and high resolution photolithography in a clean
room facility. Characterization of silicon, measurement of basic parameters,
oxide thickness, dopant diffusion. Introduction to metalization and
contacts.

**EE 5212** **Semiconductor Device Physics Laboratory II** (1,S) Prereq: EE 5201, EE 5211; Coreq: EE 5202.

- Integrated knowledge of individual processing steps with more complex
processing equipment. Fabricate and characterize simple transistors and
integrated circuits.

**EE 5221** **Fundamentals of Micromachining Processes** (2,S)

- Introduction to the principles of micromachining technologies. Topics include
photolithography, silicon etching, thin film deposition and etching,
electroplating, polymer micromachining, and bonding techniques. A weekly lab
and a review of micromachining applications is included. Undergraduates only.

**EE 5222** **Biomedical Applications of Micromachining** (2,F) Prereq: EE 5221/6221.

- Use of the technologies from the first course in the series (ECE 5221) to
investigate biomedical applications of micromachining. Course focuses on the
design and development of micro sensor/actuator systems. Laboratory focus is
on the fabrication and testing of microscale sensor/actuator systems.
Undergraduates only.

**EE 5225** **Microsystems Design and Characterization** (3) Prereq: Semiconductor Device Physics, Micromanufacturing, Senior status.

- Third in a 3-course series on Microsystems Engineering. This course
generalizes microsystems design considerations with practical emphasis on MEMS
and IC characterization/physical analysis. Two lectures, one lab per week,
plus 1/2 hour lab lecture. Must also register for ME EN 6056 (0-credit lab
with fees).

**CS 5300** **Artificial Intelligence** (3,S) Prereq: CS 3505.

- Introduction to field of artificial intelligence,
including heuristic programming, problem-solving, search, theorem
proving, question answering, machine learning, pattern recognition,
game playing, robotics, computer vision. Undergraduates only.

**CS 5310** **Robotics** (3,F) Prereq: CS 1000, MATH 2250, PHYCS 2210. Crosslisted with ME 5220.

- The mechanics of robots, comprising kinematics, dynamics,
and trajectories. Planar, spherical, and spatial transformations and
displacements. Representing orientation: Euler angles, angle-axis, and
quaternions. Velocity and acceleration: the Jacobian and screw theory.
Inverse kinematics: solvability and singularities. Trajectory planning:
joint interpolation and Cartesian trajectories. Statics of
serial chain mechanisms. Inertial parameters, Newton-Euler equations,
D'Alembert's principle. Recursive forward and inverse dynamics.
Undergraduates only.

**CS 5320** **Computer Vision** (3,F) Prereq: CS 3505, MATH 2210, MATH 2270.

- Basic pattern-recognition and image-analysis techniques,
low-level representation, intrinsic images, ``shape from'' methods,
segmentation, texture and motion analysis, and representation of 2-D
and 3-D shape. Undergraduates only.

**EE 5320** **Microwave Engineering I** (4,F) Prereq: EE 3300.

- Brief review of transmission line theory and Smith Chart, general theory of
waveguides, TE, TM, TEM modes, some commonly used waveguides and transmission
lines including microstripline and its variations for microwave integrated
circuits, matching techniques including conjugate matching, passive
components, scattering matrices and signal-flow graphs, ABCD parameters,
directional coouplers and hybrids, power dividers and combiners, signal-flow
graphs for microwave amplifiers, microwave resonators and filters including
design considerations, filter design by image parameter method, constant-k and
m-derived filters, maximally flat and equal-ripple filters, coupled-line
filters, ferrite components. Biweekly laboratory assignments to design,
fabricate, and test microstrip circuits: e.g., low and band-pass filters,
coupled-line filters, directional couplers, etc., using professional-level
computer sofware and network analyzers.

**EE 5321** **Microwave Engineering II** (3,S) Prereq: EE 5320.

- Nonlinear and active microwave devices including diodes, mixers, transistors,
and negative resistance devices; compressed Smith Chart; balanced and
double-balanced mixer design; transistor amplifier theory and design for best
gain, stability, and noise performance. Oscillator theory and design using
transistors, tunnel diodes, IMPATTs, and Gunn diodes. PIN diode switching
circuits and phase shifters. Survey of design and performance of microwave
systems and auxiliary components; antennas, signal modulation and
multiplexing, transceiver and radar systems, signal-to-noise ratios,
atmospheric effects, microwave heating, biological effects and safety. Course
includes bi-weekly laboratory assignments using microstrip integrated circuits
with professional level design and test equipment. Demonstrations of other
active components such as traveling wave tubes, klystrons, and backward
oscillators are also provided.

**EE 5324** **Antenna Theory and Design** (3,S) Prereq: EE 3300.

- General theory of conduction current antennas; linear antennas including
dipoles and monopoles; antenna equivalent impedance; design of AM, FM, TV and
shortwave broadcast antennas of one or more elements including ground and
mutual impedance effects; matching techniques including lumped, shunt, and
series elements, transmission lines and conjugate matching; receiving
antennas; antennas used for mobile communication systems and their radiation
characteristics; antenna arrays and their design; wave propagation including
propagation via ionosphere or troposphere; loop antennas and Yagi-Uda arrays;
antenna synthesis for specified radiation patterns. UHF and microwave antennas
including corner reflector antennas, helical antennas, theory of aperture
antennas including rectangular and circular apertures; broadband log-periodic
antennas; microstrip antennas and phased arrays including applications for
wireless communication systems; slot antennas, turnstile, horn and parabolic
radiators; considerations for radar antennas and communication links. Antenna
ranges and measurement techniques. Laboratory demonstrations of radiation
patterns of portable wireless antennas with and without the model of the
head. Visits to various antenna installations in the Salt Lake valley by
groups of three students.

**EE 5325** **Wireless Communication Systems** (3) Prereq: EE 3300, EE 3500.

- Introduction to wireless transmission systems. This course will emphasize
how individual parameters affect overall system design and performance. Topics
include: basic cellular systems and parameters, multi-path channels and
modulation techniques.

**EE 5330** **Introduction to Microwave Tubes and Electron Devices** (3,S) Prereq: EE 3300, MATH 3150.

- Introduction to design, operation, and application of microwave and
millimeter-wave vacuum tubes; klystrons, traveling-wave tubes, backward-wave
oscillators, magnetrons, gyrotrons, free-electron lasers.

**CS 5340** **Natural Language Processing** (3,F) Prereq: CS 3505.

- Computational models and methods for understanding
written text. Introduction to syntactic analysis, semantic analysis,
discourse analysis, knowledge structures, and memory organization. A
variety of approaches are covered, including conceptual dependency
theory, connectionist methods, and statistical techniques.
Applications include story understanding, fact extraction, and
information retrieval. Undergraduates only.

**EE 5340** **Numerical Techniques in Electromagnetics** (3,S) Prereq: EE 3300.

- Review of basic numerical techniques including matrix methods and numerical
methods for error minimization and convergence. Comparison of differential and
integral formulations including finite difference, finite element, and moment
methods. Emphasis on frequency domain method of moments and time domain finite
difference (FDTD). Computer exercises require Fortran, C, or equivalent
programming and computerized data display techniques. Undergraduates only.

**CS 5350** **Machine Learning** (3,F) Prereq: CS 3505; CS 5300 recommended.

- Techniques for developing computer systems that can
acquire new knowledge automatically or adapt their behavior over time.
Topics include concept learning, decision trees, evaluation functions,
clustering methods, explanation-based learning, language learning,
cognitive learning architectures, connectionist methods, reinforcement
learning, genetic algorithms, hybrid methods, and discovery. Undergraduates
only.

**EE 5410** **Lasers and Their Applications** (3,F) Prereq: EE 3300.

- Physics and applications of lasers. All major laser types are studied,
including semiconductor, gas, dye and solid-state lasers. Emphasis is placed
on the properties of laser light and how they are used in a myriad of
applications. Hands-on laboratory experience is included.

**EE 5411** **Fiberoptic Systems** (3,S) Prereq: EE 5410.

- Systematic study of modern optical-fiber communication systems; Loss-limited
systems vs. dispersion-limited systems; Point to point links, broadcast and
distribution systems, and optical networks; Wavelength-division multiplexing
(WDM); and sub-carrier multiplexing (SCM); optical amplifiers and dispersion
compensation; Emphasis is on system design. Includes hands-on laboratory
experience.

**CS 5460** **Operating Systems** (4,F) Prereq: CS 4400.

- Characteristics, objectives, and issues concerning
computer operating systems. Hardware/software interactions, process
management, memory management, protection, synchronization, resource
allocation, file systems, security, and distributed systems. Extensive
systems programming.

**CS 5470** **Compiler Principles and Techniques** (4,S) Prereq: CS 3100, CS 4400.

- Lexical analysis, top-down and bottom-up parsing, symbol
tables, internal forms and intermediate languages, runtime
environments, code generation, code optimization, semantic
specifications, error detection and recovery. Use of software tools
for lexical analysis and parsing.

**CS 5480** **Computer Networks** (3,F) Prereq: CS 4100, CS 4400.

- A comprehensive study of the principles and practices of
data communication and networks. Topics include: transmission media,
data encoding, local and wide area networking architectures,
internetwork and transport protocols (e.g., IPv4, IPv6, TCP, UDP, RPC,
SMTP), networking infrastructure (e.g., routers, name servers,
gateways), network management, distributed
applications, network security, and electronic commerce. Principles
are put into practice via a number of programming projects. Undergraduates
only.

**EE 5480** **Principles of Ultrasound** (3) Prereq: PHYCS 2220.

- Acoustic-wave propagation in biological materials with examples of practical
medical instrumentation resulting from ultrasound interactions with biological
structures. Includes one lab experience.

**CS 5510** **Programming Language Concepts** (3,F) Prereq: CS 3500.

- Ideas behind the design and implementation of programming
languages. Syntactic description; scope and lifetime of variables;
runtime stack organization; parsing and abstract syntax; semantic
issues; type systems; programming paradigms; interpreters and
compilers.

**EE 5510** **Random Processes** (3,F) Prereq: EE 3500, EE 3530.

- Review of probability theory; multivariate distributions; Gaussian
distributions; weak and strong law of large numbers; random processes;
stationarity and ergodicity; mean-value function; auto- and cross-correlation
functions; power spectral densities; Wiener-Khinchine theorem; Karhunen-Loeve
expansion; Gaussian random processes; random processes in linear filters;
white Gaussian noise.

**CS 5520** **Anatomy of a Modern Programming Language** (3,S) Prereq: CS 5510.

- Requirements, challenges, and techniques for designing a modern
programming language, currently focusing on Java as a case study.
Syntactic and lexical issues, semantic specification, modularity
concepts, support for object-oriented programming, types and
subtypes, type safety and security, portability, compilability,
dynamic linking and loading, program evolvability, use of meta
data (reflection), multi-threading, native code generation and
linkage, generic types, persistence.

**EE 5520** **Digital Communication Systems** (3,S) Prereq: EE 5510.

- Modern communications; probabilistic viewpoint; vector representation of
signal; signal spaces; vector channels; additive white Gaussian noise; optimum
receivers; maximum-likelihood detection; error probabilities; memoryless
modulation methods: PAM, BPSK, M-PSK, FSK, QAM; message sequences; intersymbol
interference (ISI); Nyquist signaling; complex baseband models; noncoherent
detection.

**CS 5530** **Database Systems** (3,F) Prereq: CS 3500.

- Representing information about real world enterprises
using important data models including the entity-relationship,
relational and object-oriented approaches. Database design criteria,
including normalization and integrity
constraints. Implementation techniques using commercial database
management system software. Selected advanced Topics such as
distributed, temporal, active, and multi-media databases. Undergraduates
only.

**EE 5530** **Digital Signal Processing** (3,F) Prereq: EE 3510.

- Discrete-time signals and systems; the z-transform. Input-output
relationships; discrete-time networks. The discrete-time Fourier transform
and sampling; practical sampling issues; signal quantization. The discrete
Fourier transform, the fast Fourier transform, and high-speed convolution.
Filter design from analog models; impulse-invariant, bilinear, and spectral
transformations. FIR filter design, windowing, and frequency-sampling
methods. Equiripple filter design. Coefficient quantization. Examples of
DSP applications and implementations. Undergraduates only.

**CS 5540** **Human/Computer Interaction** (3,F) Prereq: CS 3500.

- Fundamentals of input/output devices, user interfaces, and
human factors in the context of designing interactive applications.
Undergraduates only.

**EE 5550** **Survey of Function Approximation Methods** (3) Prereq: MATH 2210, 2250, 3150.

- Industrial problems requiring function approximations, Fourier series,
universal series approximations, fuzzy logic, radial basis functions, neural
networks, linear interpolation, triangulation, window reticulation, response
surfaces, polynomials, cubic splines, sinc functions, Bezier curves.
Undergraduates only.

**EE 5570** **Control of Electric Motors** (3) Prereq: EE 3510.

- Principles of operation, mathematical models, and control techniques for
electric motors. Types of motors include brush DC motors, stepper motors,
brushless DC motors, synchronous motors and induction motors. Topics covered:
steady-state and dynamic characteristics, torque limits and field weakening
operation, characteristics under voltage and current sources, open-loop and
closed-loop control of position and velocity, and field-oriented operation for
AC motors.

**EE 5580** **Implementations of Digital Signal Processing Systems** (3,S) Prereq: EE 5530, CS/EE 5710.

- Review of common DSP systems and functional elements; number representations.
Implementation of bit-parallel, bit-serial, and digit-serial multiplier and
adder structures; carry-save arithmetic; register minimization. Architectural
transformation techniques: folding and unfolding, pipelining, and retiming of
computations. Performance and hardware tradeoffs in VLSI DSP system design.
Pipelined and parallel direct-form FIR and IIR filter structures. Pipelined
adaptive filter structures. Architectures for the fast Fourier transform.
Undergraduates only.

**CS 5600** **Introduction to Computer Graphics** (3,S) Prereq: CS 3500, MATH 2250.

- Basic display techniques, display devices, and graphics systems.
Homogeneous coordinates, transformations, and clipping.
Introduction to lighting models. Introduction to raster graphics
and hidden-surface removal.

**CS 5610** **Interactive Computer Graphics** (3,F) Prereq: CS 5600.

- Interactive 3D computer graphics, polygonal representations of 3-D
objects. Interactive lighting models. Introduction to interactive
texture mapping, shadow generation, image-based techniques such as
stencils, hidden-line removal, and silhouette edges. Introduction
to image-based rendering, global illumination, and volume
rendering. Undergraduates only.

**CS 5630** **Scientific Visualization** (3,F) Prereq: CS 3505; CS 3200 or CS 6210 or MATH 5600.

- Introduction to the techniques and tools needed for the visual
display of data. Students will explore many aspects of visualization,
using a "from concepts to results" format. The course begins with an
overview of the important issues involved in visualization, continues
through an overview of graphics tools relating to visualization, and
ends with instruction in the utilization and customization of a
variety of scientific visualization software packages. Undergraduates only.

**CS/EE 5720** **Analog Integrated Circuit Design** (3,S) Prereq: EE 3110.

- Design of analog and mixed-signal CMOS integrated circuits. Fundamental
building blocks for analog circuits, including the basic principles of op amp,
current mirror, and comparator design. The basics of sample-and-hold circuits.
Students complete integrated circuit design, simulation, layout, and
verification using computer-aided design tools. Undergraduates only.

**CS/EE 5740** **Computer-Aided Design of Digital Circuits** (3,S) Prereq: CS/EE 3700, CS 4100.

- Introduction to theory and algorithms used for computer-aided synthesis
of digital integrated circuits. Topics include algorithms and
representations for Boolean optimization, hardware modeling,
combination logic optimization, sequential logic optimization and
technology mapping. Undergraduates only.

**CS/EE 5750** **Synthesis and Verification of Asynchronous VLSI Systems** (3) Prereq: CS/EE 3700, CS 3505.

- Introduction to systematic methods for the design of asynchronous VLSI
systems from high-level specifications to efficient, reliable circuit
implantations. Topics include specification, protocols, graphical
representations, synthesis, optimization using timing information, and
verification. Undergraduates only.

**CS/EE 5780** **Embedded System Design** (4,S) Prereq: CS/EE 3810, CS 2000 or 4400.

- Introduction to issues in embedded system design using microcontrollers.
Topics include: microcontroller architecture, memory interfacing, serial and
parallel I/O interfacing, analog interfacing, interrupt synchronization, and
embedded software. Undergraduates only.

**CS/EE 5785** **Advanced Embedded Systems** (4,F) Prereq: CS/EE 5780.

- This class is about building reliable and efficient embedded systems, with a
bias toward software issues and a bias toward whole-system issues. Students
complete several projects in C running on ARM-based embedded development
boards. The course covers a number of special topics such as embedded
software architectures, digital signal processing, feedback control, real-time
scheduling, verification and validation, wired and wireless embedded networks,
and safety-critical embedded systems. Undergraduates only.

**CS/EE 5830** **VLSI Architecture** (3,S) Prereq: CS/EE 3700, CS/EE 3810.

- Project-based study of a variety of Topics related to VLSI
systems. Use of field programmable gate arrays to design, implement,
and test a VLSI project. Undergraduates only.

**CS 5950** **Independent Study** (1-4)

**EE 5950** **Undergrad Special Study** (1-6) Prereq: Instructor's consent.

**CS 5960-5969** **Special Topics** (1-4)

- Special topics courses are taught every year. Check the on-line schedule
for a listing of offerings.

**EE 5960-5962** **Special Topics** (1-5)

**CS 6100** **Foundations of Computer Science** (3,S) Prereq: CS 3100, CS 4100.

- Graduate and honors students only. Extra work required.

**CS 6110** **Formal Methods for System Design** (3,S) Prereq: CS 5100/6100.

- Study of methods for formally specifying and verifying computing
systems. Specific techniques include explicit state enumeration,
implicit state enumeration, automated decision procedures for
first-order logic, and automated theorem proving. Examples selected
from the areas of superscalar CPU design, parallel processor memory
models, and synchronization and coordination protocols.

**CS 6210** **Advanced Scientific Computing I** (3,F) Prereq: CS 3200, CS 3505, MATH 3150.

- An introduction to existing classical and modern numerical
methods and their algorithmic development and efficient implementation.
Topics include: numerical linear algebra, interpolation, approximation
methods and parallel computation methods for nonlinear equations,
ordinary differential equations, and partial differential equations.

**CS 6220** **Advanced Scientific Computing II** (3,S) Prereq: CS 6210 or MATH 5600.

- A study of the numerical solution of two and three dimensional partial
differential equations that arise in science and engineering
problems. Topics include: finite difference methods, finite element
methods, boundary element methods, multigrid methods, mesh generation,
storage optimization methods, and adaptive methods.

**EE 6221** **Fundamentals of Micromachining Processes** (2,S)

- Graduate students only. Extra work required.

**EE 6222** **Biomedical Applications of Micromachining** (2,F) Prereq: EE 5221/6221.

- Graduate students only. Extra work required.

**EE 6225** **Microsystems Design and Characterization** (3)

- Graduate students only. Extra work required.

**CS 6230** **High Performance Parallel Computing** (3,S) Prereq: Programming in C/C++.

- Overview of parallel computing; processors, communications topologies and
languages. Use of workstation networks as parallel computers. Design of
parallel programs: data composition, load balancing, communications and
synchronisation. Distributed memory and shared memory programming modules;
MPI, PVM, threads. Performance models and practical performance
analysis. Case studies of parallel applications.

**EE 6231** **Microsensors and Actuators** (3) Prereq: EE 5221/6221.

- The course builds on EE 5221/6221, Fundamentals of Micromachining. Topics
include definitions, categorization and application fields of microsensors and
actuators, an introduction to solid state physics, piezoresistive sensors,
semiconductor-based temperature sensors, magnetoresistive sensors,
thermoelectric sensors, photoelectric sensors, micro gas and fluid
concentration sensors, molecular diagnostics arrays, and various actuators
(relays, micromotors, inkjet printheads, micropumps), sensor packaging and
assembly. Registration for a weekly lab (1) is required.

**EE 6232** **Microsensors and Actuators Lab** (1) Prereq: EE 5221/6221; Coreq: EE 6231 or 7231.

- The lab is compulsory when taking EE 6231 or 7231. The lab will include
design and simulation of microsensors and actuators, process design, packaging
and assembly, characterization and testing of microsensors and actuators as
well as reliability issues. The first part of the lab will focus on the
acquirement of additional technological skills and understanding of sensor
characteristics. The second part of the lab will lead to the fabrication,
characterization and presentation of a variety of fully functional
microsensors or actuators. Examples of these are pressure, force,
acceleration, gas sensors and inkjet printheads.

**EE 6261** **Physical Theory of Semiconductor Devices** (3,F) Prereq: EE 5202.

- Development of a thorough, working knowledge of the physics of semiconductor
materials and devices, including quantum effects. Examination of advanced
devices, including light emitting diodes, solar cells, detectors, and
injection lasers.

**EE 6262** **Advanced Optoelectronics** (3,S) Prereq: EE 5411.

- Introduce the technology of ultrafast diode lasers from the basic physical
principles through to the applications in communications and ultrafast
optoelectronic and applications of semiconductor diode laser arrays. All of
the major types of arrays will be discussed including coherent, incoherent,
edge- and surface-emitting, horizontal- and vertical-cavity, individually
addressed, lattice-matched and strained-layer systems.

**EE 6263** **Advanced Classical and Quantum Semiconductors** (2,S) Prereq: EE 6261 or 5202.

- A lecture/laboratory course focusing on advanced principles of operation,
physical design considerations, and testing of advanced Si, SiGe, SiC, and
III-V compound semiconductor devices. Ohmic and Schottky contact technologies
will be discussed in detail. Advanced applications of MESFETs and JFETs will
also be presented. The primary thrust of this course will be on HEMTs, HBTs,
MBTs, graded junction/alloy transistors, resonant tunneling transistors and
other quantum and superlattice devices. Trade-offs, theoretical
considerations, modeling and simulation, testing, and the correlation between
theory and experiment for various device parameters will be covered.

**EE 6264** **Advanced Silicon Devices** (3,S) Prereq: EE 6261 or 5202.

- Current topics in silicon device physics. Review of MOS device theory, rules
for scaling devices to submicron dimensions, theoretical limits to
scaling. Short channel, device models including two-dimensional numerical
models. Hot carrier effects and other reliability issues. Yield statistics,
lifetime prediction.

**EE 6265** **Advanced Processing of Semiconductors** (3,S) Prereq: EE 6261 or 5202.

- Development of a through, working knowledge of the thermodynamic and kinetic
aspects of epitaxy. This material is used to illustrate the advanced
epitaxial techniques of organometallic vapor phase epitaxy, chemical beam
epitaxy, and molecular beam epitaxy.

**EE 6266** **Advanced Semiconductor Device Characterization** (2,S) Prereq: EE 6261 or 5202.

- A lecture/laboratory course focusing on advanced characterization,
measurement, and testing of semiconductor devices. Topics include: MIS/MOS
interface and bulk trap measurement and analysis using HF/Ideal, LF/HF,
LF/Ideal, Multifrequency (Conductance) capacitance versus voltage (C-V)
curves, BTS and TVS testing of oxides, Fowler Nordheim and Poole Frenkel
currents in oxides and insulators, Charge Pumping, two-, three-, and
four-terminal MOS current vs. Voltage (I-V) measurements, measuring hot
Electron/Short Channel Effects, C-t/Zerbst Plots, Silicide technology,
Electronmigration effects, DLTS, I-V versus temperature of MOS and BJTs.

**CS 6300** **Artificial Intelligence** (3,S) Prereq: CS 3505.

- Graduate and honors students only. Extra work required.

**CS 6310** **Robotics** (3,F) Prereq: CS 1000, MATH 2250, PHYCS 2210. Crosslisted with ME 6220.

- Graduate and honors students only. Extra work required.

**EE 6310** **Advanced Electromagnetic Fields** (3,F) Prereq: EE 3300.

- Review of Maxwell's macroscopic equations in integral and differential forms
including boundary conditions, power and energy computations, and
time-harmonic formulations. Macroscopic electrical properties of matter.
Oblique incidence planewave propagation and polarization in multi-layered
media. Separation of variable solutions of the wave equation in rectangular,
cylindrical and spherical coordinates. Vector potential theory and the
construction of solutions using Green's theorem. Electromagnetic theorems of
duality, uniqueness, reciprocity, reaction, and source equivalence.
Waveguide, cavity, antenna, and scattering applications in rectangular,
cylindrical, and spherical geometries.

**CS 6320** **Computer Vision** (3,S) Prereq: CS 3505, MATH 2210, MATH 2270.

- Graduate and honors students only. Extra work required.

**EE 6320** **Advanced Microwave Integrated Circuits** (3,S) Prereq: EE 5321.

- This class deals with design and technology of microwave integrated circuits
(MICs) and Monolithic Microwave Integrated Circuits (MMICs). Microwave
integrated circuits such as small-signal amplifiers, power amplifiers, and
oscillators are studied. Nonlinear circuits such as frequency multipliers and
mixers are also covered in detail. Active devices are studied for microwave
circuit and system applications. Transistors, both bipolars and FETs, and
various two terminal devices are also discussed. This class deals with
fabrication techniques and measurements related to microwave integrated
circuits. Testing, packaging and reliability issues are studied. This class
also covers monolithic microwave integrated circuit techniques. This class
involves extensive computer-aided designs, circuit layout and fabrication, and
circuit characterization and testing of MICs and MMICs.

**EE 6330** **Microwave Devices and Physical Electronics I** (3,F) Prereq: EE 5321.

- State-of-the-art course in microwave thermionic devices: Formation and
control of electron beams. Llewellyn Peterson equations, space-charge waves,
klystrons, traveling-wave tubes.

**EE 6331** **Microwave Devices and Physical Electronics II** (3,S) Prereq: EE 6330.

- State-of-the-art course in microwave thermionic devices: Continuation of
traveling-wave tubes, backward-wave oscillators, crossed-field devices,
parametric amplifiers, gyrotron devices, and free-electron lasers.

**CS 6340** **Natural Language Processing** (3,F) Prereq: CS 3505.

- Graduate and honors students only. Extra work required.

**EE 6340** **Numerical Techniques in Electromagnetics** (3,S) Prereq: EE 3300.

- Graduate students only. Extra work required.

**CS 6350** **Machine Learning** (3,F) Prereq: CS 3505; CS 5300/6300 recommended.

- Graduate and honors students only. Extra work required.

**CS 6360** **Virtual Reality** (3,S) Prereq: CS 5310/6310.

- Human interfaces: visual, auditory, haptic, and locomotory displays;
position tracking and mapping. Computer hardware and software for the
generation of virtual environments. Networking and communications.
Telerobotics: remote manipulators and vehicles, low-level control,
supervisory control, and real-time architectures. Applications:
manufacturing, medicine, hazardous environments, and training.

**CS 6370** **Geometric Computation for Motion Planning** (3,F) Prereq: CS 1020, MATH 2250.

- Geometric computation is the study of practical algorithms for solving
queries about geometric properties of computer models and relationships
between computer models. Robot motion planning uses these algorithms to
formulate safe motion through a modeled environment. In addition, algorithms
for geometric computation are used in computer animation, simulation,
computer-aided design, haptics, and virtual reality. Topics to be covered in
this course are spatial subdivision and model hierarchies, model
intersection, distance queries and distance fields, medial axis
computations, configuration space, and motion planning. The course will rely
on lectures, readings, and projects to provide understanding of current
practices in the field.

**CS 6380** **Multiagent Systems** (3,S) Prereq: knowledge of programming, data structures, processes, language syntax,
and either Matlab or C.

- Covers fundamental notions of (1) software agents, including: autonomy,
communication, persistence, and intelligence; and (2) multiagent systems,
including: communication standards, cooperation, competition and coordination.
Methods will be applied to a practical application (usually in Matlab or C).

**EE 6420** **Fourier Optics and Holography** (3,F) Prereq: EE 3300, 5410.

- Analysis of optical systems by use of spatial Fourier transforms. A systems
approach to optics using spatial frequencies and transfer functions to analyze
diffraction, filtering, and imaging. Holography and holographic optical
elements used in optical signal processing techniques. Includes two
laboratory experiences.

**EE 6430** **Statistical Optics, Interferometry, and Detection** (3,F) Prereq: EE 5410, 6420, 5510.

- Coherence properties of light, including partial temporal and spatial
coherence, as measured by statistical functions. Review of basic statistical
concepts. Intensity fluctuations of thermal and laser light. Michelson
interferometry, Wiener-Khinchin theorem, Young's experiment and the Van
Cittert-Zernike theorem. Origins and statistics of optical noise. Comparison
of various detection techniques. Includes two laboratory experiences.

**EE 6440** **Integrated Optics and Optical Sensors** (3,S) Prereq: EE 5410, 5411.

- Planar and rectangular waveguides and their mode properties. Fabrication
techniques, input and output couplers, and coupling between guides.
Integrated optic modulators. Applications of integrated optical devices.
Optical sensors for biomedical and environmental monitoring. Includes two
laboratory experiences.

**EE 6450** **Quantum Electronics** (3,F) Prereq: EE 3300, 5410, PHYCS 3740.

- Advanced quantum mechanical analysis of the interaction of light with matter,
including quantization of lattice vibrations and the electromagnetic field.
Analysis of laser principles based on quantum mechanical principles.

**EE 6451** **Nonlinear Optics and Spectroscopy** (3,S) Prereq: EE 6450.

- Theoretical development and applications of nonlinear optical processes
including harmonic generation, sum and difference frequency generation,
parametric oscillation. Nonlinear refractive indices and multiphoton
absorption.

**CS 6470** **Advanced Topics in Compilation** (3,F) Prereq: CS 5470.

- Compilation of modern languages. Optimization techniques, register
allocation and instruction scheduling, garbage collection,
exception handling. Linkers and late-stage compilation and
optimization.

**CS 6480** **Computer Networks** (3,F) Prereq: CS 4100, CS 4400.

- Graduate and honors students only. Extra work required.

**CS 6490** **Network Security** (3,S) Prereq: CS 5480/6480.

- Comprehensive introduction to the principles and practices of network
security, especially Internet Security. Topics to be covered include:
cryptography, authentication, access control, web security,
denial-of-service, digital pests, anonymity, and intrusion detection.
Existing network security standards will be used for case studies. Includes
laboratory practice.

**CS 6510** **Functional Programming** (3,F) Prereq: CS 3100, CS 5510.

- Practical programming with functional language (e.g., Scheme, ML,
Haskell) and functional techniques (e.g., fold operators,
continuation-passing style, monads, parametric polymorphism). No
previous experience with functional language is required. Course work
includes writing programs, presenting programs in class, and critiquing
peer programs.

**EE 6510** **Statistical Communication Theory** (3,S) Prereq: EE 5510, 5520.

- Efficient modulation; the capacity theorem; Shannon bound; signal
constellations, lattices; maximum-likelihood sequence detection;
maximum-aposteriori symbol detection; communication channels; statistical
description of channels; multipath fading channels; Optimal detection;
diversity detection; spread-spectrum communications; spreading sequences; Gold
codes; multiple-access communications; code-division multiple access (CDMA);
Aloha and random access communications.

**EE 6521** **Error Control Coding** (3,S) Prereq: EE 5510, 5520.

- Modern communications systems; additive white Gaussian noise; bandwidth and
power constraints; soft-decision decoding; tree codes; tree decoders; the
M-algorithm; convolutional codes; trellis codes; decoding methods; maximum
aposteriori symbol detection (MAP), soft information processing; iterative
decoding, Turbo coding principles.

**CS 6530** **Database Systems** (3,F) Prereq: CS 3500.

- Graduate and honors students only. Extra work required.

**EE 6530** **Digital Signal Processing** (3,F) Prereq: EE 3510.

- Graduate students only. Extra work required.

**CS 6540** **Human/Computer Interaction** (3,F) Prereq: CS 3500.

- Graduate and honors students only. Extra work required.

**EE 6540** **Estimation Theory** (3,S) Prereq: EE 5510, 5530.

- Bayesian parameter estimation; unbiased estimators; minimum variance
estimators. Sufficient statistics; maximum-likelihood estimation; the
Cramer-Rao bound. Linear estimation; minimum-mean-square-error estimation and
its geometrical interpretation. Wiener filtering; spectral factorization.
Kalman filtering and state-space estimation. Applications of estimation to
practical problems including system identification and spectrum estimation.

**EE 6550** **Adaptive Filters** (3,S) Prereq: EE 5510, 5530.

- Basics of minimum mean-square and least squares estimation. Lattice
orthogonalization. Stochastic gradient adaptive filters: derivations,
performance analyses and variations. Recursive least-squares adaptive filters:
fast algorithms, least-squares lattice filters, numerical issues, and
performance comparisons with stochastic gradient adaptive filters. Adaptive
IIR filters. Fundamentals of adaptive nonlinear filtering. Selected
applications.

**EE 6551** **Survey of Optimization Techniques** (3) Prereq: MATH 2210, 2250, 3150.

- Neural networks, gradient and Hessian descent, conjugate gradient, random
search, simulated annealing, prejudicial search, least-squares, regression,
downhill simplex, genetic algorithms, linear programming, simplex algorithm,
Karmarkar algorithm, quadratic and dynamic programming, Riccati equation,
Beard-Galerkin optimal control.

**EE 6552** **Survey of Function Approximation Methods** (3) Prereq: MATH 2210, 2250, 3150.

- Graduate students only. Extra work required.

**EE 6560** **Multivariable Systems** (3,F) Prereq: EE 3510; ME EN 5210 recommended.

- State-space models, controllability, observability, model reduction, and
stability. Matrix fraction descriptions, coprimeness, properness, state-space
realizations, multivariable poles and zeros, and canonical forms. Linear
quadratic control, pole placement, and model reference control.
Frequency-domain analysis and optimization.

**EE 6561** **Robust Multivariable Control** (3,S) Prereq: EE 5310; Coreq: ME EN 5210 or equivalent.

- Analysis and control of uncertain systems. Representation of uncertain
systems and their performance requirements using linear fractional
transformation (generalized plant framework). Design of robust controllers,
including frequency-weighted linear quadratic regulators, minimax, H-infinity
and H-2 synthesis methods.

**EE 6570** **Adaptive Control** (3,F) Prereq: EE 3510; ME EN 5210 recommended.

- Identification using gradient and least-squares algorithms. Indirect
adaptive control: pole placement control, model reference control, predictive
control, and problems with singularity regions. Direct adaptive control:
strictly positive real transfer functions, Kalman-Yacubovitch-Popov lemma,
passivity theory, and stability of pseudo-gradient adaptive algorithms.
Persistency of excitation and sufficient richness conditions for parameter
convergence. Averaging methods and robustness issues. Disturbance rejection.

**EE 6580** **Implementations of Digital Signal Processing Systems** (3,S) Prereq: EE 5530, 5710.

- Graduate students only. Extra work required.

**CS 6610** **Interactive Computer Graphics** (3,F) Prereq: CS 5600.

- Graduate and honors students only. Extra work required.

**CS 6620** **Ray Tracing** (3,S) Prereq: CS 5610/6610.

- Introduction to ray-tracing. Intersection methods for 3-D objects,
reflection and refraction. Introduction to surface and solid
texturing. Introduction to continuous-tone pictures and the
aliasing problem. Special effects such as soft shadows,
depth-of-field, motion-blur, and indirect lighting.

**CS 6630** **Scientific Visualization** (3,F) Prereq: CS 3505; CS 3200 or CS 6210 or MATH 5600.

- Graduate and honors students only. Extra work required.

**EE 6640** **Advanced Digital Signal Processing I** (3,F) Prereq: EE 5510, 5530.

- Project-oriented class on advanced topics of current interest in signal
processing. Examples of topics include image compression, nonlinear signal
processing, active noise control, blind deconvolution and equalization.

**EE 6641** **Advanced Digital Signal Processing II** (3,S) Prereq: EE 5510, 5530, 6640.

- Project-oriented class on advanced topics of current interest in signal
processing. Examples of topics include image compression, nonlinear signal
processing, active noise control, blind deconvolution and equalization.

**CS 6670** **Computer-Aided Geometric Design I** (3,F) Prereq: MATH 2210, MATH 2250, CS 3505; Coreq: CS 5600.

- Introduction to current concepts and issues in CAGD
systems with emphasis on free- form surface design; mathematics of
free-form curve and surface representations, including Coons patches,
Bezier method, B-splines, triangular interpolants, and their geometric
consequences; classical surface geometry; local and global design
tradeoffs and explicit and parametric tradeoffs; subdivision and
refinement as techniques in modeling; current production capabilities
compared to advanced research. Laboratory experiments with current CAD
systems.

**CS 6680** **Computer-Aided Geometric Design II** (3) Prereq: CS 6670.

- Project based on material covered in CS 6670.

**CS/EE 6710** **Digital VLSI Design** (4,F) Prereq: CS/EE 3700.

- Introduction to basic concepts of the design of CMOS integrated circuits.
Static and dynamic properties of CMOS circuits, composite layout of CMOS
circuits, and modeling of transistors. Commonly encountered CMOS circuits.
Students complete design, composite layout, and simulation of an integrated
circuit project using computer-aided design tools.

**CS/EE 6712** **Digital IC Projects Testing** (1,F) Prereq: CS/EE 6710.

- This course is designed for students who fabricated an integrated circuit
in CS/EE 6710 or 6770. Students will test their chiips independently
and report on the experimental results.

**CS/EE 6720** **Asynchronous Integrated Circuit Design** (3,S) Prereq: EE 3110.

- Graduate and honors students only. Extra work required.

**CS/EE 6721** **Analog Integrated Circuits Lab** (1,S) Coreq: CS/EE 6720.

- Optional lab that accompanies CP SC/ECE 5720/6720. Students will test and
characterize transistors, circuits, and systems on modern CMOS chips.

**CS/EE 6722** **Analog Integrated Circuits Project Testing** (1,F) Prereq: CS/EE 6720.

- This course is designed for students who fabricated an integrated circuit in
CP SC/ECE 5720/6720. Students will test their chips independently and report
on the experimental results.

**CS/EE 6740** **Computer-Aided Design of Digital Circuits** (3,S) Prereq: CS/EE 3700, CS 4100.

- Graduate and honors students only. Extra work required.

**CS/EE 6750** **Synthesis and Verification of Asynchronous VLSI Systems** (3,F) Prereq: CS/EE 3700, CS 3505.

- Graduate and honors students only. Extra work required.

**CS/EE 6760** **Modeling and Analysis of Biological Networks** (3,F) Prereq: Background in molecular or cell biology or formal modeling..

- Introduction to methods for modeling and analyzing biological
networks such as genetic regulatory networks, metabolic networks, and
signal transduction networks. A particular emphasis will be given to
methods inspired by models used by engineers for circuit analysis. Other
topics include: stochastic analysis using Monte Carlo methods,
differential equation models, Bayesian network models, flux balance
analysis, learning methods, pathway databases, and synthesized gene
circuits.

**CS/EE 6770** **Advanced Digital VLSI Systems Design** (3) Prereq: CS/EE 6710 and instructor permission.

- This course addresses advanced issues in VLSI design, covering the following
topics: design methodologies and IP design, CMOS circuit scaling, advanced
logic circuit styles, noise sources and signal integrity in digital design,
design techniques for dynamic and static power reduction, power supply issues,
interconnect analysis, clocking and synchronization, process variation, and
performance verification. Students are expected to complete a substantial
design project as part of the course, which involves extensive use of CAD
tools.

**CS/EE 6780** **Embedded System Design** (4,S) Prereq: CS/EE 3810, CS 2000 or 4400.

- Graduate students only. Extra work required.

**CS/EE 6785** **Advanced Embedded Systems** (4,F) Prereq: CS/EE 5780/6780.

- Graduate students only. Extra work required.

**CS/EE 6810** **Computer Architecture** (3,F) Prereq: CS/EE 3810.

- Principles of modern high performance computer and micro
architecture: static vs. dynamic issues, pipelining, control and data
hazards, branch prediction and correlation, cache structure and
policies, cost-performance and physical complexity analyses.

**CS/EE 6830** **VLSI Architecture** (3,S) Prereq: CS/EE 3700, CS/EE 3810.

- Graduate and honors students only. Extra work required.

**CS 6960-6969** **Special Topics** (1-4)

- Special topics courses are taught every year. Check the on-line schedule
for a listing of offerings.

**EE 6960-6962** **Special Topics** (1-5)

**CS 7120** **Information-Based Complexity** (3) Prereq: CS 3200, MATH 2270, MATH 3210.

- Analysis of optimal computational methods for continuous
problems. Introduction to the general worst case theory of optimal
algorithms, linear problems, and spline algorithms as well as selected
nonlinear problems. Examples include optimal integration,
approximation, nonlinear zero finding, and fixed points.

**EE 7231** **Microsensors and Actuators** (3) Prereq: EE 5221/6221.

- The course builds on EE 5221/6221, Fundamentals of Micromachining. Topics
include definitions, categorization and application fields of microsensors and
actuators, an introduction to solid state physics, piezoresistive sensors,
semiconductor-based temperature sensors, magnetoresistive sensors,
thermoelectric sensors, photoelectric sensors, micro gas and fluid
concentration sensors, molecular diagnostics arrays, and various actuators
(relays, micromotors, inkjet printheads, micropumps), sensor packaging and
assembly. Registration for a weekly lab (1) is required.

**CS 7240** **Sinc Methods** (3,S) Prereq: CS 6210 or MATH 5600 or MATH 5610.

- Sinc methods for solving difficult computational problems, such as
partial differential and integral equation problems, that arise in
science and engineering research. Emphasis on parallel computation.
Applications vary, depending on participants in the class. Students
are given projects--whenever possible in their areas of research--that
lead to publishable research articles.

**CS 7250** **Advanced Topics in Scientific Computing** (3,F) Prereq: CS 6220.

- In-depth study of research topics of current interest in scientific
computing. Topics will typically have been surveyed in CS 6210 and
6220. This course can be repeated for credit since the focus will be
changed from semester to semester.

**CS 7310** **Advanced Robotics** (3) Prereq: CS 5310/6310 or ME EN 5220/6220. Crosslisted with ME 7230.

- Covers the kinematics, dynamics, and control
of robotic manipulators. Projects controlling robots will be an
integral part of the course.

**EE 7310** **Advanced Topics in Magnetic Resonance Imaging** (3,S) Prereq: Instructor consent.

- In-depth study of physics and mathematics of MR imaging and MR
spectroscopy as they relate to imaging of biologic systems: NMR
physics, Block's equations, pulse sequences, flow and diffusion
phenomena, spectroscopy principles, methodology. Laboratory.

**CS 7320** **System Identification for Robotics** (3) Prereq: CS 5310/6310 or ME EN 5220/6220.

- Modeling and identification of the mechanical properties of robots and
their environments. Review of probability and statistics. Parametric versus
nonparametric estimation. Linear least squares parameter estimation, total
least squares, and Kalman filters. Nonlinear estimation and extended Kalman
filters. State estimation. Specific identification methods for kinematic
calibration, inertial parameter estimation, and joint friction modeling.

**EE 7320** **3-D Reconstruction Techniques in Medical Imaging** (3,S) Prereq: Instructor consent.

- The course focuses on the problem of three-dimensional (3D) image
reconstruction from line integrals, which constitute a mathematical model of
measurements in computed tomography (CT), and particularly x-ray computed
tomography. Analytical and iterative reconstruction methods are investigated
for various geometries of data acquisition. A critical goal is to provide the
student with the essential tools required to understand papers on tomographic
image reconstruction, from x-ray CT to emission CT, and also with a clear
understanding of how efficient and accurate reconstruction algorithms are
designed, using the Fourier slice theorem and backprojection
techniques. MATLAB laboratories and a computer project are given in support of
the theory.

**CS 7460** **Distributed Operating Systems** (3) Prereq: CS 5460, CS 5480/6480.

- Practical distributed operating systems concepts from
basics through the state of the art. Topics include interprocess
communication, client-server systems, distributed shared memory,
distributed file systems, distributed databases, portable computing,
software fault tolerance, and wide-area (e.g. web) applications. Work
includes individual oral presentations, a group project, and a written
research report.

**CS 7520** **Programming Language Semantics** (3,S) Prereq: CS 3100, CS 5510.

- Examination of the formal and pragmatic ideas behind
programming language design. Imperative, functional, logic,
object-oriented, and multi-paradigm languages. Lambda calculus,
fixpoints, type systems, and predicate logic.
Denotational semantics and models of concurrency.

**EE 7520** **Information Theory** (3,S) Prereq: EE 5510, EE 5520.

- Concept of information and uncertainty; source and channel models; entropy
and its properties; relative entropy; mutual information; Shannon's source
coding theorem; the Asymptotic Equipartitioning Property (AEP); concepts of
source codes; Huffman code; arithmetic coding; variable to fixed source codes;
typical sequences; rate distortion theory; channel coding; Shannon's channel
coding theorem.

**CS 7640** **Image Processing** (3,S) Prereq: CS 2420, MATH 2250.

- An introductory course in processing grey-scale and color images that
covers both mathematical funadmentals and implementation. It introduces
students to the basic principles of processing digital signals and how
those principles apply to images. These fundamentals include sampling
theory, transforms, and filtering. The course also covers a series of basic
image-processing problems including enhancement, reconstruction,
segmentation, feature detection, and compression. Assignments include
several projects with software implementations and analysis of real data.

**EE 7640** **Advanced Digital Signal Processing I** (3,F) Prereq: EE 5510, EE 5530.

- Project-oriented class on advanced topics of current interest in signal
processing. Examples of topics include image compression, nonlinear signal
processing, active noise control, blind deconvolution, and equalization.

**EE 7641** **Advanced Digital Signal Processing II** (3,S) Prereq: EE 5510, EE 5530.

- Project-oriented class on advanced topics of current interest in signal
processing. Examples of topics include image compression, nonlinear signal
processing, active noise control, blind deconvolution, and equalization.

**CS 7650** **Realistic Image Synthesis** (3,F) Prereq: CS 6620, CS 6670, MATH 5010.

- Using camera and sensor simulation along with physical simulation to
generate realistic synthetic images.

**CS/EE 7810** **Advanced Computer Architecture** (3,S) Prereq: CS/EE 6810.

- Issues in the design of modern microprocessors, with emphasis on
current research topics in the field. Offered in alternate years.

**CS/EE 7820** **Parallel Computer Architecture** (3,S) Prereq: CS/EE 6810.

- Architecture, design, and analysis of parallel computer
systems: vector processing, data vs. control concurrency, shared
memory, message passing, communication fabrics, case studies of current
high performance parallel systems. Offered in alternate years.

**CS 7960-7969** **Special Topics** (1-4)

- Special topics courses are taught every year. Check the on-line schedule
for a listing of offerings.

**EE 7960** **Special Topics** (1-5)

PREVIOUS | UP | CONTENTS |