Software StudioThis course on software engineering covers design and implementation of medium-scale software systems, using web applications as a platform.
Laboratory in Software EngineeringThis course introduces concepts and techniques relevant to the production of large software systems.
Strobe Project LaboratoryThis is a laboratory experience course with a focus on photography, electronic imaging, and light measurement, much of it at short duration.
Micro/Nano Processing TechnologyThis course introduces the theory and technology of micro/nano fabrication.
Introductory Digital Systems Laboratory6.111 is reputed to be one of the most demanding classes at MIT, exhausting many students’ time and creativity.
Introductory Digital Systems Laboratory6.111 consists of lectures and labs on digital logic, flipflops, PALs, counters, timing, synchronization, finite-state machines, and microprogrammed systems.
Introductory Analog Electronics Laboratory6.101 is an introductory experimental laboratory that explores the design, construction, and debugging of analog electronic circuits.
Algorithms for Computational BiologyThis course is offered to undergraduates and addresses several algorithmic challenges in computational biology.
Introduction to C++This is a fast-paced introductory course to the C++ programming language.
Bioinformatics and ProteomicsThis interdisciplinary course provides a hands-on approach to students in the topics of bioinformatics and proteomics.
Java Preparation for 6.170This course focuses on introducing the language, libraries, tools and concepts of Javaᵀᴹ.
Introduction to Programming in JavaThis course is an introduction to software engineering, using the Java™ programming language. It covers concepts useful to 6.005
Hands-On Introduction to Electrical Engineering Lab SkillsThis 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.
Building Programming Experience: A Lead-In to 6.001This course will serve as a two-week aggressively gentle introduction to programming for those students who lack background in the field.
Introduction to C Memory Management and C++ Object-Oriented ProgrammingEver hang your head in shame after your Python program wasn’t as fast as your friend’s C program?
Practical Programming in CThis 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.
Great Ideas in Theoretical Computer ScienceThis course provides a challenging introduction to some of the central ideas of theoretical computer science.
Introduction to Convex OptimizationThis 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.
Introduction to Electronics, Signals, and MeasurementThe course is designed to provide a practical - hands on - introduction to electronics with a focus on measurement and signals.
Introduction to MATLABThis is an accelerated introduction to MATLAB® and its popular toolboxes.
Computational BiologyThis course covers the algorithmic and machine learning foundations of computational biology combining theory with practice.
Design and Analysis of AlgorithmsTechniques for the design and analysis of efficient algorithms, emphasizing methods useful in practice.
Design and Analysis of AlgorithmsThis is an intermediate algorithms course with an emphasis on teaching techniques for the design and analysis of efficient algorithms, emphasizing methods of application.
Introduction to Algorithms (SMA 5503)This course teaches techniques for the design and analysis of efficient algorithms, emphasizing methods useful in practice.