+ 540    + 41h

All the workshops

Besides learning I also love teaching and sharing knowledge.

I have given dozens of workshops to students with ages ranging from middle school to college and the materials of said workshops will be collected here.

This is always a work in progress!

Learn APL with neural nets

Intro to Python with genetic algorithms

Intro to LaTeX

Recreational maths

Hands-on cryptography

Interested in a different workshop..?

Learn APL with neural networks

Learn Dyalog APL from scratch

Take future goals home with you to keep learning independently

Deal with the nuts and bolts of neural networks

Recognise digits in images with machine learning

It was amazing what we did in just 2 hours [...] In the end I was tired but satisfied with, and fascinated by what I had learned and built.” — João Afonso

The best thing was to have this hands-on approach to learning a new programming language” — Carlos

In this workshop you get to learn Dyalog APL, a programming language that is completely different from what you have seen already, as it

  • evaluates from right to left,
  • contains "weird" symbols like , and and
  • is purely array-oriented.

This will have you coding in a completely different mindset. You will exercise this mindset in implementing a neural network from scratch that, by the end of the workshop, will take a look at images like the ones on the right and will recognise the digits that are written in them.

You can read more about the workshop here.

This workshop inspired this YouTube video series on learning APL with neural networks. The series is available in English.

Introduction to Python with genetic algorithms

A workshop with hands-on programming

Learn Python, one of the most popular programming languages in the world

Created for programming beginners

Learn with examples from the theory of evolution

The aim of this workshop is to introduce people to programming. Instead of introducing the concepts point-blank, we use genetic algorithms as a motivation for the concepts taught.

We will start with robots that clean rooms in a random fashion, like the one on the left, and try to improve those into robots like the one on the right.

Gif with a robot randomly walking around a rectangular gridGif with a robot walking around a rectangular grid without overlapping its path too much

You can check the page about the workshop here and the code here.

Introduction to LaTeX

Use a computer to learn typesetting

Learn what you will need to write scientific reports and documents

For beginners: assumes no LaTeX knowledge whatsoever

Leave with a "gift": a cheatsheet with all you will ever need

An excelent introduction to LaTeX, in a friendly environment, with time to introduce not only the basics but also the important and useful details.” — António Figueiras

Explained objectively and with very interesting tips. Simple language and concrete examples.” — Carolina Salvador

You can think of LaTeX as Microsoft Word for scientists. With LaTeX we can create complex documents in a simpler manner.

For example, for mathematicians it makes it easy to write beautiful formulas, like this one: \(ax^2 + bx + c = 0 \iff x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}\).

Nowadays we can even use (some) LaTeX over at Facebook Messenger (even though it doesn't work on mobile phones): try sending $$x^2 - 1 = 0$$ to someone, and see it become \(x^2 - 1 = 0\).

You can check the page about the workshop here.

Recreational maths

Go old-school with some pen and paper doodling

Try to crack deceptively simple puzzles

Engage in active debate about the workings of these puzzles

Flex your gray matter like you have never

In my workshop on recreational maths I expose students to deceptively simple puzzles they are already familiar with and that they can solve.

Then I show them similar puzzles that still look really simple but that they can't solve. They don't know that yet, so I usually have them attempt the puzzles on the board and argue if the puzzles are solvable or not, and why/why not.

Then I show them how mathematics can be used to prove those puzzles are unsolvable!

And the best thing is, it is even more fun than what I made it sound like!

You can read more about the workshop and the type of puzzles I present here.

Hands-on cryptography

Learn basic cryptography and cryptanalysis techniques

Understand the inner workings of techniques used for centuries

Crack encrypted messages

Write programs to automate message encryption and decryption

In this hands-on workshop I have one single objective in mind: have everyone encoding and deciphering messages with the several techniques I teach.

Whether we use more basic or advanced techniques, whether we do everything with pen and paper or with the help of our programming skills, this workshop ends up being very dynamic and a lot of fun when everyone tries to crack the harder, longer messages.

You can read more about this workshop here.

What is next..?

I really like teaching, sharing knowledge in general and public speaking! And I am, at least, decent at doing those things, so if you want to invite me to lead a workshop/talk a little bit about science (especially mathematics and computation, as those are the sciences that I know something about), invite me!

If you want me to talk about something I have never learned, it is an excellent opportunity for me to learn! I find it particularly enjoyable when my audience is composed of middle school, high school or college-level students. Maybe it is because I never had a nice audience composed of adults...

Here are some of the things that interest me and that I like reading and talking about:


Programming is my favourite hobby


I picked up Python when I was 15

Dyalog APL

APL is a programming language that I find fascinating


The programming language of the web


My "most favouritest" subject

Riddles and logic puzzles

Maths problems everyone understands but only some solve

Numerical methods

The algorithms for when maths meets real-world needs

Graph theory

Because everyone likes dots connected by lines and so do I

Mobile development

Writing apps in Java is fun

Computer games

Awesome minigames that you can code in a couple of hours


Developing better algorithms to solve our problems

Computer vision

Teaching a computer to see so I can look at the really important things

Number theory

Random things related to the numbers everyone knows and deals with

Game theory

How agents design strategies when they have their own goals to pursue

I like everything...

Ok, not everything; just a lot of things

Just ask me

I love researching about new topics!