Bulletin Text:
An introduction to Scientific Computing using Matlab/Octave covering the fundamental programming concepts (data types, abstraction, control structures, I/O, modules) and demonstrating the use of Matlab/Octave to solve scientific computing problems from a variety of disciplines including physics, chemistry, biology, computer science, and math. Topics to be covered include plotting, curve fitting, image processing, optimization, integration, differentiation, statistical analysis, ODE solving, and simulation.

  • MATLAB: An Introduction with Applications by Amos Gilat 3rd edition ISBN 978-0-470-10877-2 or by it through Amazon for around $60
  • online octave tutorial

Prerequisites: none

Course Requirements:
• Weekly homework assignments:    Students will complete weekly homework assignments to demonstrate their understanding of the concepts presented that week.
• Final Project: Students will complete a final project in which they demonstrate how matlab/octave can be used to solve a substantial scientific computing problem. They will write up their results using LaTeX, provide the matlab/octave code, and give a presentation in class with a Q&A period.

Homework: 30%
Final Project: 40%
Final Exam and Quizzes: 30%

Tentative Course Schedule:
  • Week 1: Overview, Matlab expression syntax, Matrix and Vector syntax, ...
  • Week 2: Plotting Scatterplots, 2D and 3D graphics, image handling
  • Week 3: Function files and Script files
  • Week 4: Loops, loop-invariants, control flow, vector-operations as loops
  • Week 5: Curve fitting
  • Week 6: Modeling and simulation by difference equations
  • Week 7: Midterm review, exam, and solutions 
  • Week 8: Statistics in Matlab/Octave
  • Week 9: Ordinary Differential Equations (initial-value ODE problems) 
  • Week 10: Optimization (Linear programming, non-linear) 
  • Week 11: SVD and Principal Component Analysis 
  • Week 12: Partial Differential Equations
  • Week 13: Image processing

The concepts in weeks 8-13 will be demonstrated using examples from a variety of disciplines. For example, n-body problems, chemical dynamics, and neuron models for ODE solving, inverse kinematic robotics problems for non-linear optimization, feature analysis for image processing, public key cryptography for exact arithmetic. Topics will vary year-to-year depending on instructor.