• Welcome to the Open Risk Academy where we forge the open future of risk management!

    Acedemy Visual


    Search for a topic of interest or simply scroll down the page to find an interesting course!

    Can't find an interesting course? Use the course request form to outline a topic of interest and (subject to resources and fit) we will try to accomodate!


Courses


Academy News

New Course: Working with Large Matrices using Command Line Tools

by Ad Min -

 

Dear Academy users,

we are happy to release a fresh new courseWorking with Large Matrices using Command Line Tools

What is this course about

In this course we explore a number of Linux command line tools (CLI):

  • Bash scripting
  • Several basic CLI commands (ls, cd, etc.)
  • File manipulation oriented CLI commands such as head, cut, wc
  • The awk programming language and scripting

We apply these in a very concrete context: working with large matrix files that form part of various economic input-output models. Such files are cumbersome to work with in spreadsheets, but on the other hand the overhead of using a full-blown statistical / data science environment might be also high. Command line tools offer a handy intermediate approach that may be useful in various context.

Prerequisites

Basic knowledge of and a working setup of a Linux or Linux-like development environment (including working with a shell and a text editor) is essential. Any standard Linux distribution should work (Using WSL on Windows machines) and MacOS as well (possibly with the installation of GNU tools). 

Some exposure to scripting and any general purpose programming language (E.g., Python, Javascript, C++, Java) is required for understanding the scripts and work through the awk exercises.

The course derives motivation from the large matrix data processing task. Hence, some idea of what a matrix is and why it is relevant to know how to work with them is assumed, but it is not required for completing the course as we do now go into any mathematical aspects of matrices.

Table of Contents

  • Motivation for Command Line tools
  • Overview and Setup of CLI Tools
  • A hello world in Awk
  • Downloading Data: Using command line tools to get published matrix data stored in local disk
  • Extracting Data: verify we have downloaded correct datasets and (if necessary) bring to a shape that makes it usable (e.g. uncompressing it)
  • Scanning Data Files: get a first high level view of what sort of files we have downloaded
  • Figuring out Structure and Dimensions: understand structure of the file (separators, total number of rows and columns involved and their nature).
  • Scrubbing / Cutting / Reshaping: create clean files where matrix data with a known number of rows and columns are stored in tab separated ascii format.
  • Transformations: Perform simple mathematical transformations and statistical operations. Investigate the degree to which matrix values are non-trivial (non-zero) 

Resources

We will work with Input-Output matrices downloaded from well known public distributions (EXIOBASE, FIGARO, OECD-ICIO). Scripts providing guidance and solutions to the suggested exercises are available the Open Risk Academy Gitub Repositories.

Enjoy!

 

New Course: An Introduction to the Copernicus Satellite Data Ecosystem

by Ad Min -
Earth Day is an annual event on April 22 to demonstrate support for environmental protection. First held on April 22, 1970, Earth Day celebrations now include a wide range of events coordinated globally by earthday.org (formerly Earth Day Network) including 1 billion people in more than 193 countries.

We honor this occasion releasing a new Academy data science course that provides an introduction to the Copernicus Satellite Data Ecosystem.  Copernicus is the name of an Earth observation system of the European Union's Space programme. Its objective is to look at our planet and its environment, in particular serving the needs of European citizens. Copernicus offers integrated information services (data) that draw both from Satellite based Earth Observations and In-Situ (non-space) data collection.

Picture of a sentinel satellite

This course should be a useful first reading for anybody who wants to get involved in using Copernicus data but has no prior experience.

In the first step we go over a high-level overview of the Copernicus program. This should serve as a first orientation for anybody interested to work with Copernicus data but is not yet sure what is available.

In the second step we build a high level catalog of the available data resources. Copernicus is a large program, involving many institutions, diverse satellites and instruments, providing original and processed data, including additional sources of ancillary data and an ever evolving set of tools providing data access. This section aims to organize all these to some degree.

In the third step and final step of this introduction into the Copernicus programme we discuss some tools that relevant for working with Copernicus data resources. Detailed work with Copernicus data requires using diverse specialized tools but there are ongoing efforts to systematize and standardize them with various toolboxes, platforms and API's. Here we only scratch the surface of the relevant technologies to get you started!

Enjoy, and as always keep us posted with any feedback, ideas or suggestions about how to improve the Open Risk Academy.

Open Source and Open Education (OEWeek online chat event)

by Ad Min -


Open Education Week Banner

Open source software is very effective in democratizing digital capabilities across a vast range of domains. As prime example, Moodle is an open source eLearning platform that powers hundreds of thousands of learning environments globally (it provides also the basic infrastructure for the Open Risk Academy). Yet contributing to open source faces the formidable barrier of scarce technical (digital) literacy. How can we best use open source to teach about open source? Can we set in motion a virtuous cycle that will produce a reinforcing mechanism where people use open source tools to build more open source education tools? This is the topic of a free format online chat event. 

The event should be interesting for anybody thinking or working at the intersection of open source and open education irrespective of which domain they specialize in. We'll try to make a number of different channels available:

The scheduled time is 5:00pm-6:00pm (Europe/Amsterdam time) on the 7th of March 2024. Come and join the discussion!

A new short course providing interactive analysis of input-output models

by Ad Min -

A new short introductory course on Input-Output analysis focuses on stylized interactive calculations that can be performed directly within the online reading sections.

The level of the course is introductory. There are no mathematical nor computer science prerequisites. It should be useful for anybody wishing to obtain insights into the flow of the basic calculations behind modern large scale Environmentally Extended Input-Output Models.

The objective of the course is to provide intuition and familiarity with the basic calculation workflow, indicatively:

From the Initial IO System

Calculate the Technical Requirements Matrix:

Calculate the Leontief Inverse Matrix:
Enter a new Demand vector:
To obtain the new IO system:


Enjoy!

New Academy Course, an Introduction to Tensor Operations with Eigen

by Ad Min -

An Introduction to Tensor Operations with Eigen is a new course at the Open Risk Academy. It is a DeepDive into using the Eigen C++ Library to perform Tensor calculations.

What is Eigen::Tensor?

Eigen is a C++ template library for linear algebra covering matrices, vectors, numerical solvers, and related algorithms. We focus in this course on a significant extension of Eigen (the Tensor module) that extends Eigen's functionality in handling higher-dimensional numerical objects (tensors of three and higher dimensions).

Motivation for the Course

Eigen (and in particular its Tensor module) is a building block used by major open source computational libraries and frameworks such a Tensorflow and Stan. Such libraries frequently require tensor type containers (higher-dimensional than vectors and matrices). Familiarity with the Eigen::Tensor API enables developers with similar requirements to write concise, high-level C++ code that is performant on a variety of devices.

Course Objectives

The objective of the course is to provide an introduction to using Eigen::Tensor as a high-level library for using Tensors in C++ projects.

  • We learn the concept and techniques of the Eigen Tensor class
  • How to declare, initialize Tensors of various ranks and types and how to access Tensor elements
  • Elementary unary and binary operations involving Tensors
  • More complex operations (reductions, contractions)
  • Modifying the shape of Tensors

The course is now live at the Academy, the github repository hosts C++ scripts used in the course.

Pre-requisites

Basic knowledge and a working setup for C++ development (e.g., being able to add Eigen as a header only library) is required.

Mathematical notation is used liberally throughout the course to clarify (for those familiar with it) the tensor manipulation concepts but is not strictly required for benefiting from the course.

Summary of Contents

The course comprises 14 Steps covering the following topics

  • Step 1. Getting started with Eigen
  • Step 2. Tensor Class Declarations
  • Step 3. Tensor Class Initializations
  • Step 4. Working with Tensor Elements, I
  • Step 5. Working with Tensor Elements, II
  • Step 6. Random Number Initialization
  • Step 7. Unary Element-Wise Operations
  • Step 8. Binary Element-Wise Operations
  • Step 9. In-Memory Representations of Tensors
  • Step 10. Tensor Contraction Operations
  • Step 11. Tensor Reduction Operations
  • Step 12. Tensor Shape Modifying Operations
  • Step 13. Tensor Scanning Operations
  • Step 14. Review and Outlook

Course Exercises

The exercises concern writing C++ small snippets of code that accomplish a certain task. The form of each exercise is as a Catch2 test. Indicative solutions are provided in this repository.

Enjoy!

Attachment tensorflow-example.jpg

Crash course introduction to Input-Output model mathematics

by Ad Min -

A new crash course is available now in the Academy.

The course should be useful for people who want to refresh their linear algebra and matrix theory knowledge or want identify specific areas which they wish to study deeper. It offers a brief introduction to Input-Output Model mathematics, the basic elements of linear algebra and matrix theory that are necessary to understand the standard Input-Output models, including their environmental impact extensions. Matrix theory is the main subject covered here, as it is the dominant mathematical tool used in IO analysis. The focus is on notation and defining the mathematical objects and operations commonly used, not the economic interpretation or any mathematical proofs.

This resource can be seen as a slightly more mathematical version compared to Appendix A: Matrix Algebra for Input-Output Models as presented in the definitive textbook on IO models, namely Input-Output Analysis Foundations and Extensions by Miller and Blair. We follow roughly the naming, notation and conventions of the Encyclopedic Dictionary of Mathematics.

A summary of the main topics covered:

  • Basics, Matrix Definition, Matrix Families
  • Various Matrix Operations
  • Matrix-Matrix Products (Cayley, Hadamard, Kronecker etc.)
  • Matrix Inversion and Matrix Series
  • Select IO Specific Topics

You can enroll directly here. Enjoy and keep us posted with any observations, ideas or feedback on how to improve this resource.

Older topics...