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 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.

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.

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

Use a computer to learn typesetting

Learn what you will need to write maths reports and documents

For beginners: assumes no LaTeX knowledge whatsoever

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

You can think of LaTeX as Microsoft Word for mathematicians. With LaTeX we can typeset weird, complicated formulas and make them look nice.

A subset of LaTeX commands can even be used in this site: \(ax^2 + bx + c = 0 \iff x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}\).

Nowadays we can even use 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.

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.

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.

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

APL is a programming language that I find fascinating

The programming language of the web

My "most favouritest" subject

Maths problems everyone understands but only some solve

The algorithms for when maths meets real-world needs

Because everyone likes dots connected by lines and so do I

Writing apps in Java is fun

Awesome minigames that you can code in a couple of hours

Developing better algorithms to solve our problems

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

Random things related to the numbers everyone knows and deals with

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

Ok, not everything; just a lot of things

I love researching about new topics!