PNB-711/712/713/714 - Scientific Computing
Spring 2022
Course Links
Course Outline
In this course you will gain introductory experience programming in Python. We will cover topics including basic programming skills, data manipulation and analysis, plotting, and automating routine tasks. You will learn these tasks with reference to everyday problems psychologists face.
Required reading:
There is no textbook or mandatory reading for this course. Students can suppliment lectures with reading from: https://problemsolvingwithpython.com/ and https://jakevdp.github.io/PythonDataScienceHandbook/
Assessments:
There are no tests in this course. Each student will program a set of Python scripts in a coding lab each week, and weekly take-home assignments. These scripts will be directly relevant to research in Psychology, Neuroscience, & Behaviour. Students will be assessed on the functionality, coding style, and method of these scripts.
Schedule of topics (subject to change):
1. Introduction to Scientific Computing
1. Introduction
2. Tools
3. Google Colab and Jupyter Notebooks
4. Variables
5. Operators
6. Conditionals
2. Data Types, Loops, Conditionals, and Functions
1. Data Types
2. Loops
3. Dictionaries
4. Functional Programming
3. Debugging and Classes
1. Object Oriented Programing
2. Classes
3. Objects
4. Namespaces
4. Analyzing and Plotting Data
1. NumPy
2. Exploring data in Pandas
3. Data analysis with SciPy & Statsmodels
5. Deep Dives
1. Automated Voice Analysis
2. Automated Face Analysis
6. Machine Learning
1. Unsupervised learning
2. Supervised learning
Labs
Each coding lab will help develop skills learned in lectures. This year our coding lab will revolve around coding a stroop task, simulating data, and analyzing it. Labs will be live, online and we can work in groups to help each other code.
Assignments
Assignments further develop the skills learned in lecture and lab, and are to be done alone, and handed in each week during the course.
Deadlines
The soft deadline for each assignment is 1 week after it is assigned. The hard deadline for all assignments is 1 week after the final day of class. There is no penalty for handing in something after the soft deadline. There will be penalties after the hard deadline.
PsychoPy
Why are we not learning PsychoPy? Because there is very little you need Python-wise to use PsychoPy. PsychoPy Builder is increadibly powerful. It is not worth our while to learn how to code PsychoPy experiments from scratch. You should be able to use PsychoPy Builder without coding knowldedge. With the knowledge you gain in this course, you should be able to modify PsychoPy code.
R
R is great and I highly encourage you to learn it in addition to Python. It’s currently being offered in several other courses across campus.