1P by GN⁺ | ★ favorite | 댓글 1개
  • MIT 6.001 Structure and Interpretation of Computer Programs의 전체 흐름을 20개 비디오 강의로 따라갈 수 있어, SICP를 체계적으로 복습하기 좋은 자료임
  • 강의는 1986년 7월 Hewlett-Packard 직원 대상으로 진행됐고, Hewlett-Packard Television이 전문 제작함
  • 영상은 MIT OCW와 별도 제공 사이트에서 볼 수 있으며, 상업적 이용과 호환되는 Creative Commons 라이선스로 제공됨
  • 강의 내용은 1985년 SICP 1판을 기준으로 하며, 1996년 2판에서는 일부 프로그램 재작성과 새 자료 추가가 있었음
  • 전체 주제와 발표 순서는 유지되어, 2판으로 공부하는 학습자에게도 여전히 참고 가치가 있음

강의 구성과 제공 방식

  • Hal Abelson과 Gerald Jay Sussman의 20개 강의가 MIT 6.001 Structure and Interpretation of Computer Programs 과정을 완전한 형태로 다룸
  • 강의는 1986년 7월 Hewlett-Packard 직원 대상으로 진행됐으며, Hewlett-Packard Television이 전문 제작함
  • 영상은 Hal Abelson과 Gerald Jay Sussman이 제공한 자료이며, 허가를 받아 사용됨
  • 같은 영상은 MIT OCW 외에 별도 제공 사이트에서도 제공되며, 상업적 이용과 호환되는 Creative Commons 라이선스를 따름

교재 판본 관련 주의점

  • 이 강의는 1985년 출간된 Structure and Interpretation of Computer Programs 1판을 기준으로 진행됨
  • 1996년 2판에서는 강의에서 다룬 여러 프로그램이 다시 작성됐고 새 자료가 추가됨
  • 전체 주제와 발표 순서는 바뀌지 않아, 2판을 사용하는 학생에게도 이 비디오 강의가 유용함

강의 목록

댓글과 토론

Hacker News 의견들
  • SICP를 공부하려면 MIT Scheme을 써도 되고, 다른 선택지로 Racket이나 DrRacket에 이 애드온 패키지를 붙여 쓸 수도 있음: https://docs.racket-lang.org/sicp-manual/

    • 교육 목적이라면 MIT Scheme만 추천하는 편이 맞다고 봄
      다른 것들은 주변 기능이 너무 많아서 산만해질 수 있음
    • 이 두 시스템 추천에 동의하지만 단서가 있음
      MIT Scheme은 Apple Silicon에서 돌도록 만들어지지 않았고, 약간의 요령으로 amd64 버전을 최신 Mac에서 쓸 수는 있지만 Apple이 Rosetta2를 없애면 사라질 가능성이 큼
      그래서 Racket이 더 나은 선택일 수 있음
      괜찮은 Scheme 구현이라면 거의 무엇이든 SICP에 쓸 수는 있지만, 2판 이후에도 언어가 바뀌었기 때문에 추천하지는 않음
      다만 자기 프로젝트를 시작한 뒤에는 다른 시스템을 써도 되고, 오래된 관용구의 현대적 대응물을 찾으려면 설명서를 읽어야 할 수도 있음
    • MIT Scheme이 “될 법한 것 중 가장 단순한” 선택임
  • 모든 프로그래머는 LISP를 배워야 하거나, 적어도 진지하게 공부해봐야 함
    응용 프로그래머 대부분은 C 프로그래머처럼 절차적으로만 생각하는 법을 알고 있음
    LISP는 하드웨어가 아니라 개념을 다루는 “아름다운” 언어이고, 1990년에 모교에서 몇 년간 대학원 프로젝트를 하며 써봤을 때 사고방식이 완전히 바뀌었음

  • 예전에 책만 보고 SICP를 해봤는데, 강의가 훨씬 낫고 책은 보조 참고자료 역할을 한다고 봄

    • 원래 대학 교육은 대략 1000년 동안 그런 식으로 굴러갔음
  • 연습문제를 풀거나 책을 따라가지 않아도 됨
    이 분야에 새로 들어왔든 수십 년 경력이 있든, 아직 이 영상을 보지 않았거나 SICP 수업을 들어본 적이 없다면 거의 누구에게나 도움이 될 만함

  • 이 영상들과 책 전체를 끝까지 공부했고, 뉴스그룹을 통해 오프라인 스터디 그룹도 꾸렸음
    정말 즐거웠고 큰 돌파구가 됐지만, 책 중간쯤부터 스터디 인원이 줄기 시작했음

  • SICP를 읽으라는 조언은 /g/에서 받은 조언 중 최고였음

  • 이걸로 Lisp를 배웠고, 이어서 Clojure를 배운 뒤 그걸 중심으로 커리어를 만들었음

    • 훌륭함. Clojure는 어떻게 배웠는지 궁금함
      꽤 좋아하는 언어임
  • 정말 강력 추천함
    첫 번째 강의만 봐도 바로 빠져들게 됨

  • 시스템 프로그래밍에 관심 있는 사람이 여기서 얻을 수 있는 게 뭘까?

    • 이 강의들은 가변성, 상태 관리, 추상화 같은 주제의 핵심 질문을 거의 유일할 정도로 잘 뽑아냄
      그래서 시스템 프로그래밍이 주로 상태 관리와 추상화에 관한 것인 한, 매우 깊이 관련 있다고 봄
      다만 “시스템 프로그래밍”을 이미 존재하는 지저분한 시스템들을 억지로 붙이는 일이나, 서드파티 라이브러리에 대한 감각을 기르는 일 정도로 뜻한다면 별로 관련 없을 수 있음
      그래도 여기에도 통찰은 있음. Sussman이 SICP를 내려놓고 MIT에 새 입문 과정을 만들라고 요구한 이유를 설명하는 영상을 봤는데, 자신이 다듬어온 보석을 정중하고 사려 깊게 접어두는 모습이었음
      우리가 모든 추상화 계층을 가로질러 꿰뚫어볼 수 있다고 기대할 만한 시대는 끝났다는 뜻이었음
  • 이 강의들은 음질이 너무 나쁨
    깨끗하게 보정할 방법이 있을까?