Resources
In this section we present some additional resources that we found helpful.
Initiatives
EconARK
The EconARK project provides opensource toolkits for researchers trying to understand how economic and social outcomes result from the actions of heterogeneous individuals. The primary goals of the project are to (1) make entry into the world of such modeling easy, (2) accelerate the development of this kind of modeling for policymaking and academic research, and (3) increase the openness, replicability, and interoperability of modeling tools. EconARK is headed by Christopher D. Carroll, Professor of Economics at the Johns Hopkins University.
QuantEcon
QuantEcon is an initiative by Thomas J. Sargent and John Stachurski. It is very well suited for inexperienced programmers. Besides explaining some components of structural models in detailed and simple to follow tutorials, it also teaches the basics of Python and Julia.
Scientific Programming
Anaconda Distribution
The opensource Anaconda Individual Edition is the easiest way to perform Python/R data science and machine learning on Linux, Windows, and Mac OS X. With over 19 million users worldwide, it is the industry standard for developing, testing, and training on a single machine.
Jupyter Lab
Jupyter Lab is a webbased interactive development environment for Jupyter notebooks, code, and data. JupyterLab is flexible: configure and arrange the user interface to support a wide range of workflows in data science, scientific computing, and machine learning. JupyterLab is extensible and modular: write plugins that add new components and integrate with existing ones.
Resources
Version Control
The Introduction to Git and GitHub course on coursera offers a well rounded intro into version control using Git and GitHub. It will teach you all the fundamentals as well as more advanced features.
The GitKraken video tutorial series provides you with the knowledge needed to start using Git. It covers the absolute basics as well as advanced procedures involving Git. The course consists of 15 concise videos split into three difficulty levels, all of which can be watched in under an hour.
SciPy
SciPy is a Pythonbased ecosystem of opensource software for mathematics, science, and engineering. In particular, these are some of the core packages: numpy
, scipy
, matplotlib
, and pandas
.
SciPy Lecture Notes
The Scipy lecture notes provide an excellent starting point for everyone interested in scientific programming in Python. They cover the main scientific packages of the Python ecosystem, namely numpy
, scipy
and matplotlib
. Each chapter corresponds to a 1 to 2 hour course with the level of expertise increasing from beginner to expert.
Resources
Software Carpentry
Software Carpentry teaches researchers the computing skills they need to get more done in less time and with less pain. They have a lot of useful lessons on many different topics like Python and R programming or the Unix shell.
statsmodels
statsmodels
is a Python module that provides classes and functions for the estimation of many different statistical models, as well as for conducting statistical tests, and statistical data exploration. An extensive list of result statistics are available for each estimator. The results are tested against existing statistical packages to ensure that they are correct.
Check out the online documentation.
Textbooks
McKinney, W. (2017). Python for Data Analysis: Data Wragnling with Pandas, NumPy, and IPython. O’Reilly Media, Inc., Sebastopol, CA.
Ramalho, L. (2015). Fluent Python. Clear, Concise, and Effective Programming. O’Reilly Media, Inc., Sebastopol, CA.
Rossant, C. (2018). IPython Interactive Computing and Visualization Cookbook. Packt Publishing, Birmingham, England.
VanderPlas, J. (2016). Python Data Science Handbook O’Reilly Media, Inc., Sebastopol, CA.
Linge, S. & Langtangen, H. (2020). Programming for ComputationsPython Springer, Cham, Switzerland.
Irving, D., Hertweck, K., Johnston, L., Ostblom, J., Wickham, C., & Wilson, G. (2020). Research Software Engineering with Python.
Online Python Courses

Introduction to Computer Science and Programming using Python. This course aims to introduce brief topics on computer science and the Python programming language for people with no prior computational experience.

Programming for Everybody (Getting started with Python). The course covers the basics of Python programming language such as: variables and expressions; conditional statements; functions; loops; and iterations.

Intro to Python tutorial. This site is supported by DataCamp and offers a range of interactive Python tutorials that go from the basics concepts of the language to more advance computational topics.

SoloLearn App. A useful resorce for understanding the general structure of Python programming language while practicing by writing Python code within the app.

Introduction to Python. The course offers an introduction to Python and PyData stack such as numpy, panda, matplotlib, scipy and statsmodels.