Profile Picture

Computer Science Student | Former Teacher and EdTech Editor
email Contact Me

Former Educator | EdTech Editor | Software Engineer

Mathias Flansmose
routeIt all started in the classroom

I have always loved mathematics. This was one of the key reasons why I became a teacher; to help future generations understand the complexity and simplicity of mathematics. However, I realized my true strength was in designing the materials, not delivering them. That led me to an EdTech publisher which designed a digital learning platform for mathematics; namely Skoledu.

At Skoledu I discovered how programming could solve a lot of everyday tasks. I played with Python and took some Harvard courses in my spare time. I increasingly used the terminal to fix my problems, and I even developed some useful tools for me and my colleagues. After four years at Skoledu, I wanted to learn the foundation and master programming.

Today, I balance CS program with raising three children and building hands-on infrastructure (like this very website, which I self-host on a Raspberry Pi). To me, programming languages aren't just technical requirements; they are tools to solve human problems.

Courses

Computer Science courses I've completed at the Aarhus University

data_arrayProgramming Languages

Learning:

• Explain characteristic features of programming language paradigms (imperative, functional, and OOP)

• Formalize fundamental programming language features (scoping rules, type systems, state management, higher-order functions, closures, etc.)Implement simple language processors (interpreters and compilers)

• Use mathematical and structural induction to reason on recursion and program correctness

• Implement a simple type checker in a mini language (miniscala)

polylineAlgorithms and Data Structures

Learning:

• Implement and analyze algorithms using standard algorithm paradigms

• Identify, use and compare data structures and graph algorithms

• Evaluate performance of algorithms

• Analyze and compare the time and space usage of algorithms and data structures

• Identify valid invariants and prove the correctness of simple algorithms

functionsIntroduction to Mathematics and Optimisation

Learning:

• Perform Gaussian elimination

• Calculat gradient descent with the Hessian matrix

• Work with multidimensional matrices and multivariable calculus

• Apply general and convex optimization on data from examples

• Apply techniques to establish global or local minima for convex functions

notesIntroduction to Programming

Learning:

• Programming concepts and techniques in Java

• Program architecture concepts (inheritance, abstract classes, interfaces)

• Apply simple specification models

• Perform testing and debugging of programs