Computer scientist · mathematician · educator

Complex ideas.
Useful systems.

I work where computer science, mathematics and psychology meet—building intelligent software, investigating models and making difficult ideas possible to learn.

Code · models · markets · minds

Continue

Professional profile

Depth in one field.
Perspective from several.

I am a computer scientist and mathematician with a minor in psychology from the University of Copenhagen. My work connects theoretical computer science, software development and the study of how people learn.

I move between algorithms and implementation, from computational geometry, topology and complexity to machine learning, agentic workflows and financial modelling. The common thread is a preference for ideas that can be inspected, tested and turned into useful systems.

Teaching is not separate from that work. I teach programming, informatics, mathematics, machine learning and data science, write learning materials and supervise teachers completing their pedagogy examinations in computer science.

Academic foundation
Computer science · Mathematics · Psychology
Earlier university teaching
Algorithms · Data structures · Advanced algorithms
Current practice
Development · Research interests · Education · Writing

Areas of expertise

A connected field
of interests.

From the theoretical limits of computation to the practical question of whether a model, a system or a lesson works outside the notebook.

01

Agentic software development

Structuring specialised AI agents, tools, context and verification loops so complex software can be analysed and developed as a coordinated system.

02

Machine learning & AI

Applied modelling, data mining, deep learning and intelligent systems—with the mathematics visible and the assumptions open to inspection.

03

Computational finance

Financial time series, stock-price prediction, portfolio analytics and market modelling. Hypotheses are tested through careful validation, backtesting and relevant benchmarks, with uncertainty, non-stationarity and overfitting treated as central problems—not footnotes.

Analytical decision support, never financial oracle.

04

Computer-science education

Computational thinking, programming pedagogy and learning design informed by psychology, visualisation, experimentation and student agency.

05

Computational geometry & topology

Geometric and topological methods for understanding structure in complex data, including earlier research on alpha shapes and proteins.

06

Parallel & distributed algorithms

Decomposing computational problems across processors and systems, including parallel approaches to factorisation and cryptography.

07

Algorithms & complexity

Algorithms, data structures, computability and complexity theory: what can be computed, how efficiently, and where the theoretical limits lie.

Programming experience

Many years,
many paradigms.

Languages are tools for thinking as much as tools for building. Long experience across object-oriented, functional, procedural and data-oriented programming makes it possible to choose the approach that fits the problem.

  • PythonData · AI · scientific computing
  • JavaObject-oriented systems
  • JavaScript / TypeScriptWeb · visual computing
  • C / C++Algorithms · performance
  • C#Applications · Unity
  • F#Functional programming
  • Standard MLTypes · functional foundations
Software architectureScientific programmingMachine learningWeb developmentParallel systemsCreative coding

Selected work

Theory, tested
in practice.

A selection of systems and learning environments that represent the broader portfolio. Public repositories and smaller experiments follow below.

AI & learningPrivate research work

VygotskAI

A pedagogical AI scaffold for Python education, combining a locally fine-tuned Danish language model with differentiated feedback, learner profiles and simulated student–teacher dialogues.

  • Local AI
  • Python
  • Didactics
Software design & educationPublic

ThinkInUML & Python laboratories

A zero-installation toolkit and 38 interactive laboratories covering diagrams, code generation, algorithms, data structures, AI, simulations and step-by-step program visualisation.

  • Browser tools
  • UML
  • Python
  • Visualisation
Machine learningPublic course

Intelligent Systems

A practical course in machine learning, deep learning and data science that connects models and mathematics with experimentation on real datasets.

  • Python
  • Jupyter
  • Data science
Planning softwareCommercial system

SOPtima

A complete system for timetabling and task allocation in schools and educational institutions, designed around the real constraints of teams, subjects, rooms, resources and responsibilities.

  • Python
  • Optimisation
  • Education
Algorithms in naturePublic

Flocking Simulation

Craig Reynolds’ boids extended with alignment, cohesion, separation, predators, peripheral vision and quadtree optimisation—an accessible route into objects, algorithms and emergent behaviour.

  • JavaScript
  • Simulation
  • Quadtree

Repository & work index

A broader view
of the work.

Courses, applications, simulations and smaller experiments. Search by title, topic or technology, or use a field to narrow the list.

17 entries shown

01

Python for Data Science

Notebooks connecting Python, data science, machine learning and explanation.

Python · Jupyter
Public repository
02

Faglig Tinder

A Streamlit app for proposing and voting on professional challenges.

Python · SQL
Public repository
03

Git Introduction

A practical introduction to terminals, version control and collaborative GitHub workflows.

Git · Shell
Public repository
04

P5 in Practice

An introductory creative-coding course for Danish upper-secondary programming.

JavaScript · p5.js
Public repository
05

P5 Projects

A collection of larger visual programming projects for students.

JavaScript · p5.js
Public repository
07

Flocking Simulation

Boids, spatial optimisation and emergent behaviour in an interactive simulation.

JavaScript · Quadtree
Public repository
08

Unity & Game AI

Resources for game development, simulations and artificial intelligence.

C# · Unity
Live project
09

Simple Quiz

A deliberately small multiple-choice Python project for beginners.

Python
Public repository
10

Vigenère Cipher

A compact implementation of the classical polyalphabetic cipher.

Python · Cryptography
Public repository
12

Random Quote Bot

A small file-based exercise in input, output and program structure.

Python
Public repository
13

SOPtima

Timetabling and task-allocation software for educational institutions.

Python · Optimisation
Commercial system
14

Reveal.js Slides

An example of producing browser-based presentations from Markdown.

Markdown · Reveal.js
Public repository
15

StockAnalyze

Portfolio analytics, market measures, screening and financial modelling.

Python · Streamlit
Selected private work
16

VygotskAI

A locally fine-tuned pedagogical AI scaffold for differentiated Python learning.

Python · Local LLM
Selected private work
17

ThinkInUML

Browser tools for modelling, code generation and interactive computer-science laboratories.

JavaScript · Python
Live project

Research foundations

Algorithms, structure
& understanding.

Academic work and teaching material spanning the structure of data, the limits of computation and the development of computational thinking.

01

Structure & shape

Computational geometry and topology, including alpha shapes as a way to study protein structures and other complex spatial data.

02

Limits & scale

Computability, complexity, parallel algorithms and distributed approaches to computational factorisation.

03

Learning & minds

Computer-science didactics informed by psychology and computational thinking, including contribution to the 2017 Danish upper-secondary programming curriculum and published material on object-oriented programming through emergent flocking.

Publications & presentations

Seven selected papers, theses and teaching presentations.

Books & learning resources

From first experiment
to independent thought.

Two books built around the same principle: programming is learned by combining precise concepts with things the learner can make, inspect and change.

Front cover of Programming in P5Back cover of Programming in P5

Published

Programming in P5

A practical introduction to programming through visual and interactive experiences. It moves from first principles to objects, software architecture and testing without postponing all the interesting parts until the end.

Explore the book

In development

Python i Gymnasiet

A book for Python in upper-secondary education, connecting programming, problem solving, visualisation and classroom practice. Its 38 browser-based laboratories let students predict, experiment, inspect and explain.

Explore the companion laboratories

Selected private work · Manuscript repository not public

Contact

Have a difficult idea
worth testing?

For conversations about computer science, AI, computational finance, software development, teaching or books, get in touch.