Overview
This course teaches computer programming to those with little to no previous experience. It uses the programming system and language called MATLAB to do so because it is easy to learn, versatile and very useful for engineers and other professionals. MATLAB is a special-purpose language that is an excellent choice for writing moderate-size programs that solve problems involving the manipulation of numbers. The design of the language makes it possible to write a powerful program in a few lines. The problems may be relatively complex, while the MATLAB programs that solve them are relatively simple: relative, that is, to the equivalent program written in a general-purpose language, such as C++ or Java. As a result, MATLAB is being used in a wide variety of domains from the natural sciences, through all disciplines of engineering, to finance, and beyond, and it is heavily used in industry. Hence, a solid background in MATLAB is an indispensable skill in today’s job market.
Nevertheless, this course is not a MATLAB tutorial. It is an introductory programming course that uses MATLAB to illustrate general concepts in computer science and programming. Students who successfully complete this course will become familiar with general concepts in computer science, gain an understanding of the general concepts of programming, and obtain a solid foundation in the use of MATLAB.
Students taking the course will get a MATLAB Online license free of charge for the duration of the course. The students are encouraged to consult the eBook that this course is based on. More information about these resources can be found on the Resources menu on the right.
Syllabus
- Course Pages
- The MATLAB Environment
- We will learn how to start MATLAB and will familiarize ourselves with its user interface. We will learn how to use MATLAB as a sophisticated calculator. We will learn about syntax and semantics. We will see ways in which MATLAB provides help. Finally, we will learn how to create plots in MATLAB.
- Matrices and Operators
- The basic unit with which we work in MATLAB is the matrix. We solve problems by manipulating matrices, and operators are the primary means by which we manipulate them. We will learn how to define matrices, extract parts of them and combine them to form new matrices. We will learn how to use operators to add, subtract, multiply, and divide matrices, and we will learn that there are several different types of multiplication and division. Finally, we will learn MATLAB’s rules for determining the order in which operators are carried out when more than one of them appear in the same expression.
- Functions
- Functions let us break up complex problems into smaller, more manageable parts. We will learn how functions let us create reusable software components that can be applied in many different programs. We will learn how the environment inside a function is separated from the outside via a well defined interface through which it communicates with that outside world. We will learn how to define a function to allow input to it when it initiates its execution and output from it when it is done.
- Programmer's Toolbox
- MATLAB has useful built-in functions and we will explore many of them in this section. We will learn about polymorphism and how MATLAB exploits it to change a function's behavior on the basis of the number and type of its inputs. Because random numbers play an important role in computer programming, we will learn how to use the MATLAB random number generator. We will learn how to get input from the keyboard, how to print to the Command Window, and how to plot graphs in a Figure window. Finally, we will learn how to find programming errors with the help of the debugger.
- Selection
- Selection is the means by which MATLAB makes decisions about the order in which it executes its statements. We will learn how to use the if-statement, which is the most important method of selection. We will learn how to use relational operators and logical operators. We will learn how to write polymorphic functions and how to make functions resistant to error.
- Loops
- Loops give computers their power. We will learn how to use both of MATLAB's loop constructs: the for-loop and the while-loop. We will learn how the break-statement works, and we will use nested loops. We will learn how to make loops more efficient. We will learn about logical indexing and will see how to use it to produce implicit loops that are efficient and easy for a user to understand.
- Data Types
- Computers operate on bits, but humans think in terms of numbers, words, and other types of data. Like any good language, MATLAB organizes bits into convenient data types. We will study those types in this section. We will learn that there are ten types of numbers and that there are conversion functions to change one type into another. We will learn much more about strings and how the characters in them are encoded as numbers. We will learn how to produce heterogeneous collections of data via structs and cells, and we will learn how to store points in time and time durations.
- File Input/Output
- Files are named areas in permanent memory for storing data that can be used as input or output to MATLAB and to other programs. We will be introduced to MATLAB’s most important methods for reading and writing files. We will learn how to create, read from, and write into MAT-files, Excel files, text files, and binary files. We will learn how to navigate among folders with MATLAB commands.
Taught by
Akos Ledeczi, Michael Fitzpatrick and Robert Tairas
Tags
Reviews
4.8 rating, based on 204 Class Central reviews
4.8 rating at Coursera based on 17529 ratings
Showing Class Central Sort
-
Below I'll post a private email I sent to Dr. Fitzpatrick telling him what I thought about the course: My name is Robert Mattera and I'm a graduate student at Rutgers University in Plant Science. For years now I've been saying I wanted to program…
-
Prof. Fitzpatrick is an excellent teacher. Apart from the fact that he delivered the subject matter in a crisp and concise manner, I love his sense of humour too. The style of presentation is really neat. The assignments were excellent too; they ver…
-
My name is Daniel Teshale. I am 28 years old. I am Ethiopian. I am Mechanical Engineer. I have BSc. in Mechanical Engineering (Design focus area) from Aksum University. And I have MSc in Industrial Design from Defence University College.
-
I am a Speech-Language pathologist whom started to work with brain image data analysis. I came across Matlab in this journey and got interested in learning the basics of programming to better understand the script written by my collaborators. Then,…
-
The course was amazing and I enjoyed every part of it; the video lessons by Prof Fitzpatrick are excellent. The many years of Prof Fitzpatrick's extensive experience is visible in the course through his command over the material and his humorous statements; any time I felt I was getting bored there was a statement from the good professor that made me laugh again. The other professors (e.g. Akos) and the TAs, especially Aatish Kumar were greatly helpful. The course is too great; it's hard to drop out. I'm not a computer science student but I completed it successfully! All thanks to the everyone who supported in putting the course together.
-
The video lectures are very good and interesting. The homework is very challenging and takes it time but it's very satisfying when it's done. A highlight is that you get MATLAB free for the time of the course and a few weeks after that. It's probably a good promotion for them too because people want to buy a full version afterwards to not get out of training... But luckily I'm a student and I get the student version for less. In conclusion i must say that it was a very great course and if I had known how much work it would be I'd probably bought a verified certificate too.
-
Having completed the course, I was not impressed with many aspects. The textbook was not that helpful when it came to the homework problems. The time stated to complete the course was 4-6 hrs per week. With the lectures at 1-2 hours per week, that…
-
Lectures: Brilliant. Prof. Fitzpatrick is an experienced programmer and he is very well accustomed to thinking processes of students. At times he is funny too and keeps you quite engaged in the lecture. I have watched the lectures twice and found eq…
-
Very comprehensive course. Very well informed. There's a book available, very well written and with lots of exercises. Explanations were all very clear.
-
This is an excellent course. I had already used Matlab in the past for Linear Algebra and Numerical Methods in university but this was a long time ago and I wanted to refresh my knowledge about it. Initially when I saw course topics I thought this…
-
This course is the epitome of a perfect online course; everything from the lesson plan, lesson formats, video formats, homework formats and grading. This course does establish you with the basic programming concepts you'll need as a programmer as we…
-
This was my first experience with an online course and my first real programming course. That being said, I was impressed with the quality of the videos and assignments. I learned a lot more than I expected from this course, but I had to work hard. Dr. Fitzpatrick did a wonderful job keeping the videos engaging with a delightful sense of humor. The examples helped with assignments without giving them away, and the cTAs for the course were very responsive and helpful. I would recommend this course to anyone looking to learn or brush up on their programming skills. If you are new to programming (like me), the course is challenging. I would plan on spending a good amount of time on this to build a solid foundation.
-
I'm on the 3rd week of the course. Wow, the course is fantastic! The instructor is among the best I've seen:
1. You'll see from the start - an instructor is ultra-professional in both programming AND teaching.
2. Difficulty goes gradually from low to high and the pace is just optimal.
2. Every example shows some specific and important aspect. As a result, each example teaches something important.
3. Many aspects and pitfalls are explained by using examples where errors are made on purpose. The instructor attempts braking the standard rules and shows what happens then.
4. The instructor uses humor, which keeps my smiling and enjoying the course!
That's my impression during the Week 3. -
The lectures in this course are at the junior high school level and are very boring; the examples given are all very trivial. But at least the lectures fit the description of the course as being for complete beginners. Then there are the problem s…
-
Let's take it step by step. First, the teaching. It is exactly like in the memes which had comparison of what you get taught and what comes in exam. It is stated that it is aimed at people with little to no knowledge in programming, but I can safely say it isn't true.The only thing good and the best which other MOOC's didn't have is the tough assignments, which you needed a solid grasp in the concept to do. The reading was all copy pasted from the referred book, the body language was not solid. Good luck to future learners but please don't begin programming with this.
-
Excellent course! The organization was perfect with clear, high quality videos and homework sets. The discussion board was constantly monitored by one or more teaching assistants who gave great hints without giving away the answers.
As a novice, the class time and homework was probably closer to 12 hours per week for me. I got through week 5 before the demands of grad school swept in and couldn't complete the rest. If offered again, I will definitely repeat it.
The professor's videos are excellent! -
This course provides a great starting point for learning MATLAB Programming.
Although slow at some points, the lectures are very well explained. The accompanying textbook is also a great resource and is priced very reasonably.
The course does not delve into the graphical capabilities of MATLAB or other specific features for that matter. My guess is that the instructors probably wanted to cover only the most basic syntactic components of MATLAB and leave further specific investigation to the students. -
This course help me out tremendously in understanding how MATLAB works and providing basic MATLAB skills. I joined a lab that requires writing algorithms to control data acquisition of many hardware components. This course gave me the fundamental skills that will make my life a little easier when beginning to program and navigate though MATLAB. This course was a time-saver. I am very grateful for the instructors, TAs, fellow classmates, and everyone else who made this course possible. Thank you.
-
I am not a programmer by profession, so as a dabbler in programming I would say that this course was very informative, brief and precise. Professor Mike is quite an excellent professor, he knows how to explain difficult concepts and I loved his puns in between the lectures. The assignments do test your understanding of the concepts pretty well and give you that sense of self confidence when you are done with them.
I would recommend this course to anyone trying to put their hands on Matlab. -
All thel basics of MATLAB are very well explained in the video lectures. Smooth and clear. Subtitles in english available and if you want to go fast throught the video at some points because you already learnt for-loops at school you can do it by changing the video speed. I must say the assignments might be quiet difficult for a non-experienced programmer, but some of them are nice to solve. Highly recommend to course to everyone who want to get started on MATLAB.