Coding Workshop
Exercises: The excercises are matlab files, which can be opened in matlab if you like, or you can edit them as text files. Most of the time, you should be able to run the file in matlab and not get any errors. I'll probably post the answers at the same time or a day or two afterward. There's no sense in making people wait too long, I think. The answers can be as instructive as the questions, but please try to do the questions first (otherwise it will be difficult to learn!).
Topic  Description  Slides  Excercises 

Vocabulary  We need to be on the same page regarding the words used when we program. This topic is meant to introduce the concepts needed in order to talk about programs, and provide a good foundation for learning the more exciting stuff.  Code Concepts  
Matlab Syntax; Matlab Data Structures  We will review matlab syntax, as well as introduce matlab data structures.  As. 1 (Answers) 

Functions  Finally something useful. We'll see the structure of functions, and why they are useful.  Functions I  
Flow Control  Flow control gives us the power to tell our programs how to decide what to do.  Flow Control  As. 2 (Answers) 
Functions 2  With flow control, we can see how to really use functions to our advantage. At this point, we will be able to make real programs.  Lab 1 emgdata.mat naive_process_emg.m 

Input/Output  Now you can write programs to calculate just about anything, but it's better if you can tell someone about your answer!  
Optimization  We see that using vectors as opposed to loops speeds things up tremendously. Lab 2 will give you some practice with this.  Lab 2 circle data calc_circ_angles.m 

More Practice  The rest of the assignments are just for practice.  Lab 3 3 time series find_peaks.m 

Core Issues  TMTOWTDI, but always remember TANSTAAFL. We'll see what these mean, and look back to see how they have played into our assignments.  
Debugging  MATLAB has a rather nice debugger included. We'll spend some time working with it, and learning techniques for effective debugging. 
Advanced Topics
Topic  Description  Slides  Excercises 

Dynamic programming  Dynamic programming refers to a specific class of algorithms. One of their features is that they operate by filling in a matrix in a very specific way to find a solution to some problem. Because of its native matrix type, MATLAB is well suited to these types of algorithms.  editdistance.m  
Functional programming  Functional programming is an approach, usually opposed to "imperative" programming, which makes the function a primary element. Functional programs are not a list of steps to take, but mathematical expressions which are evaluated (by means of function composition).  functional.m (answers) 
Note: There is at least one syntax error in the above code! Still funny though.