# Online courses directory (18)

6.844 is a graduate introduction to programming theory, logic of programming, and computability, with the programming language Scheme used to crystallize computability constructions and as an object of study itself. Topics covered include: programming and computability theory based on a term-rewriting, "substitution" model of computation by Scheme programs with side-effects; computation as algebraic manipulation: Scheme evaluation as algebraic manipulation and term rewriting theory; paradoxes from self-application and introduction to formal programming semantics; undecidability of the Halting Problem for Scheme; properties of recursively enumerable sets, leading to Incompleteness Theorems for Scheme equivalences; logic for program specification and verification; and Hilbert's Tenth Problem.

Topics in surface modeling: b-splines, non-uniform rational b-splines, physically based deformable surfaces, sweeps and generalized cylinders, offsets, blending and filleting surfaces. Non-linear solvers and intersection problems. Solid modeling: constructive solid geometry, boundary representation, non-manifold and mixed-dimension boundary representation models, octrees. Robustness of geometric computations. Interval methods. Finite and boundary element discretization methods for continuum mechanics problems. Scientific visualization. Variational geometry. Tolerances. Inspection methods. Feature representation and recognition. Shape interrogation for design, analysis, and manufacturing. Involves analytical and programming assignments.

This course was originally offered in Course 13 (Department of Ocean Engineering) as 13.472J. In 2005, ocean engineering subjects became part of Course 2 (Department of Mechanical Engineering), and this course was renumbered 2.158J.

The course is a comprehensive introduction to the theory, algorithms and applications of integer optimization and is organized in four parts: formulations and relaxations, algebra and geometry of integer optimization, algorithms for integer optimization, and extensions of integer optimization.

This course introduces the basic computational methods used to understand the cell on a molecular level. It covers subjects such as the sequence alignment algorithms: dynamic programming, hashing, suffix trees, and Gibbs sampling. Furthermore, it focuses on computational approaches to: genetic and physical mapping; genome sequencing, assembly, and annotation; RNA expression and secondary structure; protein structure and folding; and molecular interactions and dynamics.

This course aims to give students the tools and training to recognize convex optimization problems that arise in scientific and engineering applications, presenting the basic theory, and concentrating on modeling aspects and results that are useful in applications. Topics include convex sets, convex functions, optimization problems, least-squares, linear and quadratic programs, semidefinite programming, optimality conditions, and duality theory. Applications to signal processing, control, machine learning, finance, digital and analog circuit design, computational geometry, statistics, and mechanical engineering are presented. Students complete hands-on exercises using high-level numerical software.

## Acknowledgements

The course materials were developed jointly by Prof. Stephen Boyd (Stanford), who was a visiting professor at MIT when this course was taught, and Prof. Lieven Vanderberghe (UCLA).

This course is an introduction to linear optimization and its extensions emphasizing the underlying mathematical structures, geometrical ideas, algorithms and solutions of practical problems. The topics covered include: formulations, the geometry of linear optimization, duality theory, the simplex method, sensitivity analysis, robust optimization, large scale optimization network flows, solving problems with an exponential number of constraints and the ellipsoid method, interior point methods, semidefinite optimization, solving real world problems problems with computer software, discrete optimization formulations and algorithms.

This course will introduce you to a number of statistical tools and techniques that are routinely used by modern statisticians for a wide variety of applications. First, we will review basic knowledge and skills that you learned in MA121: Introduction to Statistics [1]. Units 2-5 will introduce you to new ways to design experiments and to test hypotheses, including multiple and nonlinear regression and nonparametric statistics. You will learn to apply these methods to building models to analyze complex, multivariate problems. You will also learn to write scripts to carry out these analyses in R, a powerful statistical programming language. The last unit is designed to give you a grand tour of several advanced topics in applied statistics. [1] http://www.saylor.org/courses/ma121/…

This course will introduce students to the field of computer science and the fundamentals of computer programming. It has been specifically designed for students with no prior programming experience, and does not require a background in Computer Science. This course will touch upon a variety of fundamental topics within the field of Computer Science and will use Java, a high-level, portable, and well-constructed computer programming language developed by Sun Microsystems, to demonstrate those principles. We will begin with an overview of the topics we will cover this semester and a brief history of software development. We will then learn about Object-Oriented programming, the paradigm in which Java was constructed, before discussing Java, its fundamentals, relational operators, control statements, and Java I/0. The course will conclude with an introduction to algorithmic design. By the end of the course, you should have a strong understanding of the fundamentals of Computer Science and the Java p…

This course is a continuation of the first-semester course titled Introduction to Computer Science I (CS101 [1]). It will introduce you to a number of more advanced Computer Science topics, laying a strong foundation for future academic study in the discipline. We will begin with a comparison between Javathe programming language utilized last semesterand C++, another popular, industry-standard programming language. We will then discuss the fundamental building blocks of Object-Oriented Programming, reviewing what we learned last semester and familiarizing ourselves with some more advanced programming concepts. The remaining course units will be devoted to various advanced Computer Science topics, including the Standard Template Library, Exceptions, Recursion, Searching and Sorting, and Template Classes. By the end of the class, you will have a solid understanding of Java and C++ programming, as well as a familiarity with the major issues that programmers routinely address in a professional setting.

This class presents the fundamental probability and statistical concepts used in elementary data analysis. It will be taught at an introductory level for students with junior or senior college-level mathematical training including a working knowledge of calculus. A small amount of linear algebra and programming are useful for the class, but not required.

**Course Summary**

Modelling and simulation make a particular part of the world easier to define, visualize and understand. Both require the identification of relevant aspects of a situation in the real world and then the use of different types of models for different objectives and the definition of the most suitable model parameters.

This course provides to you a number of methods suitable for modelling technical systems and processes in a wide range of applications. These applications cover a range from image processing via machine learning to face recognition.

After introducing the techniques in general, you train their application to real problems employing the widely used modelling and simulation tool MATLAB®.

**What will I learn?**

- You will be acquainted with the concepts of modelling and simulation
- You will be able to implement and simulate models using MATLAB®.
- You will acquire further knowledge of Image Processing, Optical Character Recognition, Machine Learning and Face Recognition.
- If you are an enthusiastic student with only rudimentary programming knowledge you can acquire an understanding of basic MATLAB® programming.

**What do I have to know?**

The course will be taught on an academic level for undergraduate students. Therefore, mathematics and physics knowledge of at least secondary education level as well as programming knowledge is a prerequisite. MATLAB® is commercial software. As a result of support from MathWorks, students will be granted a downloadable license to MATLAB® for the duration of the course.

**Course Schedule**

Chapter 1: Introduction to MATLAB Concepts

Chapter 2: Modelling and Simulation

Chapter 3: The Basic Problem Solving Toolbox

Chapter 4: Advanced Problem Solving Methods

Chapter 5: Statistics and Image Processing

Chapter 6: Machine Learning in a Nutshell

Chapter 7: Optical Character Recognition

Cahpter 8: Face Recognition

This class introduces elementary programming concepts including variable types, data structures, and flow control. After an introduction to linear algebra and probability, it covers numerical methods relevant to mechanical engineering, including approximation (interpolation, least squares and statistical regression), integration, solution of linear and nonlinear equations, ordinary differential equations, and deterministic and probabilistic approaches. Examples are drawn from mechanical engineering disciplines, in particular from robotics, dynamics, and structural analysis. Assignments require MATLAB^{®} programming.

Numerical methods for solving problems arising in heat and mass transfer, fluid mechanics, chemical reaction engineering, and molecular simulation. Topics: numerical linear algebra, solution of nonlinear algebraic equations and ordinary differential equations, solution of partial differential equations (e.g. Navier-Stokes), numerical methods in molecular simulation (dynamics, geometry optimization). All methods are presented within the context of chemical engineering problems. Familiarity with structured programming is assumed. The examples will use MATLAB®.

## Acknowledgements

The instructor would like to thank Robert Ashcraft, Sandeep Sharma, David Weingeist, and Nikolay Zaborenko for their work in preparing materials for this course site.

This is an advanced interdisciplinary introduction to applied parallel computing on modern supercomputers. It has a hands-on emphasis on understanding the realities and myths of what is possible on the world's fastest machines. We will make prominent use of the Julia Language, a free, open-source, high-performance dynamic programming language for technical computing.

Principles of Applied Mathematics is a study of illustrative topics in discrete applied mathematics including sorting algorithms, information theory, coding theory, secret codes, generating functions, linear programming, game theory. There is an emphasis on topics that have direct application in the real world.

This course was recently revised to meet the MIT Undergraduate Communication Requirement (CR). It covers the same content as 18.310, but assignments are structured with an additional focus on writing.

This free online course is the second of our Upper-Secondary Mathematics suite of courses. It covers ratio and proportion, geometric sequences, arithmetic series, difference equations, linear programming, geometry, trigonometry, and graphs. This course is suitable for all math students revising for exams. It is also suitable for anyone with an interest in Mathematics. <br />