#### Course Availability and Wait Lists

This is a required course for many programs in EOSC, but is somewhat space-limited. In order to ensure that transfer students, 3rd year students, and students who cannot register during their normal enrollment dates (but need it for their program) still have access to this course, we set up enrollment limits to be artificially low with a large wait list. We then move students from the wait list into the course under a priority ranking (program requirement, program option, student desire, ordered by entry onto the wait list in each case) a week or so before the term starts. Final class size is usually 90.

#### Learning Goals

- Students will write computer programs to model and analyze data in the solid earth, atmospheric, and oceanographic sciences. This requires:
- Breaking problems into logical steps using flowcharts and pseudocode to specify algorithms.
- Writing and debugging MATLAB computer programs to correctly implement algorithms.
- Modifying existing MATLAB computer programs, using the elements of good programming style, to make it more efficient, readable, and documented for future reuse.
- Creating scientifically informative and visually appealing plots (scatterplots, time series, contours, multiple subplots, legends).

#### Instructors

Instructors: Catherine Johnson; Rich Pawlowicz

TAs: Georgia Peterson, Samuel Stevens

#### Textbook

*Required **reading: *New for 2017: "MATLAB: A Practical Introduction to Programming and Problem Solving", Stormy Attaway, 4th edition, Elsevier, ISBN 978-0-12-804525-1, available UBC bookstore.

NB: The previous textbook (now no longer in print) was "Problem Solving Using MATLAB - EOSC211" (Custom text, ISBN 9780558883409).

*Suggested reading (if you already know how to program):* "Mastering MATLAB" by Duane C. Hanselman and Bruce L. Littlefield Prentice Hall.

Access to MATLAB is necessary. EOSC lab computers are preloaded with MATLAB and can be accessed with a $25 annual lab account fee. MATLAB can also be installed for free on the personal computers of UBC students.

#### Course Content

Course syllabus (pdf)

#### Lecture Topics

WEEK |
TOPIC |
WEEK CONSISTS OF... |
---|

01 |
Course introduction |
1 lecture |

02 |
Steps in Problem Solving |
2 lectures, 1 lab |

03 |
MATLAB data structures: dealing with 1-D (time series) and 2-D (geographic) arrays. |
2 lectures, 1 lab |

04 |
Computer math |
2 lectures, 1 lab |

05 |
Algorithms: selection |
2 lectures, 1 lab |

06 |
Algorithms: loops/repetition |
2 lectures, 1 lab |

07 |
Review for midterm |
1 lecture, MIDTERM |

08 |
Functions |
2 lectures, 1 lab |

09 |
Debugging |
2 lectures, 1 lab |

10 |
Text formatting |
2 lectures, 1 lab |

11 |
Interpolation |
1 lecture, 1 lab |

12 |
Graphics |
2 lectures |

13 |
Review |
2 lectures, REVIEW |

#### Labs

Labs will cover practical issues associated with the week's topic, and will usually require some time in addition to the scheduled time slot. Most labs will require submittal of code for run-testing .