Online courses directory (17)
In recent years, flying robots such as miniature helicopters or quadrotors have received a large gain in popularity. Potential applications range from aerial filming over remote visual inspection of industrial sites to automatic 3D reconstruction of buildings. Navigating a quadrotor manually requires a skilled pilot and constant concentration. Therefore, there is a strong scientific interest to develop solutions that enable quadrotors to fly autonomously and without constant human supervision. This is a challenging research problem because the payload of a quadrotor is uttermost constrained and so both the quality of the onboard sensors and the available computing power is strongly limited.
In this course, we will introduce the basic concepts for autonomous navigation for quadrotors. The following topics will be covered:
- 3D geometry,
- probabilistic state estimation,
- visual odometry, SLAM, 3D mapping,
- linear control.
In particular, you will learn how to infer the position of the quadrotor from its sensor readings and how to navigate it along a trajectory.
The course consists of a series of weekly lecture videos that we be interleaved by interactive quizzes and hands-on programming tasks. For the flight experiments, we provide a browser-based quadrotor simulator which requires the students to write small code snippets in Python.
This course is intended for undergraduate and graduate students in computer science, electrical engineering or mechanical engineering. This course has been offered by TUM for the first time in summer term 2014 on EdX with more than 20.000 registered students of which 1400 passed examination. The MOOC is based on the previous TUM lecture “Visual Navigation for Flying Robots” which received the TUM TeachInf best lecture award in 2012 and 2013.
Do I need to buy a textbook?
No, all required materials will be provided within the courseware. However, if you are interested, we recommend the following additional materials:
- This course is based on the TUM lecture Visual Navigation for Flying Robots. The course website contains lecture videos (from last year), additional exercises and the full syllabus: http://vision.in.tum.de/teaching/ss2013/visnav2013
- Probabilistic Robotics. Sebastian Thrun, Wolfram Burgard and Dieter Fox. MIT Press, 2005.
- Computer Vision: Algorithms and Applications. Richard Szeliski. Springer, 2010.
Do I need to build/own a quadrotor?
No, we provide a web-based quadrotor simulator that will allow you to test your solutions in simulation. However, we took special care that the code you will be writing will be compatible with a real Parrot Ardrone quadrotor. So if you happen to have a Parrot Ardrone quadrotor, we encourage you to try out your solutions for real.
In this course problems from biological engineering are used to develop structured computer programming skills and explore the theory and practice of complex systems design and construction.
The official course Web site can be viewed at: BE.180 Biological Engineering Programming.
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.
This course was originally offered in Course 13 (Department of Ocean Engineering) as 13.472J. In 2005, ocean engineering subjects became part of Course 2 (Department of Mechanical Engineering), and this course was renumbered 2.158J.
16.225 is a graduate level course on Computational Mechanics of Materials. The primary focus of this course is on the teaching of state-of-the-art numerical methods for the analysis of the nonlinear continuum response of materials. The range of material behavior considered in this course includes: linear and finite deformation elasticity, inelasticity and dynamics. Numerical formulation and algorithms include: variational formulation and variational constitutive updates, finite element discretization, error estimation, constrained problems, time integration algorithms and convergence analysis. There is a strong emphasis on the (parallel) computer implementation of algorithms in programming assignments. The application to real engineering applications and problems in engineering science is stressed throughout the course.
This course covers concepts of computation used in analysis of engineering systems. It includes the following topics: data structures, relational database representations of engineering data, algorithms for the solution and optimization of engineering system designs (greedy, dynamic programming, branch and bound, graph algorithms, nonlinear optimization), and introduction to complexity analysis. Object-oriented, efficient implementations of algorithms are emphasized.
This subject is a computer-oriented introduction to probability and data analysis. It is designed to give students the knowledge and practical experience they need to interpret lab and field data. Basic probability concepts are introduced at the outset because they provide a systematic way to describe uncertainty. They form the basis for the analysis of quantitative data in science and engineering. The MATLAB® programming language is used to perform virtual experiments and to analyze real-world data sets, many downloaded from the web. Programming applications include display and assessment of data sets, investigation of hypotheses, and identification of possible casual relationships between variables. This is the first semester that two courses, Computing and Data Analysis for Environmental Applications (1.017) and Uncertainty in Engineering (1.010), are being jointly offered and taught as a single course.
Modern computer technology requires an understanding of both hardware and software, as the interaction between the two offers a framework for mastering the fundamentals of computing. The purpose of this course is to cultivate an understanding of modern computing technology through an in-depth study of the interface between hardware and software. In this course, you will study the history of modern computing technology before learning about modern computer architecture and a number of its important features, including instruction sets, processor arithmetic and control, the Von Neumann architecture, pipelining, memory management, storage, and other input/output topics. The course will conclude with a look at the recent switch from sequential processing to parallel processing by looking at the parallel computing models and their programming implications.
This course addresses information technology fundamentals, including project management and software processes, data modeling, UML, relational databases and SQL. Topics covered include internet technologies, such as XML, web services, and service-oriented architectures. This course provides an introduction to security and presents the fundamentals of telecommunications and includes a project that involves requirements / design, data model, database implementation, website, security and data network. No prior programming experience required.
This course provides a review of physical, chemical, ecological, and economic principles used to examine interactions between humans and the natural environment. Mass balance concepts are applied to ecology, chemical kinetics, hydrology, and transportation; energy balance concepts are applied to building design, ecology, and climate change; and economic and life cycle concepts are applied to resource evaluation and engineering design. Numerical models are used to integrate concepts and to assess environmental impacts of human activities. Problem sets involve development of MATLAB® models for particular engineering applications. Some experience with computer programming is helpful but not essential.
This course presents the fundamentals of object-oriented software design and development, computational methods and sensing for engineering, and scientific and managerial applications. It cover topics, including design of classes, inheritance, graphical user interfaces, numerical methods, streams, threads, sensors, and data structures. Students use Java® programming language to complete weekly software assignments.
How is 1.00 different from other intro programming courses offered at MIT?
1.00 is a first course in programming. It assumes no prior experience, and it focuses on the use of computation to solve problems in engineering, science and management. The audience for 1.00 is non-computer science majors. 1.00 does not focus on writing compilers or parsers or computing tools where the computer is the system; it focuses on engineering problems where the computer is part of the system, or is used to model a physical or logical system.
1.00 teaches the Java programming language, and it focuses on the design and development of object-oriented software for technical problems. 1.00 is taught in an active learning style. Lecture segments alternating with laboratory exercises are used in every class to allow students to put concepts into practice immediately; this teaching style generates questions and feedback, and allows the teaching staff and students to interact when concepts are first introduced to ensure that core ideas are understood. Like many MIT classes, 1.00 has weekly assignments, which are programs based on actual engineering, science or management applications. The weekly assignments build on the class material from the previous week, and require students to put the concepts taught in the small in-class labs into a larger program that uses multiple elements of Java together.
This course provides an integrated introduction to electrical engineering and computer science, taught using substantial laboratory experiments with mobile robots. Our primary goal is for you to learn to appreciate and use the fundamental design principles of modularity and abstraction in a variety of contexts from electrical engineering and computer science.
Our second goal is to show you that making mathematical models of real systems can help in the design and analysis of those systems. Finally, we have the more typical goals of teaching exciting and important basic material from electrical engineering and computer science, including modern software engineering, linear systems analysis, electronic circuits, and decision-making.
- Lecture videos from Spring 2011, taught by Prof. Dennis Freeman
- Recitation videos, developed for OCW Scholar by teaching assistant Kendra Pugh
- Course notes
- Software and design labs
- Homework assignments and additional exercises
- Nano-quizzes and exams with solutions
This course introduces the fundamentals of machine tool and computer tool use. Students work with a variety of machine tools including the bandsaw, milling machine, and lathe. Instruction given on MATLAB®, MAPLE®, XESS™, and CAD. Emphasis is on problem solving, not programming or algorithmic development. Assignments are project-oriented relating to mechanical engineering topics. It is recommended that students take this subject in the first IAP after declaring the major in Mechanical Engineering.
This course was co-created by Prof. Douglas Hart and Dr. Kevin Otto.
This course is an introduction to designing mechatronic systems, which require integration of the mechanical and electrical engineering disciplines within a unified framework. There are significant laboratory-based design experiences. Topics covered in the course include: Low-level interfacing of software with hardware; use of high-level graphical programming tools to implement real-time computation tasks; digital logic; analog interfacing and power amplifiers; measurement and sensing; electromagnetic and optical transducers; control of mechatronic systems.
This class introduces elementary programming concepts including variable types, data structures, and flow control. After an introduction to linear algebra and probability, it covers numerical methods relevant to mechanical engineering, including approximation (interpolation, least squares and statistical regression), integration, solution of linear and nonlinear equations, ordinary differential equations, and deterministic and probabilistic approaches. Examples are drawn from mechanical engineering disciplines, in particular from robotics, dynamics, and structural analysis. Assignments require MATLAB® programming.
Numerical methods for solving problems arising in heat and mass transfer, fluid mechanics, chemical reaction engineering, and molecular simulation. Topics: numerical linear algebra, solution of nonlinear algebraic equations and ordinary differential equations, solution of partial differential equations (e.g. Navier-Stokes), numerical methods in molecular simulation (dynamics, geometry optimization). All methods are presented within the context of chemical engineering problems. Familiarity with structured programming is assumed. The examples will use MATLAB®.
The instructor would like to thank Robert Ashcraft, Sandeep Sharma, David Weingeist, and Nikolay Zaborenko for their work in preparing materials for this course site.
This subject is concerned with quantitative methods for analyzing large-scale water resource problems. Topics covered include the design and management of facilities for river basin development, flood control, water supply, groundwater remediation, and other activities related to water resources. Simulation models and optimization methods are often used to support analyses of water resource problems. In this subject we will be constructing simulation models with the MATLAB® programming language and solving numerical optimization problems with the GAMS optimization package.