Active Student-Led Learning Practices in Financial Mathematics via Coding Languages and a FinTech Analytics Suite

This Learning Enhancement project has been funded through the HEA and the National Forum for the Enhancement of Teaching and Learning.

PROJECT TITLE: Active Student-Led  Learning Practices in Financial Mathematics via Coding Languages and a FinTech Analytics Suite
PROJECT COORDINATOR: Assistant Professor Adamaria Perrotta
COLLABORATORS: Tutors Mr Rian Dolphin & Mr Dylan Willis
MODULE NAME: Computational Finance
STUDENT COHORT: Stage 3 BSc Financial Mathematics, Stage 3&4 BSc Applied and Computational Maths Joint Major, Stage 3&4 BSc Applied and Computational Maths, Stage 3 BSc Maths, Applied Maths and Education

The need for well-prepared STEM graduates, equipped with data analysis and computational skills, has increased in both modern academia and industry. This has been reflected into attention on computation in Mathematics (Lockwook et al., 2019), and consequently undergraduate maths education has been adapted in different ways. One strategy has been the development of collaborative learning environments, making use of problem-solving and tailored computational activities where students solve complex problems in a realistic context through computation. In this setting, Computational Finance is a relatively new highly interdisciplinary subject taught in Financial Mathematics pathways. 

ACM30070 is a core module in the BSc in Financial Mathematics, School of Mathematics and Statistics, UCD. The module has been designed leveraging on the modern “inclusive” definition of computation (Caballero & Hjorth-Jensen, 2018), which include examples like: having students working with simulations and algorithms, giving students pieces of code to complete, inspecting and comparing computational inputs and outputs, working on projects where they write codes from scratch.

The aim of this initiative is designing specific lab activities based on VBA, Python and a fintech software (FAS) in order to reciprocally use computational thinking to enrich the mastery of financial mathematics and financial mathematics theory to enrich the computational learning.

The purpose of this project was to create an engaging inclusive teaching environment aiming to bring current educational efforts in line with the increasing demand for problem-solving and quantitative skills, facilitate sensemaking to financial mathematics and embed computational thinking in mathematical finance contexts. Case studies and computational practices have been designed and delivered in Spring 2021.

The learning goals of the initiative were to:

  • Identify the salient features of a financial system, translate them into a mathematical model and into a computer language code.
  • Read and interpret a code in different coding languages.
  • Judge the suitability of an input dataset.
  • Judge the validity of a code and/or adjust a code that doesn’t correctly model a problem.
  • Compare computational outputs.
  • Manipulate, analyse and visualize datasets and use them to a-posteriori evaluate models.
  • Work with a fintech platform, Fincad Analytics Suite (FAS), used in the financial industry for pricing and validation.
  • Solve the same problem with three different tools (Python, VBA and FAS).
  • Understand the scope of “model validation”.
  • Respond to digitalization and the future world of work.
  • Synthetize and communicate scientific results to a specific and/or general audience.
  • Improve communication, teamwork, critical and creative thinking, problem solving, reflection, responsibility for continuous development and ethical behaviour.


We delivered 12 Labs to the 50 students attending ACM30070 in Spring 2021.

Myself and two former Financial Mathematics graduates developed learning materials to be used in the Labs. We prepared a case study per week, relying on real-world financial problems. Tasks have been broken down in small sequential steps. Each activity has been designed referring to Kolb’s learning cycle (Kolb, 1984), starting from the “Concrete Experience”, then sequentially moving through “Reflective Observation”, “Abstraction/Modelling”, “Active Experimentation”, and ending with the “Concrete Experience” as back testing of the solution proposed. To drive students in this process, pre-class, in-class, post-class activities have been designed and interactive Python/VBA code and FAS workbooks have been provided.

In each lab students worked initially in groups on modelling, pseudocoding, data analysis and other related activities. Then, each group chose a representative to present their outcomes to the whole class. The lectures and the tutor did one-two checkpoints during the first part of the lab to get students to think critically about the outcomes, then drove them in getting conclusions in the second part. Questions, solutions and full working codes were provided after each class to give the opportunity to self-reflect on the activities done. In addition, students were invited to complete a survey each week to critically reflect on the practices.

In response to COVID-19 restrictions, labs have been live-streamed on Zoom, making use of “breakout rooms” and “poll” features for the group activities.



The over-arching purpose of the project was to help students to develop a robust knowledge to understand and/or create financial models, translate them into code and both quantitatively and qualitatively compare these models with real-world data. The implementation of a creative, inclusive and engaging learning environment has been central to mastery the subject. The use of an inclusive definition of computation, VBA, Python and a FinTech software (FAS) has been central to the design of student-led practices.

The Zoom sessions were more difficult to deliver than the in-person ones, as the groups could not interact with each other. Also, internet connection disruptions created some discontinuity in the discussions.

Despite these challenges, the labs received very positive feedback from students. Two students quoted:

I think that the labs that require us to design some code prior to the lab help me to understand the computational part of the course best. It's one thing to read the other code and implement it but the opportunity to write your own forces you to understand the deeper intricacies in the code and you become more aware of the parts that you do and do not understand, which you can then fix. This lab project was especially useful as it had me implementing financial mathematical model in real-world scenarios. 

The computational section of the labs was really helpful in understanding what is actually happening when solving a financial problem. Comparing results in Fincad, VBA and Python has been very good to understand the outcomes.


This project contributed to increase the computational teaching resources for wider use in the School of Mathematics and Statistics.

We developed:

  • 10 case studies (in both basic/advanced version),
  • Pre-class reading materials, coding homework and questions.
  • Python/VBA code and FAS workbooks.
  • Post-class annotated slides, lecture notes, solutions and digital supporting materials.

These resources are available for future use and the practices are designed so that they can be delivered either off-campus, online or on-campus in a normal face-to-face teaching format.

Finally, the lab component, delivered on pilot basis in 2020/2021, has been included in ACM30070 timetable from 2021/2022 and the materials produced for this project will be part of the learning resources available to students attending Computational Finance.