¿Por qué la programación se enseña desde una abstracción de alto nivel antes de una abstracción de bajo nivel?

Creo que el enfoque de arriba hacia abajo proviene del hecho de que es más accesible y aplicable. (Aunque, ambos puntos pueden ser discutidos).

Por ejemplo, una de las primeras cosas que un estudiante aprende cuando comienza a aprender la programación es el programa “Hola, Mundo”. Este programa tiene muchas ventajas como el primer programa. La mayoría de los cuales son comentarios instantáneos. Poder ver una salida de un código que acabas de escribir es agradable por decir lo menos. Esta perspectiva de arriba hacia abajo proporciona formas más accesibles para que los estudiantes se acerquen a la programación.

Otra razón es que es aplicable. Saber cómo funciona la lógica binaria y cómo funcionan los analizadores léxicos y los generadores de analizadores sintácticos puede ser beneficioso y le otorga una carrera, pero los trabajos que implican escribir aplicaciones web y soluciones J2EE son más abundantes. Esto crea más interés en aprender programación de nivel superior sobre nivel bajo.

Ahora, estos dos puntos podrían ser una mala forma de enseñar programación. Pero la programación es una disciplina tan joven que todavía estamos tratando de descubrir cuál es la mejor pedagogía. Solo desearía que hubiera más fondos en la industria para desarrollar estos métodos.

En la película “El mago de Oz”, el hombre detrás de la cortina solo era interesante porque el mago cautivó primero a la gente.

Imagínese si la clase de educación de su conductor comenzó con una lección de química sobre la combustión de hidrocarburos y la mezcla estequiométrica de aire y combustible, seguida de una conferencia sobre cómo la unidad de control del motor mide el flujo de aire entrante, le dice a los inyectores de combustible exactamente cuántos microsegundos para rociar, cómo (y precisamente cuando!) activa las bujías para disparar, y así sucesivamente. Algunas personas de la clase estarán fascinadas, pero la mayoría se preguntará cuánto tiempo pasará hasta que la discusión se vuelva relevante para conducir un automóvil.

Si conduce directamente a las matemáticas binarias, y luego agrega ideas como registros, RAM, banderas, ALU, IO, etc. Es difícil mantener a los estudiantes interesados. No hay una conexión clara entre todos estos inventos extraños y cualquier cosa familiar y significativa. No estás enseñando cómo programar, estás enseñando cómo funcionan las computadoras en los niveles más bajos, y eso aún no es interesante para tus estudiantes.

Pero si comienza con conceptos familiares como asignación variable, condicionales y bucles, es más probable que mantenga a su audiencia interesada. Una vez que se sientan cómodos trabajando con esos conceptos, una clase sobre lo que sucede “bajo el capó” será mucho más interesante.

Porque les permite obtener comentarios positivos temprano y sentirse bien con el proceso. También les da una idea de cuál es el objetivo final. finalmente es un ambiente de bajo trabajo para introducir principios organizacionales fundamentales.

Esa es realmente la razón.

Un buen curso de CS a menudo introducirá la programación a ese nivel, pero luego irá al otro extremo, el microcódigo, y construirá su camino de regreso al alto nivel capa por capa.