2008-08-21 10 views
45

¿Qué idiomas y herramientas considera que un joven que comienza en programación debería usar en la era moderna?Sugerencias para iniciar una programación para niños

Muchos de nosotros comenzamos con conceptos básicos patentados y no nos hicieron daño a todos nosotros a largo plazo :) pero dadas las experiencias que ha tenido desde entonces y su conocimiento del dominio ahora ¿hay mejores opciones?

Hay consultas relacionadas con esta, como "Best ways to teach a beginner to program?" y "One piece of advice" sobre la programación de adultos a partir de la cual he enviado respuestas, pero es posible que los niños necesiten una herramienta diferente.

Divulgación: es terriblemente difícil elegir una respuesta "correcta" a una pregunta como esta, así que quien tenga el mejor puntaje en unos pocos días obtendrá la "mejor respuesta" de mi parte en función de la elección de la comunidad.

Respuesta

43

Yo sugeriría LEGO Mindstorm, y ofrece una intuitiva de arrastrar y soltar interfaz para la programación y porque viene con el hardware que proporciona algo tangible para un niño de entender. Además, como es "LEGO", podrían pensar que es más un juego que un ejercicio de programación.

+0

+1: Así empecé cuando tenía 10 años. –

+0

Esas cosas también te ayudan a comenzar con el hardware; no solo estás imprimiendo algo en la pantalla ... estás moviendo cosas en el espacio físico, ¡lo cual es genial! –

7

Recientemente vi una presentación sobre GreenFoot (un entorno de aprendizaje basado en Java para niños). Se veía increíble. Si tuviera hijos, que le daría una oportunidad

Link to the presentation

Es un ambiente muy lúdico, donde se puede comenzar con métodos muy básicos. Los niños aprenden a pensar de forma orientada a objetos (no se puede crear una instancia de un animal, pero se puede crear una instancia de un gato). Y cuanto mejor se pongan, más Java podrás descubrir para/con ellos.

1

Creo que Java podría ser una buena opción simplemente porque puedes hacer GUI fácilmente, y ver que suceden "cosas interesantes". Por la misma razón, tal vez cualquiera de los lenguajes .NET. También he escuchado cosas buenas sobre los lenguajes de scripting (especialmente sobre Ruby y Python) para que los niños aprendan a programar.

8

Para un niño, me gustaría ir con Alice. A cualquier niño le va a gustar la interacción de arrastrar y soltar que Alice usa mejor que tratar de recordar cómo deletrear y acentuar cualquier lenguaje de programación. Él/ella aprenderá las estructuras básicas de programación (condicionales, bucles, etc.) y experimentará la diversión de construir un programa animado que puedan mostrar a otros familiares o amigos.

Una clase de CS para principiantes en la universidad de la comunidad local usa a Alice para enseñar programación de una manera independiente del lenguaje. Proporciona una buena base para pasar a la programación en un idioma particular (o algunos idiomas) en el futuro.

3

¿Cuántos años tiene? Muchos de nosotros miramos con BASIC en algún momento, pero antes de eso, aprendí los conceptos de unir comandos juntos, variables y bucles con LOGO. Averiguar cómo dibujar un círculo con un triángulo que solo puede ir en línea recta y girar fue mi primer logro de programación.

Editar: Esta pregunta & sus respuestas me hacen sentir viejo.

5

Recomiendo Python, porque es muy escueto y expresivo. Parece menos probable que se frustre cuando se comienza, pero también ofrece mucho espacio para aprender conceptos más avanzados.

2

Aunque _por qué no le he dado tanto amor en el último año más o menos, por un tiempo estuve muy entusiasmado con Hackety Hack. Creo que la clave para la mayoría de los nuevos programadores, especialmente los niños que son más que propensos a perder interés en las cosas, es la retroalimentación instantánea.Eso fue lo realmente maravilloso de Hackety Hack: algunas líneas de código, y de repente tienes algo delante de ti que hace algo. Hay algunas aplicaciones similares destinadas a cosas como gráficos de dibujo (uno de los cuales, ayudé brevemente a Nathan Weizenbaum, Scribble!). Los niños simplemente necesitan comentarios positivos de que están haciendo algo correcto regularmente, de lo contrario no hay nada que los mantenga interesados ​​en la tarea que tienen entre manos. Lo que creo que el futuro es para enseñar a los niños a programar es una especie de DSL construida sobre un lenguaje con sintaxis amigable (estos incluirían, podría decirse, Ruby, Python y Scheme), cuyo propósito es proporcionar un entorno intuitivo para la construcción simple juegos (por ejemplo, Tic-Tac Toe, o Hangman).

5

Para un niño, me gustaría ir con Alice.

Aquí hay otro voto para Alice. Mis 4 hijos se han divertido trabajando con esto y aprendiendo los conceptos básicos de programación. Por supuesto, para ellos todo se trata de socializar con hadas y ogros, pero diablos, el maldito sistema heredado en el que trabajo también podría usar faries y ogros.

+2

Este post me hizo reír :) – andrewrk

13

Voy a secundar las sugerencias de Geoff de Phrogram (used to be KPL) y Alice.

Mi única otra sugerencia es Lego Mindstorms NXT. El lenguaje de programación del NXT es de arrastrar y soltar, es muy fácil de usar y puede hacer algunas tareas muy complicadas una vez que lo aprende. También a los niños pequeños generalmente les gusta ver las cosas moverse. :)

He usado Alice y NXT con algunos niños pequeños, y se han llevado muy bien.

3

Creo que python es una buena alternativa; es un lenguaje muy poderoso, también puedes hacer muchas cosas fácilmente (sin aburrimiento alguno).

3

Pago Squeak desarrollado por Alan Kay que piensan que la programación debería enseñarse a edades tempranas.

1

Bueno, si son jóvenes y no han aprendido su ABC, puedes probarlos en BF, sin esas molestas letras y números con los que lidiar.

I'll get me 'coat.

Skizz

+0

cuidado de explicar lo que es el BF? – Axarydax

+0

Es un lenguaje de programación que utiliza los ocho símbolos "[] + -><,." - sin letras ni números De acuerdo, su nombre no es particularmente adecuado para los niños, mantenlo como BF. – Skizz

1

Me gustaría ir con lo que desearía haber sabido primero: un simple cuadro de MS-DOS y el ensamblador integrado (depuración). Es genial aprender y entender los conceptos básicos de hablar en una computadora.

Si eso no ahuyenta a un niño, entonces iría al "siguiente nivel" e introduciría C. Esto no debería ser difícil dado que el concepto básico de indicadores, registros e instrucciones en general son bien entendidos para entonces.

Sin embargo, no estoy del todo seguro, a dónde ir después.Da el gran salto a Lisp, Haskell o idiomas abstractos similares o debería haber algunos lenguajes orientados a objetos simples (tal vez incluso C + +) que arrojar o sería más daño que ayuda?

2

Creo que la primera pregunta es: ¿qué tipo de programa sería interesante crear? Una de las cosas que me impulsaron a programar desde niño (en BBC básico y luego en QBasic) fue la facilidad de escribir programas gráficos. Podría escribir un par de líneas de código y ver mi programa dibujar una línea en la pantalla de inmediato.

Lo más parecido que he visto a este tipo de simplicidad recientemente es pygame library para python y Processing, un conjunto de bibliotecas java con IDE.

que se imaginan que la piratería en las páginas web sería otra buena manera de empezar: que ello implicaría HTML, Javascript (usando una biblioteca como jQuery), tal vez PHP o algo por el estilo.

Independientemente de las herramientas que proporcione, lo más importante es que sea fácil comenzar de inmediato. Si tiene que escribir veinte líneas de código correcto y descubrir cómo invocar el compilador antes de ver resultados tangibles, el progreso será lento.

10

dos posibilidades:

arañazos - desarrollado en el MIT - http://scratch.mit.edu/

y

EToys de la OLPC fama - http://wiki.laptop.org/go/Squeak

+0

Solo para agregar que ahora tenemos dos grupos de todo el año usando Scratch y está funcionando muy bien: están aprendiendo los loops, las subrutinas y las obras completas. –

6

diría: dar al niño un C64 real, porque así es como empecé. Pero, hoy ... diría que Ruby, pero Ruby es un poco demasiado caótica. BÁSICO sería mejor a la larga. El procesamiento es fácil de aprender, y básicamente es Java.

La razón por la que recomiendo un C64 es porque es BÁSICO, pero todavía tiene que aprender ciertas cosas relacionadas con la computadora, como el modelo de memoria, píxeles, caracteres, mapas de caracteres, líneas nuevas, etc., si quiere hacer cosas más avanzadas. Además, si su hijo lo encuentra aburrido, usted sabe que su corazón realmente no está en la codificación.

+0

Hay al menos una escuela en el Reino Unido que ha hecho esto: se ha ido y ha obtenido un grupo de C64 de una venta de carboot y los ha utilizado para las clases de programación. Los viejos y confiables micros de la BBC todavía están en uso en varios lugares, también. –

0

¿No fue diseñado Smalltalk para tal fin? Creo que Ruby sería una buena opción, como descendiente de Smalltalk.

2

Aquí hay muchas buenas sugerencias. Estoy de acuerdo con Kronikarz. Obtenga una computadora retro (o emulador) que le interese y enseñe con eso. ¿Por qué una computadora retro? Básico está integrado. Hacer sonidos y gráficos primitivos es una tarea trivial. El verdadero negocio podría ser mejor que un emulador porque será un poco más fascinante para un niño que está acostumbrado a ver solo dispositivos modernos.

6

Yo lanzaría LOGO. Fue algo que se enseñó en mi escuela primaria. Da retroalimentación casi inmediata y enseñará conceptos de programación realmente básicos. Mover a esa pequeña tortuga puede ser muy divertido.

1

Al mirar a Alice, veo que está "diseñado para estudiantes de secundaria y universitarios".No parece haber otro idioma/versión llamada Story Telling Alice que está "diseñado para los estudiantes de la escuela media"

Alice Download Page

25

Mi trabajo diario está en una escuela, y en los últimos años he visto o se enseña (o intentado enseñar) varios niños, en varios números, lecciones de programación.

Los niños son todos diferentes: algunos aprenden rápido, otros no. En particular, algunos tienen mejores habilidades de lectoescritura que otros, y eso definitivamente hace una diferencia en la velocidad a la que retomarán la programación. Apuesto a que la mayoría de nosotros aquí, como programadores informáticos profesionales y el tipo de personas que leen y publican en los foros por diversión, aprendieron a leer a una edad bastante joven. Para ese tipo de niños, y si es su propio hijo a quien se puede enseñar uno a uno, podría hacer algo peor que JavaScript, tiene la ventaja de que puede hacer cosas reales con él de inmediato, y el ciclo de edición y prueba simplemente está presionando "actualizar" en el navegador. Se vuelve confuso cuando comienza a ejecutar cómo JavaScript hace todo de manera asíncrona, y es difícil de depurar, pero para un niño inteligente bajo una enseñanza cercana, estos problemas se pueden superar.

LEGO Mindstorms está definitivamente allí arriba en la parte superior de la lista. La mayoría de las escuelas ahora super-pegan los ladrillos para crear modelos prefabricados que no pueden tener partes cortadas, pero esto no debería ser un problema en el hogar. En el sitio del Suplemento Educativo del Times (foro del sitio web del periódico docente semanal del Reino Unido), "¿qué lenguaje de programación es mejor para los niños?" el tema aparece bastante regularmente. Muchas recomendaciones de Scratch como alternativa a Mindstorms: algo más de libertad que Mindstorms, una vez más, probablemente sea mejor para el estudiante más brillante al que también se le podría dar un soldador.

Descubrí que los alumnos más lentos pueden tener problemas con Mindstorms, aunque el entorno de programación es "gráfico": todavía hay muchas cosas sucediendo en la pantalla, y hay mucho que recordar (esta era una versión anterior , claro, no han probado el elegante nuevo todavía). En mi experiencia, la mejor introducción general a la programación probablemente todavía sea LOGO, en realidad un lenguaje considerablemente más poderoso de lo que la mayoría de la gente le da crédito. El libro original Mindstorms de Seymour Papert (no tiene nada que ver con LEGO - ellos cortaron el título del libro por su producto), uno de los creadores de LOGO, es la referencia canónica para enseñar programación a niños como una "habilidad de pensamiento" y para el concepto de Constructionism en el aprendizaje.

Hemos tenido clases de LOGO de 7 u 8 años de edad. Tenga en cuenta que no pretendemos convertirlos en "desarrolladores de software", es una carrera que pueden decidir en algún momento después de los 16 años. A una edad temprana, intentamos que piensen en la "programación de computadoras" como una herramienta más: cómo plantear un problema que debe resolver una computadora, de la misma manera que podrían usar un mapa mental para ayudarlos a organizarse. y recuerda cosas para un examen. Ningún niño pobre debería sentarse y practicar las minucias y el uso de un idioma en particular; se les debería dejar explorar y resolver cosas a su gusto.

7

Iría con Scratch, algunos puntos al respecto.

  • Es un lenguaje de programación gráfica. No está basado en texto (puede ser positivo o negativo). Lo hace más intuitivo y fácil para los niños (7 y ).
  • En realidad es muy objeto. Los objetos que se escriben en estos scripts gráficos tienen el código adjunto y se pueden reutilizar y mover.
  • Muy importante: resultados rápidos e impresionantes. Los niños necesitan ir rápido y obtener resultados para engancharse.Me gustaría

tener en cuenta que aunque muchos de nosotros empezó programando a una edad temprana en la base o logotipo y porque el programador más tarde en la vida no significa esas son buenas lenguas para empezar. Creo que los niños de hoy tienen opciones mucho mejores, como scratch o Alice. lenguajes basados ​​ de texto (Python, Ruby, Basic, C# o incluso c) dependen de las bibliotecas externas y herramientas (editores, compiladores), mientras que algo como Alice o cero es todo incluido y enseñará a los niños (no dirigida a los adolescentes) los conceptos de programación. Más tarde pueden avanzar y expandir su aprendizaje.

2

Como dije here, yo iría por Squeakland y el famoso Drive a Car ejemplo (potenciado por Squeak).

sintaxis de Smalltalk es simple, que es ideal para los niños.

Y más adelante a medida que el niño evoluciona, puede aprender conceptos más complejos e incluso muy avanzados que también se encuentran en Squeak (por ejemplo, programando aplicaciones de estado stateful con refactorización automatizada y pruebas unitarias automatizadas).

Y como @cpuguru y @Rotem dijo, Scratch (también basado en Squeak) es grande también.

0

Sé que en los primeros años de la escuela secundaria que estábamos 'enseña' Logo, y extrañamente, HTML. Después de eso, la progresión fue a macros en MS Office, seguido de VBA básico, seguido de Visual Basic.

0

Aunque he vanamente con LEGO Mindstorms (y disfrutado) en el pasado lo recomendaría totalmente XNA Game Studio por las siguientes razones:

  • Se trata de crear algo que muchos niños se interesen en (juegos).
  • Es gratis.
  • Es un lenguaje real (C#) y un IDE real (Visual Studio).
  • Tienes la oportunidad de aprender OOP.
  • Es algo que los padres encontrarán tan divertido como los niños.
0

¿Qué tal AIML? No es tanto un lenguaje de programación, sino que se realiza de manera instantánea y, dado que se trata de inteligencia artificial, probablemente desencadenará su sensación de excitación.

0

empecé programación en Flash.

"lenguaje de juguete" meh meh meh.

y antes de que una pequeña cantidad del logotipo en la escuela

no tengo ni idea acerca de mindstorms, pero me imagino que sería bueno.

creo que, a menos que haya un verdadero motor instan a aprender, entonces podría ser frustrante con los programas solo de entrada y salida de línea de comandos impulsado en la salida.

Con un poco de gratificación instantánea, mover algunas imágenes en la pantalla, desencadenar algunos sonidos aquí y allá, puede ser un resultado más atractivo que crear un programa de caja registradora, hacer un programa de chisporroteo etc.

"¡Mira, abuela, construí una página web!" - incluso comenzar con HTML y algo de javascript, con tablas y etiquetas de fuentes en todas partes, y poder compartir lo que se desarrolla con alguien que no es técnico probablemente sea más beneficioso a largo plazo que 30 líneas de C codificadas para apaciguar un código loco padre. Cuál puede o no puede ser el caso

0

¿Qué pasa con Stagecast Creator?

Lo he estado utilizando con mi hija de 7 años (comenzamos cuando tenía 6).

No se deje engañar por la interfaz infantil. Una vez que empiezas a usarlo, te das cuenta de que está enseñando muchas ideas complejas. Es un procesamiento secuencial, y todo es guiado por gráficos. Usted define las reglas para los personajes definiendo 'si la imagen se ve así y luego haga que se vea así'. Los personajes pueden cambiar las apariencias, hacer sonidos, mover otros caracteres, responder al teclado y al mouse, etc.

Enseña sobre si ... entonces ... la lógica. Orden de las operaciones (A medida que procesa la primera regla que es verdadera). Tiene un depurador para que pueda recorrer su código, etc.

Una herramienta muy buena para que su hijo descubra los procesos de pensamiento detrás de la programación, y una manera fácil y divertida de determinar si está interesado en este tipo de cosas .

Una vez que haya determinado eso, puede pasar a un lenguaje "real".

0

Python es un excelente primer lenguaje de programación, y se puede utilizar para el ejercicio de conceptos de los lenguajes de procedimiento y funcionales.

El libro gratuito A Byte of Python es una introducción fácil, escrita para principiantes, y está disponible en varios idiomas.

10

Descripción completa: Soy uno de los tipos que inventó Kid's Programming Language, que ahora es http://www.Phrogram.com, que otros han recomendado aquí. Permítanme agregar algo de información orientada a programadores al respecto.

Es un código IDE, en lugar de arrastrar y soltar, o basado en diseñador. Esto fue intencional de nuestra parte: queríamos que sea fácil y divertido hacer una programación basada en texto real, particularmente programación de juegos y gráficos. Esta es una diferencia fundamental entre nosotros y Alice y Scratch. Lo que eliges es una cuestión de niño, su edad y aptitudes, tus objetivos. Usarlos en serie con el mismo principiante puede ser una buena manera de hacerlo; si lo hace, recomendaría Scratch, Alice, Phrogram como pedido. Phrogram ha funcionado mejor durante 12 años y más, pero conozco a padres con niños de 6 años que han enseñado a sus hijos con él, y conozco a niños de 10 años que se han enseñado a sí mismos con él.

El idioma es tan similar al inglés como podríamos hacerlo, y es lo más mínimo que pudimos. La salsa secreta se encuentra en la jerarquía de objetos basada en clases, que a su vez es tan simple, intuitiva e inglesa como podríamos. La jerarquía de objetos está optimizada para juegos y gráficos. Hay modelos 3D disponibles y sprites 2D. Se admite el movimiento absoluto usando coordenadas de pantalla, o movimiento relativo a las tortugas LOGO - Adelante (x), TurnLeft (y).

El IDE viene con más de 100 ejemplos, algunos ejemplos de lenguaje (bucles), algunos ejemplos de aprendizaje (arrays), algunos juegos completamente funcionales y Sims (Pong, Missile Command, juego de la vida).

Para darle una idea de cuán altamente apalancado hemos hecho el lenguaje y el IDE: con 27 instrucciones puede volar un modelo de nave espacial en 3D alrededor de un palco 3D usando su teclado. Lo mismo con un sprite 2D es de 12 a 15 instrucciones.

Estamos trabajando en una versión de Phrogram compatible con Blade que permitirá que los programas se ejecuten en el XBox 360. Sí, el XBox, en su gran televisor. ¿Un buen motivador para comenzar un niño? :)

Phrogram incluye soporte para programación basada en clases, con métodos y propiedades, pero eso es solo encapsulación, no herencia o polimorfismo.

Un tutorial y guía del usuario está disponible,

Mi propio libro electrónico está disponible en Amazon y otros sitios en línea, "aprender a programar con phrogram !," y consigue un principiante iniciado mediante la programación del clásico Pong.

Programación de Phrogram para el Principiante Absoluto, por Jerry Lee Ford, Jr., también está disponible, como libro en rústica, en Amazon y en otros lugares.

0

Cuando mi hija tenía alrededor de 6 o 7 años, mostré su logotipo, creí que era divertido dibujar las formas, pero luego perdí interés.

Cuando tenía 10 años intenté Squeak - y ella pensó que era genial. Rápidamente aprendió la sintaxis de Smalltalk y se divirtió mucho. También probé Greenfoot, pero con menos éxito.

creo Rubí podría ser vale la pena ir a (yo uso Rubí de vez en cuando - bueno)

Ahora ella está más interesado en otros - no informáticas - actividades.

Entonces, en estos días, diría que vale la pena probar Squeak. ¿Qué pasa con Hackety-Hack. aún no lo he intentado con niños, pero parece interesante.

1

Pruebe [Guido van Robot] [1]. Es una excelente introducción a la robótica, y es una excelente manera de introducir a los niños en el lado de la programación (frente al lado de la "construcción de robots").

0

Hay un nuevo libro llamado "Hola mundo: Programación de computadoras para niños y otros principiantes" por Warren y Carter Sande que compré para que mi hijo de 9 años comience. Aprenderá programación, y aprenderé Python.

0

Scratch.

No dejes que los resultados de dibujos animados te engañen. A los niños les encanta esto y ofrece la mayoría de lo que esperarías en un lenguaje de programación: bucles; lógica condicional; eventos; subrutinas; y programación orientada a objetos.

Otras cosas que les gusta:

  • excelente documentación
  • Versatilidad Algunos niños como juegos. A otros les gusta contar historias o crear caricaturas. A otros les gusta hacer música o efectos gráficos. Todo se puede hacer con Scratch. Los niños incluso pueden publicar sus programas en los sitios web que crean como parte de las clases multimedia/web.
  • Entorno Entorno de desarrollo gráfico en el que los elementos de programación se unen. La forma y el color se usan muy bien como pistas visuales.
  • Codificación social Gran colección de programas creados por la comunidad con un sistema de clasificación que los niños pueden usar para obtener nuevas ideas, resolver cómo resolver problemas particulares o compartir sus creaciones con sus compañeros.
  • Hacking Es muy fácil para los niños agregar sus propios sonidos personalizados y dibujar sus propios personajes. Me recuerda al papel de construcción digital.
  • Accesible La interfaz es lo suficientemente simple como para que los niños puedan comenzar a usarla con muy poca introducción.

Lo más importante, Scratch se puede ejecutar en Windows, Linux y OS X, por lo que las escuelas con configuraciones mixtas de hardware no se quedarán fuera.

0

PHP o Visual Basic. Empecé con PHP cuando tenía 9 años y ahora solo me gustan cien idiomas, lol. Mi favorito es PHP y C++.

0

fuerza bruta

"Hazlo o bien!"

0

Soy un alumno de sexto grado y desde que vi una computadora me interesó el concepto de programación. He probado muchos lenguajes de programación (.NET, Python y Javascript) y tengo que decir que mi favorito hasta ahora es Visual Basic (.NET) porque el diseño es fácil y el código en sí mismo también es fácil de entender. Es tan genial como un niño ver un programa que USTED hizo funcionar y operar, y creo que Visual Basic tiene la mejor manera de hacerlo.

-Karl

+0

VB no enseña programación, IMO. Empecé a programar cuando estaba en tercer grado y pensé que Phogram era un buen comienzo. No enseña mala sintaxis como VB. –

0

Cualquiera que vienen a través de Bigtrak? Esta fue mi primera experiencia de programación. Esencialmente es físicamente una tortuga logo gigante, en forma de tanque de batalla, con un teclado en la parte superior, para escribir en un programa.

Probablemente es adecuado para edades de 5-8, es decir, incluso antes de que los niños tengan la paciencia/coordinación para escribir en una pantalla.

Cuestiones relacionadas