ผลต่างระหว่างรุ่นของ "01204435"
ไปยังการนำทาง
ไปยังการค้นหา
Jittat (คุย | มีส่วนร่วม) (เปลี่ยนทางไปที่ 01204435 มโนทัศน์ภาษาโปรแกรม) |
Jittat (คุย | มีส่วนร่วม) (→ลิงก์) |
||
(ไม่แสดง 18 รุ่นระหว่างกลางโดยผู้ใช้คนเดียวกัน) | |||
แถว 1: | แถว 1: | ||
− | + | ||
+ | หน้านี้เป็นหน้าของรายวิชา 01204435 มโนทัศน์ภาษาโปรแกรม (Programming language concepts) | ||
+ | |||
+ | ในมุมมองที่กว้างที่สุด ภาษาโปรแกรมเป็นเครื่องมือสำหรับอธิบายการคำนวณ (computation) อย่างไรก็ตามมุมมองของการคำนวณนั้นมีได้หลากหลาย เป็นจุดกำเนิดที่ทำให้เกิดภาษาโปรแกรมที่วางอยู่บนกระบวนทัศน์ (paradigm) ที่แตกต่างกันจำนวนมากมาย วิชานี้ มีเป้าหมายที่จะศึกษาแนวคิดต่าง ๆ ที่มีใช้ในภาษาโปรแกรมสมัยใหม่ เพื่อให้เข้าใจกระบวนการทำงาน ขีดจำกัด และผลกระทบที่มีต่อกระบวนการคิดวิเคราะห์ของผู้ใช้ เราจะมองภาษาภายใต้มุมมองของการออกแบบ (language design) เพื่อที่จะได้เห็นข้อดี-ข้อเสีย สำหรับทางเลือกต่าง ๆ นอกจากนี้ เราจะสนใจแนวคิดพื้นฐาน พร้อมกับเน้นกระบวนทัศน์ภาษาโปรแกรมที่สำคัญได้แก่การโปรแกรมเชิงฟังก์ชันและการโปรแกรมเชิงวัตถุ | ||
+ | |||
+ | == ประกาศ == | ||
+ | * YouTube [https://www.youtube.com/playlist?list=PLii-CvAgf-8gqFo4F-vVtkw19QKedngqc 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 | ||
+ | |||
+ | == เนื้อหาและตารางเรียน == | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! สัปดาห์ !! วันที่ !! จันทร์ !! พุธ !! ศุกร์ !! หมายเหตุ | ||
+ | |- | ||
+ | | 1 || 28,30 พ.ย., 2 ธ.ค. | ||
+ | || แนะนำภาพรวม<br>จัดการการลงทะเบียน | ||
+ | || คลิป introduction [https://www.youtube.com/watch?v=itiU9SqckPY&list=PLii-CvAgf-8gqFo4F-vVtkw19QKedngqc&index=1] | ||
+ | || แลบ Scheme<br>[https://www.youtube.com/watch?v=N0wOud46Nq4&list=PLii-CvAgf-8gqFo4F-vVtkw19QKedngqc&index=2 คลิป], [https://docs.google.com/document/d/1yXbLj4qC1J_UK_qg7BuAxyrEGPOmMT8g-hDZ5TV5sN0/edit?usp=sharing เอกสาร] | ||
+ | || | ||
+ | |- | ||
+ | | 2 || 5,7,9 ธ.ค. | ||
+ | || หยุด | ||
+ | || คลิป LISP [https://www.youtube.com/watch?v=CkLxmkhJF2U&list=PLii-CvAgf-8gqFo4F-vVtkw19QKedngqc&index=3] | ||
+ | || แลบ Scheme (ต่อ) | ||
+ | || | ||
+ | |- | ||
+ | | 3 || 12,14,16 ธ.ค. | ||
+ | || หยุดอีก | ||
+ | || Program Translation [https://www.youtube.com/watch?v=jNgC4EHReIM&list=PLii-CvAgf-8gqFo4F-vVtkw19QKedngqc&index=4]<br> | ||
+ | Lambda calculus: [https://www.youtube.com/watch?v=2EAYFDjDTIA&list=PLii-CvAgf-8gqFo4F-vVtkw19QKedngqc&index=5 part 1], | ||
+ | [https://www.youtube.com/watch?v=7HbPs2oDwiE&list=PLii-CvAgf-8gqFo4F-vVtkw19QKedngqc&index=6 part 2] | ||
+ | || Algol-familty languages [https://www.youtube.com/watch?v=GUDvvohAIFY&list=PLii-CvAgf-8gqFo4F-vVtkw19QKedngqc&index=9] | ||
+ | || | ||
+ | |- | ||
+ | | 4 || 19,21,23 ธ.ค. | ||
+ | || แลบ Haskell 1 | ||
+ | || แลบ Haskell 1 | ||
+ | || Haskell (ลิงก์ใน discord) | ||
+ | || | ||
+ | |- | ||
+ | | 5 || 26,28,30 ธ.ค. | ||
+ | || แลบ Haskell 1 | ||
+ | || แลบ Haskell 2 | ||
+ | || หยุด | ||
+ | || | ||
+ | |- | ||
+ | | 6 || 2,4,6 ม.ค. | ||
+ | || หยุด | ||
+ | || แลบ Haskell 2<br>Functional Programming | ||
+ | || Type Inference | ||
+ | || | ||
+ | |- | ||
+ | | 7 || 9,11,17 ม.ค. | ||
+ | || | ||
+ | || | ||
+ | || | ||
+ | || | ||
+ | |} | ||
+ | |||
+ | == เอกสารอ้างอิง == | ||
+ | |||
+ | == ลิงก์ == | ||
+ | * หน้ารายวิชาเมื่อปีการศึกษาต่าง ๆ: [[01204435-56|2556]] [http://www.cpe.ku.ac.th/~jtf/wiki/doku.php?id=204435-53 2553], [http://www.cpe.ku.ac.th/~jtf/wiki/doku.php?id=204435-52 2552] [[204435 มโนทัศน์ภาษาโปรแกรม 2550|2550]], [http://www.cpe.ku.ac.th/~jtf/204435-49/ 2549] | ||
+ | * วิชา Programming languages ที่มหาวิทยาลัยต่าง ๆ: [http://www.cs.williams.edu/~freund/cs334/index.html Williams College CS334], [https://cseweb.ucsd.edu/~dstefan/cse130-winter18/ UCSD CSE130-w18] [https://sites.google.com/cs.washington.edu/cse341winter2022/ UW CSE314], [https://inst.eecs.berkeley.edu/~cs164/fa22/ Berkeley cs164], [https://stanford-cs242.github.io/f19/ Stanford CS242 (f19)], [https://web.stanford.edu/class/cs242/ Stanford CS242 (current)], [https://cs.fit.edu/~ryan/cse4250/ FIT CSE4250/5250], [https://homepage.cs.uiowa.edu/~tinelli/classes/3820/Fall18/ UoIowa CS3820], [https://lucproglangcourse.github.io/ LUC COMP371/471], [https://www.cs.uni.edu/~wallingf/teaching/cs3540/ UNI cs3540] | ||
+ | ** วิชาขั้นสูง: [https://web.eecs.umich.edu/~weimerw/2016-ldi/ Language design & implementation] | ||
+ | * เอกสารอื่น ๆ | ||
+ | ** [https://www.itu.dk/people/sestoft/plc/ หนังสือ Programming Language Concepts โดย Peter Sestoft] |
รุ่นแก้ไขปัจจุบันเมื่อ 00:12, 13 มีนาคม 2566
หน้านี้เป็นหน้าของรายวิชา 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
- เอกสารอื่น ๆ