Skip to content

For lecturers

Teach Python & SQL for finance with EcoFinLearn

64 short lessons that run in the browser, on finance and macro data, written by a lecturer at Durham Business School. Set them as homework with a link, collect signed submission codes in your usual Moodle or Canvas assignment, and check the whole class in one paste. No installation, no student accounts, no cost.

By Sitraka Forler · Lecturer, Durham Business SchoolUpdated 16 October 2026 About this site

1What students get

Each lesson is a short explanation, one exercise in a real code editor, and a check that runs instantly. Python runs in the browser through Pyodide and SQL through an in-browser SQLite, so a student needs a web browser and nothing else: no Anaconda, no database server, no lab booking. Before a lesson ships, an automated harness runs its starter code (it must run and fail the check) and its solution (it must pass). Hints and the solution are there when a student is stuck; the site records whether they were used, and that record is what your grading sees.

TrackLessonsMinutesQuiz
Python Foundations1110832
Data Manipulation1623147
Machine Learning917127
SQL Foundations87520
Advanced Finance SQL712119
IT Essentials1316935
Total64875180

Table 1. The six tracks. Minutes are the estimated working time of each lesson, summed; a first-year student may need more.

2The kit, track by track

For each track: what the modules cover, the visual decks that go with it (animated explainers you can project in a lecture), a ready-made assignment link and the quiz questions as a Moodle file.

2.1Python Foundations

11 lessons, about 108 minutes. No prerequisites.

Build the programming fundamentals every quant analyst needs - from representing portfolio data to writing reusable financial calculators.

What the modules cover

  • Getting Started: Your very first Python programs - no prior experience needed.
  • Variables & Data Types: Represent financial data with Python primitives.
  • Control Flow: Build trade logic with conditionals and loops.
  • Functions: Write reusable financial calculators.
  • Data Structures: Model portfolios with lists and dicts.
  • List Comprehensions: Filter and rank financial data with list comprehensions.
  • Object-Oriented Finance: Model financial instruments with classes.
Decks
none yet
Assign
the whole track (or pick a range in section 3)
Quizzes
32 questions, Moodle GIFT file
Lessons
open the track

2.2Data Manipulation

16 lessons, about 231 minutes. Assumes: Python Foundations: variables, loops, functions.

Harness pandas to load, clean, and transform financial time-series. Compute rolling statistics, log returns, and volatility surfaces.

What the modules cover

  • DataFrames: Load and explore financial data with pandas.
  • Returns & Rolling Stats: Compute log returns and rolling volatility.
  • Multi-Asset Analysis: Correlations, merge operations, and pivot tables.
  • Technical Indicators: Implement SMA, EMA, RSI, and Bollinger Bands.
  • Data Cleaning: Handle missing values, duplicates, and outliers.
  • Merging Datasets: Join price data with fundamental data.
  • Econometrics for Your Thesis: Read an OLS summary, fix standard errors, test for unit roots and run an event study with statsmodels.
  • From Excel to pandas: VLOOKUP, SUMIFS and pivot tables, rebuilt in pandas with a reconciliation check.
  • Risk and Backtests: Value at Risk three ways, and a moving-average backtest without look-ahead bias.
Decks
Pandas, visually, OLS & logistic regression, visually
Assign
the whole track (or pick a range in section 3)
Quizzes
47 questions, Moodle GIFT file
Lessons
open the track

2.3Machine Learning

9 lessons, about 171 minutes. Assumes: Python Foundations; Pandas: DataFrames and returns.

From "what is machine learning?" to walk-forward backtests. Features, regression, classification, ensembles and portfolio optimisation - applied to financial markets with the out-of-sample discipline real quants live by.

What the modules cover

  • ML Foundations: Fit, predict, evaluate - and the overfitting trap every quant must escape.
  • Feature Engineering: Build predictive features from raw price data.
  • Linear Regression: Train and evaluate a return prediction model.
  • Backtesting: Evaluate strategy performance with walk-forward testing.
  • Portfolio Optimisation: Markowitz mean-variance optimisation.
  • Classification: Predict market direction with logistic regression.
  • Ensemble Methods: Reduce overfitting with Random Forest and feature importance.
Decks
A data science project, visually
Assign
the whole track (or pick a range in section 3)
Quizzes
27 questions, Moodle GIFT file
Lessons
open the track

2.4SQL Foundations

8 lessons, about 75 minutes. No prerequisites.

Master SQL fundamentals using real financial datasets. Query equity prices, filter trade ledgers, and aggregate portfolio data with SELECT, WHERE, GROUP BY, and JOINs.

What the modules cover

  • Getting Started: Your very first SQL queries - no experience needed.
  • SELECT & Filtering: Query and filter financial data with precision.
  • Aggregation: Summarise portfolio data with GROUP BY.
  • JOINs: Combine price and macro data across tables.
  • Common Table Expressions: Structure complex queries with CTEs.
  • Conditional Logic: Classify trades with CASE WHEN expressions.
  • Subqueries: Find above-average stocks with nested queries.
Decks
SQL joins, visually
Assign
the whole track (or pick a range in section 3)
Quizzes
20 questions, Moodle GIFT file
Lessons
open the track

2.5Advanced Finance SQL

7 lessons, about 121 minutes. Assumes: SQL Basics: SELECT, WHERE, JOIN, GROUP BY.

Master the SQL techniques used daily in quant research: window functions for time-series analytics, moving averages, CAPM beta calculation, and point-in-time macro joins.

What the modules cover

  • Date Filtering: Filter by date ranges and aggregate by month.
  • Window Functions: Row-level analytics with OVER and PARTITION BY.
  • CAPM Beta: Compute rolling beta vs the SPY benchmark.
  • Macro Joins: Join macro indicators to equity data with point-in-time correctness.
  • RSI & Signals: Generate buy/sell signals with window functions.
  • Multi-CTE Pipelines: Chain multiple CTEs to build analytical pipelines.
  • Interview Prep: The SQL questions finance analyst interviews ask, answered with window functions.
Decks
none yet
Assign
the whole track (or pick a range in section 3)
Quizzes
19 questions, Moodle GIFT file
Lessons
open the track

2.6IT Essentials

13 lessons, about 169 minutes. No prerequisites.

The IT skills coding courses skip - but every employer expects. Git & GitHub, how the internet really works (OSI, TCP/UDP, ping vs cURL), environments & secrets, CI/CD, catching data drift - and how enterprise IT actually runs: ITIL, the CMDB, the cloud, and AIOps. Learn to actually ship.

What the modules cover

  • Basics of IT: The foundations every developer needs: version control with Git, and how the internet actually moves data.
  • Corporate IT: How enterprise IT actually runs: shipping to production (environments, secrets, CI/CD), service management (ITIL), a live map of everything you own (the CMDB), and the cloud it runs on.
  • Frontier IT: Where IT meets AI: catching models that quietly rot in production (data drift), and the machine learning that now watches the machines (AIOps).
Decks
Git, visually, A data science project, visually, Zabbix, visually
Assign
the whole track (or pick a range in section 3)
Quizzes
35 questions, Moodle GIFT file
Lessons
open the track

The GIFT files import into a Moodle question bank (Question bank, Import, GIFT format), one category per module, with the feedback for every answer. You may use the lessons and questions with a class, with a link back to this site (terms, section 6).

3Build an assignment link

Choose a track and a range of lessons, add a due date and a class code if you like, and paste the link into your course page. The link holds the whole assignment, so nothing is saved on this site and the link works for as long as the lessons exist.

5 lessons, about 35 minutes. The link for your course page:

https://ecofinlearning.com/assign?set=python-foundations:1-5

A link can also list lessons from several tracks by id, for example /assign?set=sb-m0-l1,sb-m0-l2.

4How grading works

  1. You put the assignment link on Moodle, Canvas or Blackboard, next to a text-submission assignment.
  2. Students open it, see the lessons, the due date and their progress, and work through the lessons. Progress is saved in their browser.
  3. When every lesson is done, the sheet issues a submission code: a line of text signed by this site.
  4. The student pastes the code into your assignment, as they would any short answer.
  5. You export or copy the submissions and paste them all into the checker, which returns a table and a CSV for your gradebook.

A code contains the student's typed name (and their Google or GitHub email if they chose to sign in), the class code, the lessons, whether each was done clean or with a hint or the solution, the completion times, and the time the code was issued. Changing a single character breaks the signature, so a code cannot be edited or forged.

What a code does not prove: the exercises are checked in the student's browser, so a code shows who claimed the work and when, not that they did it alone. Treat it like a submitted lab sheet, not an invigilated exam.

5What is free, what is not ready

ItemStatus
All lessons, exercises, hints and solutionsFree, available now
Assignment links with due date and class codeFree, available now
Signed submission codes and the checker (table and CSV)Free, available now
Quiz questions as Moodle GIFT filesFree, available now
Visual decks for lecturesFree, available now
Class dashboard (live progress of a cohort, no codes to paste)In development, not available
Tracks and exercises on your own datasetsIn development, by arrangement

Table 2. What a lecturer can use today.

The class dashboard needs a server-side store of student progress, which is not running yet; until it is, the codes are how you see who did the work, and they need no account on either side. If a dashboard, a licence for a cohort or custom datasets would decide whether you adopt EcoFinLearn, write to me: pilot courses shape what gets built first.

6Contact

Tell me about your course: institution, level, number of students, start date, and which tracks you are considering. The button opens an email with those questions already written.

See also: pricing, who makes this, all visual decks.