Dies hängt davon ab, wie Sie "Programmierproblem" definieren.
In realen Projekten lautet die Antwort definitiv NEIN. Die meisten Probleme sind nicht einmal technische Probleme, sondern Kommunikationsprobleme, unklare Anforderungen usw.
Dann haben Sie ganze Fächer von Problemklassen, die so gut wie keine Algorithmen benötigen. Zum Beispiel sind GUIs oft einfach zu "programmieren", aber das eigentliche Problem besteht darin, ein gutes Design zu haben (unter dem Gesichtspunkt der Benutzerfreundlichkeit, nicht nur des grafischen Erscheinungsbilds).
Es gibt jedoch einige Bereiche, in denen die Probleme aufgrund der Art des Feldes viel algorithmischer sind. Zum Beispiel ist KI ein Hauptfach, in dem Algorithmen im Mittelpunkt stehen. Grafiken können algorithmintensiv sein, aber es kommt darauf an, was genau mit "Grafikprogrammierung" gemeint ist.
Wenn das Problem, das Sie programmgesteuert lösen, für eine mathematische Darstellung geeignet ist, betreten Sie im Allgemeinen den algorithmischen Bereich. Dies ist natürlich nur ein grober Indikator, da Sie für so ziemlich alles mathematische Modelle erstellen können. Aber für die meisten Dinge würden Sie normalerweise nicht in Betracht ziehen, dies zu tun.
Letztes Beispiel: Wenn das Problem darin besteht, eine GUI zu erstellen, mit der Daten für Geschäftsobjekte eingegeben werden können, würden Sie nicht viel über mathematische Formulierungen nachdenken. Wenn das Problem jedoch darin besteht, eine grafische Benutzeroberfläche zu erstellen, die sich dynamisch ändert und Elemente basierend auf einem bestimmten Wichtigkeitswert verschiebt, ist es viel wahrscheinlicher, dass Sie ein mathematisches Modell und eine algorithmische Implementierung erhalten.