Me acaban de contratar para enseñar programación de computadoras en la escuela secundaria. ¿Cuáles son los temas / idiomas más importantes que debo enseñar?

Como estudiante que está a punto de graduarse con un título en Ciencias de la Computación, aquí hay algunas cosas que desearía que me enseñen en la escuela secundaria:

  • La programación consiste en analizar diferentes problemas para descubrir un algoritmo que encuentre eficientemente una solución dadas ciertas restricciones. Es una forma de pensar que puedes aprender de la práctica al aprender cuándo usar ciertas estructuras de datos y descubrir estrategias que se usan comúnmente para desarrollar algoritmos. No se trata de un lenguaje específico o de palabras de moda sofisticadas / complicadas o de crear aplicaciones geniales que ganen tracción y te hagan ganar mucho dinero.
  • El mito del programador genio: esto esencialmente se reduce al hecho de que los diferentes programadores a su alrededor tienen diferentes cantidades de experiencia; Algunas personas simplemente tienen más práctica o están más familiarizadas con ciertos aspectos de la programación que otras. Es fácil y común sentir que eres peor que otras personas en tu clase que parecen estar completando tareas o captando conceptos más rápido, pero es importante entender que todos cometen errores y que otras personas podrían estar mirándote en un momento de manera similar sin que realmente lo sepas.
  • Todo lo que realmente necesita al principio es una base sólida sobre los conceptos básicos de las estructuras de datos, las complejidades de tiempo y los algoritmos. Sin una comprensión sólida de los temas fundamentales, realmente no puede hacer mucho más adelante e, incluso si lo hace, probablemente será defectuoso o ineficiente. Además, sentirás que eres peor en la programación que otras personas que tienen una base realmente buena, lo que no ayuda con los sentimientos mencionados en el punto anterior.
  • Python es fácil de leer / entender, lo que puede ayudar a los estudiantes a enfocarse más en la lógica que en la sintaxis. Java es popular (AP Computer Science A) como lenguaje principiante y es relativamente más estructurado.

Estos son solo puntos que me vinieron a la mente. Supongo que ya sabe cómo programar y tiene cierta experiencia profesional, así que estoy seguro de que tiene algunas de sus propias ideas sobre lo que debe enseñarse en un curso introductorio, pero espero que esto ayude.

Los que están en el programa de estudios, pero supongo que lo sabes. 😉

Independientemente del idioma que enseñe, sus alumnos utilizarán otra cosa cuando comiencen sus carreras. Por lo tanto, elija el idioma para lo que enseña, no lo útil que será. Python es gratis, potente y limpio. Es utilizado por muchos profesores.

Aquí en el Reino Unido hay algo llamado Little Man Computer; Enseña los conceptos básicos de la programación del ensamblador sin las complejidades de un procesador real.

Puede enseñar usando el lenguaje Java o C ++ y comenzar con conceptos básicos como palabras clave, operadores, tipos de datos, declaraciones condicionales, etc.

Luego puede pasar a estructuras de datos simples y algoritmos para problemas básicos en estructuras de datos como la clasificación y la búsqueda o la visualización de patrones.

Necesitará más de un idioma dependiendo de la escuela … el país … la clase, etc. … pero lo más importante es que aprenda el idioma de la fascinación … una vez que estén fascinados, amarán el tema para siempre …