# Extra-Departmental Subjects

Previous SMArchS and PhD students have found these offerings to be useful for their degrees.

## Civil and Environmental Engineering (Course 1)

1

**1.000 Computer Programming for Scientific and Engineering Applications**

*R. Juanes*

Presents the fundamentals of computing and computer programming (procedural and object-oriented programming) in an engineering context. Introduces logical operations, floating-point arithmetic, data structures, induction, iteration, and recursion. Computational methods for interpolation, regression, root finding, sorting, searching, and the solution of linear systems of equations and ordinary differential equations. Control of sensors and visualization of scientific data. Draws examples from engineering and scientific applications. Students use the MATLAB programming environment to complete weekly assignments.

1.001 Engineering Computation and Data Science

J. Williams

Presents fundamentals of computing and programming in an engineering context with an emphasis on data science. Introduces basics of web computing, data structures, and techniques for data analysis. Includes filtering, linear regression, simple machine learning (clustering and classifiers), and visualization. Surveys techniques for ingesting, processing, analyzing, and visualizing engineering data from a range of fields, including geo-spatial, environment, infrastructure, city dynamics, and numerical experiments. Students use JavaScript and HTML5 programming language to complete weekly assignments. Students taking graduate version complete additional assignments.

*Comments:*

*"I don't recommend this class. They advertise the class well in the first few lectures, but don't be fooled. Occasionally you learn something useful, but overall the class is very disorganized. Otherwise, it's not a very hard class, but it's not very worthwhile either." (2018)*

*“A quick note regarding previous comments. As far as I know, Prof. Kocur does not offer this class anymore. I heard some negative comments from this years students about the new version & professor.” (2014)*

*“My semester was taught by George Kocur and his teaching is very effective. Sadly, Kocur has retired. New 1.00 became Java script language, note that JS is a dynamically typed language and I think is not as suitable as Java for beginner programmers. UG style P-set assignment annoys you by catching your spelling mistakes. Overall recommendation is positive, not sure after the course became JS.” (2014)*

*“Recommend for anyone interested in software development, scripting. Also for the ones that not have a prior programming experience.Professor is good in teaching, problem sets and exams are not hard, TA s are helping a lot.” (2013)*

*“This is a very good and very well organized class. I took the class with very little programming experience and I feel I have learned all basic concepts and programming methods I need. It is a very intensive and time-consuming class and I found the problem-sets and exams quite difficult. However, if you invest the time needed and take advantage of the recitations you will manage to tackle all problems. The Professor and TAs were all very friendly and helpful so in the end not only I learned how to program but I also enjoyed the class. I definitely recommend it.” (2013)*

**1.022 Introduction to Networks Models**

*A. Jadbabaie*

Provides an introduction to complex networks, their structure, and function, with examples from engineering, applied mathematics and social sciences. Topics include spectral graph theory, notions of centrality, random graph models, contagion phenomena, cascades and diffusion, and opinion dynamics.

**1.124J Software and Computation for Simulation**

*Prof. J. Williams*

Modern software development techniques and algorithms for engineering computation. Hands-on investigation of computational and software techniques for simulating engineering systems, such as sensor networks, traffic networks, and discrete simulation of materials using atomistic and particle methods. Covers data structures and algorithms for modeling, analysis, and visualization in the setting of multi-core and distributed computing. Treatment of basic topics, such as queuing, sorting and search algorithms, and more advanced numerical techniques based on state machines and distributed agents. Foundation for in-depth exploration of image processing, optimization, finite element and particle methods, computational materials, discrete element methods, and network methods. Knowledge of an object-oriented language required.

**1.125 Artitecting and Engineering Software Systems**

*Prof. J. Williams*

*Software architecting and design of cloud-based software-intensive systems. Targeted at future engineering managers who must understand both the business and technical issues involved in architecting enterprise-scale systems. Student teams confront technically challenging problems. Introduces modern dev-ops concepts and cloud-computing, including cloud orchestration for machine learning. Also discusses cyber-security issues of key management and use of encrypted messaging for distributed ledgers, e.g., blockchain. Students face problem solving in an active learning lab setting, completing in-class exercises and weekly assignments leading to a group project. Some programming experience preferred. Enrollment limited.*

## Mechanical Engineering (Course 2)

1

**2.007 Design and Manufacturing **

*D. Frey, S. Kim, A. Winter*

2.007 is a student’s chance to use the material from 8.01 and 2.001 to turn their creative ideas into a robust working machine! This is what engineers do and it’s the student’s chance to demonstrate their engineering prowess! A student’s grade is based on how well they meet weekly milestones (documented with a design notebook), a substantial mid-term closed book exam, the quality of their machine’s engineering and manufacture, website and written final reflections. The real grade, however, comes from the better job offers the student is likely to get when they show off their design notebook, website and machine at job interviews!

*Comment:*

*“This class shows you many basic principles in mechanical systems. Great for people who want an intro to gears, pulley, motors, torque calculation etc. Lab contains a big project that makes a hill-climbing, flag collecting robot. That is very time consuming. G credit not available. Recommended to take as listener.” (2014)*

**2.089J Computational Geometry **

*Staff*

Note (2015): The status of this subject is “Not offered regularly” - This subject has been offered only once. From personal email exchange with Prof. Patrikalakis, this class will not be offered in 2015-2016 but he is always open to help anyone who is interested in studying the subject independently. There are online notes in the MIT Open Courseware Website.

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

**2.093 Finite Element Analysis of Solids and Fluids I **

(Not offered 2016-17, Not offered 2018-2019)

*Staff*

Finite element methods for analysis of steady-state and transient problems in solid, structural, fluid mechanics, and heat transfer. Presents finite element methods and solution procedures for linear and nonlinear analyses using largely physical arguments. Demonstrates finite element analyses. Homework involves use of an existing general purpose finite element analysis program. Term project required for graduate students. Modeling of problems and interpretation of numerical results.

*Comments:*

*“Discretization is one of the basic methods in digital computation. Designer use it all the time when using a CFD software. This class introduces a very basic principle of the finite element analysis (FEA) on how solid and fluid elements behave based on a different properties and structural configuration. At the end of the class, you will understand the basic of FEA and might see the world quite differently, as it?s all about an assemblage of discrete elements. Although we were learning much about solid rather than fluid (heat, liquid, air etc), I guess at some point, you can also use it to analyze other context in general, such as movement in urban traffic analysis, post occupancy behavior, site analysis and other problems in design. You make your own variable for the force, stress, strain, displacement, degree of freedom and material properties, if you will. Or, maybe write your own FEA code as a Rhino plug-in.*

*Prof. Jurgen Bathe gave a very gentle introduction with his conventional yet foolproof lecturing style: “no laptop, take notes and do your homework.” However, he will assume that the student already familiar with some of the basic classic mechanics problems and basic calculus (differentiation, integral, vector, and matrices). So, it would be very helpful for you to refresh this high school math prior to taking this class. Otherwise, the weekly assignment will gonna be a painful. There is a term project for the second half of the class, in which you can exercise your own interest in FEA.”*

**2.739J Product Design and Development **

*Staff*

Covers modern tools and methods for product design and development. The cornerstone is a project in which teams of manag=ement, engineering, and industrial design students conceive, design, and prototype a physical product. Class sessions employ cases and hands-on exercises to reinforce the key ideas. Topics include product planning, identifying customer needs, concept generation, product architecture, industrial design, concept design, robust design, and green design practice.

## Materials Science and Engineering (Course 3)

1

**3.032 Mechanical Behavior of Materials **

*L. Gibson*

Basic concepts of solid mechanics and mechanical behavior of materials, stress-strain relationships, stress transformation, elasticity, plasticity and fracture. Case studies include materials selection for bicycle frames, stress shielding in biomedical implants; residual stresses in thin films; and ancient materials. Lab experiments and demonstrations give hands-on experience of the physical concepts at a variety of length scales. Use of facilities for measuring mechanical properties including standard mechanical tests, bubble raft models, atomic force microscopy and nanoindentation.

http://stellar.mit.edu/S/course/3/fa13/3.032/

*Comment:*

*“This class is in-depth survey of deformation mechanisms of materials under forces in both macro scale and inter-molecular interactions. It assumes that students are friends with math and physics equations and descriptions, but I picked up a lot of that on the way, wiki was my best friend. This class gives a good understanding of how materials are treated in material science and engineering, how characterization and quantification of material behavior happens for design and material innovation, and what methods are used. Prof. Gibson’s research focuses on biomaterials and cellular solids, and this is included in the last part of the class.*

*To me it opened up a new angle on design fabrication from the materials perspective and also allowed to develop common language with material scientist and engineers, communication skills that are necessary for my research.*

*However, it is probably not the best class if you want to learn about different material classes and properties and develop basic design intuition about materials.*

*There is an option to take this class as a listener, but from my personal experience, the only way to learn something in this class is to actually do all the assignment, lab work, and the exams (there are three throughout the semester). It is a lot of work, but Prof. Lorna Gibson is an amazing lecturer, engaging and inspiring, and all the material is available and very well organized: all her lectures are available online and can be watched outside of regular lecture times, professor’s lecture notes are on stellar, TA helps with the psets.” (2014)*

## Architecture (Course 4)

1

**4.s50 Special Subject: Architectural Computation**

*Staff*

Project-based class on basic data visualization. The lectures focus on general design principles that most designers are already familar with. There aren’t many coding or technical related lectures, so don’t expect a comprehensive course on data visualization. The class is taught in P5, a Javascript library based on the Processing environment built for web development. We had to turn in 4 small projects and a larger final project. If you have a specific data visualization project that you would like to create, this might be an appropriate class. If you are looking for a better structured course and are more rigorous about data visualization check out Harvard’s CS17. This is an undergraduate class, but you can get graduate credit if you speak with the instructors. (2016)

**4.110 Design Across Scales, Disciplines and Problem Contexts**

(Not offered 2018-2019)*Staff*

Inspired by Charles and Ray Eames’ canonical “Powers of Ten”, this course explores the relationship between science and engineering through the lens of Design. It examines how transformations in science and technology have influenced design thinking and vice versa. It offers interdisciplinary tools and methods to represent, model, design and fabricate objects and systems across physical, environmental, economical and social scales. Structured as core lectures and labs, the course is organized by “systems” such as Design of Data, Design of Innovation and Design of Life. Leaders in the fields of Design, Big Data, Synthetic Biology, New Materials and Digital Fabrication will contribute through guest lectures. We will learn design tools - digital and analog; we will develop design methods - disciplinary and anti-disciplinary and we will design things - material and immaterial. Exciting note: this year DASAD will include a special module focusing on DNA design and assembly.

*Comment:*

*"Very broad survey class analyzing design in a variety of different fields. Lectures are broken up into different sections (digital fabrication, biology, etc.). Neri brings in a stellar set of guest speakers - the class is worth taking as a lecture series alone. There is also a lab and final project components, which attempt to teach basic design skills - these are much less successful." *

**4.140J/MAS.863J How to Make (Almost) Anything**

*N. Gershenfeld,*

Provides a practical hands-on introduction to digital fabrication, including CAD/CAM/CAE, NC machining, 3-D printing and scanning, molding and casting, composites, laser and waterjet cutting, PCB design and fabrication; sensors and actuators; mixed-signal instrumentation, embedded processing, and wired and wireless communications. Develops an understanding of these capabilities through projects using them individually and jointly to create functional systems.

*Comments:*

*“This course is a must take for anyone looking to gain basic skills in circuits, programming, electronics, and fabrication. I am happy I took it my first semester since I developed a skill set (and confidence!) to tackle projects involving electronics and fabrication.” (2014)*

*“It takes a great amount of time and effort. Only recommend for the ones interested in fabrication and hardware development. Lectures do not aim on teaching but more on introduction to a lot of different concepts. Skills are learned in the fab lab.” (2013)*

*“This course is very intensive and will take most of your time, so you have to take into consideration that you will have to give up other courses that you interested in them.*

*The course deals with two main topics:*

*1. Fabrication methods such as laser cutting, molding and casting, CNC machines, water jet cutter and 3D printing.*

*2. Sensors and embedded programing.*

*The course gives a great introduction to fabrication techniques, almost every week you learn and implement one method, as I wrote down, it is very intensive course. However, as for embedded programing, if you never wrote a line of code in your life, you are expected to know how to do it, or to learn how to do it by yourself very fast, which is almost impossible. You will not learn to write code properly like in 6.00 or 1.00, so take this fact into consideration.*

*The course gives a great introduction to what is going on in the Media Lab. If sensors is your thing, this would be a great course for you, if you already know how to program. If you interested mainly in fabrication maybe you should look for other courses that deals purely with fabrication.” (2013)*

*“This class provides an overview of leading fabrication tools and methods, interestingly combined with theoretical concepts of technological development. It is a "firehose" class, but well worth it. No prior experience is explicitly necessary, but you should be prepared to tackle software, electronic hardware, and mechanical problems.”*

*“Very interesting but also very time consuming! In the beginning I did not understand anything what Neil was talking about in class. He starts completely without any introductions.”*

*“I enjoyed the class because I like fabrication and it is nice to work in his lab. He paid for all materials we needed including motors and RP prints. For xxx and me it has been a bit harder because we couldn't get shop training for the workshop, so we had to ask media lab students to help us producing parts. The class is about how to make new RP machines. In the beginning we aimed to make machines which make copies of themselves but in the end it doesn't really matter and other ideas have been OK as well. I recommend it.”*

*I took this class my first semester and I loved it! The course focuses on digital fabrication methods and electronic prototyping. It is a lot of work, but if you are good at managing your time, it's very do-able. To give some reference point, I took this class with another project class and a reading class. The workload was manageable until the last month of the semester when all the project classes got super intense. I recommend brainstorming final project ideas as early as possible so you are not scrambling at the last minute. Do not expect the lectures to help you learn specific techniques–the lecture style will mostly inform you of all the things you don't know so you can go out on your own to learn them. There are also several different course listings for the same subject (one in CBA, ARCH, EECS, and Harvard), so be aware of that when you choose your section. (2017)*

**4.246 DesignX Accelerator**

*Staff*

Students work in entrepreneurial teams to advance innovative ideas, products, services, and firms oriented to design and the built environment. Lectures, demonstrations, and presentations are supplemented by workshop time, when teams interact individually with instructors and industry mentors, and by additional networking events and field trips. At the end of the term, teams pitch for support of their venture to outside investors, accelerators, companies, or cities. Limited to 30; preference to students in DesignX Program.

*Comment:*

*"The DesignX program provides a ton of really valuable resources if you're interested in starting a company -- frequent mentorship from faculty and industry experts who care about the work you're doing, time and space to turn an idea into a company, funding, workshops, etc. The more you can put in, the more you'll get out. There's an application process in the fall semester." (2019)*

**4.450 Computational Structural Design and Optimization**

*Caitlin Mueller*

*Comment:*

“This is a new and exciting course taught by Caitlin Mueller (Building Technology stream) that touches upon contemporary aspects of computational design specifically as they relate to issues of instructural and material optimization. The Professor approaches optimization through a variety of lenses such as architecture, design, interactive software tools, sustainability, the historical development of the field and its future. Therefore, this course is different from other mathematically heavy courses broadly related to the field of optimization (e.g. numerical methods, multi disciplinary optimization, finite element analysis). The body of students that took this class was quite interdisciplinary (Architects, Structural Engineers, Product Designers, Mechanical Engineers, Aeronautics, Media Lab) which was one more aspect of this class that I found fascinating. You also get to work with a set of important contemporary tools for computational design and optimization including Matlab, Grasshopper, Excel. Just be aware that the assignments (although 3!) in this course need a lot of devotion! You also do one final project and submit it as a Conference paper which is completely open ended and without restrictions in its thematology. I enjoyed every lecture in this course and I definitely recommend it to everyone.” (2015)

**4.481 Building Technology Seminar**

*BT professors*

Fundamental research methodologies and ongoing investigations in building technology to support the development of student research projects. Topics drawn from low energy building design and thermal comfort, building systems analysis and control, daylighting, structural design and analysis, novel building materials and construction techniques, and urban energy and resource dynamics. Organized as a series of two and three-week sessions that consider topics through readings, discussions, design and analysis projects, and student presentations.

*Comment:*

*“Good to take the BT Seminar to get an overview of what SMArchS-BT researches are like. All BT students will present their research proposal in their first semester. You can only take this as listener.” (2014)*

## Electrical Engineering and Computer Science (Course 6)

1

**6.0001 Introduction to Computer Science and Programming in Python **

(formerly 6.00)* A. Bell*

Introduction to computer science and programming for students with little or no programming experience. Students develop skills to program and use computational techniques to solve problems. Topics include the notion of computation, Python, simple algorithms and data structures, testing and debugging, and algorithmic complexity.

*Comments:*

*“This class teaches Python and mathematical topics such as statistics and randomness. Class requires you to handle some math problems that are relevant to scientist who gather experiment data. Online Piazza forum system is effective. UG style P-set assignment annoys you by catching your comment line placement. Overall recommendation is positive. G credit is possible with petition, extra project is expected.” (2014)*

*“It is a very good beginner programming class! The classes have been very interesting and the problem sets have been tough but very interesting. In the beginning the class is very easy but gets hard pretty fast. I recommend to make work sessions in groups.”*

*“Concerning Python vs Java. It doesn't really matter which language you use, they are both very good. I personally like Python more because it is very easy to read and you need often very few lines to make a pretty powerful script. It is confirmed that Python will be the new scripting language for Rhino 5. Java is nice because of Processing. Anyway, in the end it doesn't really matter.”*

**6.0001 and 6.0002 Python part 1 and 2**

*A. Bell*

Introduction to computer science and programming for students with little or no programming experience. Students develop skills to program and use computational techniques to solve problems. Topics include the notion of computation, Python, simple algorithms and data structures, testing and debugging, and algorithmic complexity. Combination of 6.0001 and 6.0002 counts as REST subject. Final given in the seventh week of the term. (6.0001)

Provides an introduction to using computation to understand real-world phenomena. Topics include plotting, stochastic programs, probability and statistics, random walks, Monte Carlo simulations, modeling data, optimization problems, and clustering. Combination of 6.0001 and 6.0002 counts as REST subject. (6.0002)

*Comments:*

*“Even if you don't plan to use python, these classes are great for understand the foundational coding principles and best practices in coding. Second part is recommended for those more interested in data science.” (2015) *

*"Good way to build up your base knowledge of coding. If you take both 6.001 and 6.002, you will have micro-quiz every two weeks. If you don't like quizzes, take 6.00 instead (only midterm and final exams)" (2017)*

**6.01 Introduction to EECS I (Subject Canceled)**

*D. M. Freeman, L. P. Kaelbling, T. Lozano-Perez*

An integrated introduction to electrical engineering and computer science, taught using substantial laboratory experiments with mobile robots. Key issues in the design of engineered artifacts operating in the natural world: measuring and modeling system behaviors; assessing errors in sensors and effectors; specifying tasks; designing solutions based on analytical and computational models; planning, executing, and evaluating experimental tests of performance; refining models and designs. Issues addressed in the context of computer programs, control systems, probabilistic inference problems, circuits and transducers, which all play important roles in achieving robust operation of a large variety of engineered systems.

**6.862 Applied Machine Learning (Formerly 6.884)**

*Staff (Spring Term Only)*

The goal of this graduate-level class is to introduce students outside computer science to effective use of machine learning methods. The course is run alongside 6.036 and students must satisfy all the 6.036 requirements. In addition, students complete a semester long guided research project where they explore, formulate, implement, apply, and evaluate machine learning methods in the context of a problem in their research area. Registration is by permission of the instructors. Enrollment is limited.

*Comment:*

*it is excellent and in **fact, created for students other than Course 6 who try to get a graduate level credit for work in **machine learning. In particular, 6.884 includes 6.036 (you’ll do all the assignments, projects, **exams etc.) plus a graduate level, semester-long project in a topic of your interest that, in one **way or another, includes machine learning. Both are offered in the Spring.*

**6.034 Artificial Intelligence **

*K. Koile*

Introduces representations, techniques, and architectures used to build applied systems and to account for intelligence from a computational point of view. Applications of rule chaining, heuristic search, constraint propagation, constrained search, inheritance, and other problem-solving paradigms. Applications of identification trees, neural nets, genetic algorithms, and other learning paradigms. Speculations on the contributions of human vision and language systems to human intelligence. Meets with HST.947 spring only. 4 Engineering Design Points.

*Comments:*

*“Prof. Winston loves Design Computation students! In fact, the course requires a great attention and attendance to follow the content. Quizzes get harder gradually but do not involve any actual math or coding, besides, Prof. Winston allows Design Computation students not to take quizzes but write a final paper instead. However, I suggest attending all classes and taking the quizzes. Very rich and enjoying lectures with guest lecturers time to time.” (2014)*

*“This is really technically very enriching. You actually get to code searches, neural networks, nearest neighbor, boosting algorithms and other expert systems. Gives you a lot of confidence.”*

*“I* *think everyone has said this at some point but this might be the best class at MIT? Highly recommend, I feel that it may as well be mandatory for computational students especially for the first semester? Enough said. The best class ever? Ever.” (2015)*

"A fantastic class - great introduction to the actual computer science underlying AI. Perhaps contrary to previous years, Design + Computation students complete all work for this course (psets and quizzes), alongside some kind of final project. The homework is in Python and can be difficult if you are new to it." (2016)

*"High recommended! If you are interested in AI or just want to learn some basic knowledge of CS, then 6.034 is a must take class. 2017 version has a graduate addition, where you are required to take an reading class led by Prof. Jerald Sussman, which is also really good. If you don't know Python, you can take 6.00 at the same time. This will take more time but it definitely worth." (2017)*

**6.036 Introduction to Machine Learning **

*L. P. Kaelbling* *(Fall and Spring Term)*

Introduces principles, algorithms, and applications of machine learning from the point of view of modeling and prediction; formulation of learning problems; representation, over-fitting, generalization; clustering, classification, probabilistic modeling; and methods such as support vector machines, hidden Markov models, and Bayesian networks.

*Comment:*

*“The initial part of the course tackles a number of algorithms that are also taught in 6.034 'Intro to AI', and subsequently includes more statistical inference approaches to machine learning. The course includes a broad a fast-paced overview of machine-learning algorithms, largely focusing on statistical learning. While it teaches some of the same algorithms as Intro to AI, the focus of the professors is first on the mathematical foundations of the algorithm rather than on the broader picture and application of the technique. By focusing first on the mathematical foundations, rather than on the implementation, it can be hard for spatial thinkers to follow the course. The course lectures and contents are disorganized, and having three lecturers makes the course chronology even more fast-paced and confusing. Some basic knowledge of linear-algebra will be helpful, and basic knowledge of programming in python is required. The course includes 3 or 4 projects that are not very involved, but force you to implement the statistical algorithms in a real-world application. Getting graduate credit is a difficult task, the main professor, R. Barzilay, is not very open to it and the large class size makes her hesitant to commit any extra time into the development of the additional course work generally required for graduate credit. If you are persistent and already have a personal project related to the course, the professor might consider graduate credit for the course.” (2015)*

**6.041A Introduction to Probability 1 **

*J.N. Tsitsiklis*

Provides an introduction to probability theory and the modeling and analysis of probabilistic systems. Probabilistic models, conditional probability. Discrete and continuous random variables. Expectation and conditional expectation. Limit Theorems. Students taking graduate version complete additional assignments. Combination of 6.041A and 6.041B counts as a REST subject.

**6.041B Introduction to Probability II**Both courses have their Graduate counterparts: 6.431A and 6.431B. They used to be a single major course known as Applied Probability.

6.042J Mathematics for Computer Science

*A. Meyer, T. Leighton*

Elementary discrete mathematics for computer science and engineering. Emphasis on mathematical definitions and proofs as well as on applicable methods. Topics: 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 such as: recursive definition and structural induction; state machines and invariants; recurrences; generating functions.

**6.045J Automata, Computability and Complexity **

*Staff*

Slower paced than 6.840J/18.404J. Introduces basic mathematical models of computation and the finite representation of infinite objects. Turing machines. Partial recursive functions. Church's Thesis. Undecidability. Reducibility and completeness. Time complexity and NP-completeness. Probabilistic computation. Interactive proof systems.

*Comment:*

*"This is a smaller/slower, but still very compact and demanding, version of 18.4041/6.840 Theory of Computation. Intended for Undergraduate students in EECS and Mathematics." (2017)*

**6.046J Design and Analysis of Algorithms**

*S. Devadas*

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.

*Comment:*

*“A very hardcore undergrad class of all the ultimate stuff a programmer should know. Extensive mathematical modeling, algorithmic paradigms and brain exercises. All algorithms are described in pseudo-code, so it doesn't matter which computer language you speak. Students are expected to be familiar with beginner's algorithms and data structures (have a look at 6.006). Although the basics will be covered in class, it quickly goes wild from there. *

*I took this class in fall 2009 with Erik Demaine. It is now taught by Charles Leiserson, the author of THE textbook, Introduction to Algorithms. And course 6 problem sets are just amazingly entertaining. Did I mention hardcore? Yes. If you consider 6.034 time consuming, don't even try this. It's quite some accomplishment though, and personally I think it's useful and enlightening, especially the way it inquiries into computability.”*

**6.170 Software Studio (Undergraduate)**

D. N. Jackson

Covers design and implementation of software systems, using web applications as the platform. Emphasizes the role of conceptual design in achieving clarity, simplicity, and modularity. Students complete open-ended individual assignments and a major team project. Enrollment may be limited.

**6.431 A/B Intro to Probability (I and II)**

*Staff*

Provides an introduction to probability theory and the modeling and analysis of probabilistic systems. Probabilistic models, conditional probability. Discrete and continuous random variables. Expectation and conditional expectation. Limit Theorems. Students taking graduate version complete additional assignments. (431.A)

Continuation of 6.431A. Further topics about random variables. Bayesian estimation and hypothesis testing. Elements of statistical inference. Bernoulli and Poisson processes. Markov chains. Students taking graduate version complete additional assignments. (431.B)

*Comment:*

*"This class is a challenge. Class is everyday (lectures, labs, and tutorials), and homework is assigned weekly. The exams, however, account for most of the grade. While the class content starts off easily enough, it quickly gets much more complicated. The teaching style of the class is geared toward mathematicians and computer scientists, so while the content lends itself to visual/spatial diagrams and descriptions, the class mostly sticks to formulas and proofs. The lectures are theoretical, the homework is practical, and the exams are quite tricky in testing your ability to adapt and apply what you learn to real-world scenarios. There are abundant alternative resources available (book, online course, other video lectures, etc.), but I only recommend taking this class if you are seriously interested in using the topic in your work." (2017)*

**6.803 The Human Intelligence Enterprise**

*Staff*

Analyzes seminal work directed at the development of a computational understanding of human intelligence, such as work on object tracking, object recognition, change representation, language evolution, and the role of symbols in learning and communication. Reviews visionary ideas of Turing, Minsky, and other influential thinkers. Examines the role of brain scanning, systems neuroscience, and cognitive psychology. Emphasis on discussion and analysis of original papers. Students taking graduate version complete additional exercises and a substantial term project. Enrollment limited.

*Comments:*

*One of the best classes I’ve taken so far at MIT. Includes a series of AI-related readings, but the most interesting part of the class is the breaking down of those papers form different perspectives. This class teaches you not only how to identify, analyze and boiling down other (important) people’s ideas, but articulating your own thought through high-quality, cohesive and clean-of-jargon writing. The instructor is really invested in the class. It’s good to take it if you have taken 6.034, but you can make it without having taken it. Couldn’t be more highly recommended.*

*“I loved this class. Patrick Winston is a really good teacher with deep knowledge of the AI discourse and current issues in the field and a very special humor that makes the class very enjoyable. In this class you will also learn how to effectively communicate your ideas in any form (essays, letters, oral presentations etc.) –a skill that is rarely being taught in such a profound way. I definitely recommend it!” (2013)*

*“It is a great course, mind opening. Assignments and in course discussion focuses on communication, while course material is mostly about seminal papers on AI and Human intelligence. Papers are mostly goes around human vision and language.” (2013)*

* “This is a great class!! We read a couple of papers on AI every week and write about them. The class not only makes you very knowledgeable about the powerful ideas in the last 50yrs of AI (models of vision and language) but also helps you tune your technical paper writing skills. Patrick is just a wonderful person and a teacher. I enjoyed every bit of his class.”*

*“One of the best classes I took so far. I highly recommend it because I learned a lot about AI but also about reading, writing and life in general. We had to read a paper and write a one page response for every class. Sometimes as a normal essay, sometimes as a letter, as a recommendation or research proposal etc. The readings have been very tough though because they are about CS AI and we as designers don't really speak their language. But it was very interesting and very useful in the end. I think it is not easy to get in and if you have been accepted you have to take it very serious. I really enjoyed.”*

**6.801 Machine Vision**

(Not offered 2017-18)

*B.K.P. Horn*

Deriving a symbolic description of the environment from an image. Understanding physics of image formation. Image analysis as an inversion problem. Binary image processing and filtering of images as preprocessing steps. Recovering shape, lightness, orientation, and motion. Using constraints to reduce the ambiguity. Photometric stereo and extended Gaussian sphere. Applications to robotics; intelligent interaction of machines with their environment. Students taking the graduate version complete different assignments.

**6.804 Computational Cognitive Science**

*J. Tenenbaum*

*Comment:*

*“This is a great class covering methods for mathematically modeling cognitive processes, primarily Bayesian and Statistical. You need to know matlab and have a good foundation in probability theory or statistical mechanics to do well, however the class involves a final project so there are interesting opportunities. It will change how you think about thinking and computation!” (2015)*

**6.809J Interactive Music Systems**

*E. Egozy, L. Kaelbling*

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. Includes weekly programming assignments in python. Teams build an original, dynamic, and engaging interactive music system for their final project. Limited to 18.

*Comment:*

*"The instructors give priority to Music majors and minors. It may be difficult to get in if your not either one." (2017)*

**6.834J Cognitive Robotics **

*Staff*

Cognitive robotics addresses the emerging field of autonomous systems possessing artificial reasoning skills. Successfully-applied algorithms and autonomy models form the basis for study, and provide students an opportunity to design such a system as part of their class project. Theory and application are linked through discussion of real systems such as the Mars Exploration Rover (maybe outdated description). http://student.mit.edu/catalog/search.cgi?search=6.834J&style=verbatim

**6.835 Intelligent Multimodal User Interfaces **(Not offered 2017-18)

*Staff*

Implementation and evaluation of intelligent multi-modal user interfaces, taught from a combination of hands-on exercises and papers from the original literature. Topics include basic technologies for handling speech, vision, pen-based interaction, and other modalities, as well as various techniques for combining modalities. Substantial readings and a term project, where students build an interface to illustrate one or more themes of the course.

*Comment:*

*“The course covers tools and methods used for human computer interaction in general. It requires weekly readings and write ups, 4 mini projects and one final project. It covers sketch recognition (more in technical drawings term), speech recognition, gesture recognition, haptic interfaces etc. It is a little bit computation heavy and requires a background on programming. It is especially helpful for the ones thinking on tool development and interactive software.*

*Important Note: grades are not that high, should be noted!” (2013)*

**6.837 Computer Graphics**

*J. Soloman*

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. 6 Engineering Design Points. http://student.mit.edu/catalog/search.cgi?search=6.837&style=verbatim

### (or alternatively CS175 Computer Graphics at Harvard (Steven Gortler))

*Comment:*

*“I personally took CS175 from Harvard University (FAS-Faculty of Arts and Sciences) with Professor Steven Gortler because at that time 6.837 was not offered and because Gortler is one of the early people involved in the CG industry. Both courses require comfort with multi-hundred lines of C++ code (or at least Java - but in no ways the two languages should be considered as similar) and basic linear algebra (e.g. know about vector spaces, how to build and multiply matrices which is quite easy to do nowadays with all these online teaching videos that exist). You get to know the algorithmic concepts underlying transformations, animation, simulation (material, light, physics), color theory, geometric modeling and you will acquire a lot of programming experience and gain confidence. Depending on which course you choose, the aforementioned topics are covered at different percentages. For example, CS175 focuses a lot on transformations, but 6.837 focuses a lot on raycasting-raytracing a.k.a rendering. As an Architecture and Computational Design student you will find almost all concepts intuitively familiar as we are all experienced with 3D graphics. But in a course like this, you learn what happens behind every move you do in say Rhino, Max, or Maya - hence you gain a deep understanding of all these tools you interact with every day.*

The details of each course can be found online: http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-837-computer-graphics-fall-2012/

http://sites.fas.harvard.edu/~lib175/

*"Overall, in my opinion CG is a quite fascinating field that is rooted in our Computational Design field in many ways, that definitely worths taking despite the devotion needed to complete the assignments and keep up with all the concepts introduced.” (2105)*

**6.849 Geometric Folding Algorithms: Linkages, Origami, Polyhedra **(Not offered 2017-18)

*Staff*

Covers discrete geometry and algorithms underlying the reconfiguration of foldable structures, with applications to robotics, manufacturing, and biology. Linkages made from one-dimensional rods connected by hinges: constructing polynomial curves, characterizing rigidity, characterizing unfoldable versus locked, protein folding. Folding two-dimensional paper (origami): characterizing flat foldability, algorithmic origami design, one-cut magic trick. Unfolding and folding three-dimensional polyhedra: edge unfolding, vertex unfolding, gluings, Alexandrov's Theorem, hinged dissections.

*Comment:*

*“The famous origami class! It covers all the works of that topic, done and unpublished, with guest lectures and off-class contacts with many artists and scientists in the field. The models are very mathematical, but the problems are extremely everyday life and nerdy (in an interesting way), and the solutions are highly applicable to design. Erik carefully balanced the aesthetic and scientific contents. In fact half of the class was from design background and everybody had fun with their final projects. *

*If you haven't taken any class with the Demaines, this is it. It's fun, fun, fun. “*

**6.850 Geometric Computing**(Offered 2017-2018)

*Staff*

Introduction to the design and analysis of algorithms for geometric problems, in low- and high-dimensional spaces. Algorithms: convex hulls, polygon triangulation, Delaunay triangulation, motion planning, pattern matching. Geometric data structures: point location, Voronoi diagrams, Binary Space Partitions. Geometric problems in higher dimensions: linear programming, closest pair problems. High-dimensional nearest neighbor search and low-distortion embeddings between metric spaces. Geometric algorithms for massive data sets: external memory and streaming algorithms. Geometric optimization.

*Comment:*

*“I found this one very rewarding. It is a course about algorithms in two to n-dimensional spaces, NOT Computational Geometry in the sense of NURBS etc. If you haven't taken 6.046, the learning curve will be quite steep though (as it was in my case). If I'd do it over again, I'd first take 6.042 and/or 6.046, for a more thorough understanding and to avoid having to learn the fundamentals in parallel with the actual content of the course.”*

**6.860J Statistical Learning Theory and Applications**

*T. Poggio,*

Provides students with the knowledge needed to use and develop advanced machine learning solutions to challenging problems. Covers foundations and recent advances of machine learning in the framework of statistical learning theory. Focuses on regularization techniques key to high-dimensional supervised learning. Starting from classical methods such as regularization networks and support vector machines, addresses state-of-the-art techniques based on principles such as geometry or sparsity, and discusses a variety of algorithms for supervised learning, feature selection, structured prediction, and multitask learning. Also focuses on unsupervised learning of data representations, with an emphasis on hierarchical (deep) architectures.

**6.861J Aspects of Computational Theory of Intelligence**

*T. Poggio, *

Integrates neuroscience, cognitive and computer science to explore the nature of intelligence, how it is produced by the brain, and how it can be replicated in machines. Discusses an array of current research connected through an overarching theme of how it contributes to a computational account of how humans analyze dynamic visual imagery to understand objects and actions in the world.

**6.863J Natural Language and the Computer Representation of Knowledge**(Offered 2017-2018)

*Staff*

Explores the relationship between the computer representation and acquisition of knowledge and the structure of human language, its acquisition, and hypotheses about its differentiating uniqueness. Emphasizes development of analytical skills necessary to judge the computational implications of grammatical formalisms and their role in connecting human intelligence to computational intelligence. Uses concrete examples to illustrate particular computational issues in this area.

*Comment:*

*“A very interesting class that studies human language from a computational perspective. The emphasis is on understanding how closely computers can represent the way humans acquire and use a language. The class gives a comprehensive overview of contemporary approaches to language processing, including efficient parsing algorithms for context free grammars, corpus-based methods and statistical machine translation. There are about six assignments in python and a final group project.*

*I found Prof. Berwick explains algorithms extremely well and clear. If you attend all the lectures, doing assignments should not be a problem.” (2013)*

*"This is an excellent Graduate class at the interface of theoretical computation and linguistics. Actually, what this class should have been called is Computational Linguistics, instead of say Natural Language Processing. If you are interested in using machine learning or other modern AI to analyze texts, sounds, websites, online reviews, etc. then you should take another class that deals with the engineering side of language (e.g. 6.864). This class is more on the science side of language and uses computation (finite state transducers, context-free grammars, lambda calculus) to model syntax and semantics of human language. This class isn't offered regularly, but if by any chance it is offered while you're at MIT, then you should take it. Be aware that their grading policies are very weird." (2018)*

**6.865 Advanced Computational Photography**(Not offered 2016-17, Not offered 2018-19)

*Staff*

*Comment:*

*“Computational Photography is a not so well known field in the Computer Graphics and Vision industry as it is new with very few conferences and journals actually dedicated to the field. However, we as architects spend quite a lot of time on Photoshop and we are thus familiar with all that image processing stuff offered from Adobe. 6.865 is a course that basically goes behind software packages such as Photoshop (and other image processing and manipulation software) and teaches you the underlying algorithms behind them (not all but many). You get to know fascinating computational stuff including image structure, image formation, cameras, HDR imaging, panoramas, lighting etc. The course is well structured but be aware that things are really strict in terms of assignment submission a.k.a. just don’t forget to submit an assignment (11 in total). This course was previously based on Python, but the Professor switched to C++. For Graduate students there is one extra question (relatively small and not so difficult) in each assignment plus one Siggraph paper review of your choice at the end of the semester. One important thing that I should mention is that for those that are interested in modern Computer Vision stuff, this course is definitely one great option as I believe that there are a lot of overlaps in the materials taught.” (2015)*

**6.868J The Society of Mind **

(Not offered 2016-17, Not offered 2018-19)

*Marvin Minsky*

Introduction to a theory that tries to explain how minds are made from collections of simpler processes. Treats such aspects of thinking as vision, language, learning, reasoning, memory, consciousness, ideals, emotions, and personality. 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. connectionist models, and logical vs. common-sense theories of learning. Enrollment limited.

*Comments:*

*“Very unstructured class...there is no real program for this class. Discussions based on Minsky's Society of Mind and Emotion machine. Both of which tries to provide a distributed models for human intelligence. Minsky's talks are very interesting and opens up your mind. You have to write a couple of papers in the semester. Relatively easy class and very interesting content. Shouldn’t miss it.”*

*“I would not recommend that class. It is nice to see Marvin Minsky talking. The problem sets have been made by his TAs and have been pretty hard and not very useful for me. I think if you read one of his books then you know almost all of his class. I would have enjoyed if I would have taking it as a listener without any pressure.”*

*“The class is not well organized but I would recommend taking it as a listener because Marvin Minsky is… Marvin Minsky! It’s great to be in his class and listen to him talking.” (2013)*

*"Subject Cancelled" (2017)*

**6.901J Innovation Engineering: Moving Ideas to Impact**

*F. Murray*

Designed for students to gain the perspective of a Chief Technology Officer of a start-up, large corporation, or a not-for-profit. Details the innovation process, from an idea's inception through impact in the economy, regardless of organizational setting. Explores how solutions are developed to become ready for broader market deployment. Includes testing and development of the problem-solution fit, probing of solutions for robustness, and testing of both technical and operational scaling of proposed solutions. Examines the human aspects of innovation, specifically issues of team building and readiness. Considers the broader system for innovation, including the role of key stakeholders in shaping its success in order to arrive at an impactful solution. Addresses intellectual property, the effect of regulations and social and cultural differences across varied global markets, and the personal skillset necessary to align and manage these issues.

## Brain and Cognitive Science (Course 9)

1

**9.012 Cognitive Science**

*E. Gibson, P. Sinha, J. Tenenbaum*

Intensive survey of cognitive science. Topics include visual perception, language, memory, cognitive architecture, learning, reasoning, decision-making, and cognitive development. Topics covered from behavioral, computational, and neural perspectives.

*Comments:*

*“It is a general survey on cognitive science. It is 18 credit, very loaded course. It can be taken as listener. The course has 3 modules, language, vision and learning &memory given by different professors. For the ones take it for credit, each module has a written exam and one final project presentation.” (2013)*

*“This class is not structured well, as it attempts to give a very broad and deep foundation overview of the making and history of cognitive sciences as a field. While the history and literature one is exposed to in this class is inspirational, it also crams a lot of information into a very short about of time and is more about problems in the nature of studying and being in the field cognitive science. It involves extensive writing and the lectures are sometimes Discussion oriented. Given how broad, the lectures are 4 hours long, I wouldn't recommend it unless your interested in the philosophy of science, paradigms in cognitive science or the history of methodology in one of the three specified domains (language, computational/higher-order thinking, vision) in cognitive science.” (2015)*

**9.10 Cognitive Neuroscience**

*R. Desimone, E. K. Miller*

Explores the cognitive and neural processes that support attention, vision, language, social cognition, music understanding, emotion, motor control, and memory. Begins with the fundamental behavioral phenomena, then progresses to models based on brain systems in humans and animals, and ultimately models based on populations of neurons. Includes examples of clinical conditions and case studies in patients. Students prepare presentations summarizing journal articles.

*Comment:*

*“This is an undergrad class which follows a text book pretty regularly. It can give you a sense of anatomy and processing as well as the history and methodology around cognitive science but I don't recommend it for graduate students. I also wouldn't recommend it for undergrads except maybe 1st year students.” (2015)*

**9.11 The Human Brain*** *

*N. Kanwisher*

Surveys the core perceptual and cognitive abilities of the human mind and asks how these abilities are implemented in the brain. Key themes include the representations, development, connectivity, interspecies homologies, and degree of functional specificity of particular brain regions. Also emphasizes the methods available in human cognitive neuroscience, and what inferences can and cannot be drawn from each.

*Comment:*

*"The course was structured well. It reviewed the perceptual abilities of the human mind and how different parts function within the brain. If you want to gain a basic understanding of different regions within the brain and how these parts are connected together I totally recommend the course. It is less about anatomy of the brain and more about how it works perceptually. The syllabus and assignments were clear and she is very responsive to emails." (2018)*

**9.523 Aspects of Computational Theory of Intelligence **

Tomaso Poggio,

Integrates neuroscience, cognitive and computer science to explore the nature of intelligence, how it is produced by the brain, and how it can be replicated in machines. Discusses an array of current research connected through an overarching theme of how it contributes to a computational account of how humans analyze dynamic visual imagery to understand objects and actions in the world.

**9.660 Computational Cognitive Science**

*Staff*

Introduction to computational theories of human cognition. Focuses on principles of inductive learning and inference, and the representation of knowledge. Computational frameworks include Bayesian and hierarchical Bayesian models, probabilistic graphical models, nonparametric statistical models and the Bayesian Occam's razor, sampling algorithms for approximate learning and inference, and probabilistic models defined over structured representations such as first-order logic, grammars, or relational schemas. Applications to understanding core aspects of cognition, such as concept learning and categorization, causal reasoning, theory formation, language acquisition, and social inference. Graduate students complete a final project.

9.65 Cognitive Processes

(Not offered 2016-17)

*Staff*

Introduction to human information processing and learning. Topics include the nature of mental representation and processing, memory and learning, pattern recognition, attention, imagery and mental codes, concepts and prototypes, and reasoning and problem-solving.

## Urban Studies & Planning (Course 11)

1

**11.S965 Data Science and Machine Learning in Real Estate**

*Staff*

Small group study of advanced subjects under staff supervision. For graduate students wishing to pursue further study in advanced areas of real estate not covered in regular subjects of instruction.

*Comments:*

*"This is a great general introduction to data science and machine learning, and is suitable for both those with and without prior experience. It does a great job of highlighting use cases and challenges of applications in real estate and the built environment that you wouldn't get from a standard ML course, with many guest speakers from industry. The homework and projects were very manageable for beginners." (2019)*

## Management (Course 15)

1

**15.371J Innovation Teams**

*L. Perez-Breva*

* *Students work in teams to develop commercialization strategies for innovative research projects generated in MIT laboratories. Projects cover critical aspects of commercialization, from selecting the target application and market for the technology to developing an intellectual property strategy and performing a competitive analysis. Instruction provided in communication and teamwork skills, as well as analysis of the challenges and benefits of technology transfer. Includes lectures, guest speakers, and extensive team coaching. Designed primarily for students in engineering, science, and management. Applications, resumes, and a brief statement of interest are required prior to registration.

*Comment:*

*“Provides a hands-on understanding of the steps and milestones for the commercialization of technologies developed in MIT labs. Students choose from a list of developing MIT technologies and work in small teams also collaborating with the lab's Principal Investigator . A great, intuitive introduction to issues such as intellectual property, existing industry structure and distribution channels.”*

**15.871 Introduction to System Dynamics **

*J.D. Sterman, N.P. Repenning*

Introduction to systems thinking and system dynamics modeling applied to strategy, organizational change, and policy design. Students use simulation models, management flight simulators, and case studies to develop conceptual and modeling skills for the design and management of high-performance organizations in a dynamic world. Case studies of successful applications of system dynamics in growth strategy, management of technology, operations, supply chains, product development, and others. Principles for effective use of modeling in the real world.

## Mathematics (Course 18)

1

**18.06 Linear Algebra (2012)**

*Fall: S. Johnson Spring: A. Edelman *

Basic subject on matrix theory and linear algebra, emphasizing topics useful in other disciplines, including systems of equations, vector spaces, determinants, eigenvalues, singular value decomposition, and positive definite matrices. Applications to least-squares approximations, stability of differential equations, networks, Fourier transforms, and Markov processes. Uses MATLAB. Compared with 18.700, more emphasis on matrix algorithms and many applications.

*Comment:*

*“I took the spring version with Gilbert Strang, who is an excellent teacher. Very time-intensive if you do the Psets and exams. If you want to become proficient in Linear Algebra, this is definitely the course to take, though I have to say that right now I feel that I learned more about it than was strictly necessary. From an architecture viewpoint it also is a shame that geometric transformations have been relegated to a small chapter at the end of the course. However, Linear Algebra is at the heart of scientific computing/calculating, so it's definitely worthwhile to gain a solid understanding (if you haven't already). The whole course also is on youTube, in case you just need a little refresher.” *

*"18.06 exposes a more applied view of Linear Algebra, including computer implementations; On the other hand, 18.700 Linear Algebra, exposes a more theoretical view of Linear Algebra, with more emphasis on proofs." (2017)*

**18.065 Matrix Methods in Data Analysis, Signal Processing, and Machine Learning**

*Prof. Gilbert Strang*

Reviews linear algebra with applications to life sciences, finance, engineering, and big data. Covers singular value decomposition, weighted least squares, signal and image processing, principal component analysis, covariance and correlation matrices, directed and undirected graphs, matrix factorizations, neural nets, machine learning, and computations with large matrices. Students in Course 18 must register for the undergraduate version, 18.065.

*Comment:*

"This class covers a broad range of mathematical tools involving matrices, which are are everywhere in data analysis and machine learning (including deep neural network technology). Prof. Strang wrote a textbook specifically for this class, which he uses for lectures and homework (the textbook is a great resource for everything that involves matrices — but it is not an introduction to linear algebra). I would recommend this class to both Masters and PhD students, given that you have some understanding of linear algebra. There is weekly homework, math

problems done by hand, sometimes including one simple programming exercise. There are no exams or quizzes. There is only one open ended final project. Prof. Strang is one the best and most dedicated Professors I’ve met at MIT, and a really great teacher — you’ll certainly enjoy him delivering a lecture, even if you don’t understand the material.

**18.0851 Computational Science and Engineering I**

*Fall: W. Gilbert Strang Spring: L. Demanet*

Review of linear algebra, applications to networks, structures, and estimation, finite difference and finite element solution of differential equations, Laplace's equation and potential flow, boundary-value problems, Fourier series, discrete Fourier transform, convolution. Frequent use of MATLAB in a wide range of scientific and engineering applications. Students in Course 18 must register for the undergraduate version, 18.085.

*Comment:*

*Good intro/refresher to linear algebra and discrete math. Expect roughly 12 hours of work per week unless you are really good at deciphering math textbooks. Homework is doable, especially if you work with other people. Exams are harder than the homework but there are many practice problems available online. Prof Saenz's lectures are very clear. (2018)*

**18.4041** **Theory of Computation (Joint with EECS, 6.840)**

*Michael Sipser (Fall Term only)*

A more extensive and theoretical treatment of the material in 6.045J/18.400J, emphasizing computability and computational complexity theory. 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. Students in Course 18 must register for the undergraduate version, 18.404.

*Comment:*

*"This is one of the best classes I have taken at MIT. Covers computability theory and complexity theory. 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. Note that this is a class on theoretical computation and is based solely on proofs and theorems. It is a very fun class and Michael Sipser is one of the best orators I have seen at MIT. Also, he is the only Professor I know who is actually answering all Piazza messages himself! I would recommend this class mostly to Ph.D. students." (2017)*

## Anthropology (Course 21A)

1

**21A.819 Qualitative Research Methods (formerly STS.401J) **

*Staff*

Training in the design and practice of qualitative research. Organized around illustrative texts, class exercises, and student projects. Topics include the process of gaining access to and participating in the social worlds of others; techniques of observation, fieldnote-taking, researcher self-monitoring and reflection; methods of inductive analysis of qualitative data including conceptual coding, grounded theory, and narrative analysis. Discussion of research ethics, the politics of fieldwork, modes of validating researcher accounts, and styles of writing up qualitative field research.

http://student.mit.edu/catalog/search.cgi?search=Qualitative+Research+Methods&style=verbatim

## Global Studies and Languages (Course 21G)

1

**21G.152 Chinese II (Regular)**

*Staff*

Introduction to modern standard Chinese (Mandarin) with emphasis on developing conversational skills by using fundamental grammatical patterns and vocabulary in functional and culturally suitable contexts. Basic reading and writing are also taught. For graduate credit, see 21G.151. Placement interview with instructors required of students who have had prior exposure to Chinese before or on Reg Day. Limited to 16 per section. No listeners.

*Comment:*

*Love this class. Instructors are very engaging. I spent more than nine hours of work per week (graduate listing only gets 9 units... sad), but the work is constant and there are no big projects at the end of the semester. The class emphasizes speaking and conversation. Mostly undergrads, but you get a few grad students in there too. (2018)*

## Writing (Course 21W)

1

**21W.820J Writing: Science, Technology, and Society**

**(Not offered 2018-19)**

*K. Manning*

Examination of different "voices" used to consider issues of scientific, technological, and social concern. Students write frequently and choose among a variety of non-fiction forms: historical writing, social analysis, political criticism, and policy reports. Instruction in expressing ideas clearly and in organizing a thesis-length work. Reading and writing on three case studies drawn from the history of science; the cultural study of technology and science; and policy issues.

## Linguistics and Philosophy (Course 24)

1

**24.09 Minds and Machines **

*E.J. Green*

This course is an introduction to many of the central issues in a branch of philosophy called philosophy of mind. Some of the questions we will discuss include the following. Can computers think? Is the mind an immaterial thing? Or is the mind the brain? Or does the mind stand to the brain as a computer program stands to the hardware? How can creatures like ourselves think thoughts that are "about" things? (For example, we can all think that Aristotle is a philosopher, and in that sense think "about" Aristotle, but what is the explanation of this quite remarkable ability?) Can I know whether your experiences and my experiences when we look at raspberries, fire trucks and stop lights are the same? Can consciousness be given a scientific explanation?

## Media Arts and Sciences (MAS)

1

**MAS.131 Computational Camera and Photography**

*Staff*

Covers the complete pipeline of computational cameras that attempt to digitally capture the essence of visual information by exploiting the synergistic combination of task-specific optics, illumination, sensors, and processing. Students discuss and use thermal, multi-spectral, high-speed and 3-D range-sensing cameras, as well as camera arrays. Presents opportunities in scientific and medical imaging, and mobile phone-based photography. Also covers cameras for human computer interaction (HCI) and sensors that mimic animal eyes. Intended for students with interest in algorithmic and technical aspects of imaging and photography. Students taking graduate version complete additional assignments.

*Comment:*

*“Mixed feelings about the class.. It has very interesting topics but not really teaching anything. It is more oriented towards creating marketable ideas on cameras. Introduces cutting edge technologies, invites guest lecturers. But I would not suggest taking it. There are other courses in Course 6 for computer vision and photography that deals with algorithms and techniques more intensely.” (2014)*

**MAS.630 Affective Computing**

*R. W. Picard*

Instructs students on how to develop technologies that help people measure and communicate emotion, that respectfully read and that intelligently respond to emotion, and have internal mechanisms inspired by the useful roles emotions play. Topics vary from year to year, and may include the interaction of emotion with cognition and perception; the communication of human emotion via face, voice, physiology, and behavior; construction of computers, agents, and robots having skills of emotional intelligence; the role of emotion in decision-making and learning; and affective technologies for education, autism, health, and market research applications. Weekly reading, discussion, and a term project required. Enrollment limited.

*Comment:*

The material in the class primarily covers the role of emotional intelligence in technology. Perhaps more importantly, this class will teach you how to conduct experiments with human subjects. The majority of the work is dedicated to a semester-long group project (2-3 people) where you design and conduct studies relating to topics in Affective Computing. If you are considering research that will require you to conduct user studies with human subjects, this is a good way to learn how to do that properly. Be aware of the type of project you choose to pursue. If you are making something new (i.e. software, device) it's going to be way more than 12 units worth of work. I took this with 4.140 (How to Make Almost Anything), and this class was the heavier workload. (2017)

**MAS.712 Learning Creative Learning **

*Staff*

An introduction to ideas and strategies underlying the design of new learning technologies. Focuses especially on technologies that support interest-driven, project-based, collaborative learning experiences. Students analyze innovative learning technologies, discuss underlying educational ideas, examine design principles, create new prototypes and applications.

**MAS.834 Tangible Interfaces **

*H. Ishii*

Explores design issues surrounding tangible user interfaces, a new form of human-computer interaction. Tangible user interfaces seek to realize seamless interfaces between humans, digital information, and the physical environment by giving physical form to digital information and computation, making bits directly manipulable with hands and perceptible at the periphery of human awareness. In the design studio environment, students explore experimental tangible interface designs, theories, applications, and underlying technologies, using concept sketches, posters, physical mockups, and working prototypes.

*Comment:*

*"The class showcases a fantastic range of tangible computer interaction projects, both from Ishii's lab and elsewhere - there were also a few great guest speakers. However, the two projects are mixed-course group efforts, and they fell a little flat. The feedback was not very helpful." *

**MAS.836 Sensor Technologies for Responsive Environments **

*Staff*

A broad introduction to a host of sensor technologies, illustrated by applications drawn from human-computer interfaces and ubiquitous computing. After extensively reviewing electronics for sensor signal conditioning, the lectures cover the principles and operation of a variety of sensor architectures and modalities, including pressure, strain, displacement, proximity, thermal, electric and magnetic field, optical, acoustic, RF, inertial, and bioelectric. Simple sensor processing algorithms and wired and wireless network standards are also discussed. Students are required to complete written assignments, a set of laboratories, and a final project.

*Comments:*

*A fast-paced class that teaches you important concepts of electronics by practicing both on paper and in the lab. The lectures are very interesting and include tons of examples. For the assignments and labs, be prepared to work A LOT on your own until you figure out how things work. The instructor and the teaching staff are very knowledgeable and the teaching team is usually there to help, however the class lacks some structure (regarding office hours, pset and lab hand backs). Not highly recommended*.

*“Joe is a legend at the Media Lab and a genius. This is a fast-paced class that assumes you have a working knowledge of electronics, and through labs, psets, and a final project you familiarize yourself with a variety of sensors and how to interface them into a larger project.” *

*“The class is mostly on Op-Amp and oscillator analysis. The lectures are very fast-paces overviews from a previous high-energy physicist. It's a great class if you already build your own circuits regularly and want to work on an interesting project with a great support team, in the domain of interactive/responsive environment. The lectures are mostly on OpAmp circuitry tricks and watching interesting media lab videos from the 80s and 90s.” (2015)*

**MAS.863J How to Make (Almost) Anything (See 4.140J)**

*N. Gershenfeld*

## Science Technology and Society (STS)

1

**STS.074J Art, Craft, Science **

(Not offered 2016-17)

*Staff*

Examines how people learn, practice, and evaluate traditional and contemporary craft techniques. Social science theories of design, embodiment, apprenticeship learning, skill, labor, expertise, and tacit knowledge are used to explore distinctions among art, craft, and science. Also discusses the commoditization of craft into market goods, collectible art, and tourism industries. Ethnographic and historical case studies include textiles, Shaker furniture, glassblowing, quilting, cheesemaking, industrial design, home and professional cooking, factory and laboratory work, CAD/CAM. Demonstrations, optional field trips, and/or hands-on craft projects may be included.

**STS.086J Cultures of Computing**

*Staff*

Examines computers anthropologically, as artifacts revealing the social orders and cultural practices that create them. Students read classic texts in computer science along with cultural analyses of computing history and contemporary configurations. Explores the history of automata, automation and capitalist manufacturing; cybernetics and WWII operations research; artificial intelligence and gendered subjectivity; robots, cyborgs, and artificial life; creation and commoditization of the personal computer; the growth of the Internet as a military, academic, and commercial project; hackers and gamers; technobodies and virtual sociality. Emphasis is placed on how ideas about gender and other social differences shape labor practices, models of cognition, hacking culture, and social media.

*Comments:*

*“I would recommend "cultures of computing" by Stefan Helmreich, one of the main anthropologists now. I found it very interesting and helpful, and it tackles various issues of computation and human machine interaction, it also focuses on gender and technology. Every time we had to read a couple of papers in a specific topic and discuss them in class. We delivered about four papers and a term paper.”*

*“I have not taken this class, but I am very familiar with the Professor and the TAs. One of the past TAs is my roommate, and she provided me with a sample syllabus and gave me a lot of insight about the class. I believe it is a great opportunity for the student to gain deeper knowledge about the histories/theories of computing. I think it can be a great class when coupled with Patrick Winston's classes, maybe not on its own, because there are always anthropological twists in 21.___ classes (and here it is also made clear by the "emphasis on gender and other social differences, etc.")”*

**STS.260 Introduction to STS**

*D.I. Kaiser*

Intensive reading and analysis of major works in historical and social studies of science and technology. Introduction to current methodological approaches, centered around two primary questions: how have science and technology evolved as human activities, and what roles do they play in society? Preparation for graduate work in the field of science and technology studies and introduction to research resources and professional standards.

**STS.310 History of Science**(Not offered 2016-17)

*R.W. Scheffler*

This seminar offers a investigation of recent historiographical approaches in the history of science, as well as debates in the field more generally. Students will read a variety of studies covering topics through the twentieth century, while also considering the "anatomy of argumentation" in articles, books, and edited collections. Emphasis will be placed on the intertwining of representation and epistemology, as well as the methodological origins of recent scholarly work in the field. (Topics and format change year to year.)

*Comment:*

*“This is a great class about the making of the history of science. It is based on intensive reading, writing, and discussing mainly full books in recent history of science scholarship. The books are all compelling reads and expose one with a wide range of fascinating histories in the natural and social sciences, such as the discovery of cells, early conflicts around the theory of evolution, ancient chinese medicine, WWII camouflage methods, the past of digital humanities, the rise of behaviorist psychology, and others. These stories alone make the class worthwhile! However, the focus of the seminar is not on the specific histories per se, but on the way that the authors have constructed them; how they have developed their arguments, what they have included and omitted, their choice of illustrations, style of storytelling, mode of historical investigation, even typesetting decisions. Apart from being an excellent introduction to questions of method, representation, and communication of intellectual and institutional histories of all sorts, the class is fantastic practice for reading quickly and writing succinctly — from responses synthesizing seemingly unconnected ideas to book reviews. Highly recommended!” (2014)*

**STS.340 Introduction to the History of Technology**(Not offered 2017-18)

*David Mindell, M.R. Smith*

Introduction to the consideration of technology as the outcome of particular technical, historical, cultural, and political efforts, especially in the United States during the 19th and 20th centuries. Topics include industrialization of production and consumption, development of engineering professions, the emergence of management and its role in shaping technological forms, the technological construction of gender roles, and the relationship between humans and machines.

*Comment:*

*“This class covers key question and texts from the history of technology in a broad sense. Every week the class reads 2 full books, writes a reading response, and prepares to discuss the readings in class. In particular focus is current and historical debates concerning relationships between technological development and social change, and topics include, but are not limited to, history of flight, telecommunication, manufacturing & distribution, computing, economics, geography, and war technologies. In addition, emphasis is given to reading techniques and methods by which arguments can be deciphered, analyzed and contrasted. I would highly recommend this class.” (2015)*

**STS.360J Ethnography**

*Staff*

Practicum-style course in anthropological methods of ethnographic fieldwork and writing. Depending on student experience in ethnographic reading and practice, subject combines reading ethnographies in anthropological and science studies with formulating and pursuing ethnographic work in local labs, companies, or other sites. Preference to HASTS, CMS, HTC and Sloan graduate students.

**STS.444 Technology and Self: Things and Thinking**

(Not offered 2016-17)

*Sherry Turkle*

Explores emotional and intellectual impact of objects. The growing literature on cognition and "things" cuts across anthropology, history, social theory, literature, sociology, and psychology and is of great relevance to science students. Examines the range of theories, from Mary Douglas in anthropology to D.W. Winnicott in psychoanalytic thinking, that underlies "thing" or "object" analysis. Students taking graduate version complete additional assignments.

http://student.mit.edu/catalog/search.cgi?search=STS.044++&style=verbatim

*Comment:*

*“I really enjoyed this class. It had an intimate atmosphere and we made really good discussions based on very interesting readings on the fields of anthropology, philosophy and psychology and on personal narratives by the participants and other authors. The class is structured around the question of how technological objects affect the way we think and define ourselves. Sherry Turkle is a very good teacher and really takes the time to help you improve your writing skills and ideas by making a lot of comments and corrections on the assignments. If you are interested in technology and science from an anthropological or psychological perspective I would definitely recommend it.” (2013)*

* *

## Writing Subjects

1

**21W.820J Writing: Science, Technology, and Society**(Not offered 2017-18)

*K. Manning*

Examination of different "voices" used to consider issues of scientific, technological, and social concern. Students write frequently and choose among a variety of non-fiction forms: historical writing, social analysis, political criticism, and policy reports. Instruction in expressing ideas clearly and in organizing a thesis-length work. Reading and writing on three case studies drawn from the history of science; the cultural study of technology and science; and policy issues.

Writing subjects have recently been re-organized. Subjects taken previously by our students no longer exist or have new names. Look around for subjects that might be relevant for you.

** **

## HARVARD FAS (Faculty of Arts and Science)

1

**COMPSCI164 Software Engineering**

Introduction to principles of software engineering and best practices, including code reviews, source control, and unit tests. Topics include Ajax, database schemas, event handling, HTTP, MVC, object-oriented design, and user experience. Projects include web apps with front-end UIs (mobile and desktop) and back-end APIs. Languages include JavaScript and PHP.

Comment:

*“This subject is extremely intense, it requires 30 hours of work per week. It assumes some knowledge of C, HTML5, JavaScript, PHP, ObjectiveC and server understanding. It provides tutorials and recitations but demands an active student! I took it very seriously and came up with a good starter knowledge in the field of web mobile apps and native iOS apps.”*

**COMPSCI171 Visualization **

An introduction to key design principles and techniques for visualizing data. Covers design practices, data and image models, visual perception, interaction principles, visualization tools, and applications. Introduces programming of web-based interactive visualizations.

*Comment:*

*“Great subject for a theoretical approach into the perceptual concepts of big data visualization techniques. Those who take it need to have certain knowledge of Python, Javascript, HTML5 and Processing to really take advantage of it. It is a subject that targets scientists with a need to incorporate to their research the canons of aesthetics in data visualization, but it becomes useful for designers to observe the aesthetic rules through the eyes of the scientist.”*

**APCOMP 209A Introduction to Data Science**

*Rafael A. Irizarry and Verena S. Kaynig-Fittkau*

Data Science 1 is the first half of a one‐year introduction to data science. The course will focus on the analysis of messy, real life data to perform predictions using statistical and machine learning methods. Material covered will integrate the five key facets of an investigation using data: (1) data collection ‐ data wrangling, cleaning, and sampling to get a suitable data set; (2) data management ‐ accessing data quickly and reliably; (3) exploratory data analysis – generating hypotheses and building intuition; (4) prediction or statistical learning; and (5) communication – summarizing results through visualization, stories, and interpretable summaries.

*Comment:*

*“The course was taught for the first time by Rafael Irizarry and Verena Kaynig-Fittkau, instead of the previous instructor who was on leave. Compared to similar courses at MIT, instead of focusing on the foundations of the techniques and computational theories, the course is mostly focused on the implementations and pragmatic application of a wide range of computational approaches to data-collection and data-analysis. The course is also an extension-school course, which means it has a very large size (1,500 online and physical students is my guess), making the course extremely disorganized and hard to obtain support. The course is largely based on heavy-loaded bi-weekly assignments, that are consistently poorly designed which makes the exercises a very time-consuming enterprise: quite commonly the exercises would have to be changed midway through due to their confusing wording. The course provides a very quick overview of practical data-science, from the gathering of the data itself, to basic machine-learning techniques for large-scale analysis. The analysis techniques include statistical and algorithmic approaches, so it is possible to solve problems with the method that you are more comfortable with. Overall, the course provides a broad and superficial review of data science for people interested in the field, however, my impression was that it could have been possible to achieve similar learning through an online course or self-study.” (2015)*

* *

**Physics 123 001 Laboratory Electronics**

A lab-intensive introduction to electronic circuit design. Develops circuit intuition and debugging skills through daily hands-on lab exercises, each preceded by class discussion, with minimal use of mathematics and physics. Moves quickly from passive circuits, to discrete transistors, then concentrates on operational amplifiers, used to make a variety of circuits including integrators, oscillators, regulators, and filters. The digital half of the course treats analog-digital interfacing, emphasizes the use of microcontrollers and programmable logic devices (PLDs).

*Comments:*

*"Physics 123!! the best class I have taken so far here at MIT, hehehe (its Harvard's class). It is a course that covers analog to digital signal processing, from resistors, capacitors, to op-amp, flip flops and micro-controllers. Last project is building a working computer!”*

*"This was my favorite course of my SMArchS degree. As someone with a strong interest in electronics from a hobbyist perspective, it provided me with all of the training I was craving over the years. Instead of looking at cutting edge electronics with practical applications today, the class is an extremely engaging, hands-on history of (mostly obsolete) analog and digital electronics. The focus is on developing an understanding or intuition of how components and circuits behave, instead of a mathematical approach to electronic analysis (as might be more typical of an MIT-style class?). It was empowering to begin to have an understanding of how to use analytical tools like the oscilloscope to debug and visualize the working of electrical phenomena. It also made apparent to me the depth of my own ignorance on a subject I thought I new a bit about - while simultaneously pushing my hobbyist electronics making to the next level. Tom Hayes is an incredibly patient, fair and diplomatic teacher. I will never forget sitting in the lab across from the Mark II computer looking at the oscilloscope waveforms of Ella Fitzgerald! The amount of lab time is crucial to the class and it does not seem possible to me to run out of material to learn in this rigorous survey. Don't be hard on yourself if you struggle a bit, electronics is not immediately intuitive!" (2018)*

## HARVARD GSE (Graduate School of Education)

1

**EDU T402 Team Learning**

*Daniel Wilson*

Learning in teams is an essential component of school life for students, teachers and administrators. One needs to look no farther than the current emphasis on cooperative learning, teacher teams and collaborative leadership models. However socially appealing these labels seem, the unfortunate fact remains that groups are often a frustrating and ineffective learning experience for many of their members. Very few groups do well in sharing ideas, making decisions and building new knowledge. Even fewer are able to break from routine behaviors and craft new practices. Why is this and how can those who lead learning environments create the conditions to better support group learning?

*Comment:*

*“I would suggest T402 Group Learning for anyone interested in education at all. This course presents a comprehensive understanding of what it means to learn in groups and how to facilitate group learning. The course is also very active, demanding students to participate in a learning group throughout the semester as well as study some group of individuals locally. The course is taught by Daniel Wilson (the current director of Project Zero).” (2014)*

* *

## HARVARD GSD (Graduate School of Design)

1

**GSD 6338 Introduction to Computational Design**

*Panagiotis Michalatos*

This is an introductory course to computational design. It is primarily intended for designers with little background in programming who are interested in developing their skills in order to be able to better understand, interface with and customize the digital tools they are using, or develop their own software and interactive applications. The course introduces students to fundamental concepts and techniques in computational design as well as the relevant mathematics. By the term “computational design” we mean an ad hoc set of methods borrowed from computer science, computational geometry and other fields, and adapted to specific design problems such as design development, fabrication, analysis, interaction and communication.

* "Pan is an expert in all things computation. He demonstrates a broad range of experience in various computational topics, from 3D modeling to computer vision to video game design, but he also speaks handily from the perspective of a designer. He is very capable of bringing all of that knowledge into his teaching, making this class a really great overview of computational design. It is certainly fairly introductory (Pan starts with the basic building blocks of digital computers), but it is also quite thorough, and Pan does an excellent job of connecting the dots across the entire spectrum. The assignments and projects are not incredibly rigorous, but this is a class where you will get more out of it if you put more into it."*

*(2017)*

**GSD 6317 Material Distributions: Gradients of Compliance**(Not offered 2016-17)

*Panagiotis Michalatos*

This course explores the role of computational structural analysis and form finding methods in design and fabrication problems. Such techniques can offer hints on how to assemble and distribute materials in a structurally consistent way with implications in the geometric, aesthetic and tectonic expression of the structure. In a series of experiments, students will be asked to re-interpret and materialize digital structural models. These methods enable a high level of control over material behavior provided the designer has a good understanding of the underlying principles. The concept of optimization is both relevant and misleading in this context. It is operational at the level of abstraction of the digital model but becomes problematic within the wider design problematic. This is partly because digital models are imperfect approximations of reality and partly because for real world problems the optimal is multiple. Therefore the aim of the course is to explore the role of the designer in the creative interpretation of such quasi-optimal outcomes and at the same time speculate about how the engagement with such methods can alter the intuitive understanding of the problem of structure within a design context.

*Comment:*

*“This course covered computational analysis and optimization of structure and material.*

* The most covered method was finite element analysis. Using Pan’s tools within the Grasshopper environment, we performed weekly exercises to learn the process. The bulk of the class was devoted to individual (or team) final projects. Beginning at midterm, students begin to develop a final project, incorporating newfound tools and seeking the help of Pan and classmates. I enjoyed this approach as the final project became more than a 1-2 week assignment. It was also a great way to learn the tools presented in class. The course is valuable if you take advantage of the knowledge and lectures of Panagiotis. The majority of the students are there to learn ‘cool tools’ and not optimization or computation.”*

**GSD SCI 6317 Material Practice as Research: Digital Design and Fabrication**

(Not offered 2017-18)

*Leire Asensio Villoria*

The translation between the architectural design and the subsequent actualization process is mediated by various tools and techniques. Through the adoption in architectural design practice of computation and information technologies, with their capacity for a relatively seamless transition between design and fabrication, a more integrated workflow across the design and actualization process is made more accessible to designers. In recent years, designers have become increasingly able to move effortlessly between digital modeling, performance simulation, and physical realization. As technology evolves, this rapidly evolving field continually presents architects and designers with new challenges and opportunities for creative exploration as well as a more materially intelligent practice. This course pursues research in architectural design placing technology as a driver in the creative processes. Offered as an open enrollment lecture/workshop, it introduces students to the fundamentals of information technologies for architectural design. Through a combination of weekly lectures, discussions and hands-on workshops, topics to be addressed include associative modeling for fabrication, digital tooling approaches, fundamentals of fabrication including direct and indirect methods, CNC machine environments, industrial robotics, prototyping techniques, building systems, and customization strategies.

**GSD SCI 6459 Mechatronic Optics**

*Andrew Witt*

The drawing as a certain transcription of vision into operational, communicative, and instructional notation is at the very core of design. Deeply variegated and endlessly permutable in its own right, the projective drawing – of three and greater dimensions, onto planes and more complex cartographic schemes – is poised to be transformed beyond recognition with the advent of computable visual systems such as machine vision. Machine vision systems – the dynamic processing of images and video – are at the foundation of pattern recognition, spatial reconstruction, realtime scanning and a range of emerging technologies such as face recognition and autonomous vehicles. They demand new regimes of optical notation, and expose new possibilities for organizing visual knowledge automatically. At the same time the inverse of these operations – that is, dynamic and adaptive film projections – present new possibilities for the experience of space by literally stepping into these drawings. This class asks a simple question: how can the gap between human and machine representation become a space for a new kind of drawing?

In a highly tangible way, this class investigates how such technologies might transform the architectural drawing on the one hand and the dynamic spatial experience of architecture on the other. Working in groups of two, students will produce one of two types of digital drawing machines. The first type, the “seeing” machine, scans plans, images, text, spaces, or videos and extracts some visual intention from them – in the form of series of drawings or reconstituted film. The second type, the “viewing” machine, uses filmic techniques to create a dynamic projection installation that subverts conventions of depth. Each of these machines should adapt and extend conventions of existing conceptual or mechanical drawings, but elevate them to the level of programmatic and extensible system.

The course encompasses theoretical, historical, and technical content. At the heart of the course is a in investigation of how machines have mediated vision, as well as how they themselves see, through a survey of the techniques as well as their cultural function. Topics include oblique projections, map projections (and the equipment to both produce and view them), texture transformations, camera lucidas, stereoscopes, the Clavilux, panorama effects, photocollage techniques, optical distortions, varieties of lenses, and quantum light effects such as interference patterns and X-ray crystallography, or immersive experiences such as Xenakis’s polytopes or the composer Scriabin’s Prometheus. Supplementary theoretical perspectives such as Massino Scolari, Svetlana Alpers and Jonathan Crary will animate discussion.

Technical workshops will introduce students to conceptual tools such as computational morphology, erosion and dilation, shape skeletons, invariants and comparisons. Software tools will be provided, including grasshopper components developed specifically for the class for image analysis and shape detection, as well as MadMapper, the industry-leading software for image mapping. There will also be some hardware tutorials around the use of Arduino controllers specifically for image capture and projection, as well as the use of 3D scanners. Students of the class will have tutorials on and special access to the Geometry Lab’s two Universal robots to assist with dynamic scanning or projection projects, including potential development of hardware attachments for these devices. Some familiarity with Grasshopper or scripting is a plus, but not required. What is required is a fascination for the perceptual implications of drawing and machine-mediated vision.

*"Great class and heavy emphasis on computation!"*