Online courses directory (684)
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 Unit 1: Proofs.
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 course introduces the fundamentals of machine tool and computer tool use. Students work with a variety of machine tools including the bandsaw, milling machine, and lathe. Instruction given on MATLAB®, MAPLE®, XESS™, and CAD. Emphasis is on problem solving, not programming or algorithmic development. Assignments are project-oriented relating to mechanical engineering topics. It is recommended that students take this subject in the first IAP after declaring the major in Mechanical Engineering.
This course was co-created by Prof. Douglas Hart and Dr. Kevin Otto.
This course introduces students to the fundamentals of nonlinear optimization theory and methods. Topics include unconstrained and constrained optimization, linear and quadratic programming, Lagrange and conic duality theory, interior-point algorithms and theory, Lagrangian relaxation, generalized programming, and semi-definite programming. Algorithmic methods used in the class include steepest descent, Newton's method, conditional gradient and subgradient optimization, interior-point methods and penalty and barrier methods.
In this introduction to computer programming course, you’ll learn and practice key computer science concepts by building your own versions of popular web applications. You’ll learn Python, a powerful, easy-to-learn, and widely used programming language, and you’ll explore computer science basics, as you build your own search engine and social network.
This course introduces students to the fundamentals of nonlinear optimization theory and methods. Topics include unconstrained and constrained optimization, linear and quadratic programming, Lagrange and conic duality theory, interior-point algorithms and theory, Lagrangian relaxation, generalized programming, and semi-definite programming. Algorithmic methods used in the class include steepest descent, Newton's method, conditional gradient and subgradient optimization, interior-point methods and penalty and barrier methods.
This short course provides an introduction to reactor dynamics including subcritical multiplication, critical operation in absence of thermal feedback effects and effects of Xenon, fuel and moderator temperature, etc. Topics include the derivation of point kinetics and dynamic period equations; techniques for reactor control including signal validation, supervisory algorithms, model-based trajectory tracking, and rule-based control; and an overview of light-water reactor startup. Lectures and demonstrations employ computer simulation and the use of the MIT Research Reactor.
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.
This course introduces the principal algorithms for linear, network, discrete, nonlinear, dynamic optimization and optimal control. Emphasis is on methodology and the underlying mathematical structures. Topics include the simplex method, network flow methods, branch and bound and cutting plane methods for discrete optimization, optimality conditions for nonlinear optimization, interior point methods for convex optimization, Newton's method, heuristic methods, and dynamic programming and optimal control methods.
This course introduces students to the theory, algorithms, and applications of optimization. The optimization methodologies include linear programming, network optimization, integer programming, and decision trees. Applications to logistics, manufacturing, transportation, marketing, project management, and finance. Includes a team project in which students select and solve a problem in practice.
Modern computing platforms provide unprecedented amounts of raw computational power. But significant complexity comes along with this power, to the point that making useful computations exploit even a fraction of the potential of the computing platform is a substantial challenge. Indeed, obtaining good performance requires a comprehensive understanding of all layers of the underlying platform, deep insight into the computation at hand, and the ingenuity and creativity required to obtain an effective mapping of the computation onto the machine. The reward for mastering these sophisticated and challenging topics is the ability to make computations that can process large amount of data orders of magnitude more quickly and efficiently and to obtain results that are unavailable with standard practice.
This class is a hands-on, project-based introduction to building scalable and high-performance software systems. Topics include performance analysis, algorithmic techniques for high performance, instruction-level optimizations, cache and memory hierarchy optimization, parallel programming, and building scalable distributed systems.
The course also includes design reviews with industry mentors, as described in this MIT News article.
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 course surveys a variety of reasoning, optimization and decision making methodologies for creating highly autonomous systems and decision support aids. The focus is on principles, algorithms, and their application, taken from the disciplines of artificial intelligence and operations research.
Reasoning paradigms include logic and deduction, heuristic and constraint-based search, model-based reasoning, planning and execution, and machine learning. Optimization paradigms include linear programming, integer programming, and dynamic programming. Decision-making paradigms include decision theoretic planning, and Markov decision processes.
6.826 provides an introduction to the basic principles of computer systems, with emphasis on the use of rigorous techniques as an aid to understanding and building modern computing systems. Particular attention is paid to concurrent and distributed systems. Topics covered include: specification and verification, concurrent algorithms, synchronization, naming, networking, replication techniques (including distributed cache management), and principles and algorithms for achieving reliability.
The course serves as an introduction to the theory and practice behind many of today's communications systems. 6.450 forms the first of a two-course sequence on digital communication. The second class, 6.451 Principles of Digital Communication II, is offered in the spring.
Topics covered include: digital communications at the block diagram level, data compression, Lempel-Ziv algorithm, scalar and vector quantization, sampling and aliasing, the Nyquist criterion, PAM and QAM modulation, signal constellations, finite-energy waveform spaces, detection, and modeling and system design for wireless communication.
This course is the second of a two-term sequence with 6.450. The focus is on coding techniques for approaching the Shannon limit of additive white Gaussian noise (AWGN) channels, their performance analysis, and design principles. After a review of 6.450 and the Shannon limit for AWGN channels, the course begins by discussing small signal constellations, performance analysis and coding gain, and hard-decision and soft-decision decoding. It continues with binary linear block codes, Reed-Muller codes, finite fields, Reed-Solomon and BCH codes, binary linear convolutional codes, and the Viterbi algorithm.
More advanced topics include trellis representations of binary linear block codes and trellis-based decoding; codes on graphs; the sum-product and min-sum algorithms; the BCJR algorithm; turbo codes, LDPC codes and RA codes; and performance of LDPC codes with iterative decoding. Finally, the course addresses coding for the bandwidth-limited regime, including lattice codes, trellis-coded modulation, multilevel coding and shaping. If time permits, it covers equalization of linear Gaussian channels.
Trusted paper writing service WriteMyPaper.Today will write the papers of any difficulty.