¿Cómo se debe enseñar la programación en la escuela?

La programación en las escuelas debe enseñarse a cumplir dos motivos.

  1. Para ayudar a los estudiantes a tomar una base que los ayudaría a seguir carreras en la programación más adelante.
  2. para desarrollar habilidades de resolución de problemas en ellos

Para lograr esto, se pueden tomar varios métodos a nivel escolar.

En primer lugar, se deben elegir los idiomas correctos para los estudiantes. No tiene sentido enseñar BASIC y LOGO a nivel primario, y luego saltar a Java o cualquier otro lenguaje OOP. A los niños que solo saben imprimir y escribir si de repente están expuestos a funciones, objetos y clases, seguramente no les gustará eso. Es como leer astrofísica sin saber nada de física !!!.

Lo básico es que, aunque los estudiantes obtienen tarea, la mayoría de las veces, copian el código de otras fuentes en lugar de hacerlo por sí mismos. No puedes estar con ellos todo el tiempo; por lo tanto, si los ejercicios de práctica se llevan a cabo en la clase misma, se garantizaría que los estudiantes resuelvan los problemas por su cuenta. Sin embargo, asegúrese de que no estén mirando en ese cuaderno en sus bolsos o se comuniquen entre sí:

Solía ​​pensar que la programación está a salvo de la delimitación de la interferencia. ¡Pero me sorprendió ver a mis compañeros abarrotando códigos de programas! Debe haber énfasis en el diseño de algoritmos antes de cualquier enseñanza de lenguaje de programación. Esto aseguraría que los estudiantes hagan algos para ellos mismos en lugar de abarrotar código.

Por último, los estudiantes deben estar motivados para que eliminen las telas de araña de sus PC y eliminen el polvo del monitor. La programación es algo que se debe hacer en una PC. ¡¿Qué tiene de bueno crear un compilador en la mente cuando uno ya tiene un compilador en la PC!

Oh mi palabra, he pasado tanto tiempo pensando en esto, y vaya que es la pregunta correcta.

En un mundo ideal, las clases de programación en las universidades deberían enseñarse como una clase de carpintería. Las manos en. Claro, mantenga tal vez una clase introductoria para obtener lo básico, pero después de eso, cada clase debe ser un proyecto de un semestre con una revisión formal al final. Y no dejemos a los estudiantes en una isla, sino que hagamos que el profesor LIDERA el equipo. Y en lugar de las calificaciones (ya que sería imposible ser justo para todos), hagamos que pase / falle y haga que los niños que fallan cambien de especialización o esperen un año para volver a intentarlo mientras cumplen con los requisitos básicos. Sin embargo, eso no es un gran problema, porque si tienes grandes profesores, entonces todas las fallas probablemente cambiarán por sí mismas antes de llegar a ese punto.

En serio, estoy cansado de que las escuelas roben el dinero de las personas y les peguen una etiqueta CS sin estar seguros de que realmente puedan desempeñarse en un trabajo de desarrollo de software . ¿Cuál es el trato?

Algunos antecedentes: digamos que no me emocioné exactamente cuando me gradué de la universidad para descubrir que solo las cosas que me había enseñado realmente tenían algún valor. Me llevó mucho tiempo darme cuenta de que la respuesta a mi frustración radicaba en esa única verdad.

Me gradué de la universidad entendiendo un montón de abstracciones, pero no pude aplicar ninguna de ellas. Sabía la diferencia entre una clase abstracta, una interfaz, una estructura y una clase. Sabía lo que era un puntero, la diferencia entre el montón y la pila, la diferencia entre una matriz y una lista vinculada, cómo implementar una ordenación rápida, cómo atravesar un árbol y una miríada de otras cosas. Pero no tenía experiencia para mostrarme cuándo era sabio utilizar o implementar cualquiera de esas cosas. No tenía a nadie que me mostrara; muchos profesores que podían recitar las definiciones o poner las implementaciones en la pantalla de un proyector, pero ninguno que me lo mostrara.

La programación no se enseña como la educación moderna nos quiere enseñar . No es solo un conjunto de hechos que un maestro puede dispensar y hacer que los estudiantes memoricen para producir programadores jóvenes. En cambio, lo que a menudo encontramos en la industria del software es que los graduados universitarios más recientes (especialmente aquellos que no tienen experiencia en pasantías) no saben nada sobre programación aparte de lo que cualquiera puede memorizar al mirar algunos artículos de Wikipedia.

Aprender a programar no es un problema de dominio de datos. Es una habilidad No se enseña a través de la definición o listas de hechos. Está modelado. La única forma de aprender las verdades de la programación es encontrarlas usted mismo. El mejor maestro es alguien que no solo puede decirle cómo programar, sino que puede mostrarle cómo se ve.

Desafortunadamente, la mayoría de los grandes programadores no enseñan en las universidades. No paga lo suficientemente bien. Pero si tuviéramos que cambiar radicalmente la educación de software a un modelo centrado en proyectos y comenzar a pagar salarios reales para que los grandes programadores vengan y asesoren a equipos jóvenes, esos equipos podrán pagar fácilmente los salarios de las estrellas de rock para atraer al mejor talento docente.

Aunque no soy un experto, tal vez pueda dar ciertos puntos que puede tener en cuenta al decidir.
OMI
Debe seguir un cierto flujo

1. Primero, enséñeles los conceptos básicos de programación, diversas estructuras de datos, flujos, condicionales, etc.
2. Después de enseñar la teoría, explíquela con algún ejemplo en tiempo real y prácticamente en una computadora.
3. También puede tomar un pequeño proyecto y completarlo con la clase para que tengan una experiencia práctica práctica.

Dependiendo de la clase en la que se encuentren los estudiantes, se les pueden asignar ciertas tareas para que su mente trabaje en esa dirección.

Las clases junior pueden llegar a conocer más sobre el conocimiento teórico y desarrollar construcciones lógicas.

A las clases de último año se les pueden dar algunos pequeños proyectos para que se realicen como parte de su plan de estudios que les ayudará a profundizar en la programación.

Espero que esto ayude…

Con ejemplos en vivo y uso de diagramas de flujo con lógica detallada.

Aprenda la depuración depurando programas de pares.

Nota: todos los estudiantes pueden no tener las mismas habilidades, lógica e interés en la programación.