# Online courses directory (19)

Solve problems using Mathematics, Computer Science and more!. Introduction. The Discovery. Clue #1. Clue #2. Clue #3. Crypto Checkpoint 1. Clue #4. Checkpoint. Crypto Checkpoint 2. Crypto Checkpoint 3. What's Next?. Introduction. The Discovery. Clue #1. Clue #2. Clue #3. Crypto Checkpoint 1. Clue #4. Checkpoint. Crypto Checkpoint 2. Crypto Checkpoint 3. What's Next?.

In this course, you will look at the properties behind the basic concepts of probability and statistics and focus on applications of statistical knowledge. You will learn about how statistics and probability work together. The subject of statistics involves the study of methods for collecting, summarizing, and interpreting data. Statistics formalizes the process of making decisions, and this course is designed to help you use statistical literacy to make better decisions. Note that this course has applications for the natural sciences, economics, computer science, finance, psychology, sociology, criminology, and many other fields. We read data in articles and reports every day. After finishing this course, you should be comfortable evaluating an author's use of data. You will be able to extract information from articles and display that information effectively. You will also be able to understand the basics of how to draw statistical conclusions. This course will begin with descriptive statistic…

This course has been designed to provide you with a clear, accessible introduction to discrete mathematics. Discrete mathematics describes processes that consist of a sequence of individual steps (as compared to calculus, which describes processes that change in a continuous manner). The principal topics presented in this course are logic and proof, induction and recursion, discrete probability, and finite state machines. As you progress through the units of this course, you will develop the mathematical foundations necessary for more specialized subjects in computer science, including data structures, algorithms, and compiler design. Upon completion of this course, you will have the mathematical know-how required for an in-depth study of the science and technology of the computer age.

Game Theory, also known as Multiperson Decision Theory, is the analysis of situations in which the payoff of a decision maker depends not only on his own actions but also on those of others. Game Theory has applications in several fields, such as economics, politics, law, biology, and computer science. In this course, I will introduce the basic tools of game theoretic analysis. In the process, I will outline some of the many applications of Game Theory, primarily in economics.

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.

Logic is a remarkable discipline. It is deeply tied to mathematics and philosophy, as correctness of argumentation is particularly crucial for these abstract disciplines. Logic systematizes and analyzes steps in reasoning: correct steps guarantee the truth of their conclusion given the truth of their premise(s); incorrect steps allow the formulation of counterexamples, i.e., of situations in which the premises are true, but the conclusion is false. Recognizing (and having conceptual tools for recognizing) the correctness or incorrectness of steps is crucial in order to critically evaluate arguments, not just in philosophy and mathematics, but also in ordinary life. This skill is honed by working in two virtual labs. In the ProofLab you learn to construct complex arguments in a strategically guided way, whereas in the TruthLab the emphasis is on finding counterexamples systematically. Who Should Take This Course? This is an introductory course designed for students from a broad range of disciplines, from mathematics and computer science to drama and creative writing. The highly interactive presentation makes it possible for any student to master the material. Concise multimedia lectures introduce each chapter; they discuss, in detail, the central notions and techniques presented in the text, but also articulate and motivate the learning objectives for each chapter. Open & Free Version The Open & Free, Logic & Proofs course includes the first five chapters of Logic & Proofs, providing a basic introduction to sentential logic. A full version of Logic & Proofs, including both sentential and predicate logic, is also available without technical or instructor support to independent users, for a small fee. No credit is awarded for completing either the Open & Free, Logic & Proofs course or the full, unsupported Logic & Proofs course. Academic Version Academic use of Logic & Proofs provides a full course on modern symbolic logic, covering both sentential and predicate logic, with identity. Optional suites of exams are available for use in academic sections.

This is an introduction to predicate logic and how it is applied in computer science, electronic engineering, linguistics, mathematics and philosophy. Building on your knowledge of propositional logic, you will learn predicate logic—its language, interpretations and proofs, and apply it to solve problems in a wide range of disciplines.

Linear algebra is the study of vector spaces and linear mappings between them. In this course, we will begin by reviewing topics you learned in Linear Algebra I, starting with linear equations, followed by a review of vectors and matrices in the context of linear equations. The review will refresh your knowledge of the fundamentals of vectors and of matrix theory, how to perform operations on matrices, and how to solve systems of equations. After the review, you should be able to understand complex numbers from algebraic and geometric viewpoints to the fundamental theorem of algebra. Next, we will focus on eigenvalues and eigenvectors. Today, these have applications in such diverse fields as computer science (Google's PageRank algorithm), physics (quantum mechanics, vibration analysis, etc.), economics (equilibrium states of Markov models), and more. We will end with the spectral theorem, which provides a decomposition of the vector space on which operators act, and singular-value decomposition, w…

Numerical analysis is the study of the methods used to solve problems involving continuous variables. It is a highly applied branch of mathematics and computer science, wherein abstract ideas and theories become the quantities describing things we can actually touch and see. The real number line is an abstraction where many interesting and useful ideas live, but to actually realize these ideas, we are forced to employ approximations of the real numbers. For example, consider marking a ruler at sqrt{2}. We know that sqrt{2} approx 1.4142, but if we put the mark there, we know we are in error for there is an infinite sequence of nonzero digits following the 2. Even more: a number doesn’t have any width, yet any mark we make would have a width, and in that width lives an infinite number of real numbers. You may ask yourself: isn’t it sufficient to represent sqrt{2} with 1.414? This is the kind of question that this course will explore. We have been trying to answer such questions for over 2,0…

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 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. Further selected topics may also be covered, such as recursive definition and structural induction; state machines and invariants; recurrences; generating functions.

This subject offers an interactive introduction to discrete mathematics oriented toward computer science and engineering. The subject coverage divides roughly into thirds:

- Fundamental concepts of mathematics: Definitions, proofs, sets, functions, relations.
- Discrete structures: graphs, state machines, modular arithmetic, counting.
- Discrete probability theory.

On completion of 6.042J, students will be able to explain and apply the basic methods of discrete (noncontinuous) mathematics in computer science. They will be able to use these methods in subsequent courses in the design and analysis of algorithms, computability theory, software engineering, and computer systems.

Interactive site components can be found on the Unit pages in the left-hand navigational bar, starting with computer-science/6-042j-mathematics-for-computer-science-spring-2015/proofs">Unit 1: Proofs.

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.

#### Course Formats

The materials have been organized to support independent study. The website includes all of the materials you will need to understand the concepts covered in this subject. The materials in this course include:

**Lecture Videos**recorded on the MIT campus**Recitation Videos**with problem-solving tips**Examples**of solutions to sample problems**Problem**for you to solve, with solutions**Exams**with solutions**Interactive Java Applets**("Mathlets") to reinforce key concepts

#### Content Development

Denis Auroux

Arthur Mattuck

Jeremy Orloff

John Lewis

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.

This graduate level course is more extensive and theoretical treatment of the material in Computability, and Complexity (computer-science/6-045j-automata-computability-and-complexity-spring-2011">6.045J / 18.400J). Topics include Automata and Language Theory, Computability Theory, and Complexity Theory.