1 คะแนน โดย GN⁺ 4 시간 전 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • สามารถติดตามภาพรวมทั้งหมดของ MIT 6.001 Structure and Interpretation of Computer Programs ได้ผ่าน วิดีโอบรรยาย 20 ตอน จึงเป็นแหล่งข้อมูลที่ดีสำหรับทบทวน SICP อย่างเป็นระบบ
  • การบรรยายจัดขึ้นใน เดือนกรกฎาคม 1986 สำหรับพนักงาน Hewlett-Packard และผลิตอย่างมืออาชีพโดย Hewlett-Packard Television
  • วิดีโอรับชมได้บน MIT OCW และเว็บไซต์ที่ให้บริการแยกต่างหาก โดยเผยแพร่ภายใต้ สัญญาอนุญาต Creative Commons ที่เข้ากันได้กับการใช้งานเชิงพาณิชย์
  • เนื้อหาการบรรยายอิงจาก SICP ฉบับพิมพ์ครั้งที่ 1 ปี 1985 ส่วนฉบับพิมพ์ครั้งที่ 2 ปี 1996 มีการเขียนโปรแกรมบางส่วนใหม่และเพิ่มเนื้อหาใหม่
  • หัวข้อทั้งหมดและลำดับการนำเสนอยังคงเดิม จึงยังมีคุณค่าอ้างอิงสำหรับผู้เรียนที่ใช้ฉบับพิมพ์ครั้งที่ 2

โครงสร้างการบรรยายและรูปแบบการให้บริการ

  • การบรรยาย 20 ตอนโดย Hal Abelson และ Gerald Jay Sussman ครอบคลุมรายวิชา MIT 6.001 Structure and Interpretation of Computer Programs อย่างครบถ้วน
  • การบรรยายจัดขึ้นใน เดือนกรกฎาคม 1986 สำหรับพนักงาน Hewlett-Packard และผลิตอย่างมืออาชีพโดย Hewlett-Packard Television
  • วิดีโอเป็นสื่อที่ Hal Abelson และ Gerald Jay Sussman จัดหาให้ และใช้งานโดยได้รับอนุญาต
  • วิดีโอชุดเดียวกันมีให้รับชมบน MIT OCW และ เว็บไซต์ที่ให้บริการแยกต่างหาก โดยใช้สัญญาอนุญาต Creative Commons ที่เข้ากันได้กับการใช้งานเชิงพาณิชย์

ข้อควรทราบเกี่ยวกับฉบับของตำรา

  • การบรรยายนี้ดำเนินตาม Structure and Interpretation of Computer Programs ฉบับพิมพ์ครั้งที่ 1 ซึ่งตีพิมพ์ในปี 1985
  • ใน ฉบับพิมพ์ครั้งที่ 2 ปี 1996 โปรแกรมหลายรายการที่กล่าวถึงในการบรรยายถูกเขียนใหม่ และมีการเพิ่มเนื้อหาใหม่
  • หัวข้อทั้งหมดและลำดับการนำเสนอไม่ได้เปลี่ยนแปลง วิดีโอบรรยายชุดนี้จึงยังมีประโยชน์สำหรับนักศึกษาที่ใช้ฉบับพิมพ์ครั้งที่ 2

รายการบรรยาย

1 ความคิดเห็น

 
GN⁺ 4 시간 전
ความคิดเห็นจาก Hacker News
  • ถ้าจะศึกษา SICP จะใช้ MIT Scheme ก็ได้ หรืออีกทางเลือกคือใช้ Racket หรือ DrRacket พร้อมแพ็กเกจเสริมนี้: https://docs.racket-lang.org/sicp-manual/

    • ถ้าเพื่อวัตถุประสงค์ด้านการเรียนการสอน ผมคิดว่าควรแนะนำเฉพาะ MIT Scheme เท่านั้น
      ตัวอื่น ๆ มีฟีเจอร์รอบข้างเยอะเกินไป อาจทำให้เสียสมาธิได้
    • เห็นด้วยกับการแนะนำสองระบบนี้ แต่มีข้อแม้
      MIT Scheme ไม่ได้ถูกทำมาให้รันบน Apple Silicon และแม้จะใช้ amd64 version บน Mac รุ่นใหม่ได้ด้วยเทคนิคเล็กน้อย แต่ถ้า Apple เอา Rosetta2 ออก ก็มีโอกาสที่จะหายไป
      ดังนั้น Racket อาจเป็นตัวเลือกที่ดีกว่า
      จริง ๆ แล้ว Scheme implementation ที่ดีแทบอะไรก็ใช้กับ SICP ได้ แต่ไม่แนะนำ เพราะภาษามีการเปลี่ยนแปลงไปแล้วแม้หลัง edition 2
      อย่างไรก็ดี หลังจากเริ่มโปรเจกต์ของตัวเองแล้ว จะใช้ระบบอื่นก็ได้ และอาจต้องอ่านคู่มือเพื่อหาสิ่งที่เทียบเท่ากับ idiom เก่า ๆ ในแบบสมัยใหม่
    • MIT Scheme เป็นตัวเลือกที่ “เรียบง่ายที่สุดในบรรดาตัวที่น่าจะใช้ได้”
  • โปรแกรมเมอร์ทุกคนควรเรียน LISP หรืออย่างน้อยก็ควรศึกษามันอย่างจริงจัง
    application programmer ส่วนใหญ่รู้จักแต่การคิดแบบ procedural เหมือนโปรแกรมเมอร์ C
    LISP เป็นภาษาที่ “งดงาม” ซึ่งจัดการกับแนวคิด ไม่ใช่ฮาร์ดแวร์ และตอนที่เคยใช้ทำโปรเจกต์ระดับบัณฑิตศึกษาหลายปีที่มหาวิทยาลัยเดิมเมื่อปี 1990 มันเปลี่ยนวิธีคิดไปโดยสิ้นเชิง

  • เมื่อก่อนเคยลองเรียน SICP จากหนังสืออย่างเดียว แต่คิดว่า วิดีโอ lectures ดีกว่ามาก และหนังสือทำหน้าที่เป็นเอกสารอ้างอิงประกอบ

    • เดิมทีการศึกษาระดับมหาวิทยาลัยก็เดินมาแบบนั้นประมาณ 1000 ปี แล้ว
  • ไม่จำเป็นต้องทำแบบฝึกหัดหรืออ่านตามหนังสือก็ได้
    ไม่ว่าจะเพิ่งเข้ามาในสายนี้ หรือมีประสบการณ์มาหลายสิบปี ถ้ายังไม่เคยดูวิดีโอเหล่านี้หรือไม่เคยเรียนคลาส SICP ก็น่าจะเป็นประโยชน์กับแทบทุกคน

  • ผมเรียนวิดีโอเหล่านี้และหนังสือทั้งเล่มจนจบ และยังตั้ง กลุ่มศึกษาแบบออฟไลน์ ผ่าน newsgroup ด้วย
    สนุกมากและเป็นจุดทะลุผ่านครั้งใหญ่ แต่พอถึงช่วงกลาง ๆ ของหนังสือ จำนวนคนในกลุ่มศึกษาก็เริ่มลดลง

  • คำแนะนำให้ อ่าน SICP เป็นคำแนะนำที่ดีที่สุดที่เคยได้รับจาก /g/

  • ผมเรียน Lisp จากสิ่งนี้ แล้วต่อด้วย Clojure จากนั้นก็สร้าง career โดยมีมันเป็นแกนหลัก

    • เยี่ยมเลย อยากรู้ว่าเรียน Clojure ยังไง
      เป็นภาษาที่ค่อนข้างชอบมาก
  • ขอแนะนำอย่างแรงจริง ๆ
    แค่ดู lecture แรกก็จะติดทันที

  • คนที่สนใจ systems programming จะได้อะไรจากตรงนี้บ้าง?

    • lectures เหล่านี้ดึงคำถามแก่นสำคัญของหัวข้ออย่าง mutability, การจัดการ state และ abstraction ออกมาได้ดีจนแทบไม่มีใครเทียบ
      ดังนั้นตราบใดที่ systems programming เกี่ยวข้องหลัก ๆ กับการจัดการ state และ abstraction ผมว่ามันเกี่ยวข้องอย่างลึกซึ้งมาก
      แต่ถ้าคำว่า “systems programming” หมายถึงการพยายามเอาระบบสกปรก ๆ ที่มีอยู่แล้วมาต่อกัน หรือแค่สร้างสัญชาตญาณต่อ third-party libraries ก็อาจไม่ค่อยเกี่ยว
      ถึงอย่างนั้น ตรงนี้ก็ยังมี insight อยู่ ผมเคยดูวิดีโอที่ Sussman อธิบายว่าทำไมเขาถึงวาง SICP ลง แล้วเรียกร้องให้ MIT สร้างคอร์สปูพื้นฐานใหม่ เป็นภาพของคนที่พับเก็บอัญมณีที่ตัวเองขัดเกลามาอย่างสุภาพและไตร่ตรองดีแล้ว
      นั่นหมายความว่ายุคที่เราจะคาดหวังได้ว่าจะมองทะลุข้ามทุกชั้นของ abstraction นั้นจบลงแล้ว
  • lectures เหล่านี้ คุณภาพเสียงแย่มาก
    มีวิธีปรับให้ชัดขึ้นไหม?