# "Structure and Interpretation of Computer Programs"의 중요성 (2011)

> Clean Markdown view of GeekNews topic #15396. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=15396](https://news.hada.io/topic?id=15396)
- GeekNews Markdown: [https://news.hada.io/topic/15396.md](https://news.hada.io/topic/15396.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2024-06-17T23:34:21+09:00
- Updated: 2024-06-17T23:34:21+09:00
- Original source: [people.eecs.berkeley.edu](https://people.eecs.berkeley.edu/~bh/sicp.html)
- Points: 3
- Comments: 1

## Topic Body

### 컴퓨터 프로그램의 구조와 해석이 중요한 이유

#### SICP의 혁신

- **지적 수준 향상**: SICP는 초급 컴퓨터 과학 교육의 지적 수준을 크게 높였음. 기존의 첫 번째 CS 과정은 특정 프로그래밍 언어의 세부 사항을 배우는 데 집중했지만, SICP는 프로그래밍 과정의 큰 그림을 배우는 데 중점을 두었음.
- **추상화 강조**: 구체적인 문제에서 일반적인 패턴을 찾고, 각 패턴을 구현하는 소프트웨어 도구를 만드는 추상화의 중요성을 강조했음.
- **함수의 데이터화**: 함수가 데이터로 사용될 수 있다는 아이디어를 중점적으로 다루었음. 이는 배우기 어렵지만, 한 번 배우면 매우 강력한 개념임.
- **다양한 프로그래밍 패러다임**: 함수형, 객체 지향, 선언형 등 세 가지 프로그래밍 패러다임을 첫 번째 CS 과정에 통합했음.

#### Scheme 언어의 선택

- **단순하고 일관된 표기법**: Scheme은 모든 것에 대해 매우 단순하고 일관된 표기법을 가지고 있음. 다른 언어들은 변수 할당, 조건 실행, 반복, 함수 호출 등에 각각 다른 표기법을 사용하지만, Scheme은 하나의 표기법으로 모든 것을 처리함.
- **다양한 패러다임 학습 가능**: Scheme의 단순성 덕분에 다양한 프로그래밍 패러다임을 쉽게 학습할 수 있음. 특히 객체 지향 프로그래밍이 어떻게 구현되는지 이해할 수 있게 해줌.
- **미래 대비**: SICP는 학생들에게 새로운 프로그래밍 언어를 배우는 능력을 길러줌. "미래에 사용할 언어는 아직 발명되지 않았음"이라는 철학을 가지고 있음.

#### SICP의 낙관적인 접근

- **높은 기대치**: SICP는 대학 신입생이 달성할 수 있는 것에 대해 낙관적인 기대를 가짐. 학생들은 보통 상급생이 다루는 프로그래밍 언어 인터프리터를 작성함.
- **심도 있는 학습**: 텍스트 자체는 읽기 쉽지 않지만, 모든 문장이 중요하며, 각 연습 문제는 중요한 새로운 아이디어를 가르침.

#### SICP의 영향

- **지속적인 영향력**: SICP 기반의 과정은 소수였지만, 그 영향력은 매우 컸음. 많은 후속 교과서들이 SICP의 기준을 따르려고 노력했음.
- **Scheme의 확장**: Scheme을 학습 언어로 사용하는 범위가 중학교부터 대학원까지 확장되었음.
- **아이디어 중심의 컴퓨터 과학**: 컴퓨터 과학이 아이디어 중심이어야 한다는 개념이 널리 퍼졌음.

#### SICP의 지속성

- **오랜 생명력**: SICP는 25년 이상 지속되었으며, 여전히 인쇄 중임. 컴퓨팅 환경이 크게 변했지만, 그 뒤에 있는 큰 아이디어는 변하지 않았음.
- **코스의 변화**: SICP 기반의 과정은 시간이 지나면서 병렬성, 동시성 제어, 사용자 인터페이스 디자인, 클라이언트/서버 패러다임 등을 추가했음.

#### MIT의 커리큘럼 변화

- **응용 중심의 커리큘럼**: MIT는 주제 중심에서 응용 중심의 커리큘럼으로 전환했음. 프로그래밍 언어 선택은 그 결정 중 가장 작은 부분이었음.
- **새로운 접근법의 도전**: 새로운 접근법은 가르치기 더 어려우며, 각 과정이 전기공학 및 컴퓨터 과학 교수진의 협력을 필요로 함.

#### 학생들의 반응

- **후기 인기**: 학생들은 수업 중에는 얼마나 많이 배우고 있는지 잘 모르지만, 나중에 가장 인기 있는 과정 중 하나로 평가함. 졸업 후에도 배운 내용을 실무에서 사용하고 있다는 피드백을 받음.

### GN⁺의 의견

- **SICP의 교육 철학**: SICP는 프로그래밍 언어의 세부 사항보다 큰 아이디어를 배우는 데 중점을 두어, 학생들이 새로운 언어를 쉽게 배울 수 있는 능력을 길러줌.
- **Scheme의 장점**: Scheme의 단순성과 일관된 표기법은 초급 학습자에게 매우 유익함. 다양한 프로그래밍 패러다임을 쉽게 이해할 수 있게 해줌.
- **MIT의 변화**: MIT의 커리큘럼 변화는 응용 중심의 학습을 강조하며, 이는 실무에 더 가까운 경험을 제공할 수 있음.
- **교육의 지속성**: SICP의 오랜 생명력은 그 교육 철학과 내용이 여전히 유효하다는 것을 보여줌. 이는 교육의 본질적인 가치를 강조함.
- **실무와의 연결**: SICP 기반의 교육은 실무에서 바로 적용할 수 있는 능력을 길러주며, 이는 졸업 후에도 큰 도움이 됨.

## Comments



### Comment 26351

- Author: neo
- Created: 2024-06-17T23:34:22+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=40698906) 
- **Prof. Abelson의 강의는 YouTube에서 볼 수 있으며, 시간을 투자할 가치가 있음**: 컴퓨터 과학의 깊이 있는 이해를 제공하며, 최근의 과대 광고를 줄이는 데 도움이 될 수 있음.

- **책의 첫 절반은 가볍고 흥미로운 읽을거리였음**: 객체 지향 부분에서 어려움을 겪었으며, 개인적으로는 함수형 사고가 더 잘 맞았음.

- **YouTube에서 80년대 초반의 강의를 볼 수 있음**: 유머와 초기 그래픽 시도, 70년대 패션이 포함되어 있어 교육적임.

- **많은 경험이 있는 프로그래머에게도 이 책이 여전히 읽을 가치가 있는지 궁금함**.

- **SICP의 목표가 컴퓨터 과학을 즐기지 않는 사람들을 겁주기 위한 것이라고 생각했음**: 실제로는 매우 가치 있는 기초 과정이었지만, 일부 사람들은 다른 전공으로 전향하게 만들었음.

- **첫 몇 페이지를 넘기지 못했음**: 만약 필수 과목이었다면 다른 일을 하고 있었을 것임.

- **Berkeley에서 CS 61A 수업의 조교로 일했음**: Scheme 언어의 단순하고 통일된 표기법이 교육에 도움이 된다고 주장하지만, 실제로는 학생들이 혼란스러워했음. Scheme의 모든 것이 동일하게 보이는 특성은 버그라고 생각함.

- **SICP에서 배운 최고의 교훈은 첫 번째 함수를 작성하는 순간 도메인 문제를 해결하기 위한 DSL을 만드는 것임**: 이 통찰력이 프로그래머로서의 수준을 높여줌.

- **SICP에 대해 읽을 때마다 Javascript에 대한 좌절감을 느낌**: Javascript가 Scheme이었다면 웹 개발이 더 나아졌을 것임.

- **SICP와 PAIP를 비교해달라는 요청**: SICP는 함수형 프로그래밍과 컴퓨터 과학의 기초를 다루고, PAIP는 일반적인 프로그래밍 실습에 더 중점을 둔 것으로 보임.
