Jupyter and QuantEcon¶
Peifan Wu (Postdoc @ Vancouver School of Economics, Intructor of ECON323)
About QuantEcon¶
QuantEcon is a nonprofit organization dedicated to improving economic modeling by enhancing computational tools for economists. In particular, it provides three sets of lectures:
QuantEcon with Python
Basic: Introductory
Advanced: Tools in (macro)economic Research
QuantEcon with Julia
QuantEcon DataScience
QuantEcon DataScience¶
QuantEcon DataScience presents lectures on (Python) programming, data science, and economics.
Consists of different parts
Python Fundamentals: Basic operations, collections, control flow, functions, etc.
Scientific Computing: Brief intro to Numpy and Scipy; Optimizations; Basic Applications in Economics
Pandas: Playing around with Pandas DataFrames
Applications: Case studies. More advanced techniques in visualization; More statistical methods and machine learning in Economics
Taught in various places
Utilize all the course contents: UBC, Huazhong University of Science and Technology
Partly used: 5+ schools around the world (NYU, PennState, Peking-HSBC Business School, NUS)
Good Resource for Self-study
Lectures in the form of Jupyter notebooks Github Repository
Discourse forum for Q&A
Jupyter and QuantEcon DataScience Lectures¶
Running the Lectures with Jupyter¶
We offer several options to run the lectures:
Local Installation (not recommended) running the notebooks offline and locally
Running on the cloud, with NBGitPuller(https://github.com/jupyterhub/nbgitpuller) fetching the latest version of the notebooks
Google Colab
We can help setup Jupyter Hubs if people want to teach with this material
(Demo: Navigation Bar)
Advantages:
A uniform environment saves teaching time from software installation
In-class demonstrations can be easily shared and fully replicated by the students
Writing/Updating Lectures¶
We write the lectures with reStructuredText
(rst) file format. For webpage formatting, we include custom environments (warning
, exercise
, etc).
Then the Jupinx tool converts rst
files into a website via Jupyter Notebooks. The name of Jupinx comes from Jupyter + Sphinx.
Jupinx generates several versions of notebooks: original vs executed, website vs local ones
WYSIWYG
The source files are synchronized from Github repositories, and compilations are on AWS clusters.
For web-based data, we cache the data we need on AWS bucket.
Fetching data online depends on the stability of the API, and the Internet. Not ideal for teaching.
Some data are relatively large and takes time for the Jupyter notebook to download.
Easy and consistent to maintain.
Teaching¶
Instructor’s Experience¶
Code and execute in class, immediate feedback from the students
Students vary in programming background. Skip the hardest steps…
Explain in detail the meaning of the codes, and do variations
Remote teaching through Canvas is slick!
Students’ Feedback¶
(Mean 4.5/5.0, IM 4.7/5.0 – not bad!) The students love the comprehensive selection of the topics and the inter-discipline course material. The setting of this course is perfect for online teaching during COVID-19 as well.
Feedback and comments:
It touches too many topic without spending sufficient time on each of them
We aim at an introductory course that covers a wide range of topics
We don’t require previous knowledge on machine learning
Focus on the machine learning portion
This course is more about economics
Maybe machine learning in data science programs?
This class would greatly benefit from a flipped class format
Instead of going through the lectures one by one, we can put more course material for reading and give interactive coding sessions
More interactive options?
Final Project Showcase¶
The students are supposed to work on a final project at the end of the semester and we showcase their projects here with their permissions.
Resume building, advertising, cross-reference…