# 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 | |

Tues | Nov 27 | Lab: simulating dynamical systems | ||

Thurs | Nov 29 | A08 | Simple machine learning: classification | |

Tues | Dec 4 | Lab: machine learning | ||

Thurs | Dec 6 | A09 | final class, cleanup & questions | Final Exam handed out |

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

## Course Notes

### Fundamental Topics

### Advanced topics

- Signals, sampling & filtering
- Optimization & gradient descent
- Integrating ODEs & simulating dynamical systems
- Modelling action potentials
- Machine learning: classification

## Exercises

## Other

## Instructor Information

- Professor Paul Gribble
- paul@gribblelab.org
- (519) 661-2111 x86185
- office: WIRB 4122
- office hours signup (using Google Calendar): https://gribblelab.page.link/officehours