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.
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.]
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.
Throughout the course, there are Exercises, Homework and 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.
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.