Software Engineering for Economists Initiative

  • Big Compute
  • Big Data
  • Estimation
  • Storage
  • Simulation
  • Collection
  • Perturbation
  • Collaboration
  • Relevance for Economic Research

    • ... expand the set of possible economic questions to explore
    • ... improve transparency of implementations
    • ... ensure recomputability of results
    • ... build on and contribute to open science projects
    • ... learn about drivers of the New Economy

    Relevance for Economics Students

    • ... acquire skills in high demand in private sector
    • ... offer unique expertise as research assistants

    See also the panel on How Big Data is Changing Economics with Susan Athey and Hal R. Varian at the Becker Friedman Institute. Available at http://bit.ly/1cSwCGM.

    Basic Skills

  • Version Control
  • Data Management
  • Unit Testing
  • Code Optimization
  • Debugging and Profiling
  • Cloud Computing
  • Design Patterns
  • Initiative

    Online Presence

    Overview

    • Components
    • Tools
    • Environment

    Components

    Components

  • Course
  • Workshop
  • Project
  • Colloquium
  • Bootcamp
  • Recruiting
  • Course

    We acquire fundamental software engineering skills to tackle computer-intensive economic research projects. These basic techniques allow us to leverage tools from computational science, increase the trans- parency of our implementations, and ensure the recomputability of results. Thus, they expand the set of possible economic questions that we can address and improve the quality of our answers.

    Project

    The Project consists of a contribution to the Quantitiative Economics project, an open source library for quantitative economic modeling. We prepare high-quality implementations and documentations of quantitative economic models.

    Bootcamp

    The Bootcamp introduces students to the basics of the Python programming language and the Ubuntu operating system. It is self-contained but also intended to prepare students for the regular class Software Engineering for Economists.

    Workshop

    The Workshop provides an informal meeting of students working on computational research projects. Students present their current work and solicit input from their peers to improve their implementations.

    Computational Economics Colloquium

    The Colloquium offers students a unique opportunity to learn from leading scholars who teach economic modeling, numerical methods, and software engineering. Top researchers in this field will share their innovative approaches throughout the academic year.

    Recruiting

    Students familiar with basic software engineering skills offer unique expertise as research assistants. Faculty members working on data- or computation-intensive economic research projects use the opportunity to advertise their open positions to course participants.

    Tools

    Tools

  • Python
  • Microsoft Azure
  • Ubuntu
  • grmToolbox
  • Git and GitHub
  • Quantitative Economics
    • The Python programming language is accessible to novice programmers seeking to develop software engineering skills, and powerful enough for serious computation. Python is used by computer programmers and scientists alike. Thus, it provides the tools used in software engineering as well as numerous libraries for scientific computing. In addition, Python is an open source project easily linked with other languages such as Fortran and C.

      Website: https://www.python.org

    • Ubuntu is a Linux-based operating system. It is based on the principle of open-source development and users are encouraged to use free software, study how it works, improve upon it, and distribute it. Using Ubuntu serves as a preparation for the use of high performance computing clusters, who mostly rely on Linux-based operating system.

      Website: http://www.ubuntu.com

    • Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. It allows to organize code revision in a logical and coherent way and thus ensures recomputability of results. GitHub is a web-based Git repository hosting service, which offers all of the distributed revision control and source code management (SCM) functionality of Git as well as adding its own features.

      Website: http://www.git-scm.com https://github.com

    • Microsoft Azure is a cloud computing platform which provides the power and scalability required for collaboration, high performance computation, and data-intensive processing. Class participants receive access to the cloud using Microsoft Azure Academic Passes for six months.

      Website: http://research.microsoft.com/azure

    • The grmToolbox is a computer program for the simulation and estimation of the generalized Roy model (Eisenhauer et al., 2015). It is designed as a teaching tool to show how, by acquiring software engineering skills, econometricians can more readily absorb research from computational science, improve the transparency of implementations, and ensure recomputability of results.

      Website: http://grmToolbox.github.io

    • The Quantitiative Economics website provides a series of lectures on quantitative economic modelling using Python. Topics include economic theory and empirics, mathematical and statistical concepts related to quantitative economics, algorithms and numerical methods for studying economic problems, and coding skills.

      Website: http://quant-econ.net

    Environment

    Environment

    • Computation Institute
    • Social Science Computing Services
    • Research Computing Center

    Computation Institute

    The Computation Institute is a joint initiative between the University of Chicago and Argonne National Laboratory to advance science through innovative computational approaches. It is a resource center for those collecting and analyzing large quantities of data and detailed numerical simulations of complex phenomena.

    Website: https://www.ci.uchicago.edu

    Social Sciences Computing Services

    Social Sciences Computing Services is made up of several distinct support teams that provide several services to the Social Sciences Division such as Desktop and Server Support.

    Website: https://sscs.uchicago.edu

    Research Computing Center

    The Research Computing Center is dedicated to providing the University of Chicago community a full-service high-performance computing (HPC) center, including visualization resources, access to software, workshops, one-on-one consulting with domain experts, and complete data-management strategies to researchers across all departments and divisions.

    Website: https://rcc.uchicago.edu

    Next Steps ?

    Contact

    References

    Eisenhauer, P., Heckman, J. J., and Vytlacil, E. J. (2015). The Generalized Roy Model and the Cost-Benefit Analysis of Social Programs. Journal of Political Economy, 123(2):413-443.