The R&D stream will meet on Mondays from 1:00-2:30PM EST in the Ontario room (when available) on the 6th floor of 438 University. Since Monday, Feb 15th is a holiday, the first R&D class will be on Tuesday, the 16th at 1PM EST.

Date & Room Schedule (might be updated as course progresses)

  1. Tuesday, Feb 16th – Abbotsford (3rd floor)

  2. Monday, Feb 22nd – Manitoba (6th floor)

  3. Monday, Feb 29th – Manitoba

  4. Monday, Mar 7th – Ontario (6th floor)

  5. Monday, Mar 14th – Ontario

  6. Monday, Mar 21st – Ontario

  7. Monday, Mar 28th – Ontario

  8. Monday, Apr 4th – Ontario

  9. Monday, Apr 11th – Ontario

  10. Monday, Apr 18th – Ontario

Below is an outline of the course - lessons may be added or modified as the course progresses.

Lesson 1: Control flow and Basic operations

  • Introduction to Anaconda and IPython
  • Scalar Data types
  • Basic Data Structures/Sequences
  • Loops and expressions
  • List comprehensions
  • “Pythonic” programming

Lesson 2: Functions

  • Writing functions
  • Function scope and side effects
  • Lambda functions

Lesson 3: Classes and Modules

  • Classes: Object orientated programming in Python
  • Functions vs methods
  • Generating classes
  • Installing Modules
  • Creating modules

Lesson 4: NumPy and Pandas 1

  • Modules in Python
  • Vectorization in NumPy
  • Panda DataFrames
  • Reading, displaying and exporting csv files
  • Subsetting, functions and methods on dataframes

Lesson 5: NumPy and Pandas 2

  • Reshaping, pivoting and aggregating using Pandas
  • Advanced data munging
  • Time series analysis

Lesson 6: Plotting and Regression

  • Matplotlib/Seaborn, Pandas plotting, ggplot for Python
  • Saving, embedding and using plots
  • Statsmodels module
  • Linear Regression and ANOVA

Lesson 7: Advanced Stats

  • Logistic regression and GLMs
  • Linear Optimization
  • Clustering

Lesson 8: Machine Learning and scikit-learn

  • Introduction to sci-kit-learn
  • Data formats and methods
  • Unsupervised clustering example – kmeans

Lesson 9: Optimization

  • Profiling, debugging and testing code
  • Parallel processing
  • Working out of memory

Lesson 10: Work Flow

  • Working on remote servers
  • Working with SQL
  • Script organization and modules
  • Jupyter Notebooks