¿Cómo ha cambiado la enseñanza de la informática desde 1984?

Mi hijo es un estudiante de primer año en mi alma mater (Universidad de Maryland) que estudia CMSC tal como lo hice yo, así que he visto de primera mano cuáles son los cambios.
[TL; DR: Creo que el plan de estudios es mejor ahora]

  1. La informática obtiene mucho más respeto y espacio. Cuando pasé a principios de los años 80, los departamentos de ciencias de la computación y astronomía compartieron un edificio y la ciencia de la computación fue despreciada (un poco) por no ser ingeniería y matemática. Ahora mi hijo tiene que determinar en cuál de los tres edificios de informática donde están sus clases.
  2. Sin tarjetas perforadas, sin riesgo de dejar caer su proyecto por el hueco de la escalera. Reemplazado con el riesgo de tener un bloqueo de disco local o borrado por error en una computadora portátil. Estoy de acuerdo con Thomas Cormen: se dedica menos tiempo a pensar las cosas y no se obtiene la profundidad que teníamos, pero se tiene la capacidad de manejar mucha más amplitud. Del mismo modo, Eclipse o herramientas similares con un depurador interactivo agradable produce graduados que nunca aprendieron a escribir declaraciones de impresión de depuración en sus programas.
  3. Menos énfasis en los lenguajes de programación y cómo crear nuevos lenguajes. Más énfasis (clases / profundidad) en ingeniería de software. Personalmente, creo que esto es una mejora.
  4. Los cursos que solían ser de posgrado solo cuando estuve allí han migrado al plan de estudios de pregrado. Ahora puede tomar múltiples cursos en redes e inteligencia artificial como parte del plan de estudios de pregrado.
  5. Hay cursos de interacción humano-computadora y UI / programación portátil. Los primeros eran clases de posgrado / proyectos de investigación en los años 80, el último no existía en absoluto.
  6. Los cursos de teoría elemental todavía están allí (Análisis numérico, Métodos de computación) pero han agregado clases sobre criptografía y teoría de juegos.

En términos de cómo se enseñan las cosas, todavía hay conferencias y grupos de discusión. Muchos de los libros están disponibles en línea, por lo que mi hijo lleva una tableta a clase con él y resalta el texto electrónicamente durante las conferencias. Las tabletas son mucho más livianas para llevar entre clases.
Los proyectos se entregan de manera diferente: los niños obtienen un complemento de eclipse que los conecta con el repositorio central donde entregan sus programas de trabajo. Los profesores ejecutan los programas para ver cómo se comportan, en lugar de mirar la salida en papel de la plataforma de perforación.

Una pregunta fascinante. Al leer las otras buenas respuestas aquí, me doy cuenta de que mi educación formal en computadoras fue hace más de 30 años. Mi escuela secundaria fue muy progresiva y obtuve un PDP-8L con palabras 4K de 12 bits en 1969, mi año senor. Los maestros comenzaron a mostrarnos el procesamiento por lotes de Fortran en la mini computadora, y dado que el único periférico era un teletipo con un lector de cinta de papel y un punzón de cinta de papel, el tedio de cargar el compilador de Fortran, y luego tratar de obtener su código para compilar y luego cargando la biblioteca de tiempo de ejecución y luego tratando de ejecutar su oda de objetos, todo el proceso fue horrible.

Afortunadamente, encontré una cinta en la colección del fabricante para un pequeño lenguaje interpretativo, Focal, que era mucho más interactivo que Fortran. Kudo a los maestros por permitirme subvertir su base Fortrans planeada para el curso y redirigir las cosas hacia Focal.

La otra cosa que se me ocurre al tratar de mantener el aspecto de su pregunta hace 30 años es que el “progreso” no llegó a todas las escuelas al mismo tiempo. C y Unix se desarrollaron en la década de 1960, pero eso no dio una penetración inmediata en todas partes. En 1980, todavía había muchas partes de Bell Labs que se ocupaban principalmente del procesamiento por lotes en computadoras mainframe. El Macintosh salió en 1984, hace apenas unos 30 años, pero eso no convirtió todos los programas por lotes y los feos programas de DOS en interfaces GUI y mouse al instante. Así que “hace 30 años” no te lleva de vuelta a un punto homogéneo en el pasado. Afortunadamente, aquí obtienes respuestas que tienden a ser específicas sobre de qué escuela estaban hablando cuando.

Hace 30 años, creo que había más diversidad de sistemas operativos y arquitecturas de máquinas que la actual. Hace 30 años, antes de que todo se estableciera en los protocolos Ethernet y TCP / IP, también había mucha más diversidad en las arquitecturas de red. La penetración generalizada del mundo por Internet y cosas como la búsqueda de Google, por supuesto, llegaron más tarde. Las direcciones de correo electrónico estaban llenas de signos! Y solo ocasionales signos @ (por ejemplo, ¡ulysses! Nestor! Drew). No importaba lo que quisieras hacer, no era probable que hubiera una aplicación para eso, e incluso si la hubiera, buena suerte tratando de encontrarla. El software comercial solía ser costoso, y el software libre realmente no había despegado en gran medida en aquel entonces.

¡Ahora ustedes, niños, salgan de mi césped! Por supuesto, éramos más duros en esos días y teníamos que aprender cosas importantes en lugar de arrojar pájaros enojados. Todavía no estoy seguro de cómo terminé la universidad sin tener acceso a Google hasta décadas después. Me referí un poco a esto en una vieja publicación de blog que consideró el Laboratorio de Hidráulica de la Universidad de Cornell ahora colapsado: Laboratorio de Hidráulica de Cornell

Voy a responder, pero en lugar de 30 años, voy por 40.

Cuando tomé mi primer curso de CS como estudiante de primer año en Princeton en 1974, tuve que escribir mis programas Fortran en tarjetas perforadas y alimentar las tarjetas en una tolva. Algún tiempo después, obtendría una copia impresa de la impresora de líneas y vería mi programa y su salida. El IBM 360/91 en Princeton se configuró de modo que si su programa Fortran (o PL / I, 360 Assembler o Snobol) tomara menos de 2 segundos de CPU, podría estar en un lote que se ejecutaría cada 20 minutos. De lo contrario, se unió a la cola de trabajos y podría no ejecutarse durante horas.

Cada ejecución de un programa fue preciosa. Calcule que si tuviera que pasar un período de cinco horas en el centro de cómputo, obtendría un máximo de 15 carreras. Los compiladores fueron heroicos. Princeton usó el compilador Watfiv Fortran, y bromeo diciendo que si alimentas a ese compilador con el texto de Moby Dick , intentaría llamar a una función ME con un parámetro ISHMAEL.

Debido a que cada ejecución de un programa era valiosa, cuando mi programa no funcionaba correctamente, tenía que tomar mi salida y revisarla metódicamente, simulando el programa línea por línea, hasta que descubrí dónde estaba el error. Realmente me hizo entender mis programas.

Entonces hay hoy. Los estudiantes tienen sus propias computadoras, lo cual es algo bueno, pero la computadora los ayuda tal vez demasiado. Los IDE les dicen sus errores sintácticos e incluso semánticos a medida que ingresan su código. Las carreras son gratis. No es necesario que comprenda su programa; simplemente muévelo al azar hasta que funcione. Y luego, una vez que funciona, no sabes por qué funcionó. Estás contento de que así fue, y continúas con lo siguiente. (Divulgación completa: así es como depuro mis macros TeX).

Ahora, no estoy diciendo que sea malo que los estudiantes tengan sus propias computadoras con IDE ingeniosos. Estoy diciendo que es solo la naturaleza humana tomar el camino de menor resistencia y evitar pensar profundamente en los programas cuando hay un camino alternativo. Creo que hemos perdido algo en el camino, pero no, no me gustaría volver a ser como era en 1974.

Hay dos partes de esto. Uno es el cambio debido al acceso a las computadoras, Internet, power-point, etc. Algunos de estos cambios son comunes en todas las disciplinas, pero como muchos han dicho, el acceso a las computadoras realmente ha cambiado la forma en que aprendemos la programación, el desarrollo de aplicaciones, etc.

La segunda parte del cambio es el currículo. Ciertamente se ha vuelto más aplicado, y hay demasiadas cosas nuevas para enseñar hoy. Si miro el curso de redes que hice hace 30 años, y lo que enseño hoy, tal vez haya una superposición del 10%. Si bien TCP / IP se había convertido en los protocolos principales y formaban parte de BSD Unix y del Sistema V, todavía no estaban en los libros de texto. Por supuesto, no había nada sobre conexión inalámbrica, seguridad, y muchos de los protocolos de aplicación como HTTP aún no se habían inventado. No había DNS ni DHCP. Sin NAT, Proxy, MPLS, y puedo seguir y seguir. Estoy seguro de que podemos decir cosas similares sobre la mayoría de los cursos de “sistemas”.

Uno de los grandes cambios ha sido el conocimiento previo de los estudiantes. Hace 30 años, uno esperaría que muchos estudiantes que entraban a clase nunca antes hubieran tocado una computadora y casi nadie tuviera una computadora en casa. Eso ha cambiado con el tiempo. Ahora, es difícil imaginar a un estudiante que no haya pasado muchas horas en una computadora antes de llegar a la universidad. Se han acostumbrado a interfaces altamente gráficas e intuitivas. Tienen barras altas para lo que esperan que hagan los programas de computadora. Hace 30 años, si escribías un programa para imprimir algo, te impresionaba. Ahora que simplemente no es el caso. Tienen expectativas mucho más altas. Gracias a las mejoras en los idiomas y las bibliotecas, es posible hacer que los estudiantes hagan cosas gráficas desde el principio, pero causa algunos desafíos en la forma de hacer la instrucción. Todavía quieres concentrarte en los principios básicos. Al principio, eso significa lógica y resolución de problemas. Sin embargo, los estudiantes deben pasar tiempo aprendiendo elementos de las bibliotecas para hacer las cosas que realmente les parecen interesantes.

Solo puedo regresar unos 20 años.

En mi escuela secundaria de ciencia y tecnología, se nos exigió aprender PASCAL. Había aprendido algo BÁSICO y LOGOTIPO en casa, pero las limitaciones eran frustrantes.

No me gustaba codificar a mano o tratar con compiladores. La codificación me pareció extremadamente aburrida. Por la forma en que se enseñó, no entendía por qué alguien querría escribir código para ganarse la vida. Todo fue muy lineal y muy limitante.

También fue desalentador que las computadoras parecieran ser para niños, y las niñas fueron excluidas. Tuve compañeros de clase (masculinos) cuyos padres les permitieron desmontar sus computadoras para ver cómo funcionaban. ¡Algunos de ellos incluso tenían su propia computadora!

Avancemos rápidamente a los últimos años, y me enseñé a mí mismo cómo codificar usando herramientas en línea gratuitas. Meetup dot com proporcionó muchas oportunidades para encontrar otras Mujeres que codifican y asistir a seminarios y talleres de forma gratuita.

El llamado formato de “aula invertida” funciona muy bien para mí. Los libros electrónicos y los tutoriales interactivos son maravillosos. Stack Overflow ha sido invaluable. Además, no tener que preocuparse por las calificaciones. Solo codificar a mi propio ritmo significa que en realidad es DIVERTIDO (!).

Encontrar el idioma adecuado para comenzar también fue esencial. No sabía cuánto importaría eso. Comencé con Ruby antes, intenté aprender algo de Java, tomé una clase en R, finalmente decidí concentrarme en Python por un tiempo antes de continuar aprendiendo algo de JavaScript. Me gusta que Python sea modular y legible por diseño. Es lo suficientemente intuitivo para mí que finalmente pude pasar los lugares donde me había quedado atrapado con otros idiomas.

Después de aprender Python, traté de tomar un curso de informática de nivel introductorio más tradicional que comenzó con una serie de lecciones usando Scratch, que odiaba (lo siento, no ofende a los amantes de Scratch). Luego tomé un curso de Algoritmos independientes del idioma, y ​​eso fue mucho más divertido para mí.

Me gustan las herramientas que están disponibles para aplicaciones que son significativas para mis intereses, por lo que puedo practicar el uso del código que escribo, en lugar de sentir que estoy haciendo tareas de clase artificiales en el vacío. Me gusta que puedo hacer todo esto en la comodidad de mi propia casa, y no estoy atascado tomando prestado el tiempo en la computadora de otra persona, o trabajando tarde en el laboratorio de computación de la escuela, preguntándome cómo llegaré a casa a salvo.

Una cosa ‘moderna’ sobre la que soy algo ambivalente: los autoevaluadores. Ser capaz de enviar tareas instantáneamente en línea es genial. Siempre es bueno confirmar que su solución se ajusta a las expectativas del profesor. Pero a veces el calificador automático quiere una respuesta muy específica, y luego vuelve al viejo problema de “¿qué tan bien leí la mente del maestro?” Y a veces eso significa que usted obtiene cero comentarios útiles sobre si su solución es realmente “incorrecta”. Aún así, prefiero enviar mi código directamente a un sitio web, en lugar de tener que escribir el código a mano en el papel del cuaderno para un examen, quedarse sin espacio y apresurarme a volver a copiar todo de nuevo para que todo esté en orden (incluso aunque mi cerebro no funciona de esa manera).

Fue tan malo a finales de los 70 que pasé a tomar todos y cada uno de los cursos de CS. La vista de los estudiantes arrojando tarjetas perforadas fue patética.
La tecnología era tan primitiva que esta engorrosa desventaja impidió el desarrollo de soluciones reales.
Mucho trabajo, poco valor real entregado.
Afortunadamente cuando me gradué en 1980 y me decidí por CS para una carrera, C y Unix se estaban creando.
Fue autodidacta en general utilizando la serie Knuth.
Comenzó en VMS, pasó a ‘C’ y Unix en 3 años.

La calidad de la enseñanza ha mejorado constantemente a medida que la influencia tecnológica ha mejorado en las últimas 3 décadas.
Este ha sido un proceso constante y gradual.
Mejores lanaguges de alto nivel, mejor hardware, más memoria y almacenamiento.

Estas clases siempre están limitadas por la tecnología, incluso hoy en día.
Los idiomas de alto nivel de hoy serán primitivos y obsoletos en 3 décadas.
Lo mismo para el trabajo del curso.

30 años 1984? Cuando se lanzó la primera Mac, rompieron AT&T, el año pasado el Challenger voló con éxito y Micheal Jackson se incendió.
El mayor cambio en CS es el movimiento hacia lenguajes compilados para PC. Solían enseñar BASIC, FORTRAN, PASCAL y C porque había compiladores en los mainframes que usaban para que los estudiantes aprendieran (¿recuerdan las salas llenas de X-Terms y terminales de pantalla verde 3270?) Ahora enseñan usando lenguajes como Java y C ++ que tienen compiladores y editores gratuitos que se pueden instalar en las PC personales de los estudiantes.
El siguiente cambio más importante (de todos modos en los cursos de nivel 100-200) es que todas las presentaciones se realizan electrónicamente (hubo un momento en que entregó una impresión de barra verde del programa y es mejor que haya comentado bien el código o de lo contrario los TAs no pudieron No lo califique y le dé una C). Y la mayoría de esas solicitudes enviadas electrónicamente ahora están clasificadas electrónicamente. Los marcos de prueba de J-Unit se pueden usar para pruebas automatizadas de rutinas y salidas y JavaFX puede calificar según el estilo.
Hace 30 años no había bases de datos relacionales y patrones de diseño de programas. Todos los programas de CS ahora incluyen diseño de bases de datos relacionales y clases sobre SDLC y patrones de diseño.
Business (MIS) vs CS comenzó a dividirse en dos especializaciones o enfoques hace aproximadamente 20 años.
El correo electrónico / portales estudiantiles / paneles de discusión se convierten en la forma predominante de manejar la interacción estudiantil.
Video conferencias.
Programación colaborativa en tiempo real en clase (sin PC ni terminales excepto en días de laboratorio en ese entonces)
Mujeres, tanto maestras como estudiantes.
Especialistas en ingeniería / ciencias que no toman cursos de CS.
Estudiantes de CS que hablan con otras especialidades que no son de ingeniería / ciencias (tanto en clases de CS como en clases que no son de CS).

Esos son solo algunos de los principales cambios, el resto no tengo tiempo para enumerarlos a todos.

Abstracción de datos mucho más enfatizada (OOP)
Despacho dinámico invisible (frente a punteros de función en C)
Bibliotecas y marcos (han avanzado enormemente)
Desarrollo iterativo, incremental, gestionado por el riesgo (vs cascada)
Entornos de desarrollo integrados (vs integración de herramienta manual)
Otras herramientas de ingeniería de software (pruebas, integración, control de versiones)
Control de versiones distribuido y alojamiento basado en la nube de sistemas DVC
Disponibilidad de material relevante en línea (toda la WWW, por supuesto)
Interfaces gráficas de usuario y modelado de dominio (p. Ej., Metáforas de escritorio)
La ciberseguridad es frontal y central (frente a virus / gusanos que se acaban de entender)
Computación web y móvil y las vastas infraestructuras que los acompañan.
Maduración de, y creciente necesidad de entender, métodos formales.
Requisitos de big data y tecnología habilitadora (nube, reducción de mapas, etc.)
Integración de la programación funcional en idiomas / diseño convencionales
Disponibilidad de idiomas adecuados tanto para la enseñanza como para la práctica (p. Ej., Python)
Aumento masivo en la importancia de la comprensión de las estadísticas (IA, big data)
Necesidad cada vez mayor de comprender el resto de la ingeniería (ciberfísica)
Relevancia ubicua de CS (más allá de la industria informática, negocios, defensa)

Ciertamente solo una lista parcial. Siéntase libre de agregar más.

Contexto – MIT ’75.
General: la informática fue una extensión de EE.
1. Mucho énfasis en hardware y matemáticas.
2. Mucha cobertura del software del sistema: ensambladores, compiladores, sistemas operativos.
3. El primer curso de programación incluyó:
– Lenguaje ensamblador, en tarjetas perforadas, en un IBM 360
– Fortran, en tarjetas perforadas (mismo 360)
– Interactive Fortran – tanto en 360 / TSO como en Multics
4. El primer curso de teoría fue construido alrededor de LISP
5. Mucha exposición al trabajo de investigación realmente fundamental.

Hoy, en el MIT, todavía hay hardware y matemática, software de sistema, aunque menos. El lenguaje ensamblador, Fortran, LISP (y los lenguajes funcionales en general) parecen haberse dejado de lado. En todas partes, parece que no hay ningún problema, ningún software del sistema, no estoy seguro de lo que la gente realmente aprende.

Los nuevos enfoques para la realización de conferencias han cambiado la forma en que se imparten los cursos (no solo CS) en los últimos 5-6 años, en comparación con el modelo tradicional de conferencia / escriba / tarea.

Muchos instructores están adoptando:

1. Clases interactivas anónimas: las clases abordan la clase con una pregunta de sí / no / opción múltiple que los estudiantes responden con un sondeo inalámbrico (que parece un control remoto de TV simplificado). Los resultados se recopilan en tiempo real y el instructor sabe si se está siguiendo el material o no. No existe una barrera social contra la participación o la influencia de otros estudiantes, a diferencia de las preguntas respondidas levantando la mano.

2. Los cursos masivos en línea (MOC) (Coursera, MIT open courseware) están democratizando a los académicos para que los estudiantes curiosos en cualquier lugar con conexión a Internet puedan aprender las mismas materias que los estudiantes en universidades privadas. Las asignaciones deben poder clasificarse automáticamente. Puede haber interacción con el instructor a través de un foro en línea.

3. Cursos ‘invertidos’. Los instructores graban sus conferencias y las publican en línea y requieren que los estudiantes las revisen antes de la clase. Luego aparecen para dar una conferencia con preguntas en lugar de irse con ellas. En el pasado, los estudiantes podían hacer esto simplemente leyendo con anticipación, pero el momento de un modelo de conferencia estándar no permite hacer preguntas con tanta facilidad.

Mi respuesta puede basarse más en la forma en que se enseñó en la India. Tengo solo 22 años, por lo que la respuesta también se basa en lo que he escuchado de otros.

Esto es lo que un maestro me dijo cuando C fue presentado en India como un curso. En ese momento, ningún maestro tenía conocimiento sobre el idioma. Pero tomó el desafío de enseñar a los estudiantes. El mayor problema que enfrentó durante algunos años fue que no tuvieron un compilador de C durante algunos años para probar que lo que están haciendo es totalmente correcto, solo confiaron en los recursos mínimos que tenían. El mayor desafío para ellos debido a este problema fue que los estudiantes solían hacer preguntas que no podían responder y solo tenían que pedir disculpas, lo cual es un gran problema para un maestro en India. Ahora, obviamente, todo ha cambiado, los maestros tienen todos los recursos disponibles para enseñar. En ese momento ni siquiera sabían que lo que estaban enseñando era cierto o no, solo tenían que confiar en lo que entendieran del libro.

Comencé en 1974 en Edimburgo, y mirando el plan de estudios actual, el cambio principal parece ser mucho más sobre comunicaciones y datos, junto con las cosas basadas en la computación que hicimos. Éramos muy pocos, y éramos mucho menos especializados, probablemente porque el campo era tan joven que nadie sabía qué especializaciones podrían ser útiles. Pero se habló incluso de separar los títulos universitarios en Ciencias de la Computación e Ingeniería de Sistemas Computacionales.

Solo un puñado de estudiantes sabía algo sobre computadoras cuando comenzamos. Algunos habían programado un poco en Basic y tenían que sacarles eso. En las clases introductorias aprendimos programación estructurada en IMP de Edimburgo (como Algol), OO en Simula (¡sí, OO existía en 1974!) Y computación simbólica en Lisp. Echamos un vistazo a Fortran y Cobol solo para ver cómo vivía la otra mitad.

Utilizamos terminales de teletipo a las que teníamos acceso limitado. Los más avanzados tenían pantallas CRT, pero todavía solo funciones de teletipo. Mover el cursor fuera de la línea de comando fue un regalo para mí 3 años después. El progreso en la implementación de las cosas fue lento, aunque mucho más rápido que los golpes clave con los que muchos todavía estaban atrapados en la misma era, y pudimos editar, compilar y ejecutar en línea sin tener que esperar las ejecuciones por lotes (usando el sistema principal multiusuario del Sistema de Acceso Múltiple de Edimburgo OS).

También estudiamos el lado del hardware desde la mitad, comenzando con arquitecturas de procesador simples y conjuntos de instrucciones, y pasando al diseño de circuitos digitales a nivel de puerta y arquitecturas de nivel superior con almacenamiento, comunicaciones e IO. En nuestro segundo año, tuvimos manos a las minicomputadoras reales: PDP 15 digitales, programadas desde cero con interruptores de bits y cintas de papel. Esta fue la primera vez que la mayoría de nosotros hemos visto una computadora.

En el lado de la teoría, no creo que haya cambiado mucho, aunque obviamente todo ha avanzado. ¡Estudiamos análisis de algoritmos, lenguajes formales y autómatas, semántica de lenguajes de programación (enseñados por el maravilloso Robin Milner), teoría de colas y mucho más que he olvidado por completo!

También tomé una clase de Inteligencia Artificial que no tenía requisitos previos de CS y subgrados mixtos de CS, psicología y filosofía, buscando lograr que las computadoras hicieran cosas inteligentes, usar computadoras para modelar teorías de cognición y especular sobre la naturaleza de la inteligencia. Tengo que admitir que realmente no lo tomé, ya que estaba mucho más interesado en el primer aspecto cuando tenía 18 años.

La enseñanza de CS se ha vuelto más aplicada y orientada a las habilidades, lo cual no es sorprendente debido a que la gran industria contrata desarrolladores de software y diseñadores de hardware. Las tecnologías de programación han avanzado dramáticamente, permitiendo a los estudiantes completar proyectos mucho más sustanciales en la misma cantidad de tiempo.
Mientras tanto, la teoría y los algoritmos de CS no han disminuido en valor: se enseñan con énfasis en lo que importa.

La disponibilidad de Internet ha realizado varios cambios en la enseñanza de CS. Enseño dos clases de computación científica / programación paralela, las cuales tienen componentes de lectura y laboratorio. Muy pronto instalé una política explícita: durante las conferencias no se abren computadoras portátiles.

Esa es la parte mala de las computadoras personales siempre conectadas: los estudiantes mirarán Facebook, seguirán el campeonato mundial de fútbol (en serio, especialmente los estudiantes del Medio Oriente parecen estar obsesionados con él), etc. Entonces se distraen a sí mismos y a los demás.

Lo bueno es que ocasionalmente todavía me sorprende lo que encuentran en línea. Tengo mis folletos, pero googlean cosas de izquierda a derecha, y encuentran todo tipo de cosas. A veces, lo que encuentran está fuera de sintonía con lo que estoy enseñando, pero a menudo es muy refrescante para los estudiantes poder leer una perspectiva diferente sobre lo que se enseña en clase. Cuando estaba aprendiendo CS hace unas décadas, nada de eso existía: tal vez podrías encontrar algunos libros en la biblioteca, pero a menudo eran demasiado especializados. La informalidad de encontrar notas de conferencias de otros cursos no existía.

Y (¡alerta de enchufe descarado!) Estoy ayudando en este asunto. Aquí están mis dos cursos: libro y curso de HPC y (sin terminar 🙂 Libro de computación paralela.

Una cosa que es diferente es que cada estudiante tiene su propia computadora y la trae a clase. Esto ha dificultado competir por la atención de los estudiantes.

He hecho la transición a un aula invertida donde grabo mis conferencias y espero que los estudiantes las vean fuera de clase. En clase, los estudiantes trabajan en problemas (con sus computadoras) y tenemos discusiones sobre los problemas.

En general, creo que esto ha funcionado bien. Creo que el tiempo en clase es crítico, los estudiantes aprenden más cuando colaboran con sus profesores y sus compañeros.

En nuestra universidad, se ha vuelto menos matemáticamente orientado y más aplicado. El enfoque anterior también era construir herramientas de programación, mientras que hoy es más usar estas herramientas de programación.

También ha generado una gran cantidad de especializaciones. En el pasado, era solo BS Matemática en Ciencias de la Computación. En este momento, tiene sistemas e ingeniería de redes, bases de datos, ciencia de datos, desarrollo de juegos, sistemas de información y muchos otros.

La mayor diferencia en mi humilde opinión es la personalización de la educación informática. En el pasado, las computadoras eran raras y caras, por lo que muchos estudiantes necesitaban que compartieran cada computadora. Hoy, cada estudiante tiene más de una computadora.

El comienzo de la informática en la industria fue mi comienzo. En ese momento no existía un estándar académico.

Mi experiencia es: si vas a nivel científico, debes tratar de mantenerte a nivel teórico.

La informática está cambiando y creciendo rápidamente. Debes decidir lo que quieres:
Actualidad y habilidad para usar su conocimiento en praxis o
Teoría que no cambia tan rápidamente pero pierde a veces la realidad física.

Hice informática práctica durante 30 años. Después de eso no tuve oportunidad de obtener un trabajo satisfactorio: la industria de TI tuvo un cambio de generación humana. Comencé el camino científico hace unos 15 años.

Hoy amo mi camino porque veo muy pronto posibles peligros.

Ahora he terminado un paradigma: “Orientación de TI al ser humano”.

Mire http://www.plbg.at

Agregando que edX tiene un curso gratuito a partir del 2 de febrero para enseñar a los estudiantes y maestros por igual sobre Scratch (Scratch – Imagine, Program, Share), el lenguaje / juego de programación del MIT diseñado especialmente para edades de 8 a 16 años, pero utilizado por personas de todos edades: Programación en Scratch

Recuerdo que mi escuela secundaria obtuvo sus primeras computadoras en 1983, éramos una pequeña escuela de campo en Georgia. La Sra. Smith fue la primera maestra de informática y no tenía ni idea. Se suponía que debía enseñarnos programación BÁSICA. Mi amigo Steve y yo tuvimos que enseñarle programación BÁSICA a nuestra maestra para que ella pudiera enseñarle al resto de la clase. Agujas para decir que recibí una A. fácil. Steve continuó con la programación. Perdí interés en la universidad porque todo era pascal y fortran. Muy aburrido, pero deseé haberme quedado con él. De todos modos, mi primer registro de aprendizaje de computadoras fue tener que enseñarle al maestro cómo enseñar.