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:

  1. You will learn to program in a high-level language (MATLAB).
  2. You will learn some common computational techniques for data processing and analysis
  3. 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:

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

Hints & sample solutions: hints and code


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



Instructor Information

  • Professor Paul Gribble
  • (519) 661-2111 x86185
  • office: WIRB 4122