java - importancia - lenguajes de programacion
¿Cuál es una buena manera de enseñarle a mi hijo a programar Java (15)
¿Has mirado a BlueJ ? Sé que dijiste que te apoyas en IDE pero es un IDE específicamente orientado a la enseñanza de Java. También parece tener algunas cosas que un niño de 8 años podría encontrar como representaciones gráficas de estructuras de clase.
De acuerdo, entonces he leído varias publicaciones sobre la enseñanza de principiantes para el programa, y había algunas cosas útiles que analizaré más de cerca. Pero lo que quiero saber es si hay alguna herramienta efectiva para enseñarle específicamente a un niño Java .
Quiero enseñarle Java específicamente porque (a) con mi sólida experiencia en CI siento que es demasiado complejo, (b) Java es el otro idioma que conozco muy bien y, por lo tanto, puedo ayudar de manera significativa sin necesidad de enseñarme a mí mismo una nueva ( yo) lenguaje inútil, y (c) siento que los lenguajes administrados son el futuro, y finalmente (d) Java es uno de los más simples de todos los idiomas que conozco bien (aparte del básico).
Aprendí en básico, y estoy abierto a enseñar eso primero, pero no estoy al tanto de un shell básico gratuito decente para Windows (aunque no he buscado realmente, pero dado que no es mi primera opción), y de todos modos quisiera progresar rápidamente a Java.
Mi hijo tiene 8 años, eso es un par de años antes de lo que comencé, pero ha expresado interés en aprender a programar (posiblemente porque trabajo mucho en casa y me ve programando todo el tiempo).
Si nadie puede sugerir una herramienta diseñada para este fin, probablemente lo inicie con aplicaciones basadas en texto / consola para enseñar lo básico y luego avanzar a la construcción de GUI.
Ah, una última cosa, no soy fanático de IDE (editor de texto de la vieja escuela), así que no me dejaría para nada por un sistema que lo tiene escribiendo código real, y probablemente prefiera eso a un juguete drag / soltar el sistema
EDITAR: solo para aclarar; Realmente estoy específicamente detrás de las formas de enseñarle Java; ya hay muchos posts con buenas respuestas para otras alternativas de idiomas, pero eso no es lo que estoy buscando aquí.
EDITAR: ¿Qué pasa con los frameworks Java para videojuegos 2D? ¿Alguien puede recomendar alguno de ellos por experiencia personal? Me gusta la idea de que él comience con la mecánica en el lugar (bucle principal de juego, puntuación, etc.) y agregue los detalles para un juego de su propia imaginación: eso es lo que hice, aunque para mí era básico en un Commodore VIC-20 y un Sinclair ZX-81.
Encuentre algo que le resulte interesante como proyecto, especialmente si puede encontrar una forma de hacerlo que no incluya una GUI. Creo que las GUI ayudan a que la gente se interese, pero son fundamentalmente difíciles: tratar de aprender tanto un marco de GUI como un idioma al mismo tiempo es demasiado, IMO. Me gustan los programas de consola: un programa de consola corto tiene todo en frente de usted, para que pueda entender a cada personaje con relativa facilidad.
Por ejemplo, si le interesa el fútbol, es posible que tenga un archivo de texto con resultados, y haga un proyecto que lea los datos, resuelva quién tenía cuántos puntos, etc.
EDITAR: Otra cosa para pensar basada en el punto de VonC sobre "probemos ..." - quizás comience con un lenguaje interactivo como Groovy (que es muy parecido a Java) o encuentre un "shell de Java" de alguna descripción para permitirle a su hijo para "explorar" el lenguaje ejecutando cosas inmediatamente.
Estaré muy interesado en ver este hilo: realmente quiero enseñar a mis hijos a programar en unos años, y me gustaría escribir un libro introductorio de C # antes de eso ...
Sé que me pediste Java, pero me voy a desanimar y sugiero mirar los zapatos basados en Ruby: http://shoooes.net/ y http://hackety.org/press/
Creo que fue escrito originalmente como una ayuda de enseñanza.
Si yo fuera un niño aprendiendo a programar, esto me interesaría.
Sé que no es Java, pero un amigo mío homeschools a sus hijos y él está usando
Sugiero "Programming Video Games For The Evil Genius" de Ian Cinnamon. El autor tenía 15 años en el momento en que escribió el libro ... De todos modos, el libro es relativamente fácil de seguir y te enseña a hacer cosas como el juego con Java. Porque, seamos honestos, la mayoría de los niños quieren hacer videojuegos. Cuando tenía 10 años estaba haciendo programas de Visual Basic que eran juegos de aventura basados en texto. Este sueño de hacer videojuegos se mantiene durante toda la escuela secundaria. De todos modos, el libro muestra mucho que se puede hacer con Java en ese frente ... No importa lo que haría un chico de 29 años con un libro escrito por un silbato de 15 años. Tenía 28 años cuando lo compré ......
De todos modos, tener tantas bibliotecas en Java hace que sea bastante fácil obtener gráficos. Qbasic tenía gráficos sucky pero tenía llamadas bastante simples para encender y apagar píxeles y dibujar líneas y cuando tenía 12 o 13 años muchos de nosotros solo hacíamos efectos extraños con los gráficos en QBasic usando bucles, etc. ... Mientras estaba una completa pérdida de tiempo, además ayudó a fortalecer los conceptos de iteración, matrices, etc.
De todos modos, de acuerdo con mi experiencia y la experiencia de mis amigos que podían programar en ese momento, diría que a los niños les gustan los efectos gráficos de campanas y silbatos y crear videojuegos. Incluso los juegos de texto cuentan. El hecho de que Java tiene toneladas de bibliotecas que hacen mucho y liberan al programador de los detalles de la implementación significa que si Java existiera cuando yo era tan joven, probablemente habría estado jugando con eso. Agregue un libro escrito por un niño de 15 años sobre videojuegos sencillos en Java (tenga en cuenta que no es un niño normal de 15 años, que era un estudiante de segundo año en la universidad en ese momento ... así que piense en Child Prodigy) y tenga una receta para enganchar el interés de sus hijos.
Si la verbosidad de Java es demasiado para mantener el interés de su hijo, intente con Python. Creo que recuerdo haber visto una biblioteca para hacer 2d juegos allí ....... Pero al menos es probable que pueda hacer juegos de aventuras de texto mucho mejores que qbasic :)
Yo iría por el esquema. De todos modos, eche un vistazo a este sitio, tiene algunos recursos Java y pedagógicos: http://www.teach-scheme.org/
Yo trataría con Python porque
1) Python viene con un REPL - Idle aceptable ... en lugar de escribir largos archivos de código, javacing y luego javaing. Tener tu expresión evaluada en el momento en que la colocaste podría adaptarse mejor a la capacidad de atención de un niño de ocho años. .. todavía puede hacer funciones y módulos y esas cosas ... pero en un entorno más interactivo
2) Python no tiene tipeo estricto y te permite jugar con diccionarios y listas de enlaces de tamaño variable con muy poca sintaxis ... de esa manera ... podrías enseñarle algunas de las grandes ideas detrás de la programación primero y dejar aprender un montón de sintaxis para más tarde cuando ya está muy involucrado en esto
echa un vistazo a http://openbookproject.net//thinkCSpy/
Creo que Greenfoot es mejor que BlueJ, para 8 años. Está desarrollado por las mismas personas que crearon Bluej, pero es mucho más gráfico, y aún permite la programación completa de Java de las aplicaciones.
http://www.greenfoot.org/getting-started/ 1- Descargue e instale JDK 2- Luego descargue e instale greenfoot, y ya está listo para comenzar 3- Vea el tutorial agradable y sencillo CrabWorld: http: // www .greenfoot.org / scenarios / files / crab.zip
Recientemente utilicé GreenFoot para analizar la programación de Java en un curso introductorio muy breve para estudiantes de secundaria en nuestra universidad: http://aaue.dk/~av/brobygning2008-software/ (si pudiera ser de alguna utilidad).
Si el soporte de Java no es una característica fundamental, también puedes probar el rasguño de MIT (una versión independiente de chirrido): http://scratch.mit.edu/ Es muy bueno para comenzar, y lo usé hace 2 meses en una actividad de relaciones públicas que involucra a 2 13 años de edad. Después de menos de 1 día de jugar con scratch, crearon su propio videojuego: http://aaue.dk/~av/personal.html (el juego "Maldito", lo llamaron así:>) pero está programado en su propio lenguaje de programación (visual) ...
Hay un interesante Tech Talk de Google sobre Teching Kids to Code : cubre un software llamado Greenfoot, que es una herramienta de programación introductoria que usa Java. Utiliza arrastrar y soltar y otros métodos visuales para interactuar con las clases.
No comenzaría un niño con Java. Enséñale algo más limpio conceptualmente primero. Algo como LISP o Logo . Logo es un lenguaje de programación sorprendentemente poderoso, y es una maravilla aprender, ya que es visualmente atractivo desde el primer momento.
Simplemente diviértete aprendiendo y todo lo demás seguirá. Sorprendentemente, Scala podría ser el idioma más fácil si prueba Kojo (Scala es mejor Java, tiene acceso a todas las bibliotecas Java, por supuesto)
Puede encontrar algo de inspiración en este proyecto:
Programación para enseñar a los niños: incluso los más pequeños pueden aprender Java
Programación Java para niños, padres y abuelos.
Puede encontrarlo aquí en el sitio web de faratasystems (enlace directo aquí )
Entre las lecciones aprendidas durante un proyecto de este tipo, el autor menciona:
La mayoría de las tareas de programación requieren un conocimiento mínimo de habilidades aritméticas y álgebra. Para comenzar a programar, un niño necesita entender qué significa x = y + 2. Otro concepto importante para entender es una declaración if.
Los niños desarrollan habilidades abstractas de razonamiento para cuarto y quinto grado, y también realizan fácilmente tareas tales como navegar por la Web, descargar e instalar software. Dave aprendió a escribir, compilar y ejecutar programas Java en Eclipse IDE en muy poco tiempo.
Los niños aprenden mucho más rápido que los adultos, pero no tienen "experiencia previa en programación", lo que en realidad puede ser algo bueno, ya que no tienen que pasar de una forma de pensar procedimental a una orientada a objetos. Después de enterarse de la herencia, Dave llamó a mi esposa una superclase.
Los adultos son criaturas responsables, y pueden seguir haciendo operaciones aburridas mucho más tiempo que los niños. Las lecciones de programación con niños deben ser cortas. Una o dos lecciones de 45 minutos por semana son suficientes. Los niños de preparatoria deberían poder estudiar más, pero aún no tengo esa experiencia.
Ilustraciones de ayuda. En mi libro he incluido muchos personajes de dibujos animados en color que son como un suavizante de telas Java.
A los niños les gusta ver resultados inmediatos y disfrutar jugando con programas más cortos, por ejemplo, una clase de Fish tiene un método de inmersión (int howDeep). Permítanme intentar llamar a este método varias veces con diferentes argumentos ...
La programación gráfica es la más divertida, e incluso se puede explicar a los niños un programa bastante grande como Calculator, Tic-Tac-Toe o Ping Pong.
Hoy noté al azar que Sun / Oracle tiene una página dedicada a desarrolladores jóvenes. Pensé que podría ser una página de referencia útil.
Tiene enlaces a BlueJ, Alice y Greenfoot (todos ya discutidos), así como un par de otros recursos.
Una vez que hayas iniciado a tu hijo, puedes probar CodeInvaders, la competencia puede ser muy útil para hacerle pensar, tal vez incluso la competencia entre padre e hijo.
Esta pregunta es similar a https://.com/questions/165905/how-and-when-do-you-teach-a-kid-to-code#165909 .
Mi hijo mayor también tiene 8 años y sé que tiene el cerebro adecuado para programar, pero se toma su tiempo. Creo que deberías mantener las tareas pequeñas pero deben tener resultados tempranos. De lo contrario, pueden decepcionarse.