Tiago Flora_edited.jpg

Tiago Flora

Tiago is a graduating senior in Computer Science at Minerva University, an innovative higher-education institution where the undergraduate experience is centered around the science of learning and cultural dexterity. His tracks are on Data Science and Applied Problem Solving, but he also gets sidetracked talking economics, science and history in courses, forums, and everyday conversation. He has been working to create accessible resources and improve the curriculum of one of his university’s core courses, developing materials on statistics, algorithms, and decision theory. By no coincidence, then, is Tiago teaching the Everyday Algorithms course: life consists of infinite problems and there’s only so much time and resources to tackle a few. Let’s try doing it as intelligently as possible!

My Course

Everyday Algorithms: From Sports to Netflix

Consciously or not, you take steps to solve problems. Do you have a method for pairing socks after they’re washed, or for deciding when to rewatch a show instead of starting a new one? When doing a hard exam, when do you skip the harder question for easier ones? And how could you best organize a neighborhood baseball tournament? When those problem-solving steps are codified, you get algorithms. Some algorithms are quicker than others. Some problems present inherent tradeoffs, and so there are no strictly superior algorithms. In this workshop, we will go through some of the most common problems in our everyday lives that can be approached with algorithmic thinking. We will learn about optimal stopping problems, the explore-exploit tradeoff, sorting and scheduling algorithms, random algorithms, and computational best practices, all applied to tangible problems you can tackle with this toolkit.


Capstone Project

Write your own natural- or computer-language code to solve an everyday problem you have, and evaluate your own solution. Ideally, you are tackling a small problem that consists of one main task. Consider what tradeoffs you had to make if any, and how much time, memory, or other resources your solution would require.