ผลต่างระหว่างรุ่นของ "204435 มโนทัศน์ภาษาโปรแกรม 2550"
Jittat (คุย | มีส่วนร่วม) (สร้างหน้าใหม่: หน้านี้เป็นหน้ารายวิชาของวิชามโนทัศน์ภาษาโปรแกรม ผู้...) |
(→ประกาศ) |
||
แถว 3: | แถว 3: | ||
ผู้สอน: [http://www.cpe.ku.ac.th/~jtf จิตร์ทัศน์ ฝักเจริญผล] | ผู้สอน: [http://www.cpe.ku.ac.th/~jtf จิตร์ทัศน์ ฝักเจริญผล] | ||
− | + | That's the perfect iisgnht in a thread like this. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==การเตรียมตัวก่อนเข้าเรียน== | ==การเตรียมตัวก่อนเข้าเรียน== |
รุ่นแก้ไขเมื่อ 08:20, 14 กุมภาพันธ์ 2555
หน้านี้เป็นหน้ารายวิชาของวิชามโนทัศน์ภาษาโปรแกรม
ผู้สอน: จิตร์ทัศน์ ฝักเจริญผล
That's the perfect iisgnht in a thread like this.
เนื้อหา
การเตรียมตัวก่อนเข้าเรียน
ในส่วนนี้จะระบุรายละเอียดของซอฟต์แวร์ที่นิสิตต้องติดตั้งก่อนเข้าเรียนแต่ละครั้ง โดยแยกเป็นหมู่เรียนที่วิทยาเขตบางเขน และวิทยาเขตศรีราชา
- สัปดาห์ที่ 13
- จะทดลองเขียนโปรแกรมแบบทำงานพร้อมกัน ด้วย Stackless Python ให้ติดตั้งมาก่อน เพื่อความสะดวกแนะนำให้ใช้ ตัวติดตั้งสำเร็จรูป ที่มีให้เฉพาะบน Windows ในกรณีของ Linux ต้องคอมไพล์เอง
รายละเอียดวิชา
ในมุมมองที่กว้างที่สุด ภาษาโปรแกรมเป็นเครื่องมือสำหรับอธิบายการคำนวณ (computation) อย่างไรก็ตามมุมมองของการคำนวณนั้นมีได้หลากหลาย เป็นจุดกำเนิดที่ทำให้เกิดภาษาโปรแกรมที่วางอยู่บนกระบวนทัศน์ (paradigm) ที่แตกต่างกันจำนวนมากมาย
วิชานี้ มีเป้าหมายที่จะศึกษาแนวคิดต่าง ๆ ที่มีใช้ในภาษาโปรแกรมสมัยใหม่ เพื่อให้เข้าใจกระบวนการทำงาน ขีดจำกัด และผลกระทบที่มีต่อกระบวนการคิดวิเคราะห์ของผู้ใช้
เราจะสนใจแนวคิดพื้นฐาน พร้อมกับเน้นกระบวนทัศน์ภาษาโปรแกรมที่สำคัญได้แก่การโปรแกรมเชิงฟังก์ชันและการโปรแกรมเชิงวัตถุ นอกจากนี้ยังจะให้ความสำคัญเกี่ยวกับแนวคิดของภาษาเชิงพลวัติที่ทวีความสำคัญมากขึ้นเรื่อย ๆ
นอกจากจะศึกษาแนวคิดที่สำคัญแล้ว ในวิชานี้จะมีการให้นิสิตได้ทดลองเขียนโปรแกรมด้วยภาษาและกรอบงาน (framework) ต่าง ๆ เพื่อเพิ่มความเข้าใจอีกด้วย ตัวอย่างภาษาที่จะได้ทดลอง เช่น Scheme, ML, Smalltalk, Java, C#, Ruby
การบ้าน
การส่งการบ้านที่เป็นโปรแกรม ให้ส่งเป็นจดหมายอิเล็กทรอนิกส์ ไปที่ e-mail ของอาจารย์ผู้สอน (ดูจาก [1])
- การบ้าน 1: ให้ทำแบบฝึกหัดในเอกสาร Scheme ข้อที่ 1, 2, 6, 8, 10 และ 11 (กำหนดส่ง. บางเขน: 12 พ.ย. ศรีราชา: 28 พ.ย.) (เฉลย)
- การบ้าน 2: pdf (กำหนดส่ง: บางเขน: 30 พ.ย. ศรีราชา: 12 ธ.ค.)
- การบ้าน 3: pdf (กำหนดส่ง: บางเขน: 11 ธ.ค. ศรีราชา: 12 ธ.ค.)
- การบ้าน 4: pdf (กำหนดส่ง: บางเขน: 17 ธ.ค. ศรีราชา: 19 ธ.ค.)
- การบ้านโปรแกรม 3: จะประกาศเร็ว ๆ นี้ ส่งหลังสอบกลางภาค
คำบรรยายและแผ่นใส
เอกสารหลักจะใช้บันทึกคำบรรยายที่เตรียมโดยผู้สอน ประกอบกับสไลด์วิชา Programming Languages ของ John C. Mitchell
- แนะนำวิชา (pdf)
- แนะนำภาษาโปรแกรมเชิงฟังก์ชัน: Scheme (slides ของ JCM: Lisp) (เอกสารประกอบคำบรรยาย (ไม่สมบูรณ์): pdf)
- บทความ: Roots of Lisp โดย Paul Graham
- พื้นฐาน: การแปลภาษาโปรแกรม แลมบ์ดาแคลคูลัส (slides ของ JCM: ppt, pdf) (เอกสารประกอบคำบรรยาย (ไม่สมบูรณ์): pdf)
- ภาษาตระกูล Algo และ ML (slides ของ JCM)
- ระบบแบบชนิดข้อมูล (type system) และการอนุมานแบบชนิดข้อมูล (slides ของ JCM)
- ขอบเขตตัวแปรและการจัดการ (slides ของ JCM) (เอกสารประกอบคำบรรยาย (ไม่สมบูรณ์): pdf)
- โครงสร้างควบคุม (slides ของ JCM)
- โมดูลและการโปรแกรมเชิงวัตถุ (slides ของ JCM)
- การโปรแกรมเชิงวัตถุ: Simula, Smalltalk (slides ของ JCM)
- การโปรแกรมเชิงวัตถุ: C++, Java, C# (slides ของ JCM)
- ภาษาเชิงพลวัติ (dynamic languages): Ruby และ Python
- กรอบงานการโปรแกรม: Ruby on Rails, (Seaside)
- Meta-programming
- การทำงานพร้อมกัน: Java และ Erlang
- การวิเคราะห์เชิงสถิตย์และเครื่องมือ (static analysis)
ซอฟต์แวร์และเอกสารเพิ่มเติม
Scheme
- หน้าอ้างอิงของภาษา Scheme
- ระบบของ Scheme ที่ใช้ DrScheme
- ระบบอื่น ๆ เช่น: STk, MIT/GNU Scheme
- เอกสารเกี่ยวกับ Scheme
ML
- ระบบของภาษา ML ที่ใช้ Standard ML of New Jersey
- เอกสารเกี่ยวกับ ML
- ลิงก์ที่เกี่ยวข้อง: ภาษา Caml, F#
Python
Ruby
- หน้าหลัก
- เอกสาร:
Smalltalk
- หน้าหลัก
- Design Principles Behind Smalltalk โดย Daniel H. H. Ingalls
- I can Read C++ and Java But I can't Read Smalltalk โดย Wilf LaLonde
- หนังสือ Smalltalk on-line
- Squeak เป็น Smalltalk environment ที่ใช้เรียน
- เอกสาร: An open book: Squeak by Example, Swiki