¿Hay una buena razón cursos Uni siguen utilizando lenguajes “académicos” como Modula2?

StackOverflow https://stackoverflow.com/questions/2677326

  •  30-09-2019
  •  | 
  •  

Pregunta

me impulsa Esta pregunta para preguntar - ¿por qué las universidades todavía enseñan en lenguajes como Modula2, cuando mejoró lenguas modernas están disponibles de forma gratuita?

¿Hay uni que todavía enseñan Pascal, por ejemplo? Es decir, que era bueno hace 30 años, pero ... ahora? ¿Por qué?

¿Por qué no Java, C #, Haskell?

Relacionado: ¿Es imposible para LISP todavía enseñan?


¿Es esta una pregunta duplicado? Si no es así, creo que debería ser un tema de wiki de la comunidad.

¿Fue útil?

Solución

El trabajo de la universidad no es para enseñarle un lenguaje de programación, es que le enseñe los conceptos de programación. El lenguaje que utilizan sólo es relevante en términos del material de enseñanza que ya han generado o el uso de otras fuentes.

Me imagino que volver a hacer un plan de estudios es algo así como volver a escribir una aplicación grande -. Algo que sólo se hace si usted tiene una razón de peso, e incluso entonces que pensar dos veces antes de que

Otros consejos

  

La mejora de las lenguas modernas (Java, C #, Haskell) están disponibles de forma gratuita?

Así que por "mejorado" que quiere decir potente, cargado con bibliotecas externas y marcos, y complica locamente? Con un laberinto de características poco reviradas en la que los estudiantes que empiezan fácilmente puede perderse? Y cuando se pierden, que reciben mensajes de error que ningún principiante posiblemente pueda entender?

Las buenas universidades se resisten a la presión para enseñar las lenguas populares del día, porque nuestro trabajo es enseñar verdades atemporales y habilidades que aún serán relevantes en 50 años. (Estudiantes universitarios de hoy pueden esperar a trabajar por lo menos hasta los 70 años) Nuestros mejores herramientas para que sean simplicidad, la sencillez y simplicidad. Modula-2 es una opción bastante buena. (Así es el idioma del alumno A partir de PLT Scheme .

I love Haskell, lo utilizan mucho en investigación, han enseñado en clases avanzadas. No se podía pagar lo suficiente para enseñar en un curso-Me Me cortaría la garganta de introducción.

  

¿Por qué no Java, C #, ...

En ausencia de requisitos para interoperar con bases de código existentes, lo que ventaja tiene Java o C # tienen más de, digamos, Smalltalk? Soy un programador de C # por día (y ex programador de Java) y hay algunas cosas buenas y cosas malas, pero una cosa que realmente sobresale es lo increíblemente complejo que es. Mira cuántas preguntas hay aquí sobre los puntos más finos de C # sintaxis y la semántica. Se podría perder el semestre o año toda la enseñanza de trivia. Modula-2 es mucho más simple y perfectamente adecuado para muchos problemas.

Usted necesita aprender el montaje, también, y va desde Modula-2 para el montaje es un paso mucho más fácil que C # para el montaje. No me gustaría tratar de enseñar el montaje a un grupo de estudiantes que sólo se conocían las herramientas profesionales de Microsoft.

  

Relacionados:? ¿Es imposible para enseñar LISP todavía

(No se trata de 50 formas diferentes de interpretar esto ...)

No veo lo que es "hacia atrás" al respecto, a menos que se está viendo que enseñó {antes, después} un lenguaje de bajo nivel y creo que debe ser enseñado {después, antes} en su lugar.

¿Puede usted sugerir otro lenguaje que hace lo que hace? (???? Smalltalk Forth Icono Factor) Por ejemplo, si desea ver el diseño de un sistema real OO (y puede sostener que es más poderoso que Java o C #), que puede recoger AMOP y ver toda la cosa en un libro corto, incluyendo el código fuente completo. (Common Lisp no es el más simple dialecto de Lisp, pero es mucho más simple que C # o Java, y AMOP utiliza un subconjunto relativamente pequeño de todos modos.) ¿Cómo enseñar a metaprogramming, o incluso el envío múltiple, con Java?

O: el propósito original de Lisp fue reemplazar las máquinas de Turing como una construcción para la construcción de algoritmos. (Es sólo pasa a ser realmente útil para escribir programas de verdad!) ¿Está sugiriendo que prefiere el uso de las máquinas de Turing para la enseñanza de algoritmos? O C # para el modelado de cómputo? Una máquina de Turing es un 7-tupla - No puedo imaginar la cantidad de componentes del modelo de computación # C tendría! Lisp sirve de puente a la perfección, y sólo he visto uno o dos otros idiomas en este espacio -. Forth viene a la mente, pero por alguna razón no se ha convertido en popular en el mundo académico

  

... Haskell?

Creo que es una gran idea. Lo aprendí en la escuela. Por otra parte, creo que cualquier miembro de esa familia de la lengua estaría bien. Si se aprende en la escuela ML lugar, no creo que haya ningún fuera peor. Los conceptos son los mismos.

Es como estudiar ingeniería mecánica en Berlín frente a Chicago: el lenguaje puede ser diferente, pero los conceptos son los mismos. Pero si usted no sabe nada, ni siquiera una lengua, tiene sentido comenzar con el lenguaje más sencillo posible. Si quieres ser un ingeniero en Berlín, pero habla no alemana, que tiene sentido para la ingeniería de estudio y también a estudiar alemán, pero el pensamiento convencional es que es menos eficaz para comenzar con las clases de ingeniería alemana-solamente.

Dos razones que se me ocurren, uno bueno, no uno. (Y yo era un prof.)

La buena razón: para simplificar la enseñanza. Enseñar a los estudiantes de introducción es como pollitos de pastoreo en un trampolín. Si hay una manera para que se caiga, lo harán. Si tuviera que enseñar a C, estaría rasgando mi pelo, lo que con char, unsigned char, char*, char**, char*[], char[10]*, y así sucesivamente todos los que son sólo unas pocas astillas legales y diferentes, y que en el árbol. Por un segundo o tercer curso, que es una historia diferente.

La mala razón: la libertad académica. Tuvimos una persona que enseña un lenguaje interpretado de largo porque le gustaba. Otro insistió en la programación de la enseñanza de hoja de cálculo, porque esa era la "ola del futuro".

A pesar de que esta cuestión parece haber sido manejado hace algún tiempo que quería añadir algo (ya que soy el autor de la pregunta de la mencionada pregunta :)) ¿Por qué se aprende Modula2 en nuestro primer año: Aparte de todas las razones ya mencionadas, que es para conseguir un control sobre la forma básica de las cosas (por ejemplo, punteros) de trabajo antes de involucrarse con algo como Java, donde todo eso es bastante invisible para el programador:)

Me doy cuenta de esta pregunta es bastante antiguo y hay muchas buenas respuestas. Sin embargo, me gustaría carillón en.

La mayoría de las respuestas son variaciones de la "Modula-2 es más simple, por lo tanto más fácil de enseñar / aprender" tema. A pesar de que esto es correcto, no es la razón de esta-descalifica-toda-Else porque una universidad debe elegir para enseñar Modula-2.

El beneficio más importante de la enseñanza de Modula-2 para estudiantes de informática de grado es que es la formación de un buen hábito y la disciplina inculcar.

Ver también "¿Cuáles son las ventajas más importantes de Modula-2?" en:

http://modula-2.info/m2info/pmwiki.php/ general / Preguntas

Hay muy pocos idiomas por ahí que la disciplina estricta programación de enseñar, la adhesión a los principios de ingeniería y buenos hábitos. La mayoría de las lenguas modernas, y especialmente populares en realidad hacen lo contrario, enseñan a los malos hábitos.

Entre los idiomas estrictas, Modula-2 es la más pequeña, y entre las pequeñas lenguas, Modula-2 es el más estricto.

Esta combinación hace Modula-2 la elección perfecta para cualquier universidad que no se limita quiere ser una escuela profesional de la mecánica de software.

Esto puede sonar duro, pero si los desarrolladores de software aspiran a ser llamados ingenieros de software, entonces deben ser entrenados como ingenieros, pensar como ingenieros y lo más importante, se comportan como los ingenieros cuando llegan al trabajo.

eléctrico, ingenieros mecánicos y civiles tienen la obligación de construir las cosas que son, ante todo, segura y fiable. Con pocas excepciones, el software no está a la altura de esa norma y la falta de una mentalidad de ingeniería clásica es un factor importante aquí. Por ejemplo, la noción popular de la "pronta liberación, después del arreglo" es diametralmente opuesta a los principios de ingeniería.

La cuestión de Lisp / ADA vs C / Java es el mismo que el de Informática vs programación. Una de ellas es una ciencia, el otro es un arte.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top