← Back to Projects
2025 AI Integration

Ali's Vocabulary Learning Platform

Ali's Flash Card 2.0 rethinks vocabulary learning from first principles.

View Source
Python (streamlit) SQL (SQLite) LLMs (Google's Gemini)

THE PROBLEM

Flashcards encourage passive learning through contextless memorization. This reinforces L1 interference by relying on translations instead of active usage.

THE ACTION

I designed and built a local web app (Flash Denken) that abandons passive translation and provides a rich vocabulary learning experience. It integrates generative AI to generate contextualized learning material and active recall prompts.

THE RESULT

My app was a big part of how I reached a B2 level in Dutch only a year after moving to the Netherlands.

Inspiration & Context

I moved to the Netherlands in Fall 2024 and was motivated to learn Dutch from the first day. I knew that I could do it myself better than any course or specific books. I began thinking about how I could design and pursue the learning experience while immersing myself in the language.

One of the first things I did was build a simple web app that functioned as a digital version of traditional physical flashcards.

After a while, I was not satisfied with the progress. Specifically, I could recognize the words in text but I could not actively use them when needed or understand them when they were spoken.

The photo of Socrates eating frikandel on a bike in a Dutch city.
Questioning everything, except what they put in Frikandels

I kept thinking and questioning the learning process. I started from the first principles:

What is language?

One limited way to think about human language is as a tool that we use to communicate intent.

How do we use language?

This is about context. We almost never use or encounter a word in isolation. We use them embedded in a context where we react or comment on something, for instance. The simplified way I mentally modelled language usage is as follows, let's say for learning the phrase "Turn down the volume":

  • Situation: "I haven't slept well last night. The neighbours are too noisy."
  • Inner Dialogue: "I have to let them know that I need them to be quieter."
  • Expression: "Hello, could you please turn down the volume?"
What is the process of storing and retrieving words in the brain?

The concept of 'storage' is actually problematic here. We don't store words as a static list in our brains.

Let's say you are trying to learn the Dutch word 'fiets' or 'bike' in English. You already have a network of connections in your brain that would fire up when you are in a context where you see someone riding a bike. Now your brain is primed to reconstruct the word 'bike' when needed.

When you are learning the new word (symbol + sound) 'fiets' you are essentially modifying the connections in your brain that link the symbol and sound to the concept of a bicycle.

All of this will have implication on how I designed the exposure and recall sessions.

How can I help my brain remember better?

To remember better we need to enhance how we encode the word for the first time and reinforce the connections through active contextualized recall.

We can also leverage what we know about the Dual Coding Theory which suggests that our brain processes information along two separate verbal and visual channels. Simply put, it will help to see a visualization of the word that you are trying to internalize.

Main Features

01

AI-Powered Material Generation

For each entry, the app leverages Google's Gemini API to generate context-rich learning materials and active recall prompts. It relies on the structured output feature of Gemini, which allows it to return data in a predefined format, making it easier to parse and integrate into the app's interface.

Add tab screenshot
02

Contextual Learning Sessions

The core experience revolves around exposure to new vocabulary within constructed realistic contexts. To optimize encoding, users can supplement AI-generated content with their own contextualized personal examples, images, and linked audio-visual references.

Learning session screenshot
03

Intelligent Active Recall

It provides an opportunity for attempting active recall. I implemented a spaced repetition system (SRS) based on calculating forgetting probability. Below you see a prompt to encourage recalling of the word "knipperend"

Recall session screenshot

Notes

I built this app as a rapid MVP to enhance my language learning development which is a top priority for me. The priority was on delivering functionality over optimized software architecture.

It also represents my thinking from a year ago (summer 2025). Since then I have thought more on the nature of language acquisition and on the dynamic nature of language learning. I plan to create a more comprehensive learning app in the future.

It is also good to know that the app can be used for learning other languages too. We only need to modify the Gemini's instruction prompts here. Simply change all examples from Dutch to the target language.

Encoding

In memory psychology, encoding is the crucial first step of creating a new memory trace. It's how you perceive and process information to store it.

By creating your own context (ideally leveraging the self-reference effect), finding an image, and hearing the sound (Dual Coding), you make this process active and multisensory, leading to much stronger retention than passive reading.