1 điểm bởi GN⁺ 4 giờ trước | 1 bình luận | Chia sẻ qua WhatsApp
  • Có thể theo dõi toàn bộ mạch nội dung của MIT 6.001 Structure and Interpretation of Computer Programs qua 20 video bài giảng, rất phù hợp để ôn lại SICP một cách có hệ thống
  • Bài giảng được tổ chức vào tháng 7 năm 1986 dành cho nhân viên Hewlett-Packard, và do Hewlett-Packard Television sản xuất chuyên nghiệp
  • Video có thể xem trên MIT OCW và một trang cung cấp riêng, đồng thời được phát hành theo giấy phép Creative Commons tương thích với mục đích sử dụng thương mại
  • Nội dung bài giảng dựa trên ấn bản 1 của SICP năm 1985; đến ấn bản 2 năm 1996, một số chương trình đã được viết lại và có thêm tài liệu mới
  • Chủ đề tổng thể và thứ tự trình bày vẫn được giữ nguyên, nên vẫn còn giá trị tham khảo với cả người học bằng ấn bản 2

Cấu trúc bài giảng và cách cung cấp

  • Hal Abelson và Gerald Jay Sussman có 20 bài giảng bao quát trọn vẹn khóa MIT 6.001 Structure and Interpretation of Computer Programs
  • Bài giảng được tổ chức vào tháng 7 năm 1986 dành cho nhân viên Hewlett-Packard, và do Hewlett-Packard Television sản xuất chuyên nghiệp
  • Video là tài liệu do Hal Abelson và Gerald Jay Sussman cung cấp, được sử dụng với sự cho phép
  • Cùng những video này còn được cung cấp ngoài MIT OCW tại trang riêng, theo giấy phép Creative Commons tương thích với mục đích sử dụng thương mại

Lưu ý về phiên bản giáo trình

  • Loạt bài giảng này được xây dựng dựa trên ấn bản 1 của Structure and Interpretation of Computer Programs xuất bản năm 1985
  • ấn bản 2 năm 1996, nhiều chương trình được đề cập trong bài giảng đã được viết lại và có thêm tài liệu mới
  • Chủ đề tổng thể và thứ tự trình bày không thay đổi, nên loạt video bài giảng này vẫn hữu ích cho sinh viên dùng ấn bản 2

Danh sách bài giảng

1 bình luận

 
Các ý kiến trên Hacker News
  • Nếu muốn học SICP, bạn có thể dùng MIT Scheme, hoặc một lựa chọn khác là dùng Racket hay DrRacket kèm gói add-on này: https://docs.racket-lang.org/sicp-manual/

    • Với mục đích giáo dục, tôi nghĩ chỉ nên khuyến nghị MIT Scheme
      Những lựa chọn khác có quá nhiều tính năng xung quanh, dễ gây phân tán
    • Tôi đồng ý với hai hệ thống được khuyến nghị này, nhưng có một lưu ý
      MIT Scheme không được làm để chạy trên Apple Silicon; có thể dùng phiên bản amd64 trên các máy Mac mới bằng một chút mẹo, nhưng nếu Apple bỏ Rosetta2 thì khả năng cao nó sẽ biến mất
      Vì vậy Racket có thể là lựa chọn tốt hơn
      Gần như bất kỳ hiện thực Scheme tử tế nào cũng có thể dùng cho SICP, nhưng tôi không khuyến nghị, vì ngôn ngữ đã thay đổi ngay cả sau ấn bản thứ 2
      Tuy nhiên, sau khi bắt đầu dự án riêng, bạn có thể dùng hệ thống khác, và có thể sẽ phải đọc tài liệu hướng dẫn để tìm các cách tương ứng hiện đại cho những idiom cũ
    • MIT Scheme là lựa chọn “đơn giản nhất trong số những thứ có vẻ dùng được”
  • Mọi lập trình viên nên học LISP, hoặc ít nhất là nghiêm túc nghiên cứu nó
    Phần lớn lập trình viên ứng dụng chỉ biết tư duy theo kiểu thủ tục như lập trình viên C
    LISP là một ngôn ngữ “đẹp” xử lý các khái niệm chứ không phải phần cứng, và khi tôi dùng nó trong vài năm cho dự án sau đại học ở trường cũ vào năm 1990, nó đã thay đổi hoàn toàn cách tôi suy nghĩ

  • Trước đây tôi từng học SICP chỉ bằng sách, nhưng tôi thấy bài giảng tốt hơn nhiều, còn sách đóng vai trò tài liệu tham khảo bổ trợ

    • Giáo dục đại học vốn đã vận hành kiểu đó khoảng 1000 năm rồi
  • Bạn không nhất thiết phải làm bài tập hay học theo sát cuốn sách
    Dù bạn mới bước vào lĩnh vực này hay đã có hàng chục năm kinh nghiệm, nếu chưa xem các video này hoặc chưa từng học lớp SICP, chúng gần như đều có thể hữu ích với bất kỳ ai

  • Tôi đã học hết các video này và toàn bộ cuốn sách, rồi còn lập một nhóm học offline qua newsgroup
    Thật sự rất vui và là một bước đột phá lớn, nhưng khoảng giữa cuốn sách thì số người trong nhóm bắt đầu giảm

  • Lời khuyên hãy đọc SICP là lời khuyên hay nhất tôi từng nhận được trên /g/

  • Tôi đã học Lisp bằng cái này, rồi tiếp tục học Clojure và xây dựng sự nghiệp xoay quanh nó

    • Tuyệt. Tôi tò mò bạn đã học Clojure như thế nào
      Đó là một ngôn ngữ tôi khá thích
  • Thật sự rất khuyến nghị
    Chỉ cần xem bài giảng đầu tiên là sẽ bị cuốn vào ngay

  • Người quan tâm đến lập trình hệ thống có thể thu được gì từ đây?

    • Các bài giảng này nêu ra rất hay, gần như là độc nhất, những câu hỏi cốt lõi về các chủ đề như tính khả biến, quản lý trạng thái và trừu tượng hóa
      Vì vậy, chừng nào lập trình hệ thống chủ yếu xoay quanh quản lý trạng thái và trừu tượng hóa, tôi nghĩ nó có liên quan rất sâu sắc
      Nhưng nếu “lập trình hệ thống” được hiểu là việc gượng ép ghép nối các hệ thống lộn xộn đã tồn tại, hoặc chỉ là xây dựng cảm giác về các thư viện bên thứ ba, thì có thể không liên quan lắm
      Dù vậy, ở đây vẫn có những insight. Tôi từng xem một video trong đó Sussman giải thích lý do ông gác SICP lại và yêu cầu MIT tạo một khóa nhập môn mới; đó là cảnh ông lịch sự và thận trọng đặt sang một bên viên ngọc mà mình đã mài giũa
      Điều đó có nghĩa là thời đại mà chúng ta có thể kỳ vọng nhìn xuyên suốt qua mọi tầng trừu tượng đã kết thúc
  • Các bài giảng này có chất lượng âm thanh quá tệ
    Có cách nào chỉnh lại cho sạch không?