# Psychology 9040a: Scientific Computing with MATLAB

Fall Term 2018

The goal of this one-semester graduate seminar is to provide you with skills in scientific computing—tools and techniques that you can use in your own research. You will learn to program in MATLAB, a high-level programming language and scientific computing environment developed by MathWorks. If you wish to use another language such as Python, R or C (or any other high-level language) you are free to do so.

The course is designed to achieve three primary goals:

- You will learn to program in a high-level language (MATLAB).
- You will learn some common computational techniques for data processing and analysis
- You will learn to think computationally and algorithmically about data analysis, modeling and visualization.

Here is the course outline.

We will meet twice a week in WIRB 1130:

- Tuesdays from 2:00 pm to 3:30pm and
- Thursdays from 1:30 pm to 3:00 pm

Our first class will be Tuesday September 11, 2018 at 2:00 pm

Hints & sample solutions: hints and code

## Schedule

Day | Date | Assignment Due | Topic | Challenges / Exams |
---|---|---|---|---|

Tues | Sep 11 | Introduction to the course | ||

Thurs | Sep 13 | practice 1 | Lab: getting up and running with MATLAB | pe001, pe002, pe006, ac201501 |

Tues | Sep 18 | Control flow | FizzBuzz, Primes, pe007 | |

Thurs | Sep 20 | practice 2 | Lab: programming challenges | pe059 |

Tues | Sep 25 | Complex data types | ||

Thurs | Sep 27 | Lab: programming challenge: ac201502 | ||

Tues | Oct 2 | Functions | ||

Thurs | Oct 4 | A01 | Lab: programming challenge: pe037 | Midterm Exam handed out |

Tues | Oct 9 | Reading and writing files in MATLAB | ||

Thurs | Oct 11 | A02 | Lab: Functions, files | ac201504 |

Tues | Oct 16 | Debugging, profiling, fast code | ||

Thurs | Oct 18 | - | (optional) Q&A with Dimitri (our TA) | Midterm Exam is due |

Tues | Oct 23 | no class—Paul is away | ||

Thurs | Oct 25 | A03 | Random Numbers in MATLAB | |

Tues | Oct 30 | Parallel programming & Graphics intro | ||

Thurs | Nov 1 | A04 | more Graphics | |

Tues | Nov 6 | no class—Soc. for Neurosci. meeting | ||

Thurs | Nov 8 | A05 | Signals, sampling & filtering | PLGlowpass.m PLGhighpass.m PLGbandpass.m PLGbandstop.m fft_plus.m |

Tues | Nov 13 | Lab: signal processing | signals lab | |

Thurs | Nov 15 | A06 | Optimization in MATLAB | global optimization demo |

Tues | Nov 20 | Lab: optimization | drawChain.m goCatenary.m chainEnergy.m | |

Thurs | Nov 22 | A07 | Simulating dynamical systems in MATLAB | go_MassSpring.m MassSpring.m go_double_pendulum.m double_pendulum.m a2h.m go_MyLorenz.m MyLorenz.m |

Tues | Nov 27 | Lab: simulating dynamical systems | go_ekeberg.m ekeberg.m | |

Thurs | Nov 29 | A08 | optional Q&A session, work on assignmnets | go_spring2D.m spring2Dn.m animate_chain.m |

Tues | Dec 4 | Q&A and perhaps Advent of Code 2018 Programming Challenges | ||

Thurs | Dec 6 | A09 | Lab: Q&A & Advent of Code 2018 | final_exam.pdf |

The **Final Exam is due** no later than Thursday December 20, 2018

## Course Notes

### Fundamental Topics

## Exercises

## Other

## Instructor Information

- Professor Paul Gribble
- paul@gribblelab.org
- (519) 661-2111 x86185
- office: WIRB 4122