Trato de responder a lo planteado.
La clasificación de problemas de programación se puede hacer de muchas maneras.
Una de ellas se basa en clasificar la estrategia algorítmica que se usa (voraz, divide y vencerás, vuelta atrás, etc.), otras distinguen soluciones recursivas e iterativas, etc.
La clasificación que se plantea en el curso (en problemas de resolución directa, problemas con resolución documentada, problemas con iteración para búsqueda de soluciones, problemas a plantear con una tabla de decisión o problemas con resolución intuida pero método paso a paso a determinar) no es tanto una clasificación exacta como una orientación para que la persona que se enfrenta a un problema trate de clasificarlo de forma orientativa.
En programación utilizamos todas esas formas de resolver problemas.
¿Cómo aprender a identificar bien a qué tipo de resolución pertenece cada problema?
Cito algo que es parte del curso: "nos basamos en una clasificación práctica (o de base subjetiva): lo que para algunos es resolución directa, para otros puede ser resolución documentada. Igualmente la resolución intuida para algunas personas puede ser resolución directa o documentada para otras... No se trata de acotar de qué tipo es un problema desde el punto de vista científico: el objetivo es que cada uno sepamos identificar los problemas, conocerlos, y saber establecer estrategias para su resolución."
De lo que se trata, al fin y al cabo, es que antes de ponernos delante del ordenador a hacer algo hayamos reflexionado sobre lo que vamos a hacer.
Supongamos que el programador es un albañil al que se le plantea:
"Haz un edificio de una habitación con el techo plano" --> Lo puede hacer directamente (resolución directa)
"Haz un edificio con un techo a 4 aguas de estilo achinado" --> Quizás necesite ver alguna documentación para hacerlo bien (resolución documentada)
"Haz un edificio y vete dándole distintas formas al techo hasta que se obtenga una forma asimétrica que recuerde una estrella" --> Tendrá que ir repitiendo (resolución iterativa)
"Haz un edificio que si da el sol desde el sur, reduzca la luminosidad, si da el sol en vertical impida la entrada de luz, si da la luz de la luna permita el paso total de luz, si da..." --> Podría usar tablas para reflejar las posibilidades (resolución con tablas de decisión)
"Haz un edificio con techo de bóveda y deja escrito cómo lo hiciste" --> Quizás sepa lo que es el techo de bóveda y cómo hacerlo, pero no tenga del todo claro cómo construirlo paso a paso (resolución intuida pero método paso a paso a determinar)
En resumen: a medida que se vaya teniendo práctica como programador se irá sabiendo cómo abordar los problemas, no te preocupes ahora demasiado por esto. Lo que sí es importante es tener claro que antes de abordar un problema hay que reflexionar sobre él. Saludos.