2010-04-05 13 views
10

Como estudiante de maestría estoy muy interesado en cuán efectivos "mini lenguajes" como Scratch, Logo, Alice y Lego mindstorms están en enseñar al alumno los conceptos básicos de programación tales como variables, funciones y bucles.Aprendiendo conceptos del lenguaje de programación

¿Es mejor un "mini idioma" que otro para enseñar estos conceptos básicos básicos?

Respuesta

5

Dependiendo de cuán jóvenes sean los niños a los que les enseñe, simplemente utilizaría un lenguaje más simple como Python.

Aquí es un libro gratuito que enseña todo lo básico y es de sólo 200 páginas: http://www.greenteapress.com/thinkpython/thinkpython.html

+2

¡De acuerdo en Python! Aunque solo sea porque tiene requisitos de sintaxis absolutamente mínimos y una puntuación mínima. Una estética así puede marcar una gran diferencia para un nuevo desarrollador. También hay frameworks realmente buenos como PyGame para hacer cosas interactivas con mucha facilidad. Creo que la tarea importa más que el lenguaje. Omita "imprimir un mensaje a la consola" y en su lugar concéntrese en "esta cosa gráfica reacciona cuando hago clic en él" – alecf

+1

Livewires es un curso de código abierto para enseñar a los niños a programar, que usa Python y una versión simplificada de PyGame para obtenerlos yendo aún más rápido. Lo hojeé, parece muy prometedor. http://www.livewires.org.uk/python/home – TarkaDaal

4

Creo que no importa mucho el que "el lenguaje mini" que utilice. Pero creo que será mejor que te quedes con un minilanguage real y no con un lenguaje "real" si no planeas explicar más que lo básico. Cuando aprendí lo básico (con Java), estaba realmente irritado porque tenía que recordar public static void main sin saber realmente qué significaba todo eso. Así que elegiría un idioma con la menor sobrecarga posible. Qué idioma específico elegir realmente depende de la edad de tus alumnos.

1

Existen bastantes posibilidades, y en última instancia este tipo de pregunta tiene mucho que ver con el "gusto". Creo que ese esquema es realmente una buena opción, por un par de razones. Una es que es un lenguaje muy minimalista, con muy poca sintaxis para complicar las cosas. Otra es que siento que el esquema expresa algo realmente fundamental sobre la computación, y lo hace muy claramente. Otra es que Scheme puede usarse de una manera muy "multi-paradigmática". Puede hacer programación funcional en Scheme o programación imperativa. También es muy fácil crear un sistema de objetos desde cero para Scheme; puede injertar uno simple en el lenguaje en menos de 100 líneas de código. También hay algunas implementaciones de Scheme que tienen muchas bibliotecas, por lo que puede hacer cosas como programación de gráficos o programación web.

Y finalmente se ha dedicado una gran atención al desarrollo de buenos materiales pedagógicos en Scheme. "La Estructura e Interpretación de los Programas de Computadora" es justamente considerado un clásico, pero una gran parte del material sería bastante difícil para los niños pequeños, creo (estaba dirigido a los estudiantes de primer año entrantes en el MIT). Pero también hay mucho más suave materiales, como "Cómo diseñar programas": http://www.htdp.org/ Una cosa que puedes ver claramente en htdp es cómo la sintaxis mínima de Scheme te permite ir directamente a las ideas importantes.

La principal desventaja de Scheme como primer idioma es que la mayoría de los idiomas que se usan mucho hoy en día no se parecen mucho a Scheme, por lo que los estudiantes pueden tener un poco de ajuste en la tienda al mudarse a ellos. Pero tiendo a pensar que, especialmente para los niños, obtener las ideas básicas es lo más importante al principio.

5

Esta es una pregunta muy difícil. Logo y Smalltalk (para nombrar solo dos ejemplos obvios) fueron originalmente diseñados específicamente para ser utilizados en la enseñanza de los niños al programa. Sin embargo, rápidamente se encuentra con un problema: es difícil definir un lenguaje que sea lo suficientemente simple para que un niño pequeño lo entienda por completo, y aún lo suficientemente rico como para evitar que se vuelva rápidamente limitante y torpe.

Al menos por lo que he visto, la mayoría de los intentos han funcionado mal en ambos aspectos respectos. Solo por ejemplo, la mayoría trata de incluir verbosidad para que el código se lea más como inglés (por ejemplo, "Para:" en Logo). Los niños a menudo tienen habilidades de teclado lo suficientemente pobres que tal verbosidad es frustrante.También (en mi experiencia) esperan que si parte de la sintaxis se parece al inglés, el idioma debería aceptar otro inglés válido también (esperaría que lo mismo sea cierto para los hablantes nativos de otros idiomas, pero mi experiencia es principalmente con Angloparlantes).

Al mismo tiempo, la mayoría de los niños (con los que he trabajado) llegan rápidamente al punto en que encuentran el mini-idioma limitante. Algo de eso probablemente se deriva de las frustraciones mencionadas anteriormente. Probablemente, algunos también se deben a la falta de imaginación por parte de (al menos algunos de) sus profesores al idear ejercicios que son interesantes y desafiantes. Creo que también es mucho más difícil hoy de lo que era (digamos) hace 20 años, en aquel entonces, los niños estaban entusiasmados con lo que podían dibujar con los gráficos de las tortugas (por ejemplo). Hoy en día, están acostumbrados a los juegos con gráficos 3D fotorrealistas, y dibujar una "rosa" 2D en línea recta parece afectar a muchos de ellos como básicamente cojos.

Cuestiones relacionadas