Syllabus and Logistics
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)
-
Tuesday, Feb 16th – Abbotsford (3rd floor)
-
Monday, Feb 22nd – Manitoba (6th floor)
-
Monday, Feb 29th – Manitoba
-
Monday, Mar 7th – Ontario (6th floor)
-
Monday, Mar 14th – Ontario
-
Monday, Mar 21st – Ontario
-
Monday, Mar 28th – Ontario
-
Monday, Apr 4th – Ontario
-
Monday, Apr 11th – Ontario
-
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