Python Programming
Ariel Rokem
(Stanford University)
Python Programming (Part 1): Introduction to Programming

Duration: 3:58
Description:
Introduction to the principles of programming and the Python language.
Ariel Rokem
(Stanford University)
Python Programming (Part 2): Introduction to Python and IPython Notebook

Duration: 8:16
Description:
* The Python interpreter
* iPython and its advantages over the basic Python interpreter.
* Magic commands
* iPython Notebook
Ariel Rokem
(Stanford University)
Python Programming (Part 3): The Python Language and IPython Notebook

Duration: 14:41
Description:
This tutorial uses an example notebook, which can be downloaded from: http://github.com/arokem/python-tutorial
IPython Notebook basics: cells, cell types, and markdown syntax, LaTeX interpreters
Introduction to variables and standard operators. Including operators for strings and boolean operators.
Ariel Rokem
(Stanford University)
Python Programming (Part 4): Functions Modules and Objects

Duration: 11:23
Description:
Using functions and getting help
Importing external libraries/modules
Introduction to NUMPY
Introduction to objects in Python
Ariel Rokem
(Stanford University)
Python Programming (Part 5): Exercise 1 - Introducing logistic growth

Duration: 10:30
Description:
Throughout this lesson, we will successively build towards a program that will calculate the logistic growth of a population of bacteria in a petri dish (or bears in the woods, if you prefer).
Ariel Rokem
(Stanford University)
Python Programming (Part 6): Collections of Things - Lists

Duration: 7:47
Description:
* Slicing
* String expansion
Ariel Rokem
(Stanford University)
Python Programming (Part 7): Exercise 2 - Storing population in a list

Duration: 9:41
Further Information:
Modify your code so that the values of n0, n1, n2, and n3 are stored in a list and not as separate individual variables. HINT: You can start off by declaring an empty list using the syntax n = [], and then append each new calculated value of nt to the list. Get the first and last values in the list, calculate their ratio, and print out “Grew by a factor of ” followed by the result.
Bonus: Extract the last value in two different ways: first, by using the index for the last item in the list, and second, presuming that you do not know how long the list is. Change the values of r and K to make sure that your cell still runs correctly and gives reasonable answers.
Ariel Rokem
(Stanford University)
Python Programming (Part 8): Tuples and Dictionaries

Duration: 5:36
Description:
* The immutability of tuples
* Using dictionaries to store things
* Key/Value pairs
Ariel Rokem
(Stanford University)
Python Programming (Part 9): NumPy Arrays

Duration: 11:34
Description:
* Importing NumPy and working with arrays
* Arrays from lists
* Arithmetic on arrays
* Boolean operators on arrays
* Indexing arrays
* ndarrays
Ariel Rokem
(Stanford University)
Python Programming (Part 10): Loops

Duration: 8:03
Description:
* How to write ‘for’ loops and ‘while’ loops
* The importance of indentation in python
Ariel Rokem
(Stanford University)
Python Programming (Part 11): Exercise - Loops

Duration: 10:33
Description:
* A quick aside on plotting
* Write a for loop
* Plot the resulting array
* Modify the values to see how the plot changes
* Modify the code to make it stop when a limit is met
Ariel Rokem
(Stanford University)
Python Programming (Part 12): Making Choices - Conditional Statements

Duration: 4:19
Description:
* Conditional statements
* Using ‘if’ & ‘else’
* boolean variables & statements
Ariel Rokem
(Stanford University)
Python Programming (Part 13): Exercise - Making Choices

Duration: 4:41
Description:
Making the model stochastic with an if statement
Ariel Rokem
(Stanford University)
Python Programming (Part 14): Writing Functions

Duration: 8:57
Description:
* How to write your own functions
* Running your functions and documenting them using doc strings
Ariel Rokem
(Stanford University)
Python Programming (Part 15): Exercise - Functions

Duration: 4:49
Description:
Creating a logistic regression function
Ariel Rokem
(Stanford University)
Python Programming (Part 16): Creating Modules

Duration: 5:50
Description:
* Creating a Module from our logistic regression function
* The importance of importing dependencies in each module
* reloading modules using ‘reload(modulename)’
- Ariel Rokem » Part 1: Introduction to Programming
- Ariel Rokem » Part 2: Introduction to Python
- Ariel Rokem » Part 3: Python and IPython Notebook
- Ariel Rokem » Part 4: Functions and Modules
- Ariel Rokem » Part 5: Exercise 1 - Logistic growth
- Ariel Rokem » Part 6: Lists
- Ariel Rokem » Part 7: Exercise 2 - Lists
- Ariel Rokem » Part 8: Tuples and Dictionaries
- Ariel Rokem » Part 9: Arrays
- Ariel Rokem » Part 10: Loops
- Ariel Rokem » Part 11: Exercise - Loops
- Ariel Rokem » Part 12: Conditional Statements
- Ariel Rokem » Part 13: Exercise - Making Choices
- Ariel Rokem » Part 14: Functions
- Ariel Rokem » Part 15: Exercise - Functions
- Ariel Rokem » Part 16: Creating Modules
Version Control With Git
Ariel Rokem
(Stanford University)
Part 1: Introduction to Version Control

Duration: 3:46
Description:
An overview of version control systems:
Who should use a version control system?
What can you do with a version control system?
What is Git?
Ariel Rokem
(Stanford University)
Part 2: Introduction to Git

Duration: 3:45
Description:
This tutorial provides a quick introduction to Git – including installation and configuration.
Ariel Rokem
(Stanford University)
Part 3: Working with Git - Basic Concepts

Duration: 4:25
Description:
Part 3 of the “Version Control With Git” series. This tutorial provides an introduction to the basic concepts underlying Git.
Ariel Rokem
(Stanford University)
Part 4: Working with Git - Command Line Basics

Description:
Part 4 of the Version Control With Git series.
This tutorial covers:
The cycle of virtue, Git init, Git status, Git add, Git commit, Git log, and Git diff
Ariel Rokem
(Stanford University)
Part 5: Working with Git - Branching and Merging

Duration: 10:36
Description:
Part 5 of the Version Control with Git series. This tutorial covers local branching and merging.
Ariel Rokem
(Stanford University)
Part 6: Working with Git - Resolving Merge Conflicts

Duration: 7:18
Description:
Part 6 in the Version Control with Git series. This tutorial covers what to do in order to remain sane when a merge conflict occurs. Ariel will keep you cool and relaxed as he navigates you through this tricky gituation.
- Ariel Rokem » Part 1: Introduction to Version Control
- Ariel Rokem » Part 2: Introduction to Git
- Ariel Rokem » Part 3. Working with Git - Basic Concepts
- Ariel Rokem » Part 4: Working with Git - Command Line Basics
- Ariel Rokem » Part 5: Working with Git - Branching and Merging
- Ariel Rokem » Part 6: Working with Git - Resolving Merge Conflicts
MATLAB Tutorials
Kendrick Kay
(Washington University, St. Louis)
MATLAB Basics (Part 1)

Duration: 58 min
Description:
This video is part 1 of 2, covering the basics of MATLAB (geared towards data analysis and statistics). See additional materials athttp://artsci.wustl.edu/~kkay/psych5007/
Kendrick Kay
(Washington University, St. Louis)
MATLAB Basics (Part 2)

Duration: 1h 47 min
Description:
This video is part 2 of 2, covering the basics of MATLAB (geared towards data analysis and statistics). See additional materials athttp://artsci.wustl.edu/~kkay/psych5007/