Memoïseren (of memoïseren) is een techniek uit de computerprogrammering om een computerprogramma te optimaliseren. Computerprogramma's roepen functies aan. Elke functie berekent een resultaat dat het zal teruggeven. Memoïsatie is eenvoudig: voordat de waarde wordt teruggegeven van de functie-aanroep, wordt deze opgeslagen in een tabel (of associatieve array). Net als een cache zal deze array slechts een beperkt aantal resultaten kunnen opslaan. De functie kan dan zo worden veranderd dat hij probeert de waarde van de invoer op te zoeken in zijn opzoektabel. Dit opzoeken is veel minder duur dan het opnieuw uitvoeren van de berekening. Ook als een cache: de gegevenstabel wordt periodiek opgeschoond, bijvoorbeeld de waarden die gedurende een bepaalde tijd niet zijn opgezocht worden verwijderd.

Hoewel verwant met caching, verwijst memoization naar een specifiek geval van deze optimalisatie, waarmee het zich onderscheidt van vormen van caching zoals buffering of paginavervanging. In de context van sommige logische programmeertalen staat memoization ook bekend als tabling; zie ook lookup table.