Psychology 9040a: Scientific Computing with MATLAB

1 Course Information

Psychology 9040a: Scientific Computing with MATLAB, Fall 2018

2 Instructor Information

3 Course Description

Goals

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 (https://www.mathworks.com/products/matlab.html). 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 but the course will be organized around MATLAB.

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 to think computationally and algorithmically
  3. You will learn some common computational techniques for data processing and analysis

Class Times and Location

We will meet twice a week, in WIRB 1130:

  • Tuesdays from 2:00 pm to 3:30 pm
  • Thursdays from 1:30 pm to 3:00 pm
  • the first class will be Tuesday September 11, 2:00 pm

Topics

In the first part of the course, which will likely occupy a large part of the semester, you will learn how to write computer programs to solve problems and analyze data. We will make use of several online problem sets such as Project Euler (https://projecteuler.net) and Advent of Code (https://adventofcode.com).

We will use MATLAB. However, the programming concepts that we will cover are not particularly MATLAB-specific. You will see as we progress that once you know how to program in one high-level language, the fundamental concepts are the same in almost all other high-level languages. Mainly it’s just the names of things that are different.

Here is a sketch of the topics we will likely cover in the course:

Fundamental Topics

  1. What is a computer program?
  2. Digital representation of data
  3. Basic data types, operators and expressions
  4. Control flow
  5. Complex data types
  6. Functions
  7. Input and output
  8. Debugging, profiling & speedy code
  9. Parallel programming
  10. Graphical displays of data

Advanced Topics

  • Sampling & filtering
  • Optimization & gradient descent
  • Integrating ODEs & simulating dynamical systems
  • Modelling action potentials
  • Machine learning: classification

Prerequisites

There are no formal prerequisites for the course. As a result I expect students in the class to have varying levels of previous experience with computer programming. If you have never programmed a computer before in any high level language then you will have more to learn than students who have previous experience with programming. Please keep this in mind.

4 Course Materials

The course website including a schedule of dates and topics, is the central location to find all information about the course, including a regularly updated schedule of classes and topics:

https://www.gribblelab.org/scicomp2018/index.html

There is no textbook for the course. I will put up links to some online resources for learning to program in MATLAB (there are many).

Also note that MATLAB documentation is freely available within MATLAB itself, and also on the web (https://www.mathworks.com/help/matlab/)

5 Methods of Evaluation

  • 70% Weekly Programming Challenges
  • 15% Midterm Exam (take-home programming challenges)
  • 15% Final Exam (take-home programming challenges)

The Midterm Exam will be held and the results made available prior to Oct 31st, which is the last day to drop a graduate course without penalty.

6 Statement on Academic Offences

Scholastic offences are taken seriously and students are directed to read the appropriate policy, specifically, the definition of what constitutes a Scholastic Offence, at the following Web site:

http://www.uwo.ca/univsec/pdf/academic_policies/appeals/scholastic_discipline_grad.pdf

All required papers may be subject to submission for textual similarity review to the commercial plagiarism-detection software under license to the University for the detection of plagiarism. All papers submitted for such checking will be included as source documents in the reference database for the purpose of detecting plagiarism of papers subsequently submitted to the system. Use of the service is subject to the licensing agreement, currently between The University of Western Ontario and Turnitin.com (http://www.turnitin.com).

Computer-marked multiple-choice tests and/or exams may be subject to submission for similarity review by software that will check for unusual coincidences in answer patterns that may indicate cheating.