Что делает современные алгоритмы компьютерных программ самообучаемыми?
Современные алгоритмы (видимо, алгоритмы машинного обучения имеются в виду в первую очередь), как бы это парадоксально ни звучало, не являются полноценно самообучаемыми, как и не являются сильным искусственным интеллектом (здесь "сильный" - часть термина, а не просто эпитет). Эти самые алгоритмы лишь гораздо лучше людей (и на гораздо большей базе примеров, чем у любого живого человека) умеют распознавать закономерности в данных, если очень коротко и просто. Полноценным самообучением там и не пахнет.
Если быть точным, современные алгоритмы - "всего лишь" обучающиеся на входящих данных.
Самообучающимися могут быть системы, которые сами формируют данные и сами с помощью алгоритмов машинного обучения учатся на них реагировать.Например, AlphaGo может сама играть с собой в го и учиться в процессе, это и делает её самообучающейся.
Что касается "обучаемости" систем машинного обучения, то это от того, что алгоритм принятия решений не зашит внутрь программы, а формируется на основе полученных системой данных.