01204435

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา

หน้านี้เป็นหน้าของรายวิชา 01204435 มโนทัศน์ภาษาโปรแกรม (Programming language concepts)

ในมุมมองที่กว้างที่สุด ภาษาโปรแกรมเป็นเครื่องมือสำหรับอธิบายการคำนวณ (computation) อย่างไรก็ตามมุมมองของการคำนวณนั้นมีได้หลากหลาย เป็นจุดกำเนิดที่ทำให้เกิดภาษาโปรแกรมที่วางอยู่บนกระบวนทัศน์ (paradigm) ที่แตกต่างกันจำนวนมากมาย วิชานี้ มีเป้าหมายที่จะศึกษาแนวคิดต่าง ๆ ที่มีใช้ในภาษาโปรแกรมสมัยใหม่ เพื่อให้เข้าใจกระบวนการทำงาน ขีดจำกัด และผลกระทบที่มีต่อกระบวนการคิดวิเคราะห์ของผู้ใช้ เราจะมองภาษาภายใต้มุมมองของการออกแบบ (language design) เพื่อที่จะได้เห็นข้อดี-ข้อเสีย สำหรับทางเลือกต่าง ๆ นอกจากนี้ เราจะสนใจแนวคิดพื้นฐาน พร้อมกับเน้นกระบวนทัศน์ภาษาโปรแกรมที่สำคัญได้แก่การโปรแกรมเชิงฟังก์ชันและการโปรแกรมเชิงวัตถุ

ประกาศ

  • YouTube playlist ของเนื้อหา

การบ้าน

หัวข้อ

ด้านล่างเป็นหัวข้อแบบร่าง ๆ เท่านั้น อาจมีการเปลี่ยนแปลงได้เรื่อย ๆ
  • Introduction.
  • Lisp. Lambda calculus.
  • Functional programming (with Haskell)
    • Types & type inference
    • Higher-order functions
    • Type classes
    • IO
  • Controls
  • Scopes and memory management
  • Object-oriented programming
  • Concurrency

เนื้อหาและตารางเรียน

สัปดาห์ วันที่ จันทร์ พุธ ศุกร์ หมายเหตุ
1 28,30 พ.ย., 2 ธ.ค. แนะนำภาพรวม
จัดการการลงทะเบียน
คลิป introduction [1] แลบ Scheme
คลิป, เอกสาร
2 5,7,9 ธ.ค. หยุด คลิป LISP [2] แลบ Scheme (ต่อ)
3 12,14,16 ธ.ค. หยุดอีก Program Translation [3]

Lambda calculus: part 1, part 2

Algol-familty languages [4]
4 19,21,23 ธ.ค. แลบ Haskell 1 แลบ Haskell 1 Haskell (ลิงก์ใน discord)
5 26,28,30 ธ.ค. แลบ Haskell 1 แลบ Haskell 2 หยุด
6 2,4,6 ม.ค. หยุด แลบ Haskell 2
Functional Programming
Type Inference
7 9,11,17 ม.ค.

เอกสารอ้างอิง

ลิงก์