====== 204112 การเขียนโปรแกรมเชิงโครงสร้าง ====== ====== Structured Programming ====== ===== วิชาที่ต้องผ่านก่อน (prerequisites) ===== * 204__111__ ===== ข่าวประกาศ ===== Sec002: โจทย์สำหรับทำ Lab09 (เป็นกรณีพิเศษ) {{::lab09_sec002.pdf|pdf}}กำหนดส่ง วันที่ 26 มีนาคม (29 มีนาคม) ===== วัตถุประสงค์กระบวนวิชา ===== - นักศึกษาจะได้รับความรู้และความเข้าใจเกี่ยวกับการเขียนโปรแกรมคอมพิวเตอร์แบบโครงสร้าง และวิธีพัฒนาโปรแกรม - นักศึกษาจะมีทักษะในการออกแบบและพัฒนาโปรแกรม ตลอดทั้งการแก้ปัญหาด้วยคอมพิวเตอร์ ===== เวลาเรียน ===== **Section 001:** * **Lec:** Fr 9:30 - 11:30 (room CSB207) * **Lab:** Tu 9:30 - 11:30 (room CSB307) * **Instructor:** ผู้ช่วยศาสตราจารย์ ดร.วัชรี จำปามูล * Office: CSB110 * Office hours: TBA * Assignment Checklist: http://goo.gl/fjz7sC **Section 002:** * **Lec:** Fr 9:30 - 11:30 (room CSB210) * **Lab:** Tu 9:30 - 11:30 (room CSB308) * **Instructor:** อาจารย์ ดร.รัศมีทิพย์ วิตา * Office: CSB107 * Office hours: TBA * Assignment Checklist: http://goo.gl/3Pgnbm **Section 003:** * **Lec:** Fr 14:30 - 16:30 (room CSB207) * **Lab:** Tu 14:30 - 16:30 (room CSB308) * **Instructor:** อาจารย์ กิตติพิชญ์ คุปตะวาณิช * Office: CSB107 * Office hours: TBA * Assignment Checklist: http://goo.gl/ZGvjZr **Facebook Group:** http://www.facebook.com/groups/14S2.204112 ===== วันสอบ ===== * **สอบข้อเขียนกลางภาค :** วันศุกร์ที่ 6 มีนาคม 2558 เวลา 12:00 - 15:00 น. * **สอบปฏิบัติกลางภาค :** วันพุธที่ 11 มีนาคม 2558 เวลา 13:30 - 15:30 น. * **สอบปฏิบัติปลายภาค :** วันพุธที่ 29 เมษายน 2558 เวลา 13:30 - 16:30 น. * **สอบข้อเขียนปลายภาค :** วันอาทิตย์ที่ 10 พฤษภาคม 2558 เวลา 12:00 - 15:00 น. ===== หลักเกณฑ์การให้คะแนน ===== * **กลางภาค** * สอบข้อเขียนกลางภาค **25%** * สอบปฏิบัติการกลางภาค **5%** * **ปลายภาค** * สอบข้อเขียนปลายภาค **30%** * สอบปฏิบัติการปลายภาค **10%** * **สอบย่อย** * สอบย่อยในคาบบรรยาย **5%** * สอบย่อยในคาบปฏิบัติการ **5%** * แบบฝึกหัดและการบ้าน (บรรยาย + ปฏิบัติการ) **10%** * โครงงาน (รายงาน การนำเสนอ และประสิทธิภาพของโปรแกรมที่พัฒนา) **10%** **//การ__ลอก__การบ้าน แบบฝึกหัดหรืองานที่ได้รับมอบหมาย ถือเป็น__การทุจริต__//** ==== ข้อตกลงพิเศษของกระบวนวิชา ==== * นักศึกษาทุกคนต้องมีเวลาเข้าเรียน __ไม่น้อยกว่า 80 %__ จึงจะมีสิทธิ์เข้าสอบ * นักศึกษาต้องลงลายมือชื่อเข้าชั้นเรียน ภายในช่วงเวลาที่กำหนด คือ 9.30 - 9.50 น.สำหรับ ตอน 001 และตอน 002 และ 14.30-14.50 น. สำหรับตอน 003 เท่านั้น หากเลยเวลาที่กำหนด จะถือว่าขาดเรียน แต่อนุญาตให้เข้าเรียนได้ ===== เนื้อหาวิชาและแผนการสอน ===== ====Schedule==== |< 100% 4% 40% 8% 8% 40% >| ^ Week ^ Lab ^^ Lec ^^ | 01 | //ทดสอบวัดพื้นความรู้และทักษะเกี่ยวกับภาษาซี// | 6 ม.ค. | 9 ม.ค. | **1. ทบทวนการเขียนโปรแกรม** {{:w01_02_lec_1_ch01reviewprobsolv_2x2.pdf|pdf}} - การแก้ปัญหา (เน้นการวิเคราะห์ปัญหา) - การเขียนอัลกอริทึม (การออกแบบแนวทางการแก้ปัญหา) - โครงสร้างควบคุมแบบเงื่อนไขและทำซ้ำ {{:w02_03_lec_2_ch01controlstm_2x2.pdf|pdf}} - ฟังก์ชันและการส่งผ่านค่าพารามิเตอร์ * {{:w02_03_lec_1_ch01_printf_scanf_2x2.pdf|printf() - scanf()}} {{:w02_03_lec_3_ch01elementofc_2x2.pdf|Elements of C}} | | 02 | **1. การพัฒนาโปรแกรมภาษาซี โดยใช้ gcc** - กระบวนการสร้างแอพพลิเคชันภาษาซี {{:w02_lab_c_compiling_and_linking_v4_2x2.pdf|pdf}}\\ (C compiling and Linking) - การแปลงผังงานโปรแกรมเป็นชุดคำสั่งภาษาซีและคำสั่งในการรับ/ แสดงผลอย่างง่าย {{:lab01_algo2c_2x2.pdf|pdf}} | 13 ม.ค. | 16 ม.ค. | ::: | | 03 | **2. โครงสร้างควบคุมแบบมีเงื่อนไขและแบบทำซ้ำ** | 20 ม.ค. | 23 ม.ค. | ::: | | 04 | **3. ฟังก์ชันและการส่งผ่านพารามิเตอร์** {{::lab03_functions_2x2.pdf|pdf}} * gcc common errors and warnings {{:lab03_gcc_errors_2x2.pdf|pdf}} | 27 ม.ค. | 30 ม.ค. | **2. หลักการออกแบบโปรแกรมที่ดี ** {{:w04_lec_ch02structured_program_2x2.pdf|pdf}} - สมบัติของโปรแกรมที่ดี - หลักการออกแบบโปรแกรมแบบโครงสร้าง - การออกแบบส่วนต่อประสานกับผู้ใช้ | | 05 | **4. การเขียนโปรแกรมที่ดี ** + //สอบปฏิบัติการย่อย ครั้งที่ 1// | 3 ก.พ. | 6 ก.พ. | **1. การดำเนินการระดับบิต** {{:w05_lec_1_ch01bitwise_2x2.pdf|pdf}} **3 . การทดสอบและการแก้จุดบกพร่อง** {{:w05_lec_2_ch03testing_2x2.pdf|pdf}} - กลยุทธ์การทดสอบและการแก้จุดบกพร่อง - การออกแบบกรณีทดสอบ - เครื่องมือช่วยการทดสอบและแก้จุดบกพร่อง | | 06 | **5. เครื่องมือช่วยการทดสอบและการแก้จุดบกพร่อง ** | 10 ก.พ. | 13 ก.พ. |:::| | 07 | **6. พอยน์เตอร์และการอ้างถึง ** | 17 ก.พ. | 20 ก.พ. | **4. โครงสร้างข้อมูล** - พอยน์เตอร์และการอ้างถึง (รวมถึงฟังก์ชันแบบ Called by Reference) {{::w06_lec_1_ch04pointer_2x2.pdf|pdf}} - ตัวแปรชุด {{::w07_lec_2_ch04array_2x2.pdf|pdf}} | | 08 | **7. ตัวแปรชุด ฟังก์ชันและการส่งผ่านพารามิเตอร์ด้วยตัวแปรชุด ** | 24 ก.พ. | 27 ก.พ. | **4 . โครงสร้างข้อมูล** - สายอักขระและการประมวลผล | | **สอบข้อเขียนกลางภาค วันศุกร์ที่ 6 มีนาคม เวลา 12:00 - 15:00 น.**\\ **สอบปฏิบัติกลางภาค วันพุธที่ 11 มีนาคม เวลา 13.30 - 15.30 น.** ||||| | 09 | **8. สายอักขระและการประมวลผลสายอักขระ ** \\ ** Command Line Argument ** {{::lab08_c_command_line_arguments_2x2.pdf|pdf}} | 10 มี.ค. | 13 มี.ค. | **5. การจัดดำเนินการแฟ้มข้อมูล** {{::w08_lec_ch05file_2x2.pdf|pdf}} - การจัดระเบียบแฟ้ม - แฟ้มแบบข้อความและแบบไบนารี | | 10 | **9. การจัดดำเนินการแฟ้มข้อมูล (Array of structs) ** | 17 มี.ค. | 20 มี.ค. | **4. โครงสร้างข้อมูล ** - เรคอร์ดและ ตัวแปรชุดของเรคอร์ด | | 11 | **10. เรคอร์ด (struct) และ ตัวแปรชุดของเรคอร์ด** {{::w09_lec_1_ch04struct-list_2x2.pdf|pdf1}} {{::w09_lec_2_struct_and_union_v2_2x2.pdf|pdf2}} | 24 มี.ค. | 27 มี.ค. | **4. โครงสร้างข้อมูล ** - โครงสร้างแบบลิสค์ {{::w10_lec_linked_list_v3_2x2.pdf|pdf}} | | 12 | **11. โครงสร้างแบบลิสต์ ** {{:w10_lec_linked_list_v3_2x2.pdf|pdf}} + //สอบปฏิบัติการย่อย ครั้งที่ 2// | 31 มี.ค. | 3 เม.ย. | **6. ฟังก์ชันแบบเวียนบังเกิด ** {{:w11_1_recursion_2x2.pdf|2x2}} {{:w11_2_recursion_2x2.pdf|2x2}} - แนวคิดของการเวียนบังเกิด - การโปรแกรมแบบเวียนบังเกิด | | 13 | **12. การโปรแกรมแบบเรียกซ้ำ ** | 7 เม.ย. | 10 เม.ย. | ::: | | 14 | **13. การดำเนินการแฟ้มข้อมูลด้วยการเข้าถึงแบบสุ่ม ** | 21 เม.ย. | 24 เม.ย. | **5. การจัดดำเนินการแฟ้มข้อมูล ** - 3. การเข้าถึงแบบสุ่ม {{::file.pdf|pdf}} \\ **7. Enumeration Type ** {{::ch04enumtype_2x2.pdf|pdf}} | | 15 | **ทบทวนปฏิบัติการ** | 28 เม.ย. | 1 พ.ค. | **ทบทวน ** | | **สอบปฏิบัติปลายภาค วันพุธที่ 29 เมษายน เวลา 13.30 - 16.30 น.**\\ **สอบข้อเขียนปลายภาค วันอาทิตย์ที่ 10 พฤษภาคม เวลา 12:00 - 15:00 น.** ||||| ===== การส่งงานผ่านเว็บไซต์ (เฉพาะการบ้านที่กําหนด) ===== [[http://hw.cs.science.cmu.ac.th/CS_HW/p204112.html]] หรือที่เว็บไซต์ของภาควิชา http://www.cs.science.cmu.ac.th->คลิกหัวข้อเว็บเพจส่งการบ้านโดยให้คลิก Link เพื่อ Login ตามรหัสวิชา และตอนเรียน (Section) ที่ลงทะเบียนเรียน ** จะมีการแจก User name และรหัสผ่าน ในชั่วโมงปฏิบัติการ** **ให้นักศึกษาจดบันทึก User name และรหัสผ่านให้ดี อย่าทําหาย** หากส่งงานช้ากว่ากำหนด จะคิดคะแนน **80%** จากคะแนนเต็ม และไม่อนุญาตให้ส่งงานช้าเกิน **3** วัน \\ งานที่ตั้งชื่อไฟล์ไม่ตรงกับที่กำหนดในใบงาน **จะไม่ได้รับการตรวจ** * ไฟล์งานทุกไฟล์ที่ส่ง online จะต้องมีการแทรก comment ที่บรรทัดบนสุด ในรูปแบบดังนี้ /* ชื่อ นามสกุล * 5XXXXXXXX * Lab (หรือ HW) YY * Problem Z * 204112 Sec 00A */ * งานที่ส่งเป็นกระดาษ หรือ MS Word Documents ให้เขียนที่หัวกระดาษ**__ด้านขวา__**ดังนี้ |< 100% >| | **ชื่อ นามสกุล ลำดับที่ ##**\\ **5XXXXXXXX**\\ **Lab** (หรือ **Lec**)** YY**\\ **Problem Z**\\ **204112 Sec 00A**| {{::lab08_multidimarray.pdf|}} ==== กำหนดส่งงาน (Online)==== * ไม่รับงานส่งสายหลังจากวันที่ที่ระบุในวงเล็บ (เกิน 3 วันจากกำหนดส่ง) |<100%>| ^ Assignment ^ Assignment Sheet ^ File Naming Format ^ Due Date ^ Globbing\\ (สำหรับ TA) ^ |Lab01_1 | {{::lab01_cfromalgo_v3.pdf|Lab01}} | Lab01_1_5XXXXXXXX.c | 14 Jan\\ (17 Jan) | Lab01_1_5????????.c | |Lab01_2 | ::: | Lab01_2_5XXXXXXXX.c | ::: | Lab01_2_5????????.c | |R01 | ::: | R01_5XXXXXXXX.docx | ::: | R01_5????????.doc* | |HW01_1 |{{:hwassgn_01_basics.pdf|HW01}} | HW01_1_5XXXXXXXX.c | @#FFFFCC:19 Jan\\ (22 Jan) | HW01_1_5????????.c | |HW01_2 | ::: | HW01_2_5XXXXXXXX.c | ::: | HW01_2_5????????.c | |HW01_3 | ::: | HW01_3_5XXXXXXXX.c | ::: | HW01_3_5????????.c | |Lab02_1 | {{:lab02controlstatements_v3.pdf|Lab02}} | Lab02_1_5XXXXXXXX.c | @#FFE0C1:22 Jan\\ (25 Jan) | Lab02_1_5????????.c | |Lab02_2 | ::: | Lab02_2_5XXXXXXXX.c | ::: | Lab02_2_5????????.c | |Lab02_3 | ::: | Lab02_3_5XXXXXXXX.c | ::: | Lab02_3_5????????.c | |HW02_1 | {{:hwassgn_02_condition_and_iteration.pdf|HW02}} | HW02_1_5XXXXXXXX.c | @#FFFFCC:26 Jan\\ (29 Jan) | HW02_1_5????????.c | |HW02_2 | ::: | HW02_2_5XXXXXXXX.c | ::: | HW02_2_5????????.c | |HW02_3 | ::: | HW02_3_5XXXXXXXX.c | ::: | HW02_3_5????????.c | |Lab03_1 | {{:lab03function_v2.pdf|Lab03}} | Lab03_1_5XXXXXXXX.c | @#FFE0C1:29 Jan\\ (1 Feb) | Lab03_1_5????????.c | |Lab03_2 | ::: | Lab03_2_5XXXXXXXX.c | ::: | Lab03_2_5????????.c | |HW03_1 | {{:hwassgn_03_function_v3.pdf|HW03}} | HW03_1_5XXXXXXXX.c | @#FFFFCC:2 Feb\\ (5 Feb) | HW03_1_5????????.c | |HW03_2 | ::: | HW03_2_5XXXXXXXX.c | ::: | HW03_2_5????????.c | |HW03_3 | ::: | HW03_3_5XXXXXXXX.c | ::: | HW03_3_5????????.c | |Lab04_1 | {{:lab04structuredprog_v2.pdf|Lab04}} | Lab04_1_5XXXXXXXX.c | @#FFE0C1:5 Feb\\ (8 Feb) | Lab04_1_5????????.c | |Lab04_2 | ::: | Lab04_2_5XXXXXXXX.c | ::: | Lab04_2_5????????.c | |Lab04_3 | ::: | Lab04_3_5XXXXXXXX.c | ::: | Lab04_3_5????????.c | |HW04_1 | {{::hwassgn_04_characterprocessing_v6.pdf|HW04}} | HW04_1_5XXXXXXXX.c | @#FFF0F5:10 Feb\\ (13 Feb) | HW04_1_5????????.c | |HW04_2 | ::: | HW04_2_5XXXXXXXX.c | ::: | HW04_2_5????????.c | |HW04_3 | ::: | HW04_3_5XXXXXXXX.c | ::: | HW04_3_5????????.c | |Lab05_1 | {{:lab05debug.pdf|Lab05}} | Lab05_4_5XXXXXXXX.c | @#FFE0C1:12 Feb\\ (15 Feb) | Lab05_4_5????????.c | |HW05_1 | {{::hwassgn_05_bitwise_operationsv3.pdf|HW05}} | HW05_1_5XXXXXXXX.c | @#FFF0F5:17 Feb\\ (20 Feb) | HW05_1_5????????.c | |HW05_2 | ::: | HW05_2_5XXXXXXXX.c | ::: | HW05_2_5????????.c | |HW05_3 | ::: | HW05_3_5XXXXXXXX.c | ::: | HW05_3_5????????.c | |Lab06_1 | {{:lab06_pointer.pdf|Lab06}} | Lab06_1_5XXXXXXXX.c | @#FFE0C1:19 Feb\\ (22 Feb) | Lab06_1_5????????.c | |Lab06_2 | ::: | Lab06_2_5XXXXXXXX.c | ::: | Lab06_2_5????????.c | |HW06_1 | {{:hwassgn_06_basic_array_v3_with_ec.pdf|HW06}} | HW06_1_5XXXXXXXX.c | @#FFFFCC:23 Feb\\ (26 Feb) | HW06_1_5????????.c | |HW06_2 | ::: | HW06_2_5XXXXXXXX.c | ::: | HW06_2_5????????.c | |HW06_3 | ::: | HW06_3_5XXXXXXXX.c | ::: | HW06_3_5????????.c | |HW06_EX1 | ::: | HW06_EX1_5XXXXXXXX.c | ::: | HW06_EX1_5????????.c | |Lab07_3 | {{::lab07_array_v3.pdf|Lab07}} | Lab07_3_5XXXXXXXX.c | @#FFE0C1:12 Mar\\ (15 Mar) | Lab07_3_5????????.c | |Lab07_4 | ::: | Lab07_4_5XXXXXXXX.c | ::: | Lab07_4_5????????.c | |HW07_1 | {{:hwassgn_07_two_dimensional_array.pdf|HW07}} | HW07_1_5XXXXXXXX.c | @#FFFFCC:16 Mar\\ (19 Mar) | HW07_1_5????????.c | |HW07_2 | ::: | HW07_2_5XXXXXXXX.c | ::: | HW07_2_5????????.c | |Lab08_2 | {{:lab08_multidimarray.pdf|Lab08}} | Lab08_2_5XXXXXXXX.c | @#FFE0C1:19 Mar\\ (22 Mar) | Lab08_2_5????????.c | |HW08_1 | {{:hwassgn_08_multidimensional_array.pdf|HW08}} | HW08_1_5XXXXXXXX.c | @#FFFFCC:23 Mar\\ (26 Mar) | HW08_1_5????????.c | |HW08_2 | ::: | HW08_2_5XXXXXXXX.c | ::: | HW08_2_5????????.c | |HW09_1 | {{:hwassgn_09_structure_and_file_v2.pdf|HW09}} | HW09_1_5XXXXXXXX.c | @#D6EDBD:1 Apr\\ (4 Apr) | HW09_1_5????????.c | |HW09_2 | ::: | HW09_2_5XXXXXXXX.c | ::: | HW09_2_5????????.c | |HW10_1 | {{::hwassgn_10_linked_list_v3.pdf|HW10}} | HW10_1_5XXXXXXXX.c | @#FFFFCC:6 Apr\\ (9 Apr) | HW10_1_5????????.c | |HW10_2 | ::: | HW10_2_5XXXXXXXX.c | ::: | HW10_2_5????????.c | |HW11_1 | {{::hwassgn_11_linked_list_cont_d.pdf|HW11}} | HW11_1_5XXXXXXXX.c | @#E9EEFB:24 Apr\\ (27 Apr) | HW11_1_5????????.c | |HW11_2 | ::: | HW11_2_5XXXXXXXX.c | ::: | HW11_2_5????????.c | |HW11_EX | ::: | HW11_EX_5XXXXXXXX.c | ::: | HW11_EX_5????????.c | |Lab12_1 |{{:lab12_filerecursion.pdf|Lab12}} | Lab12_1_5XXXXXXXX.c | @#FFFFCC:27 Apr\\ (30 Apr) | Lab12_1_5????????.c | |Lab12_1 | ::: | Lab12_2_5XXXXXXXX.c | ::: | Lab12_2_5????????.c | ===== Development Environment ===== Software หลักที่ใช้หลักที่ใช้ในภาคเรียนนี้ คือ gcc compiler และ text editor ตามที่นักศึกษาเลือก * Windows * install software bundle ของรายวิชา (cygwin etc) [[http://www.cs.science.cmu.ac.th/course/204112/IDE/CygwinETCx86_v6.zip|link1]] [[http://goo.gl/5YSYg5|link2]] [[http://goo.gl/WvI03n|วิธีติดตั้ง]] * หรือสามารถติดตั้งเอง [[http://www2.warwick.ac.uk/fac/sci/moac/people/students/peter_cock/cygwin/part1|install cygwin]] และ install [[http://www2.warwick.ac.uk/fac/sci/moac/people/students/peter_cock/cygwin/part2/|Development Tools]] * OSX [[https://developer.apple.com/xcode/downloads/|install Xcode]] * Linux * Ubuntu: install build-essential * Fedora: install "Development Tools" * อนุโลมให้ใช้ [[http://www.codeblocks.org/downloads/26| Code::Block IDE]] ได้ในในช่วง 1 - 2 สัปดาห์แรก ===== Software อื่นๆ ===== * Visual Programming Tools * [[http://www.flowgorithm.org/| flowgorithm]] (Windows) * Free Diagram Drawing Tools * [[http://www.draw.io|draw.io]] (Web Application) * [[https://www.lucidchart.com/|Lucid Chart]] (Web Application) * [[http://www.yworks.com/en/products_yed_about.html|yED]] (Windows, Mac OS X, Linux, java) * [[http://dia-installer.de/|Dia Diagram Editor]] (Windows, Mac OS X, Linux) ===== หนังสือ/วารสารประกอบการเรียน ===== [1] Alfred V. Aho and Jeffrey D. Ullman. Foundations of Computer Science : C edition, W.H. Freeman & Company, New York, 1995. \\ [2] Harold Abelson, Gerald J. Sussman and Julie Sussman. Structure and Interpretation of Computer Programs, 2nd edition, Mc-Graw Hill Co., 1998. \\ [3] Robert W. Sebesta. Concepts of Programming Languages, 6th edition. Addison Wesley, 2003 ===== เอกสารเพิ่มเติม ===== [1] //[[http://bookboon.com/uk/student/it/gentle-introduction-to-mathematics-for-computer|Mathematics for Computer Scientists]]// by Janacek and Close \\ [2] //[[http://www.iups.org/media/meeting_minutes/C.pdf|The C Programming Language (ANSI C Version)]]// 2nd Edition by Ritchie and Kernighan \\ [3] //[[https://www.google.co.th/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=a+first+book+of+ansi+c|A First Book of ANSI C]]//, 4th Edition by Gary J. Bronson \\ [4] //[[http://csapp.cs.cmu.edu/|Computer Systems: A Programmer's Perspective]]// 2nd Edition by Bryan and O'Hallaron \\ [5] //[[http://www.cs.science.cmu.ac.th/course/204112/13S2/Lecture2012|เอกสารประกอบปีการศึกษา 2555]]// โดย อาจารย์ ดร.อารีรัตน์ ตรงรัศมีทอง \\ [6] //[[http://www.cs.science.cmu.ac.th/course/204112/13S2/Matinee|เอกสารเพิ่มเติม]]// โดย อาจารย์ ดร. เมทินี เขียวกันยะ \\ [7] //[[http://www.cs.science.cmu.ac.th/course/204112/doku.php?id=%E0%B9%80%E0%B8%AD%E0%B8%81%E0%B8%AA%E0%B8%B2%E0%B8%A3%E0%B9%80%E0%B8%9E%E0%B8%B4%E0%B9%88%E0%B8%A1%E0%B9%80%E0%B8%95%E0%B8%B4%E0%B8%A1|เอกสารเพิ่มเติม]]// โดย อาจารย์ กิตติพิชญ์ คุปตะวาณิช ===== ภาคการศึกษาก่อน ===== * [[http://www.cs.science.cmu.ac.th/course/204112/13S2/index.html|ปีการศึกษา 2556]]