Posts by Collection




Automated fast finite difference computations


This was my first academic talk and the first time Devito was being presented to the world. The talk was about the first version of Devito - how it was built, and some performance results.

Lossy compression for checkpointing


In this talk I presented the work I had started while at Argonne. This was initial work about lossy compression of checkpoints.

Introduction to Devito


Here I conducted a three-day workshop teaching the attendees the basics of solving finite-difference problems using Devito.

Workshop on Full-Waveform Inversion


I conducted a full day workshop on Full-Waveform Inversion, demonstrating the mathematics and code required to invert some basic acoustic examples.

Training Neural Networks on the Edge: The why and the how


Here I presented the use of revolve-based checkpointing to enable training of neural networks on tiny devices. The use case presented was that of in-situ retraining of student-teacher pairs to address the viewpoint problem in computer vision.

Automatic differentiation of adjoint stencil loops


This talk focussed on automatic differentiation of stencil loops. A key feature of stencil loops is the gather operation that is converted into a scatter by conventional AD. This scatter can not be easily parallelised. This talk discussed a compiler-level transform that changes that scatter operation back into a gather operation that is easy to parallelise.


Programming for Android

Professional Masters module, SENAI CIMATEC, 2015

My first teaching experience and it was in Brazilian Portuguese. Class size of 30, delivered in person. Developed all the teaching material myself.

Software Carpentry

Workshop, Imperial College London, 2019

Software Carpentry is a voluntary organisation that uses innovative research-informed teaching methods to teach software skills to scientists that are not computer scientists. I completed the Software Carpentry instructor training in 2017. I have taught the following modules since then:

Machine Learning (ACSE-8)

Masters module, Imperial College London, 2019

  • Part of the MSc. Applied Computational Science and Engineering
  • Total module contact hours: 36 hours
  • I was a Graduate Teaching Assistant on this module this year before taking up lecturing responsibilities the following year
  • Class size: 30 students, delivered in person.

Introduction to Machine Learning

Graduate school training, Imperial College London, 2019

  • I developed the material from scratch, at request from the Graduate training program at Imperial College
  • I delivered this mini course over two half-day sessions (6 hours).
  • 30 PhD students from different departments. Delivered in person

Machine Learning (ACSE-8)

Masters module, Imperial College London, 2020

  • Part of the MSc. Applied Computational Science and Engineering in the Department of Earth Science and Engineering at Imperial College London
  • Taught half the lectures (18/36 hours)
  • Module was planned to be delivered offline but had to be moved online at short notice.
  • I developed 2/6 lectures, one assignment and the miniproject that was held as a Kaggle in-class competition.
  • Class size of 90 + 30 PhD students from the department invited

Multicore and Multiprocessor Programming (COMP 528)

Masters module, Department of Computer Science, University of Liverpool, 2021

  • Part of the MSc. Big Data and High-Performance Computing and MSc. Advanced Computing in the Computer Science Department at the University of Liverpool.
  • Module coordinator as well as Lecturer from 2021 onwards.
  • Average class size of 70 students.