¿Por qué es la familia c el regimiento de estudio CS estándar para programas de Matemáticas / CS en lugar de la familia LISP? [cerrado]

14

Me he estado familiarizando con LISP con fines de superación personal. Una de las cosas que he notado es que LISP está mucho más dentro del paradigma de las matemáticas que decir C. La estructura de la sintaxis y el diseño parece reflejar directamente el modelo matemático real de un algoritmo. No tiene sentido para mí por qué incluso los buenos programas de CS basados en Matemáticas estudian C en lugar de LISP. Creo que LISP emplea más directamente conceptos matemáticos más altos que C. No estoy diciendo que no puedas modelar estructuras matemáticas en C. Simplemente estoy notando que LISP parece estar programado para los matemáticos.

He leído muchas de las declaraciones de Joel Spolsky sobre las escuelas de JAVA y lo que no, y estoy de acuerdo con su evaluación, pero mi escuela no enseñó JAVA por esa misma razón. Fueron estrictos en la enseñanza de conceptos fundamentales como punteros, diseño de algoritmos, recursión e incluso instrucciones de ensamblaje. Sin embargo, lo hicieron todo en C y c ++. ¿Alguien sabe las razones de esto y / o su historia?

    
pregunta Jonathan Henson 17.08.2011 - 20:37

3 respuestas

13

OK. Entonces, la respuesta aburrida es que, al final, la mayoría de las escuelas enseñan con qué se sienten cómodos los profesores, y la mayoría de los profesores no crecieron hackeando a Lisp; Pasaron sus primeros años en el campo con lenguajes basados en Algol. Debido a esto, años más tarde, cuando están creando un plan de estudios, terminas con escuelas que enseñan CS con una base en Pascal, luego C, luego C ++ y luego Java.

Luego tienes escuelas que son de un nivel inferior y algunos años más jóvenes. Y miran hacia el bar que fue establecido por las escuelas que lideran el camino, y ven que los estudiantes salen de esas escuelas conociendo a C, y ven que sus propios estudiantes esperan lo mismo, entonces comienzan a enseñar C, luego C ++, Java.

Finalmente, tienes algunas de las instituciones técnicas o de "nivel inferior" que simplemente enseñan cualquier conjunto de tecnología que coincida con las palabras clave que los estudiantes desean en sus currículos, por lo que simplemente obtienes Java.

Dicho esto, algunas escuelas do enseñan a Lisp, aunque puede ser más un lenguaje electivo en lugar de uno fundamental. E incluso las escuelas que no enseñan Lisp como un idioma independiente, lo utilizan ampliamente en los cursos de AI, por lo que los cursos de principiantes de AI se concentran en la programación de Lisp al principio.

    
respondido por el Andrey Butov 17.08.2011 - 21:08
9

Esto realmente depende de la universidad. Scheme (un dialecto de lisp) ha sido el idioma para el curso introductorio de informática en el MIT durante años, aunque ha sido reemplazado por python recientemente. Obtuve mi BS en CS en una escuela de ingeniería, donde fui expuesto a C, Scheme, Prolog y C ++ durante mi primer año. Creo que fue una buena mezcla.

Creo firmemente que el lenguaje con el que empiezas es mucho menos importante que estar expuesto a múltiples paradigmas desde el principio, antes de que tu cerebro se congele en una forma de ver el mundo.

    
respondido por el Dima 17.08.2011 - 22:13
1

Fundamentalmente, la teoría de la informática es matemática. La ingeniería de software, sin embargo, no lo es. Modelar conceptos matemáticos directamente no es una ventaja inherente, yo diría que a menudo puede ser una desventaja.

Las buenas teorías y los buenos programas no están necesariamente relacionados.

    
respondido por el DeadMG 17.08.2011 - 22:47

Lea otras preguntas en las etiquetas