CurrMana
← All fields

Computer Science

How machines compute, reason, and connect — from first programs to modern AI.

Intro ProgrammingData Structures & AlgorithmsSystems & NetworkingAI & Machine LearningTheory of ComputationDatabasesHuman-Computer InteractionComputer GraphicsSecurity & Cryptography
Your knowledge degree0

250 courses from MIT OpenCourseWare.

250 courses

2.830J · Graduate · Spring 2008

This course explores statistical modeling and control in manufacturing processes. Topics include the use of experimental design and response surface modeling to understand manufacturing process physics, as well as defect and parametric yield modeling and optimization. Various forms of process control, including statistical process control, run by run and adaptive control, and real-time feedback control, are covered. Application contexts include semiconductor manufacturing, conventional metal an…

Details →

2.996 · Graduate · Fall 2007

This course provides intensive coverage of the theory and practice of electromechanical instrument design with application to biomedical devices. Students will work with MGH doctors to develop new medical products from concept to prototype development and testing. Lectures will present techniques for designing electronic circuits as part of complete sensor systems. Topics covered include: basic electronics circuits, principles of accuracy, op amp circuits, analog signal conditioning, power supp…

Details →

6.00 · Undergraduate · Fall 2008

6.00 Intro to CS and Programming has been retired from OCW. You can access the archived course on DSpace – MIT’s digital repository. Please see the list of introductory programming courses and other programming courses from recent years.

Details →

6.00SC · Undergraduate · Spring 2011

6.00SC Intro to CS and Programming has been retired from OCW. You can access the archived course on DSpace – MIT’s digital repository. Please see the list of introductory programming courses and other programming courses from recent years.

Details →

6.001 · Undergraduate · Spring 2005

This course introduces students to the principles of computation. Upon completion of 6.001, students should be able to explain and apply the basic methods from programming languages to analyze computational systems, and to generate computational solutions to abstract problems. Substantial weekly programming assignments are an integral part of the course. This course is worth 4 Engineering Design Points.

Details →

6.0001 · Undergraduate · Fall 2016

<em>6.0001 Introduction to Computer Science and Programming in Python</em> is intended for students with little or no programming experience. It aims to provide students with an understanding of the role computation can play in solving problems and to help students, regardless of their major, feel justifiably confident of their ability to write small programs that allow them to accomplish useful goals. The class uses the Python 3.5 programming language.

Details →

6.01SC · Undergraduate · Spring 2011

<p>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.</p> <p>Our second goal is to show you that making mathematical models of real systems can help in the design and analysis of those sys…

Details →

6.02 · Undergraduate · Fall 2012

<p>An introduction to several fundamental ideas in electrical engineering and computer science, using digital communication systems as the vehicle. The three parts of the course—bits, signals, and packets—cover three corresponding layers of abstraction that form the basis of communication systems like the Internet.</p> <p>The course teaches ideas that are useful in other parts of EECS: abstraction, probabilistic analysis, superposition, time and frequency-domain representations, system design p…

Details →

6.002 · Undergraduate · Spring 2007

<p>6.002 is designed to serve as a first course in an 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.</p> <p>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; energy …

Details →

6.0002 · Undergraduate · Fall 2016

6.0002 is the continuation of <em>6.0001 Introduction to Computer Science and Programming in Python</em> and is intended for students with little or no programming experience. It aims to provide students with an understanding of the role computation can play in solving problems and to help students, regardless of their major, feel justifiably confident of their ability to write small programs that allow them to accomplish useful goals. The class uses the Python 3.5 programming language.

Details →

6.003 · Undergraduate · Fall 2011

6.003 covers the fundamentals of signal and system analysis, focusing on representations of discrete-time and continuous-time signals (singularity functions, complex exponentials and geometrics, Fourier representations, Laplace and Z transforms, sampling) and representations of linear, time-invariant systems (difference and differential equations, block diagrams, system functions, poles and zeros, convolution, impulse and step responses, frequency responses). Applications are drawn broadly from…

Details →

6.004 · Undergraduate · Spring 2017

This course introduces architecture of digital systems, emphasizing structural principles common to a wide range of technologies. It covers the topics including multilevel implementation strategies, definition of new primitives (e.g., gates, instructions, procedures, processes) and their mechanization using lower-level elements. It also includes analysis of potential concurrency, precedence constraints and performance measures, pipelined and multidimensional systems, instruction set design issu…

Details →

6.004 · Undergraduate · Spring 2009

<p>6.004 offers an introduction to the engineering of digital systems. Starting with MOS transistors, the course develops a series of building blocks — logic gates, combinational and sequential circuits, finite-state machines, computers and finally complete systems. Both hardware and software mechanisms are explored through a series of design examples.</p> <p>6.004 is required material for any EECS undergraduate who wants to understand (and ultimately design) digital systems. A good grasp of th…

Details →

6.005 · Undergraduate · Spring 2016

<p><em>6.005 Software Construction</em> introduces fundamental principles and techniques of software development, i.e., how to write software that is safe from bugs, easy to understand, and ready for change. The course includes problem sets and a final project. Important topics include specifications and invariants; testing; abstract data types; design patterns for object-oriented programming; concurrent programming and concurrency; and functional programming.</p> <p>The 6.005 website homepage …

Details →

6.005 · Undergraduate · Fall 2008

This course provides an introduction to the fundamental principles and techniques of software development that have greatest impact on practice. Topics include capturing the essence of a problem by recognizing and inventing suitable abstractions; key paradigms, including state machines, functional programming, and object-oriented programming; use of design patterns to bridge gap between models and code; the role of interfaces and specification in achieving modularity and decoupling; reasoning a…

Details →

6.006 · Undergraduate · Fall 2011

This course provides an introduction to mathematical modeling 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.

Details →

6.006 · Undergraduate · Spring 2020

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

Details →

6.006 · Undergraduate · Spring 2008

This course provides an introduction to mathematical modeling 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.

Details →

6.007 · Undergraduate · Spring 2011

<p>This course discusses applications of electromagnetic and equivalent quantum mechanical principles to classical and modern devices. It covers energy conversion and power flow in both macroscopic and quantum-scale electrical and electromechanical systems, including electric motors and generators, electric circuit elements, quantum tunneling structures and instruments. It studies photons as waves and particles and their interaction with matter in optoelectronic devices, including solar cells, …

Details →

6.011 · Undergraduate · Spring 2018

This course covers signals, systems and inference in communication, control and signal processing. Topics include input-output and state-space models of linear systems driven by deterministic and random signals; time- and transform-domain representations in discrete and continuous time; and group delay. State feedback and observers. Probabilistic models; stochastic processes, correlation functions, power spectra, spectral factorization. Least-mean square error estimation; Wiener filtering. Hypo…

Details →

6.011 · Undergraduate · Spring 2010

This course examines signals, systems and inference as unifying themes in communication, control and signal processing. Topics include input-output and state-space models of linear systems driven by deterministic and random signals; time- and transform-domain representations in discrete and continuous time; group delay; state feedback and observers; probabilistic models; stochastic processes, correlation functions, power spectra, spectral factorization; least-mean square error estimation; Wiene…

Details →

6.012 · Undergraduate · Fall 2005

6.012 is the header course for the department’s “Devices, Circuits and Systems” concentration. The topics covered include: modeling of microelectronic devices, basic microelectronic circuit analysis and design, physical electronics of semiconductor junction and MOS devices, relation of electrical behavior to internal physical processes, development of circuit models, and understanding the uses and limitations of various models. The course uses incremental and large-signal techniques to analyze …

Details →

6.012 · Undergraduate · Fall 2009

6.012 is the header course for the department’s “Devices, Circuits and Systems” concentration. The topics covered include modeling of microelectronic devices, basic microelectronic circuit analysis and design, physical electronics of semiconductor junction and MOS devices, relation of electrical behavior to internal physical processes, development of circuit models, and understanding the uses and limitations of various models. The course uses incremental and large-signal techniques to analyze a…

Details →

6.012 · Undergraduate · Spring 2009

6.012 is the header course for the department’s “Devices, Circuits and Systems” concentration. The topics covered include: modeling of microelectronic devices, basic microelectronic circuit analysis and design, physical electronics of semiconductor junction and metal-on-silicon (MOS) devices, relation of electrical behavior to internal physical processes, development of circuit models, and understanding the uses and limitations of various models. The course uses incremental and large-signal tec…

Details →

6.013 · Undergraduate · Fall 2005

<p>This course explores electromagnetic phenomena in modern applications, including wireless communications, circuits, computer interconnects and peripherals, optical fiber links and components, microwave communications and radar, antennas, sensors, micro-electromechanical systems, motors, and power generation and transmission. Fundamentals covered include: quasistatic and dynamic solutions to Maxwell’s equations; waves, radiation, and diffraction; coupling to media and structures; guided and u…

Details →

6.013 · Undergraduate · Spring 2009

This course explores electromagnetic phenomena in modern applications, including wireless and optical communications, circuits, computer interconnects and peripherals, microwave communications and radar, antennas, sensors, micro-electromechanical systems, and power generation and transmission. Fundamentals include quasistatic and dynamic solutions to Maxwell’s equations; waves, radiation, and diffraction; coupling to media and structures; guided waves; resonance; acoustic analogs; and forces, p…

Details →

6.033 · Undergraduate · Spring 2018

This class covers topics on the engineering of computer software and hardware systems. Topics include techniques for controlling complexity; strong modularity using client-server design, operating systems; performance, networks; naming; security and privacy; fault-tolerant systems, atomicity and coordination of concurrent activities, and recovery; impact of computer systems on society.

Details →

6.034 · Undergraduate · Spring 2005

This course introduces representations, techniques, and architectures used to build applied systems and to account for intelligence from a computational point of view. This course also explores applications of rule chaining, heuristic search, logic, constraint propagation, constrained search, and other problem-solving paradigms. In addition, it covers applications of decision trees, neural nets, SVMs and other learning paradigms.

Details →

6.034 · Undergraduate · Fall 2010

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, vision, and language in understanding human intelligence from a…

Details →

6.035 · Undergraduate · Spring 2010

This course analyzes issues associated with the implementation of higher-level programming languages. Topics covered include: fundamental concepts, functions, and structures of compilers, the interaction of theory and practice, and using tools in building software. The course includes a multi-person project on compiler design and implementation.

Details →

6.035 · Undergraduate · Fall 2005

<p>6.035 is a course within the department’s “Computer Systems and Architecture” concentration. This course analyzes issues associated with the implementation of high-level programming languages. Topics covered include: fundamental concepts, functions, and structures of compilers, basic program optimization techniques, the interaction of theory and practice, and using tools in building software. The course features a multi-person project on design and implementation of a compiler that is writte…

Details →

6.036 · Undergraduate · Fall 2020

<p>This course introduces principles, algorithms, and applications of machine learning from the point of view of modeling and prediction. It includes formulation of learning problems and concepts of representation, over-fitting, and generalization. These concepts are exercised in supervised learning and reinforcement learning, with applications to images and to temporal sequences.</p> <p>This course is part of the Open Learning Library, which is free to use.&nbsp;You have the option to sign up …

Details →

6.041 · Undergraduate · Spring 2006

This course is offered both to undergraduates (6.041) and graduates (6.431), but the assignments differ. 6.041/6.431 introduces students to the modeling, quantification, and analysis of uncertainty. Topics covered include: formulation and solution in sample space, random variables, transform techniques, simple random processes and their probability distributions, Markov processes, limit theorems, and elements of statistical inference.

Details →

6.041 · Undergraduate · Fall 2010

<p>Welcome to 6.041/6.431, a subject on the modeling and analysis of random phenomena and processes, including the basics of statistical inference. Nowadays, there is broad consensus that the ability to think probabilistically is a fundamental component of scientific literacy. For example:</p> <ul> <li>The concept of statistical significance (to be touched upon at the end of this course) is considered by the Financial Times as one of “The Ten Things Everyone Should Know About Science”.</li> <li…

Details →

6.041SC · Undergraduate · Fall 2013

<p>This course introduces students to the modeling, quantification, and analysis of uncertainty.&nbsp; The tools of probability theory, and of the related field of statistical inference, are the keys for being able to analyze and make sense of data. These tools underlie important advances in many fields, from the basic sciences to engineering and management.</p> Course Format <hr> <p> This course has been designed for independent study. It provides everything you will need to understand the con…

Details →

6.042J · Undergraduate · Fall 2010

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 defin…

Details →

6.042J · Undergraduate · Spring 2015

<p>This subject offers an interactive introduction to discrete mathematics oriented toward computer science and engineering. The subject coverage divides roughly into thirds:</p> <ol> <li>Fundamental concepts of mathematics: Definitions, proofs, sets, functions, relations.</li> <li>Discrete structures: graphs, state machines, modular arithmetic, counting.</li> <li>Discrete probability theory.</li> </ol> <p>On completion of 6.042J, students will be able to explain and apply the basic methods of …

Details →

6.042J · Undergraduate · Fall 2005

<p>This is an introductory course in Discrete Mathematics oriented toward Computer Science and Engineering. The course divides roughly into thirds:</p> <ol> <li>Fundamental Concepts of Mathematics: Definitions, Proofs, Sets, Functions, Relations</li> <li>Discrete Structures: Modular Arithmetic, Graphs, State Machines, Counting</li> <li>Discrete Probability Theory</li> </ol> <p>A version of this course from a&nbsp;previous term&nbsp;was also taught as part of the Singapore-MIT Alliance (SMA) pro…

Details →

6.045J · Undergraduate · Spring 2011

This course provides a challenging introduction to some of the central ideas of theoretical computer science. Beginning in antiquity, the course will progress through finite automata, circuits and decision trees, Turing machines and computability, efficient algorithms and reducibility, the P versus NP problem, NP-completeness, the power of randomness, cryptography and one-way functions, computational learning theory, and quantum computing. It examines the classes of problems that can and cannot…

Details →

6.046J · Undergraduate · Spring 2012

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

Details →

6.046J · Undergraduate · Spring 2015

This is an intermediate algorithms course with an emphasis on teaching techniques for the design and analysis of efficient algorithms, emphasizing methods of application. Topics include divide-and-conquer, randomization, dynamic programming, greedy algorithms, incremental improvement, complexity, and cryptography.

Details →

6.046J · Undergraduate · Fall 2005

<p>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.</p> <p>This course was also taught as part of the Singapore-MIT Alliance (…

Details →

6.047 · Undergraduate · Fall 2015

This course covers the algorithmic and machine learning foundations of computational biology combining theory with practice. We cover both foundational topics in computational biology, and current research frontiers. We study fundamental techniques, recent advances in the field, and work directly with current large-scale biological datasets.

Details →

6.050J · Undergraduate · Spring 2008

This course explores the ultimate limits to communication and computation, with an emphasis on the physical nature of information and information processing. Topics include: information and computation, digital signals, codes and compression, applications such as biological representations of information, logic circuits, computer architectures, and algorithmic information, noise, probability, error correction, reversible and irreversible operations, physics of computation, and quantum computati…

Details →

6.055J · Undergraduate · Spring 2008

This course teaches simple reasoning techniques for complex phenomena: divide and conquer, dimensional analysis, extreme cases, continuity, scaling, successive approximation, balancing, cheap calculus, and symmetry. Applications are drawn from the physical and biological sciences, mathematics, and engineering. Examples include bird and machine flight, neuron biophysics, weather, prime numbers, and animal locomotion. Emphasis is on low-cost experiments to test ideas and on fostering curiosity ab…

Details →

6.057 · Undergraduate · January IAP 2019

This is an accelerated introduction to MATLAB® and its popular toolboxes. Lectures are interactive, with students conducting sample MATLAB problems in real time. The course includes problem-based MATLAB assignments. Students must provide their own laptop and software. This is great preparation for classes that use MATLAB.

Details →

6.061 · Undergraduate · Spring 2011

This course is an introductory subject in the field of electric power systems and electrical to mechanical energy conversion. Electric power has become increasingly important as a way of transmitting and transforming energy in industrial, military and transportation uses. Electric power systems are also at the heart of alternative energy systems, including wind and solar electric, geothermal and small scale hydroelectric generation.

Details →

6.071J · Undergraduate · Spring 2006

The course is designed to provide a practical - hands on - introduction to electronics with a focus on measurement and signals. The prerequisites are courses in differential equations, as well as electricity and magnetism. No prior experience with electronics is necessary. The course will integrate demonstrations and laboratory examples with lectures on the foundations. Throughout the course we will use modern “virtual instruments” as test-beds for understanding electronics. The aim of the cour…

Details →

6.079 · Undergraduate · Fall 2009

<p>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, ma…

Details →

6.080 · Undergraduate · Spring 2008

This course provides a challenging introduction to some of the central ideas of theoretical computer science. It attempts to present a vision of “computer science beyond computers”: that is, CS as a set of mathematical tools for understanding complex systems such as universes and minds. Beginning in antiquity—with Euclid’s algorithm and other ancient examples of computational thinking—the course will progress rapidly through propositional logic, Turing machines and computability, finite automat…

Details →

6.087 · Undergraduate · January IAP 2010

This course provides a thorough introduction to the C programming language, the workhorse of the UNIX operating system and lingua franca of embedded processors and micro-controllers. The first two weeks will cover basic syntax and grammar, and expose students to practical programming techniques. The remaining lectures will focus on more advanced concepts, such as dynamic memory allocation, concurrency and synchronization, UNIX signals and process control, library development and usage. Daily pr…

Details →

6.088 · Undergraduate · January IAP 2010

<p>Ever hang your head in shame after your Python program wasn’t as fast as your friend’s C program? Ever wish you could use objects without having to use Java? Join us for this fun introduction to C and C++! We will take you through a tour that will start with writing simple C programs, go deep into the caves of C memory manipulation, resurface with an introduction to using C++ classes, dive deeper into advanced C++ class use and the C++ Standard Template Libraries. We’ll wrap up by teaching y…

Details →

6.090 · Undergraduate · January IAP 2005

This course will serve as a two-week aggressively gentle introduction to programming for those students who lack background in the field. Specifically targeted at students with little or no programming experience, the course seeks to reach students who intend to take 6.001 and feel they would struggle because they lack the necessary background. The main focus of the subject will be acquiring programming experience: instruction in programming fundamentals coupled with lots of practice problems. …

Details →

6.091 · Undergraduate · January IAP 2008

<p>This course introduces students to both passive and active electronic components (op-amps, 555 timers, TTL digital circuits). Basic analog and digital circuits and theory of operation are covered. The labs allow the students to master the use of electronic instruments and construct and/or solder several circuits. The labs also reinforce the concepts discussed in class with a hands-on approach and allow the students to gain significant experience with electrical instruments such as function g…

Details →

6.092 · Undergraduate · January IAP 2006

This course focuses on introducing the language, libraries, tools and concepts of Javaᵀᴹ. The course is specifically targeted at students who intend to take 6.170 in the following term and feel they would struggle because they lack the necessary background. Topics include: Object-oriented programming, primitives, arrays, objects, inheritance, interfaces, polymorphism, hashing, data structures, collections, nested classes, floating point precision, defensive programming, and depth-first search a…

Details →

6.092 · Undergraduate · January IAP 2005

This interdisciplinary course provides a hands-on approach to students in the topics of bioinformatics and proteomics. Lectures and labs cover sequence analysis, microarray expression analysis, Bayesian methods, control theory, scale-free networks, and biotechnology applications. Designed for those with a computational and/or engineering background, it will include current real-world examples, actual implementations, and engineering design issues. Where applicable, engineering issues from signa…

Details →

6.092 · Undergraduate · January IAP 2010

<p>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.</p> <p>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. Each class is composed of one hour of lect…

Details →

6.096 · Undergraduate · January IAP 2011

<p>This is a fast-paced introductory course to the C++ programming language. It is intended for those with little programming background, though prior programming experience will make it easier, and those with previous experience will still learn C++-specific constructs and concepts.</p> <p>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.</p>

Details →

6.096 · Undergraduate · Spring 2005

This course is offered to undergraduates and addresses several algorithmic challenges in computational biology. The principles of algorithmic design for biological datasets are studied and existing algorithms analyzed for application to real datasets. Topics covered include: biological sequence analysis, gene identification, regulatory motif discovery, genome assembly, genome duplication and rearrangements, evolutionary theory, clustering algorithms, and scale-free networks.

Details →

6.100L · Undergraduate · Fall 2022

This subject is aimed at students with little to 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, feel justifiably confident in their ability to write simple programs that allow them to accomplish useful goals. The class will use the Python 3 programming language.

Details →

6.101 · Undergraduate · Spring 2007

6.101 is an introductory experimental laboratory that explores the design, construction, and debugging of analog electronic circuits. Lectures and six laboratory projects investigate the performance characteristics of diodes, transistors, JFETs, and op-amps, including the construction of a small audio amplifier and preamplifier. Seven weeks are devoted to the design and implementation, and written and oral presentation of a project in an environment similar to that of engineering design teams i…

Details →

6.111 · Undergraduate · Fall 2002

6.111 consists of lectures and labs on digital logic, flipflops, PALs, counters, timing, synchronization, finite-state machines, and microprogrammed systems. Students are expected to design and implement a final project of their choice: games, music, digital filters, graphics, etc. The course requires extensive use of VHDL for describing and implementing digital logic designs. 6.111 is worth 12 Engineering Design Points.

Details →

6.111 · Undergraduate · Spring 2006

6.111 is reputed to be one of the most demanding classes at MIT, exhausting many students’ time and creativity. The course covers digital design topics such as digital logic, sequential building blocks, finite-state machines, FPGAs, timing and synchronization. The semester begins with lectures and problem sets, to introduce fundamental topics before students embark on lab assignments and ultimately, a digital design project. The students design and implement a final digital project of their cho…

Details →

6.152J · Undergraduate · Fall 2005

This course introduces the theory and technology of micro/nano fabrication. Lectures and laboratory sessions focus on basic processing techniques such as diffusion, oxidation, photolithography, chemical vapor deposition, and more. Through team lab assignments, students are expected to gain an understanding of these processing techniques, and how they are applied in concert to device fabrication. Students enrolled in this course have a unique opportunity to fashion and test micro/nano-devices, u…

Details →

6.161 · Undergraduate · Fall 2005

6.161 offers an introduction to laboratory optics, optical principles, and optical devices and systems. This course covers a wide range of topics, including: polarization properties of light, reflection and refraction, coherence and interference, Fraunhofer and Fresnel diffraction, holography, imaging and transforming properties of lenses, spatial filtering, two-lens coherent optical processor, optical properties of materials, lasers, electro-optic, acousto-optic and liquid-crystal light modula…

Details →

6.163 · Undergraduate · Fall 2005

This is a laboratory experience course with a focus on photography, electronic imaging, and light measurement, much of it at short duration. In addition to teaching these techniques, the course provides students with experience working in a laboratory and teaches good work habits and techniques for approaching laboratory work. A major purpose of 6.163 is to provide students with many opportunities to sharpen their communication skills: oral, written, and visual.

Details →

6.170 · Undergraduate · Spring 2013

This course on software engineering covers design and implementation of medium-scale software systems, using web applications as a platform. In the course, students learn the fundamentals of structuring a web application and writing modular code, with an emphasis on conceptual design to achieve clarity, simplicity, and modularity. Topics also include functional programming, relational databases, and security.

Details →

6.170 · Undergraduate · Fall 2005

<p>This course introduces concepts and techniques relevant to the production of large software systems. Students are taught a programming method based on the recognition and description of useful abstractions. Topics include modularity, specification, data abstraction, object modeling, design patterns, and testing. Students complete several programming projects of varying size, working individually and in groups.</p> <p>Students are now introduced to software engineering in <em>6.005 Elements o…

Details →

6.171 · Undergraduate · Fall 2003

<p>6.171&nbsp;is a course for students who already have some programming and software engineering experience. The goal is to give students some experience in dealing with those challenges that are unique to Internet applications, such as:</p> <ul> <li>concurrency;</li> <li>unpredictable load;</li> <li>security risks;</li> <li>opportunity for wide-area distributed computing;</li> <li>creating a reliable and stateful user experience on top of unreliable connections and stateless protocols;</li> <…

Details →

6.172 · Undergraduate · Fall 2018

6.172 is an 18-unit class that provides 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, caching optimizations, parallel programming, and building scalable systems. The course programming language is C.

Details →

6.186 · Undergraduate · January IAP 2005

<p>MASLab (Mobile Autonomous System Laboratory), also known as 6.186, is a robotics contest. The contest takes place during MIT’s Independent Activities Period and participants earn 6 units of P/F credit and 6 Engineering Design Points. Teams of three to four students have less than a month to build and program sophisticated robots which must explore an unknown playing field and perform a series of tasks.</p> <p>MASLab provides a significantly more difficult robotics problem than many other uni…

Details →

6.189 · Undergraduate · January IAP 2008

<p>This course will provide a gentle introduction to programming using Python™ for highly motivated students with little or no prior experience in programming computers. The course will focus on planning and organizing programs, as well as the grammar of the Python programming language. Lectures will be interactive featuring in-class exercises with lots of support from the course staff.</p> <p>This course is offered during the Independent Activities Period (IAP), which is a special 4-week term …

Details →

6.189 · Undergraduate · January IAP 2007

<p>The course serves as an introductory course in parallel programming. It offers a series of lectures on parallel programming concepts as well as a group project providing hands-on experience with parallel programming. The students will have the unique opportunity to use the cutting-edge PLAYSTATION 3 development platform as they learn how to design and implement exciting applications for multicore architectures. At the end of the course, students will have an understanding of:</p> <ul> <li>Fu…

Details →

6.189 · Undergraduate · January IAP 2011

<p>This course will provide a gentle, yet intense, introduction to programming using Python for highly motivated students with little or no prior experience in programming. The course will focus on planning and organizing programs, as well as the grammar of the Python programming language.</p> <p>The course is designed to help prepare students for <em>6.01 Introduction to EECS I</em>. 6.01 assumes some knowledge of Python upon entering; the course material for 6.189 has been specially designed …

Details →

6.231 · Graduate · Fall 2015

The course covers the basic models and solution techniques for problems of sequential decision making under uncertainty (stochastic control). We will consider optimal control of a dynamical system over both a finite and an infinite number of stages. This includes systems with finite or infinite state spaces, as well as perfectly or imperfectly observed systems. We will also discuss approximation methods for problems involving large state spaces. Applications of dynamic programming in a variety …

Details →

6.245 · Graduate · Spring 2004

This course uses computer-aided design methodologies for synthesis of multivariable feedback control systems. Topics covered include: performance and robustness trade-offs; model-based compensators; Q-parameterization; ill-posed optimization problems; dynamic augmentation; linear-quadratic optimization of controllers; H-infinity controller design; Mu-synthesis; model and compensator simplification; and nonlinear effects. The assignments for the course comprise of computer-aided (MATLAB®) design…

Details →

6.251J · Graduate · Fall 2009

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, …

Details →

6.252J · Graduate · Spring 2003

6.252J is a course in the department’s “Communication, Control, and Signal Processing” concentration. This course provides a unified analytical and computational approach to nonlinear optimization problems. The topics covered in this course include: unconstrained optimization methods, constrained optimization methods, convex analysis, Lagrangian relaxation, nondifferentiable optimization, and applications in integer programming. There is also a comprehensive treatment of optimality conditions, …

Details →

6.253 · Graduate · Spring 2012

This course will focus on fundamental subjects in convexity, duality, and convex optimization algorithms. The aim is to develop the core analytical and algorithmic issues of continuous optimization, duality, and saddle point theory using a handful of unifying principles that can be easily visualized and readily understood.

Details →

6.254 · Graduate · Spring 2010

This course is an introduction to the fundamentals of game theory and mechanism design. Motivations are drawn from engineered/networked systems (including distributed control of wireline and wireless communication networks, incentive-compatible/dynamic resource allocation, multi-agent systems, pricing and investment decisions in the Internet), and social models (including social and economic networks). The course emphasizes theoretical foundations, mathematical tools, modeling, and equilibrium …

Details →

6.262 · Graduate · Spring 2011

Discrete stochastic processes are essentially probabilistic systems that evolve in time via random changes occurring at discrete fixed or random intervals. This course aims to help students acquire both the mathematical principles and the intuition necessary to create, analyze, and understand insightful models for a broad range of these processes. The range of areas for which discrete stochastic-process models are useful is constantly expanding, and includes many applications in engineering, ph…

Details →

6.270 · Undergraduate · January IAP 2005

<p>6.270 is a hands-on, learn-by-doing class, in which participants design and build a robot that will play in a competition at the end of January. The goal for the students is to design a machine that will be able to navigate its way around the playing surface, recognize other opponents, and manipulate game objects. Unlike the machines in&nbsp;Design and&nbsp;Manufacturing I&nbsp;(2.007), 6.270 robots are totally autonomous, so once a round begins, there is no human intervention.</p> <p>The go…

Details →

6.301 · Graduate · Fall 2010

6.301 is a course in analog circuit analysis and design. We cover the tools and methods necessary for the creative design of useful circuits using active devices. The class stresses insight and intuition, applied to the design of transistor circuits and the estimation of their performance. We concentrate on circuits using the bipolar junction transistor, but the techniques that we study can be equally applied to circuits using JFETs, MOSFETs, MESFETs, future exotic devices, or even vacuum tubes.

Details →

6.302 · Graduate · Spring 2007

This course provides an introduction to the design of feedback systems. Topics covered include: properties and advantages of feedback systems, time-domain and frequency-domain performance measures, stability and degree of stability, root locus method, Nyquist criterion, frequency-domain design, compensation techniques, application to a wide variety of physical systems, internal and external compensation of operational amplifiers, modeling and compensation of power converter systems, and phase l…

Details →

6.331 · Graduate · Spring 2002

Following a brief classroom discussion of relevant principles, each student in this course completes the paper design of several advanced circuits such as multiplexers, sample-and-holds, gain-controlled amplifiers, analog multipliers, digital-to-analog or analog-to-digital converters, and power amplifiers. One of each student’s designs is presented to the class, and one may be built and evaluated. Associated laboratory assignments emphasize the use of modern analog building blocks. This course …

Details →

6.334 · Graduate · Spring 2007

6.334 examines the application of electronics to energy conversion and control. Topics covered include: modeling, analysis, and control techniques; design of power circuits including inverters, rectifiers, and DC-DC converters; analysis and design of magnetic components and filters; and characteristics of power semiconductor devices. Numerous application examples will be presented such as motion control systems, power supplies, and radio-frequency power amplifiers. The course is worth 6 enginee…

Details →

6.341 · Graduate · Fall 2005

<p>This class addresses the representation, analysis, and design of discrete time signals and systems. The major concepts covered include: Discrete-time processing of continuous-time signals; decimation, interpolation, and sampling rate conversion; flowgraph structures for DT systems; time-and frequency-domain design techniques for recursive (IIR) and non-recursive (FIR) filters; linear prediction; discrete Fourier transform, FFT algorithm; short-time Fourier analysis and filter banks; multirat…

Details →

6.345 · Graduate · Spring 2003

6.345 introduces students to the rapidly developing field of automatic speech recognition. Its content is divided into three parts. Part I deals with background material in the acoustic theory of speech production, acoustic-phonetics, and signal representation. Part II describes algorithmic aspects of speech recognition systems including pattern classification, search algorithms, stochastic modelling, and language modelling techniques. Part III compares and contrasts the various approaches to s…

Details →

6.370 · Undergraduate · January IAP 2005

The 6.370 Robocraft programming competition is a unique challenge that combines battle strategy and software engineering. In short, the objective is to write the best player program for the computer game Robocraft.

Details →

6.370 · Undergraduate · January IAP 2013

<p>This course is conducted as an artificial intelligence programming contest in Java. Students work in teams to program virtual robots to play Battlecode, a real-time strategy game. Optional lectures are provided on topics and programming practices relevant to the game, and students learn and improve their programming skills experientially. The competition culminates in a live Battlecode tournament.</p> <p>This course is offered during the Independent Activities Period (IAP), which is a specia…

Details →

6.374 · Graduate · Fall 2003

6.374 examines the device and circuit level optimization of digital building blocks. Topics covered include: MOS device models including Deep Sub-Micron effects; circuit design styles for logic, arithmetic and sequential blocks; estimation and minimization of energy consumption; interconnect models and parasitics; device sizing and logical effort; timing issues (clock skew and jitter) and active clock distribution techniques; memory architectures, circuits (sense amplifiers) and devices; testin…

Details →

6.432 · Graduate · Spring 2004

This course&nbsp;examines the fundamentals of detection and estimation for signal processing, communications, and control. Topics covered include: vector spaces of random variables; Bayesian and Neyman-Pearson hypothesis testing; Bayesian and nonrandom parameter estimation; minimum-variance unbiased estimators and the Cramer-Rao bounds; representations for stochastic processes, shaping and whitening filters, and&nbsp;Karhunen-Loeve expansions; and&nbsp;detection and estimation from waveform obs…

Details →

6.435 · Graduate · Spring 2005

This course is offered to graduates and includes topics such as mathematical models of systems from observations of their behavior; time series, state-space, and input-output models; model structures, parametrization, and identifiability; non-parametric methods; prediction error methods for parameter estimation, convergence, consistency, and asymptotic distribution; relations to maximum likelihood estimation; recursive estimation; relation to Kalman filters; structure determination; order estim…

Details →

6.436J · Graduate · Fall 2018

This is a course on the fundamentals of probability geared towards first or second-year graduate students who are interested in a rigorous development of the subject. The course covers sample space, random variables, expectations, transforms, Bernoulli and Poisson processes, finite Markov chains, and limit theorems. There is also a number of additional topics such as: language, terminology, and key results from measure theory; interchange of limits and expectations; multivariate Gaussian distri…

Details →

6.438 · Graduate · Fall 2014

This is a graduate-level introduction to the principles of statistical inference with probabilistic models defined using graphical representations. The material in this course constitutes a common foundation for work in machine learning, signal processing, artificial intelligence, computer vision, control, and communication. Ultimately, the subject is about teaching you contemporary approaches to, and perspectives on, problems of statistical inference.

Details →

6.441 · Graduate · Spring 2010

6.441 offers an introduction to the quantitative theory of information and its applications to reliable, efficient communication systems. Topics include mathematical definition and properties of information, source coding theorem, lossless compression of data, optimal lossless coding, noisy communication channels, channel coding theorem, the source channel separation theorem, multiple access channels, broadcast channels, Gaussian noise, and time-varying channels.

Details →

6.441 · Graduate · Spring 2016

This is a graduate-level introduction to mathematics of information theory. We will cover both classical and modern topics, including information entropy, lossless data compression, binary hypothesis testing, channel coding, and lossy data compression.

Details →

6.450 · Graduate · Fall 2009

<p>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, <em>6.451 Principles of Digital Communication II</em>, is offered in the spring.</p> <p>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 m…

Details →

6.450 · Graduate · Fall 2006

<p>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, is offered in the spring.</p> <p>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 …

Details →

6.451 · Graduate · Spring 2005

<p>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…

Details →

6.452 · Graduate · Spring 2006

This course is an introduction to the design, analysis, and fundamental limits of wireless transmission systems. Topics to be covered include: wireless channel and system models; fading and diversity; resource management and power control; multiple-antenna and MIMO systems; space-time codes and decoding algorithms; multiple-access techniques and multiuser detection; broadcast codes and precoding; cellular and ad-hoc network topologies; OFDM and ultrawideband systems; and architectural issues.

Details →

6.453 · Graduate · Fall 2016

<em>6.453 Quantum Optical Communication</em> is one of a collection of MIT classes that deals with aspects of an emerging field known as quantum information science. This course covers Quantum Optics, Single-Mode and Two-Mode Quantum Systems, Multi-Mode Quantum Systems, Nonlinear Optics, and Quantum System Theory.

Details →

6.541J · Graduate · Spring 2004

6.541J surveys the structural properties of natural languages, with special emphasis on the sound pattern. Topics covered include: representation of the lexicon; physiology of speech production; articulatory phonetics; acoustical theory of speech production; acoustical and articulatory descriptions of phonetic features and of prosodic aspects of speech; perception of speech; models of lexical access and of speech production and planning; and applications to recognition and generation of speech …

Details →

6.542J · Graduate · Fall 2005

<p>The course focuses on experimental investigations of speech processes. Topics include: measurement of articulatory movements, measurements of pressures and airflows in speech production, computer-aided waveform analysis and spectral analysis of speech, synthesis of speech, perception and discrimination of speechlike sounds, speech prosody, models for speech recognition, speech disorders, and other topics.</p> <ul> <li>Two 1-hour lectures per week</li> <li>Two labs per week</li> <li>Brief lab…

Details →

6.551J · Graduate · Fall 2004

<p>The Acoustics of Speech and Hearing is an H-Level graduate course that reviews the physical processes involved in the production, propagation and reception of human speech. Particular attention is paid to how the acoustics and mechanics of the speech and auditory system define what sounds we are capable of producing and what sounds we can sense. Areas of discussion include:</p> <ol> <li> <p>the acoustic cues used in determining the direction of a sound source,</p> </li> <li> <p>the acoustic …

Details →

6.622 · Graduate · Spring 2023

6.622 covers modeling, analysis, design, control, and application of circuits for energy conversion and control. As described by the Institute of Electrical and Electronics Engineers (IEEE), power electronics technology “encompasses the use of electronic components, the application of circuit theory and design techniques, and the development of analytical tools toward efficient electronic conversion, control, and conditioning of electric power.”&nbsp;Students taking this class will come away wi…

Details →

6.630 · Graduate · Fall 2006

6.630 is an introductory subject on electromagnetics, emphasizing fundamental concepts and applications of Maxwell equations. Topics covered include: polarization, dipole antennas, wireless communications, forces and energy, phase matching, dielectric waveguides and optical fibers, transmission line theory and circuit concepts, antennas, and equivalent principle. Examples deal with electrodynamics, propagation, guidance, and radiation of electromagnetic waves.

Details →

6.632 · Graduate · Spring 2003

6.632 is a graduate subject on electromagnetic wave theory, emphasizing mathematical approaches, problem solving, and physical interpretation. Topics covered include: waves in media, equivalence principle, duality and complementarity, Huygens’ principle, Fresnel and Fraunhofer diffraction, dyadic Green’s functions, Lorentz transformation, and Maxwell-Minkowski theory. Examples deal with limiting cases of Maxwell’s theory and diffraction and scattering of electromagnetic waves.

Details →

6.635 · Graduate · Spring 2003

In 6.635, topics covered include: special relativity, electrodynamics of moving media, waves in dispersive media, microstrip integrated circuits, quantum optics, remote sensing, radiative transfer theory, scattering by rough surfaces, effective permittivities, random media, Green’s functions for planarly layered media, integral equations in electromagnetics, method of moments, time domain method of moments, EM waves in periodic structures: photonic crystals and negative refraction.

Details →

6.637 · Graduate · Spring 2003

<p>6.637 covers the fundamentals of optical signals and modern optical devices and systems from a practical point of view. Its goal is to help students develop a thorough understanding of the underlying physical principles such that device and system design and performance can be predicted, analyzed, and understood.</p> <p>Most optical systems involve the use of one or more of the following: sources (e.g., lasers and light-emitting diodes), light modulation components (e.g., liquid-crystal ligh…

Details →

6.641 · Graduate · Spring 2005

<p>6.641 examines electric and magnetic quasistatic forms of Maxwell’s equations applied to dielectric, conduction, and magnetization boundary value problems. Topics covered include: electromagnetic forces, force densities, and stress tensors, including magnetization and polarization; thermodynamics of electromagnetic fields, equations of motion, and energy conservation; applications to synchronous, induction, and commutator machines; sensors and transducers; microelectromechanical systems; pro…

Details →

6.641 · Graduate · Spring 2009

<p>This course examines electric and magnetic quasistatic forms of Maxwell’s equations applied to dielectric, conduction, and magnetization boundary value problems. Topics covered include: electromagnetic forces, force densities, and stress tensors, including magnetization and polarization; thermodynamics of electromagnetic fields, equations of motion, and energy conservation; applications to synchronous, induction, and commutator machines; sensors and transducers; microelectromechanical system…

Details →

6.642 · Graduate · Fall 2008

<p>This course focuses on laws, approximations and relations of continuum electromechanics. Topics include mechanical and electromechanical transfer relations, statics and dynamics of electromechanical systems having a static equilibrium, electromechanical flows, and field coupling with thermal and molecular diffusion. Also covered are electrokinetics, streaming interactions, application to materials processing, magnetohydrodynamic and electrohydrodynamic pumps and generators, ferrohydrodynamic…

Details →

6.661 · Graduate · Spring 2003

This course explores the detection and measurement of radio and optical signals encountered in communications, astronomy, remote sensing, instrumentation, and radar. Topics covered include: statistical analysis of signal processing systems, including radiometers, spectrometers, interferometers, and digital correlation systems; matched filters and ambiguity functions; communications channel performance; measurement of random electromagnetic fields, angular filtering properties of antennas, inter…

Details →

6.685 · Graduate · Fall 2013

This course teaches the principles and analysis of electromechanical systems. Students will develop analytical techniques for predicting device and system interaction characteristics as well as learn to design major classes of electric machines. Problems used in the course are intended to strengthen understanding of the phenomena and interactions in electromechanics, and include examples from current research.

Details →

6.691 · Graduate · Spring 2006

This course comprises of a seminar on planning and operation of modern electric power systems. Content varies with current interests of instructor and class; emphasis on engineering aspects, but economic issues may be examined too. Core topics include: overview of power system structure and operation; representation of components, including transmission lines, transformers, generating plants, loads; power flow analysis, dynamics and control of multimachine systems, steady-state and transient st…

Details →

6.701 · Undergraduate · Spring 2010

Traditionally, progress in electronics has been driven by miniaturization. But as electronic devices approach the molecular scale, classical models for device behavior must be abandoned. To prepare for the next generation of electronic devices, this class teaches the theory of current, voltage and resistance from atoms up. To describe electrons at the nanoscale, we will begin with an introduction to the principles of quantum mechanics, including quantization, the wave-particle duality, wavefunc…

Details →

6.720J · Graduate · Spring 2007

<p>6.720 examines the physics of microelectronic semiconductor devices for silicon integrated circuit applications. Topics covered include: semiconductor fundamentals, p-n junction, metal-oxide semiconductor structure, metal-semiconductor junction, MOS field-effect transistor, and bipolar junction transistor. The course emphasizes physical understanding of device operation through energy band diagrams and short-channel MOSFET device design. Issues in modern device scaling are also outlined. The…

Details →

6.728 · Graduate · Fall 2006

6.728 is offered under the department’s “Devices, Circuits, and Systems” concentration. The course covers concepts in elementary quantum mechanics and statistical physics, introduces applied quantum physics, and emphasizes an experimental basis for quantum mechanics. Concepts covered include: Schrodinger’s equation applied to the free particle, tunneling, the harmonic oscillator, and hydrogen atom, variational methods, Fermi-Dirac, Bose-Einstein, and Boltzmann distribution functions, and simple…

Details →

6.730 · Graduate · Spring 2003

This course examines classical and quantum models of electrons and lattice vibrations in solids, emphasizing physical models for elastic properties, electronic transport, and heat capacity. Topics covered include: crystal lattices, electronic energy band structures, phonon dispersion relatons, effective mass theorem, semiclassical equations of motion, and impurity states in semiconductors, band structure and transport properties of selected semiconductors, and connection of quantum theory of so…

Details →

6.763 · Graduate · Fall 2005

This course provides a phenomenological approach to superconductivity, with emphasis on superconducting electronics. Topics include: electrodynamics of superconductors, London’s model, flux quantization, Josephson Junctions, superconducting quantum devices, equivalent circuits, high-speed superconducting electronics, and quantized circuits for quantum computing. The course also provides an overview of type II superconductors, critical magnetic fields, pinning, the critical state model, supercon…

Details →

6.772 · Graduate · Spring 2003

This course outlines the physics, modeling, application, and technology of compound semiconductors (primarily III-Vs) in electronic, optoelectronic, and photonic devices and integrated circuits. Topics include: properties, preparation, and processing of compound semiconductors; theory and practice of heterojunctions, quantum structures, and pseudomorphic strained layers; metal-semiconductor field effect transistors (MESFETs); heterojunction field effect transistors (HFETs) and bipolar transisto…

Details →

6.774 · Graduate · Fall 2004

This course is offered to graduates and focuses on understanding the fundamental principles of the “front-end” processes used in the fabrication of devices for silicon integrated circuits. This includes advanced physical models and practical aspects of major processes, such as oxidation, diffusion, ion implantation, and epitaxy. Other topics covered include: high performance MOS and bipolar devices including ultra-thin gate oxides, implant-damage enhanced diffusion, advanced metrology, and new …

Details →

6.776 · Graduate · Spring 2005

6.776 covers circuit level design issues of high speed communication systems, with primary focus being placed on wireless and broadband data link applications. Specific circuit topics include transmission lines, high speed and low noise amplifiers, VCO’s, mixers, power amps, high speed digital circuits, and frequency synthesizers. In addition to learning analysis skills for the above items, students will gain a significant amount of experience in simulating RF circuits in SPICE and also buildin…

Details →

6.777J · Graduate · Spring 2007

6.777J / 2.372J is an introduction to microsystem design. Topics covered include: material properties, microfabrication technologies, structural behavior, sensing methods, fluid flow, microscale transport, noise, and amplifiers feedback systems. Student teams design microsystems (sensors, actuators, and sensing/control systems) of a variety of types, (e.g., optical MEMS, bioMEMS, inertial sensors) to meet a set of performance specifications (e.g., sensitivity, signal-to-noise) using a realistic…

Details →

6.780 · Graduate · Spring 2003

6.780 covers statistical modeling and the control of semiconductor fabrication processes and plants. Topics covered include: design of experiments, response surface modeling, and process optimization; defect and parametric yield modeling; process/device/circuit yield optimization; monitoring, diagnosis, and feedback control of equipment and processes; and analysis and scheduling of semiconductor manufacturing operations.

Details →

6.781J · Graduate · Spring 2006

<p>This course surveys techniques to fabricate and analyze submicron and nanometer structures, with applications. Optical and electron microscopy is reviewed. Additional topics that are covered include: surface characterization, preparation, and measurement techniques, resist technology, optical projection, interferometric, X-ray, ion, and electron lithography; Aqueous, ion, and plasma etching techniques; lift-off and electroplating; and ion implantation. Applications in microelectronics, micro…

Details →

6.801 · Undergraduate · Fall 2020

This course is an&nbsp;introduction to the process of generating a symbolic description of the environment from an image. It covers the physics of image formation, image analysis, binary image processing, and filtering. Machine vision has applications in robotics and the intelligent interaction of machines with their environment. Students taking the graduate version complete additional assignments.

Details →

6.801 · Undergraduate · Fall 2004

Machine Vision provides an intensive introduction to the process of generating a symbolic description of an environment from an image. Lectures describe the physics of image formation, motion vision, and recovering shapes from shading. Binary image processing and filtering are presented as preprocessing steps. Further topics include photogrammetry, object representation alignment, analog VLSI and computational vision. Applications to robotics and intelligent machine interaction are discussed.

Details →

6.803 · Undergraduate · Spring 2019

This course analyzes seminal work directed at the development of a computational understanding of human intelligence, such as work on learning, language, vision, event representation, commonsense reasoning, self reflection, story understanding, and analogy. It reviews visionary ideas of Turing, Minsky, and other influential thinkers and examines the implications of work on brain scanning, developmental psychology, and cognitive psychology. There is an emphasis on discussion and analysis of orig…

Details →

6.805 · Undergraduate · Fall 2005

<p>This course considers the interaction between law, policy, and technology as they relate to the evolving controversies over control of the Internet. In addition, there will be an in-depth treatment of privacy and the notion of “transparency” – regulations and technologies that govern the use of information, as well as access to information. Topics explored will include:</p> <ul> <li>Legal Background for Regulation of the Internet</li> <li>Fourth Amendment Law and Electronic Surveillance</li>…

Details →

6.811 · Undergraduate · Fall 2014

6.811: Principles and Practice of Assistive Technology (PPAT) is an interdisciplinary, project-based course, centered around a design project in which small teams of students work closely with a person with a disability in the Cambridge area to design a device, piece of equipment, app, or other solution that helps them live more independently.

Details →

6.820 · Undergraduate · Fall 2015

This course offers a comprehensive introduction to the field of program analysis. It covers some of the major forms of program analysis including Type Checking, Abstract Interpretation and Model Checking. For each of these, the course covers the underlying theories as well as modern techniques and applications.

Details →

6.821 · Graduate · Fall 2002

6.821 teaches the principles of functional, imperative, and logic programming languages. Topics covered include: meta-circular interpreters, semantics (operational and denotational), type systems (polymorphism, inference, and abstract types), object oriented programming, modules, and multiprocessing. The course involves substantial programming assignments and problem sets as well as a significant amount of reading. The course uses the Scheme+ programming language for all of its assignments.

Details →

6.823 · Graduate · Fall 2005

6.823 is a course in the department’s “Computer Systems and Architecture” concentration. 6.823 is a study of the evolution of computer architecture and the factors influencing the design of hardware and software elements of computer systems. Topics may include: instruction set design; processor micro-architecture and pipelining; cache and virtual memory organizations; protection and sharing; I/O and interrupts; in-order and out-of-order superscalar architectures; VLIW machines; vector supercomp…

Details →

6.824 · Graduate · Spring 2006

This course covers abstractions and implementation techniques for the design of distributed systems. Topics include: server design, network programming, naming, storage systems, security, and fault tolerance. The assigned readings for the course are from current literature. This course is worth 6 Engineering Design Points.

Details →

6.825 · Graduate · Fall 2002

<p>6.825 is a graduate-level introduction to artificial intelligence. Topics covered include: representation and inference in first-order logic, modern deterministic and decision-theoretic planning techniques, basic supervised learning methods, and Bayesian network inference and learning.</p> <p>This course was also taught as part of the Singapore-MIT Alliance (SMA) programme as course number SMA 5504 (Techniques in Artificial Intelligence).</p>

Details →

6.826 · Graduate · Spring 2002

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.

Details →

6.827 · Graduate · Fall 2002

<p>The topics covered in this course include:</p> <ul> <li>Languages and compilers to exploit multithreaded parallelism</li> <li>Implicit parallel programming using functional languages and their extensions</li> <li>Higher-order functions, non-strictness, and polymorphism</li> <li>Explicit parallel programming and nondeterminism</li> <li>The lambda calculus and its variants</li> <li>Term rewriting and operational semantics</li> <li>Compiling multithreaded code for symmetric multiprocessors and …

Details →

6.828 · Graduate · Fall 2012

This course studies fundamental design and implementation ideas in the engineering of operating systems. Lectures are based on a study of UNIX and research papers. Topics include virtual memory, threads, context switches, kernels, interrupts, system calls, interprocess communication, coordination, and the interaction between software and hardware. Individual laboratory assignments involve implementation of a small operating system in C, with some x86 assembly.

Details →

6.829 · Graduate · Fall 2002

<p>How does the global network infrastructure work and what are the design principles on which it is based? In what ways are these design principles compromised in practice? How do we make it work better in today’s world? How do we ensure that it will work well in the future in the face of rapidly growing scale and heterogeneity? And how should Internet applications be written, so they can obtain the best possible performance both for themselves and for others using the infrastructure? These ar…

Details →

6.830 · Graduate, Undergraduate · Fall 2010

This course relies on primary readings from the database community to introduce graduate students to the foundations of database systems, focusing on basics such as the relational algebra and data model, schema normalization, query optimization, and transactions. It is designed for students who have taken 6.033 (or equivalent); no prior database experience is assumed, though students who have taken an undergraduate course in databases are encouraged to attend.

Details →

6.831 · Graduate · Spring 2011

6.831/6.813 examines human-computer interaction in the context of graphical user interfaces. The course covers human capabilities, design principles, prototyping techniques, evaluation techniques, and the implementation of graphical user interfaces. Deliverables include short programming assignments and a semester-long group project. Students taking the graduate version also have readings from current literature and additional assignments.

Details →

6.832 · Graduate · Spring 2022

<p>Robots today move far too conservatively, using control systems that attempt to maintain full control authority at all times. Humans and animals move much more aggressively by routinely executing motions which involve a loss of instantaneous control authority. Controlling nonlinear systems without complete control authority requires methods that can reason about and exploit the natural dynamics of our machines.</p> <p>This course introduces nonlinear dynamics and control of underactuated mec…

Details →

6.832 · Graduate · Spring 2009

<p>Robots today move far too conservatively, using control systems that attempt to maintain full control authority at all times. Humans and animals move much more aggressively by routinely executing motions which involve a loss of instantaneous control authority. Controlling nonlinear systems without complete control authority requires methods that can reason about and exploit the natural dynamics of our machines.</p> <p>This course discusses nonlinear dynamics and control of underactuated mech…

Details →

6.837 · Undergraduate · Fall 2012

This course provides introduction to computer graphics algorithms, software and hardware. Topics include: ray tracing, the graphics pipeline, transformations, texture mapping, shadows, sampling, global illumination, splines, animation and color. This course offers 6 Engineering Design Points in MIT’s EECS program.

Details →

6.838 · Graduate · Fall 2002

Animation is a compelling and effective form of expression; it engages viewers and makes difficult concepts easier to grasp. Today’s animation industry creates films, special effects, and games with stunning visual detail and quality. This graduate class will investigate the algorithms that make these animations possible: keyframing, inverse kinematics, physical simulation, optimization, optimal control, motion capture, and data-driven methods. Our study will also reveal the shortcomings of the…

Details →

6.844 · Graduate · Spring 2003

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 f…

Details →

6.845 · Graduate · Fall 2010

This course is an introduction to quantum computational complexity theory, the study of the fundamental capabilities and limitations of quantum computers. Topics include complexity classes, lower bounds, communication complexity, proofs, advice, and interactive proof systems in the quantum world. The objective is to bring students to the research frontier.

Details →

6.849 · Graduate · Fall 2012

<p>This course focuses on the algorithms for analyzing and designing geometric foldings. Topics include reconfiguration of foldable structures, linkages made from one-dimensional rods connected by hinges, folding two-dimensional paper (origami), and unfolding and folding three-dimensional polyhedra. Applications to architecture, robotics, manufacturing, and biology are also covered in this course.</p> Acknowledgments <p>Thanks to videographers Martin Demaine and Jayson Lynch.</p>

Details →

6.851 · Graduate · Spring 2012

<p>Data structures play a central role in modern computer science. You interact with data structures even more often than with algorithms (think Google, your mail server, and even your network routers). In addition, data structures are essential building blocks in obtaining efficient algorithms. This course covers major results and current directions of research in data structure.</p> Acknowledgments <p>Thanks to videographers Martin Demaine and Justin Zhang.</p>

Details →

6.852J · Graduate · Fall 2009

<p>Distributed algorithms are algorithms designed to run on multiple processors, without tight centralized control. In general, they are harder to design and harder to understand than single-processor sequential algorithms. Distributed algorithms are used in many practical systems, ranging from large computer networks to multiprocessor shared-memory systems. They also have a rich theory, which forms the subject matter for this course.</p> <p>The core of the material will consist of basic distri…

Details →

6.854J · Graduate · Fall 2008

This is a graduate course on the design and analysis of algorithms, covering several advanced topics not studied in typical introductory courses on algorithms. It is especially designed for doctoral students interested in theoretical computer science.

Details →

6.854J · Graduate · Fall 2005

This course is a first-year graduate course in algorithms. Emphasis is placed on fundamental algorithms and advanced methods of algorithmic design, analysis, and implementation. Techniques to be covered include amortization, randomization, fingerprinting, word-level parallelism, bit scaling, dynamic programming, network flow, linear programming, fixed-parameter algorithms, and approximation algorithms. Domains include string algorithms, network optimization, parallel algorithms, computational g…

Details →

6.856J · Graduate · Fall 2002

This course examines how randomization can be used to make algorithms simpler and more efficient via random sampling, random selection of witnesses, symmetry breaking, and Markov chains. Topics covered include: randomized computation; data structures (hash tables, skip lists); graph algorithms (minimum spanning trees, shortest paths, minimum cuts); geometric algorithms (convex hulls, linear programming in fixed or arbitrary dimension); approximate counting; parallel algorithms; online algorithm…

Details →

6.857 · Graduate · Spring 2014

<em>6.857</em> <em>Network and Computer Security</em>&nbsp;is an upper-level undergraduate, first-year graduate course on network and computer security. It fits within the Computer Systems and Architecture Engineering concentration.

Details →

6.858 · Graduate · Fall 2014

6.858 Computer Systems Security is a class about the design and implementation of secure computer systems. Lectures cover threat models, attacks that compromise security, and techniques for achieving security, based on recent research papers. Topics include operating system (OS) security, capabilities, information flow control, language security, network protocols, hardware security, and security in web applications.

Details →

6.864 · Graduate · Fall 2005

This course is a graduate introduction to natural language processing - the study of human language from a computational perspective. It covers syntactic, semantic and discourse processing models, emphasizing machine learning or corpus-based methods and algorithms. It also covers applications of these methods and models in syntactic parsing, information extraction, statistical machine translation, dialogue systems, and summarization. The subject qualifies as an Artificial Intelligence and Appli…

Details →

6.867 · Graduate · Fall 2006

6.867 is an introductory course on machine learning which gives an overview of many concepts, techniques, and algorithms in machine learning, beginning with topics such as classification and linear regression and ending up with more recent topics such as boosting, support vector machines, hidden Markov models, and Bayesian networks. The course will give the student the basic ideas and intuition behind modern machine learning methods as well as a bit more formal understanding of how, why, and wh…

Details →

6.868J · Graduate · Fall 2011

This course is an introduction to the theory that tries to explain how minds are made from collections of simpler processes. It treats such aspects of thinking as vision, language, learning, reasoning, memory, consciousness, ideals, emotions, and personality. It incorporates ideas from psychology, artificial intelligence, and computer science to resolve theoretical issues such as wholes vs. parts, structural vs. functional descriptions, declarative vs. procedural representations, symbolic vs. c…

Details →

6.871 · Graduate · Spring 2005

This course covers the development of programs containing a significant amount of knowledge about their application domain. The course includes a brief review of relevant AI techniques; case studies from a number of application domains, chosen to illustrate principles of system development; a discussion of technical issues encountered in building a system, including selection of knowledge representation, knowledge acquisition, etc.; and a discussion of current and future research. The course al…

Details →

6.875 · Graduate · Spring 2005

This course features a rigorous introduction to modern cryptography, with an emphasis on the fundamental cryptographic primitives of public-key encryption, digital signatures, pseudo-random number generation, and basic protocols and their computational complexity requirements.

Details →

6.876J · Graduate · Spring 2003

The topics covered in this course include interactive proofs, zero-knowledge proofs, zero-knowledge proofs of knowledge, non-interactive zero-knowledge proofs, secure protocols, two-party secure computation, multiparty secure computation, and chosen-ciphertext security.

Details →

6.877J · Graduate · Fall 2005

<p>Why has it been easier to develop a vaccine to eliminate polio than to control influenza or AIDS? Has there been natural selection for a ’language gene’? Why are there no animals with wheels? When does ‘maximizing fitness’ lead to evolutionary extinction? How are sex and parasites related? Why don’t snakes eat grass? Why don’t we have eyes in the back of our heads? How does modern genomics illustrate and challenge the field?</p> <p>This course analyzes evolution from a computational, modelin…

Details →

6.881 · Graduate · Spring 2005

<p>Most algorithms in computer vision and image analysis can be understood in terms of two important components: a representation and a modeling/estimation algorithm. The representation defines what information is important about the objects and is used to describe them. The modeling techniques extract the information from images to instantiate the representation for the particular objects present in the scene. In this seminar, we will discuss popular representations (such as contours, level se…

Details →

6.881 · Graduate · Spring 2016

With the growing availability and lowering costs of genotyping and personal genome sequencing, the focus has shifted from the ability to obtain the sequence to the ability to make sense of the resulting information. This course is aimed at exploring the computational challenges associated with interpreting how sequence differences between individuals lead to phenotypic differences in gene expression, disease predisposition, or response to treatment.

Details →

6.883 · Graduate · Fall 2005

6.883 is a graduate seminar that investigates a variety of program analysis techniques that address software engineering tasks. Static analysis topics include abstract interpretation (dataflow), type systems, model checking, decision procedures (SAT, BDDs), theorem-proving. Dynamic analysis topics include testing, fault isolation (debugging), model inference, and visualization. While the course focuses on the design and implementation of programming tools, the material will be useful to anyone …

Details →

6.883 · Graduate · Spring 2006

<p>This course is broad, covering a wide range of topics that have to do with the post-pc era of computing. It is a hands-on project course that also includes some foundational subjects. Students will program iPAQ handheld computers, cell phones (series 60 phones), speech processing, vision, Cricket location systems, GPS, and more. Most of the programming will be using Python®, but Python® can be learned and mastered during the course.</p> <p>This course was also taught as part of the Singapore…

Details →

6.884 · Graduate · Spring 2005

This course is offered to graduates and is a project-oriented course to teach new methodologies for designing multi-million-gate CMOS VLSI chips using high-level synthesis tools in conjunction with standard commercial EDA tools. The emphasis is on modular and robust designs, reusable modules, correctness by construction, architectural exploration, and meeting the area, timing, and power constraints within standard cell and FPGA frameworks.

Details →

6.890 · Graduate · Fall 2014

6.890 Algorithmic Lower Bounds: Fun with Hardness Proofs is a class taking a practical approach to proving problems can’t be solved efficiently (in polynomial time and assuming standard complexity-theoretic assumptions like P&nbsp;≠&nbsp;NP). The class focuses on reductions and techniques for proving problems are computationally hard for a variety of complexity classes. Along the way, the class will create many interesting gadgets, learn many hardness proof styles, explore the connection betwee…

Details →

6.892 · Graduate · Spring 2004

<p>This course is a graduate level introduction to automatic discourse processing. The emphasis will be on methods and models that have applicability to natural language and speech processing.</p> <p>The class will cover the following topics: discourse structure, models of coherence and cohesion, plan recognition algorithms, and text segmentation. We will study symbolic as well as machine learning methods for discourse analysis. We will also discuss the use of these methods in a variety of appl…

Details →

6.895 · Graduate · Fall 2003

<p>6.895&nbsp;covers theoretical foundations of general-purpose parallel computing systems, from languages to architecture. The focus is on the algorithmic underpinnings of parallel systems. The topics for the class will vary depending on student interest, but will likely include multithreading, synchronization, race detection, load balancing, memory consistency, routing networks, message-routing algorithms, and VLSI layout theory. The class will emphasize randomized algorithms and probabilisti…

Details →

6.895 · Graduate · Fall 2004

<p>This course introduces the theory of error-correcting codes to computer scientists. This theory, dating back to the works of Shannon and Hamming from the late 40’s, overflows with theorems, techniques, and notions of interest to theoretical computer scientists. The course will focus on results of asymptotic and algorithmic significance. Principal topics include:</p> <ol> <li>Construction and existence results for error-correcting codes.</li> <li>Limitations on the combinatorial performance o…

Details →

6.896 · Graduate · Spring 2004

<p>6.896&nbsp;covers mathematical foundations of parallel hardware, from computer arithmetic to physical design, focusing on algorithmic underpinnings. Topics covered include: arithmetic circuits, parallel prefix, systolic arrays, retiming, clocking methodologies, boolean logic, sorting networks, interconnection networks, hypercubic networks, P-completeness, VLSI layout theory, reconfigurable wiring, fat-trees, and area-time complexity.</p> <p>This course was also taught as part of the Singapor…

Details →

6.897 · Graduate · Spring 2004

This course covers a number of advanced “selected topics” in the field of cryptography. The first part of the course tackles the foundational question of how to define security of cryptographic protocols in a way that is appropriate for modern computer networks, and how to construct protocols that satisfy these security definitions. For this purpose, the framework of “universally composable security” is studied and used. The second part of the course concentrates on the many challenges involved…

Details →

6.911 · Undergraduate · January IAP 2006

<p>This course presents a tutorial on the ToBI (Tones and Break Indices) system, for labelling certain aspects of prosody in Mainstream American English (MAE-ToBI). The course is appropriate for undergrad or grad students with background in linguistics (phonology or phonetics), cognitive psychology (psycholinguistics), speech acoustics or music, who wish to learn about the prosody of speech, i.e. the intonation, rhythm, grouping and prominence patterns of spoken utterances, prosodic differences…

Details →

6.912 · Undergraduate · January IAP 2006

This course is an introduction to copyright law and American law in general. Topics covered include: structure of federal law; basics of legal research; legal citations; how to use LexisNexis®; the 1976 Copyright Act; copyright as applied to music, computers, broadcasting, and education; fair use; Napster®, Grokster®, and Peer-to-Peer file-sharing; Library Access to Music Project; The 1998 Digital Millennium Copyright Act; DVDs and encryption; software licensing; the GNU® General Public License…

Details →

6.931 · Graduate · Spring 2008

<p>This course examines the role of the engineer as patent expert and as technical witness in court and patent interference and related proceedings. It discusses the rights and obligations of engineers in connection with educational institutions, government, and large and small businesses. It compares various manners of transplanting inventions into business operations, including development of New England and other U.S. electronics and biotechnology industries and their different types of inst…

Details →

6.933J · Graduate · Fall 2001

6.933J / STS.420J&nbsp;provides an integrated approach to engineering practice in the real world. Students of 6.933J / STS.420J&nbsp;research the life cycle of a major engineering project, new technology, or startup company from multiple perspectives: technical, economic, political, and cultural.&nbsp;Research involves interviewing inventors, reading laboratory notebooks, evaluating patents, and looking over the shoulders of engineers as they developed today’s technologies. This subject is for …

Details →

6.945 · Graduate · Spring 2009

<p>This course covers concepts and techniques for the design and implementation of large software systems that can be adapted to uses not anticipated by the designer. Applications include compilers, computer-algebra systems, deductive systems, and some artificial intelligence applications. Topics include combinators, generic operations, pattern matching, pattern-directed invocation, rule systems, backtracking, dependencies, indeterminacy, memoization, constraint propagation, and incremental ref…

Details →

6.972 · Graduate · Spring 2006

This research-oriented course will focus on algebraic and computational techniques for optimization problems involving polynomial equations and inequalities with particular emphasis on the connections with semidefinite optimization. The course will develop in a parallel fashion several algebraic and numerical approaches to polynomial systems, with a view towards methods that simultaneously incorporate both elements. We will study both the complex and real cases, developing techniques of general…

Details →

6.973 · Graduate · Spring 2006

This course presents a top-down approach to communications system design. The course will cover communication theory, algorithms and implementation architectures for essential blocks in modern physical-layer communication systems (coders and decoders, filters, multi-tone modulation, synchronization sub-systems). The course is hands-on, with a project component serving as a vehicle for study of different communication techniques, architectures and implementations. This year, the project is focus…

Details →

6.973 · Graduate · Spring 2003

The course examines optical and electronic processes in organic molecules and polymers that govern the behavior of practical organic optoelectronic devices. Electronic structure of a single organic molecule is used as a guide to the electronic behavior of organic aggregate structures. Emphasis is placed on the use of organic thin films in active organic devices including organic LEDs, solar cells, photodetectors, transistors, chemical sensors, memory cells, electrochromic devices, as well as xe…

Details →

6.974 · Graduate · Spring 2006

This course explores the fundamentals of optical and optoelectronic phenomena and devices based on classical and quantum properties of radiation and matter culminating in lasers and applications. Fundamentals include: Maxwell’s electromagnetic waves, resonators and beams, classical ray optics and optical systems, quantum theory of light, matter and its interaction, classical and quantum noise, lasers and laser dynamics, continuous wave and short pulse generation, light modulation; examples from…

Details →

6.976 · Graduate · Spring 2003

6.976 covers circuit and system level design issues of high speed communication systems, with primary focus being placed on wireless and broadband data link applications. Specific circuit topics include transmission lines, high speed and low noise amplifiers, VCO’s, and high speed digital circuits. Specific system topics include frequency synthesizers, clock and data recovery circuits, and GMSK transceivers. In addition to learning analysis skills for the above items, students will gain a signi…

Details →

6.977 · Graduate · Fall 2002

6.977 focuses on the physics of the interaction of photons with semiconductor materials. The band theory of solids is used to calculate the absorption and gain of semiconductor media. The rate equation formalism is used to develop the concepts of laser threshold, population inversion and modulation response. Matrix methods and coupled mode theory are applied to resonator structures such as distributed feedback lasers, tunable lasers and microring devices. The course is also intended to introduc…

Details →

6.977 · Graduate · Spring 2005

This course is offered to graduate students and addresses issues regarding ultrafast optics. Topics covered include: Generation, propagation and applications of ultrashort pulses (nano-, pico-, femto-, attosecond pulses); Linear and nonlinear pulse shaping processes: Optical solitons, Pulse compression; Laser principles: Single- and multi-mode laser dynamics, Q-switching, Active and passive mode-locking; Pulse characterization: Autocorrelation, FROG, SPIDER; Noise in mode-locked lasers and its …

Details →

6.1200J · Undergraduate · Spring 2024

This course covers elementary discrete mathematics for science and engineering, with a focus on mathematical tools and proof techniques useful in computer science. Topics include logical notation, sets, relations, elementary graph theory, state machines and invariants, induction and proofs by contradiction, recurrences, asymptotic notation, elementary analysis of algorithms, elementary number theory and cryptography, permutations and combinations, counting tools, and discrete probability.

Details →

6.1810 · Undergraduate · Fall 2023

This is a course on the design and implementation of operating systems and their use as a foundation for systems programming. Topics covered include virtual memory; file systems; threads; context switches; kernels; interrupts; system calls; and interprocess communication, coordination, and interaction between software and hardware. A multi-processor operating system for RISC-V, xv6, is used to illustrate these topics. Individual laboratory assignments involve extending the xv6 operating system,…

Details →

6.4210 · Undergraduate, Graduate · Fall 2022

<p>Introduces the fundamental algorithmic approaches for creating robot systems that can autonomously manipulate physical objects in unstructured environments such as homes and restaurants. Topics include perception (including approaches based on deep learning and approaches based on 3D geometry), planning (robot kinematics and trajectory generation, collision-free motion planning, task-and-motion planning, and planning under uncertainty), as well as dynamics and control (both model-based and l…

Details →

6.4590 · Undergraduate, Graduate · Fall 2024

<p>In this class, we will consider the interaction between law, policy, and technology as they relate to the evolving controversies over control of the internet. Our goal is for participants to develop the technical, legal, and rhetorical skills to analyze and participate in the evolution of the global public policy environments that govern human behavior on the internet.</p> <p>Topics include history of internet policy, the relationship between technical architecture and law, privacy, cybersec…

Details →

6.5060 · Graduate · Spring 2023

This is a research-oriented course on algorithm engineering, which will cover both the theory and practice of algorithms and data structures. Students will learn about models of computation, algorithm design and analysis, and performance engineering of algorithm implementations. We will study the design and implementation of sequential, parallel, cache-efficient, external-memory, and write-efficient algorithms for fundamental problems in computing. Many of the principles of algorithm engineerin…

Details →

6.5630 · Graduate · Fall 2023

This course is about the&nbsp;evolution&nbsp;of&nbsp;proofs&nbsp;in computer science.&nbsp;We will learn about the power of interactive&nbsp;proofs, multi-prover interactive&nbsp;proofs,&nbsp;and probabilistically checkable&nbsp;proofs.&nbsp; We will then show how to use cryptography to convert these powerful&nbsp;proof&nbsp;systems into computationally&nbsp;sound non-interactive arguments (SNARGs).

Details →

6.5660 · Undergraduate, Graduate · Spring 2024

<p>This course covers design and implementation of secure computer systems. The lectures cover attacks that compromise security as well as techniques for achieving security, based on recent research papers. Topics include operating system security, privilege separation, capabilities, language-based security, cryptographic network protocols, trusted hardware, and security in web applications and mobile phones. The labs involve implementing and compromising a web application that sandboxes arbitr…

Details →

6.5830 · Graduate, Undergraduate · Fall 2023

This course relies on primary readings from the database community to introduce graduate/undergraduate students to the foundations of database systems, focusing on basics such as the relational algebra and data model, schema normalization, query optimization, transactions, and other more advanced topics. No prior database experience is assumed, though students who have taken an undergraduate course in databases are encouraged to attend.

Details →

6.5950 · Graduate, Undergraduate · Spring 2025

<p>MIT’s Secure Hardware Design Class (6.5950/6.5951) is an open-source course that teaches students both how to attack modern CPUs and how to design architectures resilient to those attacks. Students gain hands-on experience hacking real processors and are taught various state-of-the-art hardware attacks and defenses.</p> <p>Secure Hardware Design is the culmination of years of effort by Prof. Yan and a team of students. The course philosophy involves three pillars⁠—Think, Play, Do:</p> <ul> <…

Details →

6.7220J · Graduate · Spring 2025

This course offers a unified analytical and computational approach to nonlinear optimization problems. Unconstrained optimization methods include gradient, conjugate direction, Newton, sub-gradient, and first-order methods. Constrained optimization methods include feasible directions, projection, interior point methods, and Lagrange multiplier methods. The curriculum covers convex analysis, Lagrangian relaxation, and nondifferentiable optimization, as well as applications in integer programming…

Details →

6.7960 · Undergraduate, Graduate · Fall 2024

This course covers the fundamentals of deep learning, including both theory and applications. Topics include neural net architectures (MLPs, CNNs, RNNs, graph nets, transformers), geometry and invariances in deep learning, backpropagation and automatic differentiation, learning theory and generalization in high dimensions, and applications to computer vision, natural language processing, and robotics.

Details →

6.8300 · Graduate · Spring 2025

<p>This course dives into advanced concepts in computer vision. A first focus is geometry in computer vision, including image formation, representation theory for vision, classic multi-view geometry, multi-view geometry in the age of deep learning, differentiable rendering, neural scene representations, correspondence estimation, optical flow computation, and point tracking.</p> <p>Next, we explore generative modeling and representation learning including image and video generation, guidance in…

Details →

6.S062 · Undergraduate · Fall 2023

The emergence of transformer architectures in 2017 triggered a breakthrough in machine learning that today lets anyone create computer-generated essays, stories, pictures, music, videos, and programs from high-level prompts in natural language, all without the need to code. That has stimulated fervent discussion among educators about the implications of generative AI systems for curricula and teaching methods across a broad range of subjects. It has also raised questions of how to understand bo…

Details →

6.S079 · Undergraduate · Spring 2013

<p>This course links clean energy sources and storage technology to energy consumption case studies to give students a concept of the full circle of production and consumption. Specifically, photovoltaic, organic photovoltaic, piezoelectricity and thermoelectricity sources are applied to electrophoresis, lab on a chip, and paper microfluidic applications–relevant analytical techniques in biology and chemistry. Hands-on experimentation with everyday materials and equipment help connect the theor…

Details →

6.S087 · Undergraduate · January IAP 2024

ChatGPT, Copilot, CLIP, Dall-E, Stable-Diffusion, AlphaFold, self-driving cars—is now the time that artificial intelligence (AI) lives up to all its hype? What’s the secret sauce behind these recent breakthroughs within AI? They’re called foundation models and generative AI, and it is changing everything. With the help of it, some believe that artificial general intelligence (AGI) has already been achieved. In this non-technical series of lectures, we will start with a short history of AI, then…

Details →

6.S095 · Undergraduate · January IAP 2018

This class builds a bridge between the recreational world of algorithmic puzzles (puzzles that can be solved by algorithms) and the pragmatic world of computer programming, teaching students to program while solving puzzles. Python syntax and semantics required to understand the code are explained as needed for each puzzle.

Details →

6.S096 · Undergraduate · January IAP 2013

<p>This course provides a fast-paced introduction to the C and C++ programming languages. You will learn the required background knowledge, including memory management, pointers, preprocessor macros, object-oriented programming, and how to find bugs when you inevitably use any of those incorrectly. There will be daily assignments and a small-scale individual project.</p> <p>This course is offered during the Independent Activities Period (IAP), which is a special 4-week term at MIT that runs fro…

Details →

6.S096 · Undergraduate · January IAP 2014

<p>This course is a fast-paced introduction to the C and C++ programming languages, with an emphasis on good programming practices and how to be an effective programmer in these languages. Topics include object-oriented programming, memory management, advantages of C and C++, optimization, and others. Students are given weekly coding assignments and a final project to hone their skills. Recommended for programmers with some background and experience in other languages.</p> <p>This course is off…

Details →

6.S191 · Undergraduate · January IAP 2020

This is MIT’s introductory course on deep learning methods with applications to computer vision, natural language processing, biology, and more! Students will gain foundational knowledge of deep learning algorithms and get practical experience in building neural networks in TensorFlow. Course concludes with a project proposal competition with feedback from staff and panel of industry sponsors. Prerequisites assume calculus (i.e. taking derivatives) and linear algebra (i.e. matrix multiplication…

Details →

6.S890 · Graduate · Fall 2024

<p>While machine learning techniques have had significant success in single-agent settings, an increasingly large body of literature has been studying settings involving several learning agents with different objectives. In these settings, standard training methods such as gradient descent are less successful and the simultaneous learning of the agents commonly leads to non-stationary and even chaotic system dynamics.&nbsp;</p> <p>Motivated by these challenges, this course presents the foundati…

Details →

6.S897 · Graduate · Spring 2019

This course introduces students to machine learning in healthcare, including the nature of clinical data and the use of machine learning for risk stratification, disease progression modeling, precision medicine, diagnosis, subtype discovery, and improving clinical workflows.

Details →

6.S980 · Graduate · Fall 2022

This course covers fundamental and advanced techniques in this field at the intersection of computer vision, computer graphics, and geometric deep learning. It will lay the foundations of how cameras see the world, how we can represent 3D scenes for artificial intelligence, how we can learn to reconstruct these representations from only a single image, how we can guarantee certain kinds of generalizations, and how we can train these models in a self-supervised way.

Details →

15.070J · Graduate · Fall 2013

This class covers the analysis and modeling of stochastic processes. Topics include measure theoretic probability, martingales, filtration, and stopping theorems, elements of large deviations theory, Brownian motion and reflected Brownian motion, stochastic integration and Ito calculus and functional limit theorems. In addition, the class will go over some applications to finance theory, insurance, queueing and inventory models.

Details →

15.072J · Graduate · Spring 2006

This class deals with the modeling and analysis of queueing systems, with applications in communications, manufacturing, computers, call centers, service industries and transportation. Topics include birth-death processes and simple Markovian queues, networks of queues and product form networks, single and multi-server queues, multi-class queueing networks, fluid models, adversarial queueing networks, heavy-traffic theory and diffusion approximations. The course will cover state of the art resu…

Details →

15.082J · Graduate · Fall 2010

15.082J/6.855J/ESD.78J is a graduate subject in the theory and practice of network flows and its extensions. Network flow problems form a subclass of linear programming problems with applications to transportation, logistics, manufacturing, computer science, project management, and finance, as well as a number of other domains. This subject will survey some of the applications of network flows and focus on key special cases of network flow problems including the following: the shortest path pro…

Details →

15.083J · Graduate · Fall 2009

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.

Details →

15.084J · Graduate · Spring 2004

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 a…

Details →

15.093J · Graduate · Fall 2009

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…

Details →

15.628J · Undergraduate · Spring 2013

This course is an intensive introduction to the U.S. law of intellectual property with major emphasis on patents, including what can be patented, the process of patent application, and the remedies for patent infringement.

Details →

18.098 · Undergraduate · January IAP 2008

This course teaches the art of guessing results and solving problems without doing a proof or an exact calculation. Techniques include extreme-cases reasoning, dimensional analysis, successive approximation, discretization, generalization, and pictorial analysis. Applications include mental calculation, solid geometry, musical intervals, logarithms, integration, infinite series, solitaire, and differential equations. <strong>(No epsilons or deltas are harmed by taking this course.)</strong> Thi…

Details →

18.335J · Graduate · Spring 2019

This course offers an advanced introduction to numerical analysis, with a focus on accuracy and efficiency of numerical algorithms. Topics include sparse-matrix/iterative and dense-matrix algorithms in numerical linear algebra (for linear systems and eigenproblems), floating-point arithmetic, backwards error analysis, conditioning, and stability. Other computational topics (e.g., numerical integration or nonlinear optimization) are also surveyed.

Details →

18.337J · Graduate · Fall 2011

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.

Details →

18.404J · Undergraduate, Graduate · Fall 2020

This course emphasizes computability and computational complexity theory. Topics include regular and context-free languages, decidable and undecidable problems, reducibility, recursive function theory, time and space measures on computation, completeness, hierarchy theorems, inherently complex problems, oracles, probabilistic computation, and interactive proof systems.

Details →

18.405J · Graduate · Spring 2016

This graduate-level course focuses on current research topics in computational complexity theory. Topics include: Nondeterministic, alternating, probabilistic, and parallel computation models; Boolean circuits; Complexity classes and complete sets; The polynomial-time hierarchy; Interactive proof systems; Relativization; Definitions of randomness; Pseudo-randomness and derandomizations;Interactive proof systems and probabilistically checkable proofs.

Details →

18.S190 · Undergraduate · Spring 2020

<p>This half-semester course introduces computational thinking through applications of data science, artificial intelligence, and mathematical models using the Julia programming language. This Spring 2020 version is a fast-tracked curriculum adaptation to focus on applications to COVID-19 responses.</p> <p>See the MIT News article Computational Thinking Class Enables Students to Engage in Covid-19 Response</p>

Details →

18.S191 · Undergraduate · Fall 2020

This is an introductory course on computational thinking. We use the Julia programming language to approach real-world problems in varied areas, applying data analysis and computational and mathematical modeling. In this class you will learn computer science, software, algorithms, applications, and mathematics as an integrated whole. Topics include image analysis, particle dynamics and ray tracing, epidemic propagation, and climate modeling.

Details →

21M.385 · Undergraduate · Fall 2016

This course explores audio synthesis, musical structure, human computer interaction (HCI), and visual presentation for the creation of interactive musical experiences. Topics include audio synthesis; mixing and looping; MIDI sequencing; generative composition; motion sensors; music games; and graphics for UI, visualization, and aesthetics. Weekly programming assignments in python are included. Student teams build an original, dynamic, and engaging interactive music system for their final projec…

Details →

22.611J · Graduate · Fall 2006

The plasma state dominates the visible universe, and is important in fields as diverse as Astrophysics and Controlled Fusion. Plasma is often referred to as “the fourth state of matter.” This course introduces the study of the nature and behavior of plasma. A variety of models to describe plasma behavior are presented.

Details →

22.611J · Graduate · Fall 2003

<p>In this course, students will learn about plasmas, the fourth state of matter. The plasma state dominates the visible universe, and is of increasing economic importance. Plasmas behave in lots of interesting and sometimes unexpected ways.</p> <p>The course is intended only as a first plasma physics course, but includes&nbsp;critical concepts needed for a foundation for further study. A solid undergraduate background in classical physics, electromagnetic theory including Maxwell’s equations, …

Details →

ESD.051J · Undergraduate · Fall 2012

Learn to produce great designs, be a more effective engineer, and communicate with high emotional and intellectual impact. This project based course gives students the ability to understand, contextualize, and analyze engineering designs and systems. By learning and applying design thinking, students will more effectively solve problems in any domain. Lectures focus on teaching a tested, iterative design process as well as techniques to sharpen creative analysis. Guest lectures from all discipl…

Details →

ESD.68J · Graduate · Spring 2006

This course provides an introduction to the technology and policy context of public communications networks, through critical discussion of current issues in communications policy and their historical roots. The course focuses on underlying rationales and models for government involvement and the complex dynamics introduced by co-evolving technologies, industry structure, and public policy objectives. Cases drawn from cellular, fixed-line, and Internet applications include evolution of spectrum…

Details →

HST.410J · Undergraduate · Spring 2007

This course is a project-based introduction to manipulating and characterizing cells and biological molecules using microfabricated tools. It is designed for first year undergraduate students. In the first half of the term, students perform laboratory exercises designed to introduce (1) the design, manufacture, and use of microfluidic channels, (2) techniques for sorting and manipulating cells and biomolecules, and (3) making quantitative measurements using optical detection and fluorescent lab…

Details →

HST.950J · Graduate · Spring 2003

<p>The focus of the course is on medical science and practice in the age of automation and the genome, both present and future.</p> <p>It ncludes an analysis of the computational needs of clinical medicine, a review systems and approaches that have been used to support those needs, and an examination of new technologies.</p>

Details →

HST.950J · Graduate · Fall 2010

Analyzes computational needs of clinical medicine reviews systems and approaches that have been used to support those needs, and the relationship between clinical data and gene and protein measurements. Topics: the nature of clinical data; architecture and design of healthcare information systems; privacy and security issues; medical expertsystems; introduction to bioinformatics. Case studies and guest lectures describe contemporary systems and research projects. Term project using large clinic…

Details →

HST.951J · Graduate · Spring 2003

<p>This course presents the main concepts of decision analysis, artificial intelligence and predictive model construction and evaluation in the specific context of medical applications. It emphasizes the advantages and disadvantages of using these methods in real-world systems and provides hands-on experience. Its technical focus is on decision support, knowledge-based systems (qualitative and quantitative), learning systems (including logistic regression, classification trees, neural networks,…

Details →

HST.951J · Graduate · Fall 2005

This course presents the main concepts of decision analysis, artificial intelligence, and predictive model construction and evaluation in the specific context of medical applications. The advantages and disadvantages of using these methods in real-world systems&nbsp;are emphasized, while students gain hands-on experience with application specific methods. The technical focus of the course includes decision analysis, knowledge-based systems (qualitative and quantitative), learning systems (inclu…

Details →

HST.953 · Graduate · Fall 2024

<p>HST.953 is a course about the practical considerations for operationalizing machine learning in healthcare settings. We begin the course with a focus on robust, private and fair machine learning (ML) using real retrospective healthcare data. We follow this with experiences in visualization (VIS) that target utility and clinical value. Finally, we explore the intermediate “implementation science” (IMP) tying together how real models might be potentially used through a visual system by practic…

Details →

IDS.505J · Graduate · Spring 2010

The course presents an in-depth interdisciplinary perspective of electric power systems, with regulation providing the link among the engineering, economic, legal and environmental viewpoints. Generation dispatch, demand response, optimal network flows, risk allocation, reliability of service, renewable energy sources, ancillary services, tariff design, distributed generation, rural electrification, environmental impacts and strategic sustainability issues will be among the topics addressed und…

Details →

MAS.865J · Graduate · Spring 2006

This is an advanced graduate course on quantum computation and quantum information, for which prior knowledge of quantum mechanics is required. Topics include quantum computation, advanced quantum error correction codes, fault tolerance, quantum algorithms beyond factoring, properties of quantum entanglement, and quantum protocols and communication complexity.

Details →

RES.6-001 · Undergraduate · Spring 2008

<p>Published in 1989 by Prentice-Hall, this book is a useful resource for educators and self-learners alike. The text is aimed at those who have seen Maxwell’s equations in integral and differential form and who have been exposed to some integral theorems and differential operators. A hypertext version of this textbook can be found here. An accompanying set of video demonstrations is available below.</p> <p>These video demonstrations convey electromagnetism concepts. The demonstrations are rela…

Details →

RES.6-001 · Undergraduate · Spring 2009

<p>First published in 1981 by MIT Press, <em>Continuum Electromechanics</em>, courtesy of MIT Press and used with permission, provides a solid foundation in electromagnetics, particularly conversion of energy between electrical and mechanical forms. Topics include:</p> <blockquote> <p>electrodynamic laws, electromagnetic forces, electromechanical kinematics, charge migration, convection, relaxation, magnetic diffusion and induction interactions, laws and approximations of fluid mechanics, stati…

Details →

RES.6-002 · Undergraduate · Spring 2008

This text is an introductory treatment on the junior level for a two-semester electrical engineering course starting from the Coulomb-Lorentz force law on a point charge. The theory is extended by the continuous superposition of solutions from previously developed simpler problems leading to the general integral and differential field laws. Often the same problem is solved by different methods so that the advantages and limitations of each approach becomes clear. Sample problems and their solut…

Details →

RES.6-003 · Undergraduate · Spring 2009

<p>First published in 1968 by John Wiley and Sons, Inc., <em>Electromechanical Dynamics</em> discusses the interaction of electromagnetic fields with media in motion. The subject combines classical mechanics and electromagnetic theory and provides opportunities to develop physical intuition. The book uses examples that emphasize the connections between physical reality and analytical models. Types of electromechanical interactions covered include rotating machinery, plasma dynamics, the electro…

Details →

RES.6-005 · Undergraduate · Spring 2008

<p>Lasers are essential to an incredibly large number of applications. Today, they are used in bar code readers, compact discs, medicine, communications, sensors, materials processing, computer printers, data processing, 3D-imaging, spectroscopy, navigation, non-destructive testing, chemical processing, color copiers, laser “shows”, and in the military. There is hardly a field untouched by the laser. But what exactly is so unique about lasers that makes them so effective?</p> <p>This brief vide…

Details →

RES.6-006 · Undergraduate · Spring 2008

<p>This resource contains demonstrations used to illustrate the theory and applications of lasers and optics. A detailed listing of the topics can be found below.</p> <p>Lasers today are being used in an ever-increasing number of applications. In fact, there is hardly a field that has not been touched by the laser. Lasers are playing key roles in the home, office, hospital, factory, outdoors, and theater, as well as in the laboratory.</p> <p>To learn about lasers and related optics, one usually…

Details →

RES.6-007 · Undergraduate · Spring 2011

<p>This course was developed in 1987 by the MIT Center for Advanced Engineering Studies. It was designed as a distance-education course for engineers and scientists in the workplace.</p> <p>Signals and Systems is an introduction to analog and digital signal processing, a topic that forms an integral part of engineering systems in many diverse areas, including seismic data processing, communications, speech processing, image processing, defense electronics, consumer electronics, and consumer pro…

Details →

RES.6-008 · Graduate · Spring 2011

<p>This course was developed in 1987 by the MIT Center for Advanced Engineering Studies. It was designed as a distance-education course for engineers and scientists in the workplace.</p> <p>Advances in integrated circuit technology have had a major impact on the technical areas to which digital signal processing techniques and hardware are being applied. A thorough understanding of digital signal processing fundamentals and techniques is essential for anyone whose work is concerned with signal …

Details →

RES.6-009 · Non-Credit · January IAP 2012

<p>This course is an introduction to data cleaning, analysis and visualization. We will teach the basics of data analysis through concrete examples. You will learn how to take raw data, extract meaningful information, use statistical tools, and make visualizations.</p> <p>This was offered as a non-credit course 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.</p>

Details →

RES.6-010 · Undergraduate · Spring 2013

Feedback control is an important technique that is used in many modern electronic and electromechanical systems. The successful inclusion of this technique improves performance, reliability, and cost effectiveness of many designs. In this series of lectures we introduce the analytical concepts that underlie classical feedback system design. The application of these concepts is illustrated by a variety of experiments and demonstration systems. The diversity of the demonstration systems reinforce…

Details →

RES.6-011 · Undergraduate · Fall 2014

In this book, Sanjoy Mahajan shows us that the way to master complexity is through insight rather than precision. Precision can overwhelm us with information, whereas insight connects seemingly disparate pieces of information into a simple picture. Unlike computers, humans depend on insight. Based on the author’s fifteen years of teaching at MIT, Cambridge University, and Olin College, <em>The Art of Insight in Science and Engineering</em> shows us how to build insight and find understanding, g…

Details →

RES.6-012 · Undergraduate · Spring 2018

<p>The tools of probability theory, and of the related field of statistical inference, are the keys for being able to analyze and make sense of data. These tools underlie important advances in many fields, from the basic sciences to engineering and management.</p> <p>This resource is a companion site to 6.041SC Probabilistic Systems Analysis and Applied Probability. It covers the same content, using videos developed for an edX version of the course.</p>

Details →

RES.6-013 · Undergraduate · Fall 2021

<em>Machine vision.&nbsp;Data&nbsp;wrangling.&nbsp;Reinforcement learning.</em> What do these terms even mean? In&nbsp;AI&nbsp;101, MIT researcher Brandon Leshchinskiy offers an introduction to artificial intelligence that’s designed specifically for those with little to no background in the subject. The workshop starts with a summary of key concepts in&nbsp;AI, followed by an interactive exercise where participants train their own algorithm. Finally, it closes with a summary of key takeaways a…

Details →

RES.6-033 · Undergraduate · Spring 2009

<p><em>Principles of Computer System Design: An Introduction</em> is published in two parts. Part I, containing chapters 1-6, is a traditional printed textbook published by Morgan Kaufman, an imprint of Elsevier. Part II, containing chapters 7-11, is available here as an open educational resource.</p> <p>This textbook, an introduction to the principles and abstractions used in the design of computer systems, is an outgrowth of notes written for 6.033 <em>Computer System Engineering</em> over a …

Details →