왜 c 계열이 LISP 계열 대신 수학 / CS 프로그램에 대한 표준 CS 연구 연대입니까? [닫은]


14

자체 개선 목적으로 LISP에 익숙해졌습니다. 제가 주목 한 것 중 하나는 LISP가 C라고하는 것보다 수학의 패러다임 내에 있다는 것입니다. 구문과 디자인 구조는 알고리즘의 실제 수학적 모델을 직접 반영하는 것 같습니다. 훌륭한 수학 기반 CS 프로그램조차도 LISP 대신 C를 공부하는 이유는 이해가되지 않습니다. 저는 LISP가 C보다 더 높은 수학적 개념을 직접적으로 사용한다고 생각합니다. 저는 여러분이 C에서 수학적 구조를 모델링 할 수 없다고 말하는 것이 아닙니다. LISP가 수학자들에게 딱딱한 것처럼 보인다는 것만 알고 있습니다.

나는 JAVA 학교에 대한 Joel Spolsky의 많은 분노를 읽었으며 그의 주장에 동의하지 않는 것을 읽었지만 학교는 바로 그 이유 때문에 JAVA를 가르치지 않았습니다. 포인터, 알고리즘 설계, 재귀 및 조립 지침과 같은 기본 개념을 가르치는 데 엄격했습니다. 그러나 그들은 C와 c ++에서이 모든 것을했습니다. 누구든지 이것 및 / 또는 그 역사의 이유를 알고 있습니까?


하루가 끝나면 컴퓨터 과학 학위는 어느 정도 언어에 구애받지 않아야합니다. CS의 개념은 컴퓨터 과학이 이론적으로 새로운 언어를 배울 수 있어야한다는 것입니다. CS는 프로그래머와 과학자가되는 법을 모두 포괄하는 것으로 보입니다. CS는 언어를 배우는 방법을 배우는 것이 아닙니다.
Chris

2
LISP가 "알고리즘의 실제 수학적 모델을 거부"하는 것과 마찬가지로 C는 하드웨어의 실제 구조를 에코하고 C의 구조가 메모리에 매핑되는 방식이 간단합니다 (내장 시스템에 특히 유용함). 그러나 나는 당신에게 전적으로 동의합니다. LISP에서 학부 과정을 좀 더 고맙게 여겼기 때문에 더 자세히 배울 수있었습니다
Bill VB

답변:


13

확인. 지루한 답은 결국 대부분의 학교가 교수들이 편한 것을 가르치고 대부분의 교수들은 해킹 리스프를 자라지 않았다는 것입니다. 그들은 초기에 Algol 기반 언어로 현장에서 보냈습니다. 이로 인해 몇 년 후, 커리큘럼을 구축 할 때 파스칼, C, C ++ 및 Java를 기반으로 CS를 가르치는 학교를 시작하게됩니다.

그런 다음 계층이 더 낮고 몇 년 더 어린 학교가 있습니다. 그리고 그들은 길을 이끌고있는 학교가 정한 바를 찾아보고, 학생들이 그 학교를 C로 알고 떠나는 것을 보았고, 자신의 학생들이 똑같이 기대한다는 것을 알았습니다. 그래서 그들은 C, C ++을 가르치기 시작합니다. 자바.

마지막으로, 학생들이 이력서에 원하는 키워드와 일치하는 기술 세트를 가르치는 기술 또는 '저급'기관이 있으므로 Java를 얻을 수 있습니다.

그러나 일부 학교 기초 언어보다는 선택 과목 일 수도 있지만 Lisp를 가르치고 있습니다. Lisp를 독립형 언어로 가르치지 않는 학교조차도 AI 코스에서 광범위하게 사용하므로 초보자 AI 코스는 Lisp 프로그래밍 시작에 집중합니다.


2
내가 들었어 C와 C ++에 무관심하지 않고, 그들은 내 경력 전체에서 내가 선택한 언어 였지만 LISP는 C보다 수학 학생들을 위해 훨씬 더 나은 교육 도구가 될 것입니다. C는 훌륭한 언어입니다. 그것을 알지 못했지만 CS 학위의 목적은 기술 현장 교육이 아니라 수학 및 컴퓨터 과학의 개념을 습득하는 것입니다. LISP는이 목적에 훨씬 더 적합 해 보입니다.
Jonathan Henson

나는 둘 다 자신의 위치를 ​​가지고 있다고 생각하고 대학은 당신이 당신의 마음을 넓히는 CS 학위까지 더 이론적 / 학문적 인 트랙을 얻는 것이 도움이 될 수 있습니다. 이 트랙에는 Lisp, Prolog, Algol 기반 등 다양한 언어가 포함되어야하며 실습 기반의 트랙은 오늘의 실제 풍미에 집중되어 있습니다.
Andrey Butov

@ 조나단 헨슨 : 자리에!
Chris

9

이것은 실제로 대학에 달려 있습니다. Scheme (lisp의 방언)은 최근 python으로 대체되었지만 MIT의 컴퓨터 과학 입문 과정의 언어였습니다. 공학 학교에서 CS 학사 학위를 받았으며 첫 해에 C, Scheme, Prolog 및 C ++에 노출되었습니다. 나는 그것이 좋은 혼합이라고 생각합니다.

나는 당신의 두뇌가 세상을 바라 보는 한 가지 방법으로 얼어 붙기 전에 당신이 시작하는 언어가 여러 패러다임에 노출되는 것보다 훨씬 덜 중요하다고 굳게 믿고 있습니다.


1

기본적으로 컴퓨터 과학 이론은 수학입니다. 그러나 소프트웨어 엔지니어링은 아닙니다. 수학적 개념을 직접 모델링하는 것은 본질적인 이점이 아닙니다. 종종 단점이 될 수 있다고 주장합니다.

좋은 이론과 좋은 프로그램이 반드시 관련된 것은 아닙니다.


"좋은 이론과 좋은 프로그램이 반드시 관련이있는 것은 아닙니다.": 프로그래밍은 문제를 해결하는 추상화를 작성하고 결합하는 것에 관한 것입니다. 그리고 위키피디아에 따르면, "이론은 ... 추상적이거나 일반적인 사고의 유형이거나 그러한 사고의 결과입니다." ( en.wikipedia.org/wiki/Theory ) 따라서 이론과 (좋은) 프로그래밍은 서로 매우 가깝습니다.
Giorgio
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.