## Teaching

## Dr. Michael T. Johnson

### Courses I’ve taught

### Freshman Seminar

Introduction to electrical engineering and computer engineering. Organized around the Roomba platform from iRobot, this course gives students an opportunity to learn problem solving, develop and carry out team projects, and interact with their peers and other members of the EECE Department.

### Digital Logic Design

Introduces students to the basic principles of digital circuit analysis and design. Topics covered include: Boolean Algebra, number systems, basic logic gates, standard combinational circuits, combinational design, timing diagrams, flip-flops, sequential design, standard sequential circuits and programmable logic devices.

### Digital Signal Processing

This course is an introduction to discrete-time signals and systems.Topics include sampling theory and linear time invariant system analysis through convolution, Fourier transforms and z-transforms. In addition, techniques for the design of digital filters are introduced, and the computation and use of the discrete Fourier transform and fast Fourier transform is discussed. Applications of these concepts is accomplished through several Matlab-based design projects.

### Optimal and Adaptive Digital Signal Processing

This course is an introduction to optimal and adaptive signal processing techniques, including spectral estimation, Wiener filters, linear prediction, steepest descent and least mean square algorithms, least squares and recursive least squares estimation, and Kalman filters.

### Digital Processing of Speech Signals

This course is an introduction to the fundamentals of speech processing, including speech production models and feature analysis, with applications in speech coding, synthesis, and recognition.

### Computer Hardware

This course is an overview of computer hardware systems, with emphasis on microprocessor design. Topics include performance analysis, MIPS assembly language, arithmetic logic units, datapath and control aspects of

instruction set architectures, pipelining, and memory and I/O devices.

### Linear Systems Analysis

This course introduces mathematical concepts of continuous-time signals and systems. The time-domain viewpoint is developed for linear time invariant systems using the impulse response and convolution integral. The frequency domain viewpoint is also explored through the Fourier Series and Fourier Transform, and basic filtering concepts are discussed. The sampling theorem, the Z-transform, and the Discrete Fourier Transform are also introduced.

### Embedded Systems Design

This course introduces students to embedded systems, the types of hardware that can support such systems, and the interfacing used in embedded systems. The course is a combined laboratory and lecture course, which directly applies the embedded systems techniques using hardware description and assembly languages to field programmable gate array technology.

### Information and Coding Theory

This course is an introduction to information measure, mutual information, self-information, entropy, encoding of information, discrete and continuous channels, channel capacity, error detection, error correcting codes, group codes, cyclic codes, BCH codes, convolution codes, and advanced codes.

### Algorithm Analysis and Applications

This course is an introduction to the analysis of algorithms. Topics covered include asymptotic complexity notation, recursion analysis, advanced data structures, sorting methodologies, dynamic programming, graph algorithms, and an introduction to several advanced topics such as NP-completeness theory and linear programming.

### Pattern Recognition

This course is an introduction to the theory and application of statistical pattern recognition, hypothesis testing, and parameter estimation. Topics include probability distribution models, Bayesian decision theory and hypothesis testing, classical and modern approaches to parameter estimation, parametric and non-parametric classifiers. Also covered are diagonalization and the Karhunen-Loeve transform (a.k.a. Principal Components analysis), supervised and unsupervised clustering, Expectation Maximization algorithms for Maximum Likelihood estimation, and linear discriminant analysis.

### COURSES TAUGHT AT TSINGHUA UNIVERSITY IN BEIJING

### Digital Signal Processing

This course is an introduction to discrete-time signals and systems. Topics include sampling theory and linear time invariant system analysis through convolution, Fourier transforms and z-transforms. In addition, techniques for the design of digital filters are introduced, and the computation and use of the discrete Fourier transform and fast Fourier transform is discussed. Applications of these concepts is accomplished through several Matlab-based design projects.

### Statistical Pattern Recognition

This course is an introduction to the theory and application of statistical pattern recognition, hypothesis testing, and parameter estimation. Topics include probability distribution models, Bayesian decision theory and hypothesis testing, classical and modern approaches to parameter estimation, parametric and non-parametric classifiers. Also covered are diagonalization and the Karhunen-Loeve transform (a.k.a. Principal Components analysis), supervised and unsupervised clustering, Expectation Maximization algorithms for Maximum Likelihood estimation, and linear discriminant analysis.

### Professional Research Writing

This course focuses on scientific writing in English. The central focus is content and organization of manuscripts for submission to international scientific journals. In addition, a wide variety of other types of professional writing are discussed, including the GRE analytical writing question, the TOEFL and TWE writing tests, and writing resumes and personal statements.