ผลต่างระหว่างรุ่นของ "01204435"

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา
(เปลี่ยนทางไปที่ 01204435 มโนทัศน์ภาษาโปรแกรม)
 
 
(ไม่แสดง 18 รุ่นระหว่างกลางโดยผู้ใช้คนเดียวกัน)
แถว 1: แถว 1:
#REDIRECT [[01204435 มโนทัศน์ภาษาโปรแกรม]]
+
 
 +
หน้านี้เป็นหน้าของรายวิชา 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]

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 ม.ค.

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

ลิงก์