Como puede imaginar, no voy a dar las respuestas convencionales (CodeAcademy, Python, etc.). Considero que la pedagogía detrás de sitios como CodeAcademy es horrible, y conozco lo suficiente sobre JavaScript (el sitio de mi grupo de investigación: JavaScript y herramientas web) para pensar que es una forma terrible de aprender hábitos de programación. Además, creo que la programación no se trata de aprender un lenguaje moderno moderno (lo que está de moda cambia cada siete años, de todos modos; tome un número).
Entonces, en lugar de partir de las soluciones supuestas, seamos buenos ingenieros: empecemos por lo dado y centrémonos en los objetivos . Se nos da este niño. Ella es brillante, lo que es genial. Pero ahora, déjame preguntarte: ¿tiene enfoque y persistencia? ¿Y ella tiene el deseo de hacer las cosas bien?
Si la respuesta es sí (¡esto se parece mucho a mi hija!), Permítame darle una respuesta partidista. Muchos de los padres de los que he oído hablar han usado la primera o la segunda edición de Cómo diseñar programas. La primera edición es más formal; La segunda edición utiliza la creación de juegos interactivos como motivación. Pero ambas ediciones enseñan numerosas cosas que un currículo tradicional de informática no cubre bien, o incluso en algunos casos:
- Una forma metódica de diseñar programas.
- Una comprensión del papel que juegan los ejemplos en el diseño del programa.
- Una introducción ligera al pensamiento acerca de las pruebas y especificaciones.
- Una introducción al pensamiento acerca de la capacidad de revisión y la capacidad de supervivencia del software.
- Una comprensión superior de las pruebas.
- [ Segunda edición ] Una excelente introducción a la descomposición del modelo-vista-controlador y su interacción con las pruebas, pero hecha sin la “religión” que rodea estos términos en la comunidad de ingenieros de software.
Como esta lista debe dejar en claro, todas estas son preocupaciones bastante “adultas”. Pero son accesibles para un niño, porque en realidad son nociones bastante simples; simplemente se enturbian en verborrea y aceite de serpiente en conceptos de ingeniería de software tradicionales. HtDP quita toda esa basura.
- Si la meta de uno fuera tener el conocimiento más útil, y un asistente les otorgó el poder de absorber un libro una vez a la semana, ¿qué libros debe seleccionar la persona?
- Quiero hacer trabajo independiente y viajar. Estoy listo para aprender algo nuevo. ¿Sería mejor centrarse en el diseño gráfico, diseño web o codificación? ¿En qué campo hay más empleos y en qué futuro se ve mejor?
- ¿Qué libros pueden enseñar física utilizando la menor cantidad de matemáticas posible, especialmente la física cuántica?
- ¿Cómo aprender a programar sin tener ningún conocimiento básico (solo sé HTML)? ¿Qué idioma debo aprender primero?
- ¿Cuál es la mejor manera para que los adultos que no tenían tanto tiempo libre como adolescentes aprendan programación / desarrollo web y obtengan un trabajo lo más rápido posible?
Sin embargo, el HtDP no está realmente diseñado para niños de 10 a 13 años, a menos que tengan un padre que trabaje con ellos en cada paso del camino. Afortunadamente, hay una versión accesible de 10-13 de HtDP, y se llama Bootstrap. Está diseñado para estudiantes de secundaria; hay libros de trabajo y todo el material que uno necesitaría para ejecutar su propia clase. Mientras que HtDP está diseñado para “adultos”, Bootstrap está diseñado para “niños”. Utiliza los mismos principios, pero lo que hace es simple: los estudiantes diseñan un juego el primer día; pasan nueve semanas implementando el juego (comenzando sin experiencia previa en programación); y luego, tienen una fiesta de lanzamiento donde muestran el juego. Sencillo, nada complicado, tan divertido como puedas imaginar. Los estudiantes obtienen una camiseta de “Programo mis propios videojuegos” y me encanta.
Sin embargo, en el proceso, en lugar de solo piratear, aprenden la mayoría de los principios anteriores. Y, de hecho, también aprenden bastante álgebra; de hecho, en la mayoría de las escuelas de los EE. UU. Que lo utilizan, Bootstrap se enseña en clases de álgebra , no en clases de programación (que apenas existen). Hace un trabajo suficientemente bueno enseñando álgebra (por sigilo) que los maestros de matemáticas lo enseñan. Ha sido especialmente bueno para los estudiantes que tienen problemas con el álgebra, lo han fallado antes, etc., porque les permite centrarse en el juego y los aspectos de la programación y aprender álgebra a escondidas.
Para las personas que piensan que los planes de estudio de computación deberían ser “divertidos” y que pueden aprender de la “manera correcta” más adelante: caracterizaría esto como una epidemia. Ninguna otra materia se enseña de esa manera. ¿Dice el inglés a nivel de la escuela: “Reúna algunas palabras, no se preocupe por la gramática, puede aprender de la manera correcta más tarde”? ¿Dice la química a nivel de la escuela “Simplemente mezcle estos líquidos, obtendrá algunos colores bonitos, cómo y lo que hace no es relevante, puede aprender” lo real “más adelante? Por supuesto no. Más bien, todas las demás asignaturas estructuran sus planes de estudio como una revelación gradual : se combinan la motivación y los principios en una buena proporción, pero se tienen en cuenta los principios al crear la motivación. Entonces, ¿por qué permitimos que los currículos de computación tengan expectativas tan bajas?
Un descargo de responsabilidad obvio: soy coautor de todo este material, así que, por supuesto, soy parcial. Por otro lado, todo lo anterior es gratuito: los libros de texto, los libros de trabajo, el software, etc.