La ensenanza de la programacion de computadores tiene un papel relevante en la formacion de ingenieros de sistemas y otros profesionales afines. Aprender a programar implica el dominio de un amplio marco conceptual, el conocimiento de una serie de herramientas indispensables para la construccion de software y el desarrollo de habilidades de abstraccion, diseno, modelado, comunicacion y verificacion. Todo esto, orientado desde una estrategia de solucion de problemas, debe posibilitar la implementacion de productos software de alta calidad. Diversas investigaciones se han enfocado a identificar las dificultades existentes en la ensenanza y el aprendizaje de la programacion, asi como a proponer diferentes tipos de soluciones, basandose en algunos factores como: paradigma, enfoque y herramientas. En este articulo se hace una revision de algunos de los aportes mas relevantes sobre el tema y se presenta una propuesta metodologica de docencia estrategica.