Online education is really taking off, not least because we have access to fantastic courses – at no cost!

One of the largest providers of these courses is MIT. They provide courses ranging a huge amount of topics. From architecture to writing and everything in between. Below is a selection of MIT’s most visited undergraduate courses based on the site traffic of the previous month.

The lectures and courses are also delivered by some of the greatest minds in those areas. There’s nothing to lose by heading over and checking them out. However, there are lots to gain so why not think about the areas you’d like to start brushing up in.

a selection of *MIT’s most visited undergraduate courses*

(Based on the site traffic of the previous month.)

### 1. **Introduction to Computer Science and Programming**

This subject is aimed at students with little or no programming experience. It aims to provide students with an understanding of the role computation can play in solving problems. It also aims to help students, regardless of their major, to feel justifiably confident of their ability to write small programs that allow them to accomplish useful goals. The class will use the Python programming language.

### 2. Linear Algebra

This is a basic subject on matrix theory and linear algebra. Emphasis is given to topics that will be useful in other disciplines, including systems of equations, vector spaces, determinants, eigenvalues, similarity, and positive definite matrices.

### 3. Introduction to Algorithms

This course provides an introduction to the mathematical modelling of computational problems. It covers the common algorithms, algorithmic paradigms, and data structures used to solve these problems. The course emphasizes the relationship between algorithms and programming and introduces basic performance measures and analysis techniques for these problems.

### 4. Single Variable Calculus

This calculus course covers differentiation and integration of functions of one variable and concludes with a brief discussion of infinite series. Calculus is fundamental to many scientific disciplines including physics, engineering, and economics.

### 5. Mathematics for Computer Science

This course covers elementary discrete mathematics for computer science and engineering. It emphasizes mathematical definitions and proofs as well as applicable methods. Topics include formal logic notation, proof methods; induction, well-ordering; sets, relations; elementary graph theory; integer congruences; asymptotic notation and growth of functions; permutations and combinations, counting principles; discrete probability.

### 6. Introduction **to** Computer Science and Programming

This subject is aimed at students with little or no programming experience. It aims to provide students with an understanding of the role computation can play in solving problems. It also aims to help students, regardless of their major, to feel justifiably confident of their ability to write small programs that allow them to accomplish useful goals. The class will use the Python™ programming language.

### 7. Principles of Microeconomics

Principles of Microeconomics is an introductory undergraduate course that teaches the fundamentals of microeconomics. This course introduces microeconomic concepts and analysis, supply and demand analysis, theories of the firm and individual behavior, competition and monopoly, and welfare economics. Students will also be introduced to the use of microeconomic applications to address problems in current economic policy throughout the semester.

### 8. Multivariable Calculus

This course covers differential, integral and vector calculus for functions of more than one variable. These mathematical tools and methods are used extensively in the physical sciences, engineering, economics and computer graphics.

### 9. Quantum Physics I

This course covers the experimental basis of quantum physics. It introduces wave mechanics, Schrödinger’s equation in a single dimension, and Schrödinger’s equation in three dimensions. It is the first course in the undergraduate Quantum Physics sequence, followed by 8.05 Quantum Physics II and 8.06 Quantum Physics III.

### 10. Artificial Intelligence

This course introduces students to the basic knowledge representation, problem-solving, and learning methods of artificial intelligence. Upon completion of 6.034, students should be able to develop intelligent systems by assembling solutions to concrete computational problems; understand the role of knowledge representation, problem-solving, and learning in intelligent-system engineering; and appreciate the role of problem-solving and vision.

### 11. Linear Algebra

This course covers matrix theory and linear algebra, emphasizing topics useful in other disciplines such as physics, economics and social sciences, natural sciences, and engineering. It parallels the combination of theory and applications in Professor Strang’s textbook Introduction to Linear Algebra.

### 12. Circuits and Electronics

This course is designed to serve as a first course in undergraduate electrical engineering (EE), or electrical engineering and computer science (EECS) curriculum. At MIT, 6.002 is in the core of department subjects required for all undergraduates in EECS. The course introduces the fundamentals of the lumped circuit abstraction. Topics covered include: resistive elements and networks; independent and dependent sources; switches and MOS transistors; digital abstraction; amplifiers; etc

### 13. Introduction to Algorithms (SMA 5503)

This course teaches techniques for the design and analysis of efficient algorithms, emphasizing methods useful in practice. Topics covered include: sorting; search trees, heaps, and hashing; divide-and-conquer; dynamic programming; amortized analysis; graph algorithms; shortest paths; network flow; computational geometry; number-theoretic algorithms; polynomial and matrix calculations; caching; and parallel computing.

### 14. Single Variable Calculus

This introductory calculus course covers differentiation and integration of functions of one variable, with applications.

### 15. Introduction to Electrical Engineering and Computer Science I

This course provides an integrated introduction to electrical engineering and computer science, taught using substantial laboratory experiments with mobile robots. Our primary goal is for you to learn to appreciate and use the fundamental design principles of modularity and abstraction in a variety of contexts from electrical engineering and computer science. Our second goal is to show you that making mathematical models of real systems can help in the design and analysis of those systems.

### 16. Introduction to Programming in Java

This course is an introduction to software engineering, using the Java™ programming language. It covers concepts useful to 6.005. Students will learn the fundamentals of Java. The focus is on developing high quality, working software that solves real problems. The course is designed for students with some programming experience, but if you have none and are motivated you will do fine. Students who have taken 6.005 should not take this course.

### 17. Introduction to Probability and Statistics

This course provides an elementary introduction to probability and statistics with applications. Topics include basic combinatorics, random variables, probability distributions, Bayesian inference, hypothesis testing, confidence intervals, and linear regression.

### 18. Differential Equations

The laws of nature are expressed as differential equations. Scientists and engineers must know how to model the world in terms of differential equations, and how to solve those equations and interpret the solutions. This course focuses on the equations and techniques most useful in science and engineering.

### 19. Multivariable Calculus

This course covers vector and multi-variable calculus. It is the second semester in the freshman calculus sequence. Topics include vectors and matrices, partial derivatives, double and triple integrals, and vector calculus in 2 and 3-space.

### 20. Introduction to C++

This is a fast-paced introductory course to the C++ programming language. It is intended for those with a little programming background, though prior programming experience will make it easier, and those with previous experience will still learn C++-specific constructs and concepts. This course is offered during the Independent Activities Period (IAP), which is a special 4-week term at MIT that runs from the first week of January until the end of the month.