- CIS519 - Machine Learning. (Eaton)

A good, solid intro to ML; coding using Python. - CIS520 - Machine Learning. (Agarwal or Ungar)

A serious math/matlab course on machine learning. Not easy. - CIS521 - Artificial Intelligence

Standard intro to AI; mot much machine learning. - CIS545 - Big Data (Ives or Ungar)

How to implement "big data" including ML; more on data handling; basically no math. - CIS620 - (Advanced) Artificial Intelligence (Kearns)

Differs from year to year. Often Machine learning theory - STAT512 - Mathematical Statistics (Lawrence Brown)

One student called this "The most useful course at Penn on Statistics (and probably on ML as well)." This is an applied Statistics course that will help you analyze data sets and give a strong foundation in the concepts of Statistics. Many people take the probability course before it, STAT 510. - STAT520 - Econometrics

Regression. Good stat course (depending on who teaches it); not just for economists. - STAT530 - Probability
J. Michael Steele

People with a mathematical bent love Steele's courses. Those who lack a math orientation complain that it is too fundamental and not sufficiently applied to be of use to most CS majors. - (Rachlin)

- There are also a bunch of great courses on particular topics: See
Shane Jenson on Bayesian methods (highly recommended), Andreas Buja on
multivariate methods, etc.
### Math Background

Background: Math Essentials: Undergraduate 100-level calculus. 300 or 400 level linear algebra course that includes singular value decomposition. I used Gilbert Strang's Linear Algebra and Its Applications back in early antiquity. It is still in print. There are great lectures by Strang at MIT's Open Courseware - MATH360,361 - Elementary Analysis/Advanced Calculus

Andy Schein writes (long ago): I view 360 as a hurdle that must be overcome in order to prepare for 361. 361 is a real gem of a course introducing the Jacobian, the Hessian, constrained optimization with Lagrange multipliers, advanced integration theory and other things you have probably seen in papers or courses but didn't know where to learn about. There is a 500 level version of this course which I attempted to audit at one point, but was made to feel unwelcome as an auditor by the particular professor that semester. I have heard conflicting reports about whether the 500 level version is too much harder than the 300 level version. The 300-level version is quite manageable with a steady stream of homework's to complete. I wish I had taken/audited this series my second year. Students with engineering degrees from countries other than the U.S. may have already seen enough of this material. U.S. Computer Science students on the other hand are often weak on continuous mathematics.

ungar@cis.upenn.edu