menu MENU

Useful Courses

If you are interested in joining professor Hero’s research group or if you are a new member of our group, you might be interested in the courses listed below.


EECS 501 (Probability and random processes)

This class is a prerequisite for almost all of other graduate courses in statistical signal processing, statistical communications and stochastic control. Normally offered in semester I.

EECS 502 (Stochastic processes)

This class delves deeper into the random process material that 501 only covers superficially. If you are interested in Markov chains, stochastic integrals and differential equations, renewal processes, then you should seriously consider taking this class. Normally offered in semester II

EECS 516 (Medical imaging systems)

Unless Prof Fessler teaches it, this class is usually very light on statistical algorithms and modeling, the things we do in the Hero group. However, if medical imaging is your chosen area of application, this does give a good background. Normally offered in semester I on even years.

EECS 545 (Machine learning)

Most students in Hero group should take an analysis-oriented class on machine learning. The semester I version of this class is especially appropriate as it is geared towards analysis and theory. There is a project. In semester II it is taught more as a survey class by AI faculty – covers more methods but with a less mathematical orientation.

EECS 550 (Information theory)

This is course is taught in the typical-sequence style. The focus is on coding theory, so this course may not cover applications in statistical signal processing. However, this course could nonetheless be quite useful and there is no alternative on campus. Taught alternate years in semester I.

EECS 551 (Mathematical methods for signal processing)

A required course for signal processing PhD students. Taught in semester I. Note that the topic taught by Prof. Raj Nadakuditi is quite different from the previous ones, which focuses on computational linear algebra, random matrix theory, Singular Value Decomposition. Most of topic are critical for network analysis, statistical learning and covariance estimation.

EECS 558 (Stochastic control)

This class is an excellent introduction to the statistical theory of estimation and control including optimal non-linear filtering and bandit theory. It does have a prerequisite of EECS 560 (state variable systems theory) and if you had taken EECS 502 it would be a plus. Taught on alternate years.

EECS 564 (Estimation, filtering, and detection)

Generally “must take” class for students in Hero group. Taught in semester II.

EECS 600 (Function space methods in system theory)

An excellent class covering basic continuous optimization methods. Offered alternate years, usually in semester I. Alternatives include IOE 511/Math 562 (Continuous optimization methods). If you are interested in optimization then you should also consider IOE 510 (linear programming), IOE 512 (dynamic programming), IOE 518 (Integer programming), IOE 519 (Nonlinear programming).

EECS 651 (Source coding theory)

The course to take if you are interested in vector quantization and compression from the information theory point of view. There is a project. Offered odd years in semester II.

EECS 659 (Adaptive signal processing)

A class that covers the theory and application of adaptive algorithms like LMS and RLS in addition to non-linear extensions like generalized linear models, and Fokker-Planck theory for discrete time measurements of a continuous time state. A project oriented class. The content of this course changes a little bit every time it is taught.

EECS 598 (Special topics)

Every year (mainly in fall term but with a few in winter) there are a set of new courses with advanced topics. The topics are different and keep changing every year, depending on the instructor. A good suggestion is to check on the webpage of the EECS department to decide which to be enrolled. Usually at least one course is of interest for some students in Hero’s group each year.


Most students in the Hero group will take courses from the Statistics Dept and some will take a Masters degree in Statistics. Statistics underlies just about every aspect of what our lab does so you will greatly benefit from taking pure statistics courses even though many of the topics are covered from a different perspective in EECS courses like EECS501, EECS502, EECS564, EECS556, EECS558, and EECS659 . The following is list of some of the more relevant courses to the group’s activities.

A list of Statistics graduate courses is here.

Stat 503 (Applied Multivariate Analysis)

This course is similar to EECS564 but may cover some different topics including Hotelling’s T-squared, multivariate ANOVA, discriminant functions, factor analysis, principal components, canonical correlations, and cluster analysis. It also has more of an applications and data analysis flavor, “…using the computer is stressed.” Usually taught in semester I. Levina teaches it in 2012.

Stat 600 (Linear Models)

Is a prerequisite for Stat 601 and Stat 605. This is an entry level graduate statistics course and most EECS grad students will have seen most of the topics after their first year in EECS.

Stat 601 (Analysis of Multivariate and Categorical Data)

Will treat in more depth modeling and model verification aspects of linear estimation topics covered in EECS564 (Detection, Estimation and Filtering). Also covers other things (like generalized linear models, clustering, multiple comparisons, shrinkage regularization) some of which are touched on in EECS659. Usually taught in semester I. Nguyen teaches it in 2012.

Stat 605 (Advanced Topics in Modeling and Data Analysis)

The content of this course changes depending on who teaches it but it usually covers methods of statistical machine learning and statistical signal processing that are of relevance Hero’s group. Could be an alternative to EECS545 (Machine Learning). In the past it has covered topics like ensemble methods, functional data analysis, wavelets, independent component analysis, and random field models, modern regression (generalized additive models), hierarchical models, graphical models, and Bayesian networks. Usually taught in semester I. Zhou teaches it in 2012 and 2016.

Stat 608 (Methods in optimization statistics)

Covers methods of optimization as applied to inference in statistical models, e.g., the EM algorithm, Markov Chain Monte Carlo (MCMC), and stochastic optimization.

Stat 610 (Statistical Inference)

Is a prerequisite for Stat 611 and will cover many of the same principles as covered in EECS564 but with more depth.

Stat 611 (Large sample theory)

Is essential material for much of the theory-oriented work that goes on in the Hero lab. A prerequisite for Stat 631.

Stat 612 (Large sample theory)

Builds on Stat 611 and covers asymptotic techniques such as functional delta method, empirical process theory, and applications to non-parametric inference methods like the bootstrap. Several Hero students have taken this class.

Stat 620 (Applied Prob Stochastic Models)

This is a prerequisite for Stat 621.

Stat 621 (Probability theory)

A measure theoretic treatment of EECS501 topics. This is a prerequisite for Stat 631 and a must for any Hero group student interested in theory topics.

After the above courses you will be ready to appreciate many papers in JASA.

Stat 625/Math 625 (Prob and Random Processes I)

This treats in considerably more depth elementary topics treated in EECS 501 using measure theory. Prerequisite for Stat 626.

Stat 626/Math 626 (Prob and Random Processes II)

The final of the two class sequence that is a must for the theoretically inclined students in Hero lab.

After the above courses you will be ready to appreciate many papers in the Annals of Statistics.

Stat 631 (Adv Time Series Analysis)

This will treat signal modeling and prediction topics in EECS564 and EECS659 in more depth.

Stat 700 (Topics in Appl Statistics)

The content of this course changes from year to year. In the past has covered topics of great interest to the group, e.g., probabilistic graphical models. Keep your eye on the specific topic in this (and other “Topics”) class from semester to semester.


Many students in the Hero group will benefit from taking advanced courses from the Math Dept. One area of current interest in the group is geometry/topology inspired signal and image processing. Several students in the lab have taken a sequence of classes that lead to differential geometry and the courses below are an example of how you can get there.

The list of math courses offered can be found here.

Math 451 (Advanced calculus I)

This is introductory real analysis course. Though this is a 400 level course, there are significant number of graduates students from outside math department, particularly EECS. The main goal of this course is to learn how to make rigorous proofs, and this course is strongly recommended unless you are already familiar with the topics.

Math 513 (Linear algebra)

This is linear algebra course. Though this is listed as a 500 level course it is more geared towards math undergraduate students but usually has a number of non math grad students enrolled. If you want more depth in EECS 551, this course is recommended.

Note: It seems that this course is no longer taught. The current equivalent course is now Math 420. It is required for a masters in math.

Math 565 (Combinatorics and graph theory)

The class is divided into half combinatorial and half network and graph theory. The undergraduate homolog is Math 465, which gives a gentler treatment with less emphasis on proofs. This is a required course for the Applied Interdisciplinary Math (AIM) students.

Math 590 (Intro to topology (General topology))

This is topology course with an emphasis on proofs. Highly recommended for people doing theoretical work. This course provides basis for many math courses like analysis, probability theory and differential geometry. Not hard to learn and can help you to get familiar with basic concepts like open/closed sets, basis, topology, limit, Hausdorff space, continuous map, compact set/connected set, quotient space. Encourage Hero’s student to get enrolled.

Math 591 (Differential topology)

This is a course that covers both point set topology and differential geometry. People who are interested in manifold learning theory might consider this course, or undergraduate course Math 490. Note that Math 490 will cover more topics (topology, differential geometry, and algebraic topology) while Math 591 will be more focussed and develop more general theory in abstract way. This class has majority of math grad students but there are usually also a few non-math grads.

Math 596 (Analysis I – Complex)

This is complex analysis course taught at a more mathematically sophisticated level (lots of proofs) than Math 555. This course is required for math graduate students.

Math 597 (Analysis II – Real)

This is a real analysis course that goes well beyond Math 451. The course provides basic measure theory that underpins the theory of probability. This course is required for math graduate students. Usually taught in semester I. Rudelson teaches it in 2012.

Math 651 (Topics in applied mathematics)

This content of this course changes depending on who teaches it. Usually taught in semester I. Gilbert teaches it in 2012.

Math 709 (Topics in Modern Analysis)

The content changes depending on the instructor. Usually taught in semester I. In 2012 Vershynin is teaching it on probability in high dimensions.

School of Information

The School of Information offers courses that will be of interest to students interested in application of statistical tools to mining large diverse databases.

SI 721 (Data mining: Methods and Applications)

This is a class geared towards PhD students who are interested in knowledge discovery and data mining. The class is taught from an applications point of view and deals with extracting information from different types of data such as matrices, item sets, sequences, time series, data streams, graphs/network. The focus will be on categorical data, e.g., document databases, but it will likely cover other types databases as well. The class is taken by many CS students in the AI area. Usually offered in semester I. Taught by Mei in 2012.

Industrial and Operations Engineering

The IOE dept offers many courses in optimization, especially in discrete optimization. Several Hero students have taken courses in IOE as part of their graduate program.

IOE 510 (Linear Programming I)

This class has been changed recently and is focused on applications. As of Fall 2012, it was geared toward masters students and was not recommended for PhD students. IOE 610 is Linear Programming at a PhD level. As such, I don’t think this is a prerequisite for 600 level courses anymore.

IOE 512 (Dynamic Programming)

This covers DP in a more general setting than EECS558 (Stochastic Control). If you had a choice, EECS558 would probably be a better choice as it goes into much more depth on Markov decision processes.

IOE 610 (Math 660) (Linear Programming II)

This is the second course in LP and has IOE 510 as a prerequisite. Is goes into more depth than any EECS course and covers primal-dual algorithms, ranking algorithms, integer programming, and combinatorial problems.

IOE 611 (Math 663) (Convex Programming)

The class covers continuous optimization methods for non-linear objective functions over convex and non-convex domains including quadratic programming, linear complementary problems, and fixed point computing. This course provide the basis for algorithm development in machine learning, statistical analysis and big data analysis. It is a must if you want to understand the theory and to evaluate the performance of your algorithm. It is only provided in alternate years. So plan ahead.

IOE 612 (Network Flows)

This is a class on graph theory. It covers graph cuts, shortest routes, critical path networks, project cost curves, graph matching problems, and related combinatorial optimization problems. IOE 510 is a prerequisite.

IOE 614 (Integer Programming)

This class covers problems dealing with optimization over integer valued variables that arise in many combinatorial problems of interest to the Hero group. Among other things it will discuss unimodular functions, branch-and-bound methods, and Lagrangian relaxation in the context of combinatorial optimization problems such as knapsack. IOE 510 is a prerequisite.

Technical Writing Courses

As a graduate student you will be expected to learn how to write in a clear, authoritative and convincing manner – a requirement for getting your work published in high impact journals. With each student generating at least three or four conference/journal papers and a PhD thesis writing skills are critical. Some students have a knack for it coming into the program but for many students it is difficult skill to acquire. The UM has a course for science and technology students who want to learn how to write well.

SWC 630 (Advanced Writing for Graduate Students)

A class that is focused on writing for science journals (the professor is generally a science writer).

Rackham/Sweetland Workshops

During the year there are short workshops offered on various topics such as “Academic Writing: Reviewing the Essentials (STEM)” (Fall), “Refining Your Academic Writing (STEM)” (Winter), and “Writing A Research Grant Proposal (STEM)” (Fall & Winter).