
(Introduction to Programming in MATLAB)
| Syllabus | Class topics | Session logs | Style guidelines | Assignments | Grades |
Purpose
This “workshop” course will deal with the basics of Matlab (“Matrix Laboratory”), an interactive software package specifically designed for scientific numerical computations. The program is relatively easy to learn and apply, and is generally much more useful for scientific programming than more basic programming languages such as BASIC, FORTRAN, Pascal, and C. Whereas software packages such as SAS, SPSS, and Systat are useful for carrying out standard data-analysis procedures, Matlab provides the power to carry out non-standard procedures without having to rely on computer programs written by other people.
The purpose of this course is to familiarize you with the basic principles of computer programming in general, and with the ways in which these principles are implemented in the language Matlab. Through a series of graded exercises you will learn how to apply these principles to simulate and solve some basic quantitative problems in biology. The first half of the course will be dedicated to leaning the structure and syntax of the language in the context of basic programming principles. During the second half, we will write Matlab functions to illustrate analytic techniques that are useful in biological studies, including polynomial regression, randomization tests (bootstrapping, permutation), null models, discrete-time population models, adjacency and transition matrices, and some basic geometry (circles, convex hulls, geometry of search paths). No prior knowledge of any of these topics is required.
There will be no exams or final projects. Evaluations will be based solely on completion of weekly assignments. You may work together on these projects, but each person must turn in an individual assignment.
Textbook
Hanselman, D. and B. Littlefield. 2005. Mastering Matlab 7: A Comprehensive Tutorial and Reference. Matlab Curriculum Series, Prentice Hall, 852 p. ISBN 0-13-143018-1.
Tentative Weekly Topics and Assignments
|
|
Topic |
Assignment |
|
1. |
Basic Matlab features; simple matrices; built-in functions |
Practice simple matrices and built-in functions |
|
2. |
Matrix operations; save/load; script files; user functions |
Writing user functions |
|
3. |
Relational and logical operations; flow control |
More user functions |
|
4. |
More on functions; graphics; character strings |
Functions and plots |
|
5. |
More on flow control and character strings |
More functions and plots |
|
6. |
Nested loops; group-identification vectors; descriptive statistics |
Analysis “by group”; moment statistics |
|
7. |
Polynomial regression |
Nested loops; fitting curves to data |
|
8. |
Randomization; null distributions |
Testing statistical hypotheses about a diversity index |
|
9. |
Bootstrapping; sampling distributions |
Confidence intervals for a diversity index |
|
10. |
Discrete-time models |
Lotka-Volterra competition model |
|
11. |
Adjacency and transition matrices |
Food webs; successional patterns |
|
12. |
Points, lines, and angles; scaling, translation, and rotation; convex hulls |
Home ranges and search paths |
|
13. |
Evolutionary simulations; cellular automata; fractals |
Determine optimal mutation rate for a genetic algorithm |
| Strauss home page | Biological Sciences | Texas Tech University |