01204435
		
		
		
		
		
		
		ไปยังการนำทาง
		ไปยังการค้นหา
		
		
		
		
		
		
		
		
	
หน้านี้เป็นหน้าของรายวิชา 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] | 
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 ม.ค. | 
เอกสารอ้างอิง
ลิงก์
- หน้ารายวิชาเมื่อปีการศึกษาต่าง ๆ: 2556 2553, 2552 2550, 2549
 - วิชา Programming languages ที่มหาวิทยาลัยต่าง ๆ: Williams College CS334, UCSD CSE130-w18 UW CSE314, Berkeley cs164, Stanford CS242 (f19), Stanford CS242 (current), FIT CSE4250/5250, UoIowa CS3820, LUC COMP371/471, UNI cs3540
- วิชาขั้นสูง: Language design & implementation
 
 - เอกสารอื่น ๆ