ผลต่างระหว่างรุ่นของ "204435 มโนทัศน์ภาษาโปรแกรม 2550"

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา
(kwAXkQTSMcV)
แถว 1: แถว 1:
หน้านี้เป็นหน้ารายวิชาของวิชามโนทัศน์ภาษาโปรแกรม
+
Stay with this guys, you're helping a lot of poeple.
 
 
ผู้สอน: [http://www.cpe.ku.ac.th/~jtf จิตร์ทัศน์ ฝักเจริญผล]
 
 
 
That's the perfect iisgnht in a thread like this.
 
 
 
==การเตรียมตัวก่อนเข้าเรียน==
 
ในส่วนนี้จะระบุรายละเอียดของซอฟต์แวร์ที่นิสิตต้องติดตั้งก่อนเข้าเรียนแต่ละครั้ง โดยแยกเป็นหมู่เรียนที่วิทยาเขตบางเขน และวิทยาเขตศรีราชา
 
* สัปดาห์ที่ 13
 
** จะทดลองเขียนโปรแกรมแบบทำงานพร้อมกัน ด้วย [http://www.stackless.com/ Stackless Python] ให้ติดตั้งมาก่อน เพื่อความสะดวกแนะนำให้ใช้ [http://www.stackless.com/download ตัวติดตั้งสำเร็จรูป] ที่มีให้เฉพาะบน Windows  ในกรณีของ Linux ต้องคอมไพล์เอง
 
 
 
==รายละเอียดวิชา==
 
ในมุมมองที่กว้างที่สุด ภาษาโปรแกรมเป็นเครื่องมือสำหรับอธิบายการคำนวณ (computation) อย่างไรก็ตามมุมมองของการคำนวณนั้นมีได้หลากหลาย  เป็นจุดกำเนิดที่ทำให้เกิดภาษาโปรแกรมที่วางอยู่บนกระบวนทัศน์ (paradigm) ที่แตกต่างกันจำนวนมากมาย
 
 
 
วิชานี้ มีเป้าหมายที่จะศึกษาแนวคิดต่าง ๆ ที่มีใช้ในภาษาโปรแกรมสมัยใหม่ เพื่อให้เข้าใจกระบวนการทำงาน ขีดจำกัด และผลกระทบที่มีต่อกระบวนการคิดวิเคราะห์ของผู้ใช้
 
 
 
เราจะสนใจแนวคิดพื้นฐาน พร้อมกับเน้นกระบวนทัศน์ภาษาโปรแกรมที่สำคัญได้แก่การโปรแกรมเชิงฟังก์ชันและการโปรแกรมเชิงวัตถุ นอกจากนี้ยังจะให้ความสำคัญเกี่ยวกับแนวคิดของภาษาเชิงพลวัติที่ทวีความสำคัญมากขึ้นเรื่อย ๆ
 
 
 
นอกจากจะศึกษาแนวคิดที่สำคัญแล้ว ในวิชานี้จะมีการให้นิสิตได้ทดลองเขียนโปรแกรมด้วยภาษาและกรอบงาน (framework) ต่าง ๆ เพื่อเพิ่มความเข้าใจอีกด้วย ตัวอย่างภาษาที่จะได้ทดลอง เช่น Scheme, ML, Smalltalk, Java, C#, Ruby
 
 
 
==การบ้าน==
 
การส่งการบ้านที่เป็นโปรแกรม ให้ส่งเป็นจดหมายอิเล็กทรอนิกส์ ไปที่ e-mail ของอาจารย์ผู้สอน (ดูจาก [http://www.cpe.ku.ac.th/~jtf])
 
* การบ้าน 1: ให้ทำแบบฝึกหัดใน[http://garnet.cpe.ku.ac.th/~jtf/435/lect02-scheme.pdf เอกสาร Scheme] ข้อที่ 1, 2, 6, 8, 10 และ 11 (กำหนดส่ง. บางเขน: 12 พ.ย. ศรีราชา: 28 พ.ย.) ([http://garnet.cpe.ku.ac.th/~jtf/435/sol01.pdf เฉลย])
 
* การบ้าน 2: [http://garnet.cpe.ku.ac.th/~jtf/435/hw02.pdf pdf] (กำหนดส่ง: บางเขน: 30 พ.ย.  ศรีราชา: 12 ธ.ค.)
 
* การบ้าน 3: [http://garnet.cpe.ku.ac.th/~jtf/435/hw03.pdf pdf] (กำหนดส่ง: บางเขน: 11 ธ.ค.  ศรีราชา: 12 ธ.ค.)
 
* การบ้าน 4: [http://garnet.cpe.ku.ac.th/~jtf/435/hw04.pdf pdf] (กำหนดส่ง: บางเขน: 17 ธ.ค. ศรีราชา: 19 ธ.ค.)
 
* การบ้านโปรแกรม 3: จะประกาศเร็ว ๆ นี้ ส่งหลังสอบกลางภาค
 
 
 
==คำบรรยายและแผ่นใส==
 
เอกสารหลักจะใช้บันทึกคำบรรยายที่เตรียมโดยผู้สอน ประกอบกับสไลด์วิชา [http://www.stanford.edu/class/cs242/ Programming Languages] ของ [http://theory.stanford.edu/people/jcm/ John C. Mitchell]
 
* แนะนำวิชา ([[media:204435-Lect00-intro.pdf|pdf]])
 
* แนะนำภาษาโปรแกรมเชิงฟังก์ชัน: Scheme (slides ของ JCM: [http://www.stanford.edu/class/cs242/slides/index.html Lisp]) (เอกสารประกอบคำบรรยาย (ไม่สมบูรณ์): [http://garnet.cpe.ku.ac.th/~jtf/435/lect02-scheme.pdf pdf])
 
** บทความ: [http://paulgraham.com/rootsoflisp.html Roots of Lisp] โดย Paul Graham
 
* พื้นฐาน: การแปลภาษาโปรแกรม แลมบ์ดาแคลคูลัส (slides ของ JCM: [http://www.stanford.edu/class/cs242/slides/lambda.ppt ppt], [http://www.stanford.edu/class/cs242/slides/lambda.pdf pdf]) (เอกสารประกอบคำบรรยาย (ไม่สมบูรณ์): [http://garnet.cpe.ku.ac.th/~jtf/435/lect03-lambda.pdf pdf])
 
* ภาษาตระกูล Algo และ ML ([http://www.stanford.edu/class/cs242/slides/index.html slides] ของ JCM)
 
* ระบบแบบชนิดข้อมูล (type system) และการอนุมานแบบชนิดข้อมูล ([http://www.stanford.edu/class/cs242/slides/index.html slides] ของ JCM)
 
* ขอบเขตตัวแปรและการจัดการ ([http://www.stanford.edu/class/cs242/slides/index.html slides] ของ JCM) (เอกสารประกอบคำบรรยาย (ไม่สมบูรณ์): [http://garnet.cpe.ku.ac.th/~jtf/435/lect06-scope.pdf pdf])
 
* โครงสร้างควบคุม ([http://www.stanford.edu/class/cs242/slides/index.html slides] ของ JCM)
 
* โมดูลและการโปรแกรมเชิงวัตถุ ([http://www.stanford.edu/class/cs242/slides/index.html slides] ของ JCM)
 
* การโปรแกรมเชิงวัตถุ: Simula, Smalltalk ([http://www.stanford.edu/class/cs242/slides/index.html slides] ของ JCM)
 
* การโปรแกรมเชิงวัตถุ: C++, Java, C# ([http://www.stanford.edu/class/cs242/slides/index.html slides] ของ JCM)
 
* ภาษาเชิงพลวัติ (dynamic languages): Ruby และ Python
 
* กรอบงานการโปรแกรม: Ruby on Rails, (Seaside)
 
* Meta-programming
 
* การทำงานพร้อมกัน: Java และ Erlang
 
* การวิเคราะห์เชิงสถิตย์และเครื่องมือ (static analysis)
 
 
 
==ซอฟต์แวร์และเอกสารเพิ่มเติม==
 
If you want to get read, this is how you sohlud write.
 
 
 
===ML===
 
* ระบบของภาษา ML ที่ใช้ [http://www.smlnj.org/ Standard ML of New Jersey]
 
* เอกสารเกี่ยวกับ ML
 
** [http://www.dcs.napier.ac.uk/course-notes/sml/manual.html A Gentle Introduction to ML]
 
** [http://www.dcs.ed.ac.uk/home/stg/NOTES/ Programming in Standard ML'97: An On-line Tutorial]
 
** [http://www.cs.cmu.edu/~rwh/introsml/ Programming in Standard ML]
 
* ลิงก์ที่เกี่ยวข้อง: ภาษา [http://caml.inria.fr/ Caml], [http://research.microsoft.com/fsharp/ F#]
 
===Python===
 
* [http://www.python.org/ หน้าหลัก]
 
* [http://docs.python.org/tut/tut.html Tutorial]
 
===Ruby===
 
* [http://www.ruby-lang.org/en/ หน้าหลัก]
 
* เอกสาร:
 
** [http://www.ruby-doc.org/docs/ProgrammingRuby/ Programming Ruby]
 
** [http://qa.poignantguide.net/ Why’s (Poignant) Guide to Ruby] (แนวมาก)
 
===Smalltalk===
 
* [http://www.smalltalk.org/main/ หน้าหลัก]
 
** [http://users.ipa.net/~dwighth/smalltalk/byte_aug81/design_principles_behind_smalltalk.html Design Principles Behind Smalltalk] โดย Daniel H. H. Ingalls
 
** [http://www.eli.sdsu.edu/courses/spring01/cs635/readingSmalltalk.pdf I can Read C++ and Java But I can't Read Smalltalk] โดย Wilf LaLonde
 
** [http://www.iam.unibe.ch/~ducasse/FreeBooks.html หนังสือ Smalltalk on-line]
 
* [http://www.squeak.org/ Squeak] เป็น Smalltalk environment ที่ใช้เรียน
 
** เอกสาร: [http://www.iam.unibe.ch/~scg/SBE/ An open book: Squeak by Example], [http://wiki.squeak.org/squeak Swiki]
 
 
 
==ลิงก์ที่เกี่ยวข้อง==
 
* [http://www.stanford.edu/class/cs242/ วิชาภาษาโปรแกรมที่ Stanford]
 
* [http://www.cpe.ku.ac.th/~jtf/204435-49/ เว็บวิชาเดียวกันภาคการศึกษา 2549]
 

รุ่นแก้ไขเมื่อ 18:09, 14 กุมภาพันธ์ 2555

Stay with this guys, you're helping a lot of poeple.