Course Meeting Times

Lectures: 1 session / week, 2 hours / session

Recitations: 1 session / week, 1.5 hours / session


There are no formal prerequisites for this course. It is intended to assist undergraduates in learning the basics of programming in general and programming MATLAB® in particular. Only the very basics of programming in MATLAB will be covered, with the goal of having students become comfortable enough to continue learning MATLAB and other programming languages on their own.


This course site is the result of several iterations of an introductory course I have given at MIT, the last of which was called DR. MATLAB. In that course I strived to change the usual pattern of teaching/learning MATLAB from a programming view point to a mathematical one. The idea is that by thinking about mathematical problems, students are prodded into learning MATLAB for the purpose of solving the problem at hand. The down-side to this approach is that it is somewhat based on the idea that people are already excited about mathematics, or can be excited about it. That said, as I taught the course at MIT, it was not a big problem.

Variables, arrays, conditional statements, loops, functions, and plots are covered in a project-based style where much of the learning happens away from the classroom. Students are expected to spend about 4 hours per week on homework. At the end of the course, students should be able to use MATLAB in their own work, and be prepared to deepen their MATLAB programming skills and tackle other languages for computing, such as Java, C++, or Python.

How to Take/Teach this Course

Access to MATLAB

Students need to have access to a computer with MATLAB installed. Which version matters little as the course will be using very basic functionality which hardly changes between versions.

The students should have a way to access their files whenever they start working. If no other solution is possible, a USB "stick" can easily hold the student's files. The students need to have access to MATLAB outside of class hours.

[Note to OCW Users: MIT OpenCourseWare does not provide student access or discounts for MATLAB software. It can be purchased from The MathWorks®. For more information about MATLAB Pricing and Licensing, contact The MathWorks® directly.]

Video Lectures

A set of six supplementary video lectures is provided to augment topics that are not comprehensively covered through lecture notes alone. These videos should be watched when indicated in the lecture notes, and learners are also encouraged to follow along in MATLAB while viewing the video lectures.


Grades are based on homework and a final project.

Exercises, Homework and Projects

Throughout the course, there are Exercises, Homework and Projects.

  • Exercises are intended to be done in class as an immediate practice for the material that was just taught, or as "warm-up" in the beginning of a class, to remind the students of the material from last lecture. Students should be encouraged to finish at home the Exercises that they failed to complete in class.
  • Homework is intended to be done outside of the classroom, and to be submitted to the instructor in the next meeting.
  • Projects are a mixed-bag: The students should be given some time in class to work on them (so they can ask questions and exchange ideas with other students), but they should also be encouraged to work on the projects at home. The projects are quite large, and so it should not be expected that each student completes all the projects. Some discretion should be given as to the selection of projects.

In order to do their homework and work on their projects, students need to have access to computers with MATLAB 24/7. This is crucial as the learning process mostly happens for students on their own. Students should be prepared for this so that they are not frustrated by the steep learning curve. Learning how to program will take much more time than they spend in the classroom. They should expect spending 2–6 hours between classes, doing homework and going over the material from class.

Students should be encouraged to work in groups, but to submit their homework individually. It can be very helpful for students to see where others struggled, and what solutions other students found to the same problems. If teaching a course with many students, a forum or discussion group can be set-up for the purpose of discussing issues and questions on the material.

How to Use this OCW Site

In order to learn how to program, a lot of self-exploration is required. Students are encouraged and should feel free to explore and experiment with the MATLAB interface. Video lecture 6 is dedicated to debugging. Students can refer to it when they need to debug their code. Students should familiarize themselves with the lookfor commands: Type help then press Enter on the command prompt to get a list of help topics

(you can click on any of them to get help on any of these topics). Type help lookfor Enter as a first example of using help (and to learn about lookfor). Throughout the text, MATLAB functions may be used without being formally introduced, in these cases it should be implicitly understood that students are expected to read the relevant helpfile to learn about that function, what it does and how to use it.