====== 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]]