# Useful Non-Physics Courses

**General useful UIUC courses:**

CS 446 -- Machine Learning

CS 512 -- Data Mining

CS 598 -- Machine Learning for Signal Processing (topics course)

CSE 402 -- Introduction to Parallel Programming

ECE 455 -- Optical Electronics.

ECE 464 -- Power Electronics.

ECE 598 -- Computational learning and inference (topics course).

EOL 585 -- College Teaching.

EPSY 590 IPP -- Issues in Professional Preparation.

Math 418 -- Introduction to Abstract Algebra.

Math 518/519 -- Differentiable Manifolds 1 and 2.

Math 542 -- Complex Analysis.

MSE 583 -- Dynamics of Complex Fluids.

STAT 100 -- Introduction to Statistics.

STAT 425 -- Applied Regression and Design

STAT 440 -- Statistical Data Management

STAT 448 -- Advanced Data Analysis

STAT 542 -- Statistical Learning. Theory and proof of popular machine learning algorithms, with practical implementation homework. Has a useful end-of-semester project.

**Useful UIUC courses for biophysics students: **

MCB 424 -- Microbial Biochemistry

**Useful UIUC courses for students interested in data science: **

INFO 490 -- Introduction to Data Science

**Useful UIUC courses for students who need numerical methods: **

CS 101 – Intro Computing: Engrg & Sci (tools course, scientific computing, C, Matlab, Unix/Linux)

CS 357 – Numerical Methods I (theoretical, Python, Mathematica, Matlab, course for large scale programming)

CS 450 – Numerical Analysis (theoretical)

CS 555 -- Numerical Methods for PDEs

**Useful UIUC courses for students who need programming experience:**

CS 125 – Intro to Computer Science (Java, object oriented programming)

CS 173 – Discrete Structures (prereq for CS 225)

CS 225 – Data Structures (C++, object oriented programming)

**Useful on-line courses:**

Udacity: “Programming Foundations with Python,” “Design of Computer Programs” These free, self-paced courses are extremely well-structured and interesting.

Code Academy: Offers programming basics for Python, Java, HTML, Ruby, etc.

Udemy: A variety of online courses, including programming with Python

Lynda.com: Free to University of Illinois students, offers online courses. Search its playlists under "developer" to find series of courses in topics such as "Learn to Program in C++," "Learn to Program in JavaScript," "Learn to Program in Python" and others.

Coursera: Offers "specializations" -- students must pay a fee to earn the specialization certificate; however you can gain the same knowledge by taking the recommended courses for free. Our own university, for example, has a specialization in Data Mining, and Johns Hopkins has one in Data Science.

Khan Academy: Useful on-line courses to brush up on Probability and Statistics, Multivariate Calculus, Linear Algebra, etc.