01418232 Algorithm Design and Analysis 2553

ประกาศวิชา

 * 22 มี.ค. 54:
 * เกรด
 * อาจารย์ได้กรอกคะแนนในระบบผิดพลาดไปค่ะ เกรดใหม่จะอยู่ในไฟล์ตามเมนู "grade" ด้านซ้ายมือบน maxlearn ค่ะ
 * อาจารย์ขอโทษนิสิตทุกคนจริงๆที่ได้รวมคะแนนผิดไปค่ะ เนื่องจากอาจารย์ใช้สมการการรวมคะแนนจาก midterm จึงไม่ได้รวมคะแนน final ไปตอนออกเกรดในระบบตอนแรก จะมีนิสิตจำนวน 33 คนที่จะได้เกรดลดลงจากเดิม (และบางคนได้เพิ่ม) -- ตอนนี้อาจารย์เช็คหลายรอบแล้ว และคงจะไม่ผิดพลาดอีก
 * ไฟล์ที่อาจารย์โพสเป็นไฟล์ที่แจกแจงการคิดคะแนนทุกอย่าง จะได้เห็นชัดเจนว่า เกรดใหม่มาได้อย่างไรค่ะ โดยอาจารย์ได้ใช้การเคิฟจากคะแนนเฉลี่ยและค่าเบี่ยงเบนมาตรฐานค่ะ -- ถ้าใครมีข้อสงสัยใดๆ มาสอบถามได้เสมอค่ะ
 * ตอนนี้อาจารย์ยังแก้เกรดผ่านระบบไม่ได้ จึงขอให้นิสิตตรวจสอบเกรดจากไฟล์ที่โพสก่อนค่ะ
 * สำหรับอัญรินทร์ อาจารย์ยังขอติด I ไว้เหมือนเดิมนะคะ เนื่องจากอัญรินทร์ได้สัญญากับอาจารย์ว่า จะทำสรุปเนื้อหาที่ขาดเรียน (จากที่ต้องเข้าวิชาฟิสิกส์) มาส่ง แต่ยังไม่ได้ทำมาส่งอาจารย์ค่ะ
 * 21 มี.ค. 54:
 * ประกาศคะแนน final บน maxlearn ค่ะ แต่ยังรวมคะแนนอื่นๆไม่เสร็จนะคะ
 * 9 มี.ค. 54:
 * การเอาเอกสารเข้าห้องสอบ
 * เอาชีทที่เรียนทั้งหมดเข้าห้องได้ เอากระดาษ A4 หนึ่งแผ่นเขียนหน้าหลังเข้าห้องได้ เอาคำถามแบบฝึกหัด เฉลย ที่อ.ให้+โพสเข้าห้องได้
 * แต่เอาหนังสือ แบบฝึกหัด เฉลย หรือ ชีทจากที่อื่นเข้าห้องไม่ได้ค่ะ
 * 8 มี.ค. 54:
 * อาจารย์โพส practice final problems เพิ่มเติม ที่นี่และ maxlearn นะคะ ไปลองทำกันดู
 * อาจารย์โพส *เฉลย* final practice problems ที่นี่และ maxlearn แล้วนะคะ ไปอ่านดูได้ ฝากกระจายข่าวด้วยจ้า
 * และ เฉลย ข้อ 2.1 เพิ่มเติม
 * 4 มี.ค. 54:
 * เลื่อนส่งการบ้าน 5 ไปเป็น อังคารที่ 8 มี.ค. เนื่องจากไฟดับ ระบบล่ม และอ.จะลาพักร้อน ทำให้ไม่อาจตรวจสอบระบบได้ทันท่วงที
 * 25 ก.พ. 54:
 * เลื่อนส่งการบ้าน 5 ไปอีก 1 สัปดาห์ค่ะ ส่งปกติได้ถึง วันศุกร์ที่ 4 มี.ค. และส่งช้าได้ถึง วันศุกร์ที่ 11 มี.ค. ค่ะ
 * 15 ก.พ. 54:
 * เพิ่ม test case ของ robot มาอีกอันค่ะ ดูได้ด้านล่าง
 * 14 ก.พ. 54:
 * อาจารย์โพส practice final problems ขึ้นแล้วนะคะ ไปลองทำกันได้
 * 7 ก.พ. 54:
 * ระบบ grader ขึ้นแล้วค่ะ อ.ให้เวลาส่งการบ้าน 4 แบบช้าได้ถึง วันพฤหัส ที่ ​​​10 ก.พ. เวลา 23.59น.ค่ะ
 * 5 ก.พ. 54:
 * วันที่ 5 ก.พ.เวลา 23.30น. เครื่องก็ยังไม่ขึ้นค่ะ ยังไงตอนนี้ก็ยกประโยชน์ให้นิสิต อ.คงต้องขยายเวลาส่งไปอีก ถ้าเครื่องขึ้นเมื่อไหร่อ.จะประกาศผ่านเวํบวิชานะคะ ตอนนี้ก็เช็คคำตอบจาก test case ที่อ.ขึ้นไว้บนเว็บก่อน ถ้าตรงก็น่าจะรันผ่านได้ P ผ่านระบบ แต่ถ้ายังไม่ผ่านก็มีเวลาแก้โปรแกรมไปได้เรื่อยๆค่ะ เมื่อเครื่องขึ้นอ.จะให้เวลาในการส่งค่ะ
 * 4 ก.พ. 54:
 * เนื่องจากเจ้าของเครื่องที่ระบบตั้งอยู่จำเป็นต้องเอาเครื่อง off-line มาแล้ว 2 วัน และเย็นวันนี้ระบบก็น่าจะขึ้นแล้วค่ะ ตอนนี้ก็ลองทำและตรวจคำตอบกับ test case ที่อ.ให้ไว้ในเว็บก่อนนะคะ และด้วยเหตุนี้ อ.ขยายเวลาส่งการบ้าน 4 แบบส่งช้า ให้ถึงวันวันอาทิตย์ที่ 6 ก.พ. เวลา 23.59 น. อ.จะประกาศในเว็บเรื่อยๆจากนี้ ให้ดูประกาศว่าเครื่องจะ up เมื่อไหร่ค่ะ ฝากบอกเพื่อนๆด้วยนะคะ
 * 24 ม.ค. 54:
 * ตัวอย่าง test case ของการบ้าน 4 เพิ่มเติมนะคะ
 * 21 ม.ค. 54:
 * ปัญหา knapsack ขึ้นระบบ grader แล้วนะคะ
 * เราจะสอบปลายภาควันพฤหัสบดี ที่ 10 มีนาคม 2554 เวลา 13.00 - 16.00 น. (ห้อง SMC 101, 114, 126)
 * มีเรียนวันที่ 28 ม.ค. นะคะ
 * ใครจะมานั่งเขียนโปรแกรมด้วยกันก็ได้ เป็นวันพุธที่ 2 ก.พ. เวลา 11.00น. ที่ห้อง SCL 303 ค่ะ (ห้อง 304 ไม่ว่างค่ะ)
 * 21 ธ.ค. 53:
 * เฉลย ข้อ 4.1 เพิ่มเติม
 * 19 ธ.ค. 53:
 * เฉลย practice midterm problems มาแล้วค่ะ
 * 6 ธ.ค. 53:
 * อาจารย์โพส practice midterm problems ขึ้นแล้วนะคะ ไปลองทำกันได้
 * เฉลย quiz I ข้อ 1 และ ข้อ 2
 * 23 พ.ย. 53:
 * สำหรับคนที่ส่งช้า ขณะนี้นิสิตส่งผ่านระบบได้แล้วนะคะ ส่งได้ถึง วันอาทิตย์ที่ 28 พ.ย. เวลา 20.00น. เท่านั้นค่ะ
 * อ่านเอกสารภาษาไทยและฟังการสอนเพิ่มเติมเกี่ยวกับโครงสร้างข้อมูลทางออนไลน์ได้จาก เวบไซต์ของ อ.สมชาย ประสิทธิ์จูตระกูล
 * เรียนชดเชยสัปดาห์นี้ดังนี้
 * หมู่ 1 วันเสาร์ที่ 27 พ.ย. เวลา 9.00-12.00 ห้อง SCL 310
 * หมู่ 200 วันอาทิตย์ที่ 28 พ.ย. เวลา 13.00-16.00 ห้อง SMC 114
 * 14 พ.ย. 53:
 * ขอโทษที่ช้านะคะ อ. upload การบ้านทั้งสองข้อขึ้นระบบแล้วและนิสิตสามารถ submit เพื่อดูผลการรันและคะแนนได้ค่ะ
 * ส่งภายในวันอาทิตย์ที่ 21 พ.ย. เวลา 20.00 น.นะคะ
 * 9 พ.ย. 53:
 * ระบบยังมีปัญหา login นิดหน่อยนะคะ อ.กำลังพยายามแก้อยู่ค่ะ มาเช็คอีกที วันอังคารตอน 18.00 น.นะคะ
 * เจอและแก้ปัญหาแล้วค่ะ ทุกคนที่ส่ง password มา น่าจะเข้าระบบได้แล้ว
 * อ.กำลังทำ โจทย์การบ้าน 2 อยู่ จะให้ส่งภายใน วันอาทิตย์ที่ 21 พ.ย. เวลา 20.00 น.
 * ตอนนี้ลองใช้ระบบ grader และลองอ่านตัวอย่างโจทย์และเฉลยไปพลางๆก่อนค่ะ
 * ตัวอย่าง: การบวกข้อมูลทั้งหมด (ตัวอย่างคำตอบ)
 * นิสิตสามารถลอง submit ไปที่ระบบเพื่อดูการตรวจได้
 * 8 พ.ย. 53:
 * การบ้านที่ 2 ที่เป็นการเขียนโปรแกรม ส่งวันอาทิตย์ที่ 14 พ.ย. 20.00 น.
 * อาจารย์จะ upload การบ้านแรกภายในวันนี้ค่ะ ให้คอยเช็คด้วย
 * ระบบส่งและตรวจการบ้านเขียนโปรแกรมอยู่ที่ http://158.108.183.10:3000/ (อาจไม่สามารถเข้าถึงได้จากนอกม.เกษตร ให้ใช้ผ่าน vpn หากต้องการใช้นอกม.เกษตร)
 * ดูวิดีโอสาธิตการใช้งานที่ เซอร์เวอร์ หรือ Youtube
 * วิดีโอเป็นของอาจารย์ประมุขที่ใช้สอนวิชาของป.โท เครื่องเซอร์เวอร์ที่อาจารย์ประมุขใช้จะแตกต่างจากเครื่องของระบบในวิชานี้นะคะ อย่าสับสน
 * ถ้าใครไม่สามารถเข้าสู่ระบบได้ ให้รีบส่งอีเมล์หา อ.อุษา โดยเร็วที่สุด
 * 5 พ.ย. 53:
 * ประกาศการบ้าน 1 ส่ง 8 พ.ย.
 * 31 ต.ค. 53:
 * สร้างหน้าเว็บ

เกี่ยวกับวิชา

 * เวลาและสถานที่ :
 * (หมู่ 1 บรรยาย) จันทร์ ศุกร์ 12.30 - 14.00 น. ห้อง SMC 101
 * (หมู่ 200 บรรยาย) จันทร์ ศุกร์ 14.00 - 15.30 น. ห้อง SMC 126


 * ผู้สอน : อ.ดร.อุษา สัมมาพันธ์ (fsciusa at ku)
 * เวลาเข้าพบ: จันทร์และศุกร์ 10.00 - 12.00 น. หรือนัดหมายล่วงหน้า
 * ออฟฟิศ: ตึก SMC ห้อง 111


 * หนังสือ :
 * [CLRS] Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein, Introduction to Algorithms, 3rd ed., MIT Press, 2009.
 * [Kleinberg & Tardos] Jon Kleinberg and Eva Tardos. Algorithm Design. Addison Wesley, 2005.


 * การให้คะแนน :
 * 30% Midterm
 * 40% Final
 * 5% Quiz
 * 25% การบ้าน
 * 30% Quiz, การบ้าน, งานกลุ่ม, งาน present, extra credit ต่างๆ


 * ข้อกำหนดการส่งการบ้าน

การบ้านเขียนบรรยายหรือพิสูจน์ (งานกลุ่ม)
ให้แบ่งกลุ่มเป็นกลุ่มละประมาณ 5-8 คน อาจารย์จะให้คำถามคล้ายกับแบบฝึกหัดก่อน midterm ให้แต่ละกลุ่มไปทำงานร่วมกันมาทุกข้อ
 * ในวันเสาร์และอาทิตย์ที่ 12-13 ก.พ. จะมีการสอบ quiz ปากเปล่า โดยที่สมาชิกในกลุ่มจะเข้าสอบพร้อมกัน อาจารย์จะจัดตารางให้มาลงเวลากัน
 * อาจารย์จะถามสมาชิกแต่ละคนในกลุ่มเกี่ยวกับแบบฝึกหัดที่ให้ไปทำ และคำถามอื่นเกี่ยวกับสิ่งที่ได้เรียนมา
 * คะแนนก็จะได้ตามคำอธิบายที่สมาชิกในกลุ่มตอบ ทุกคนในกลุ่มจะได้คะแนนเท่ากัน ถึงแม้ว่าบางคนตอบถูก บางคนตอบผิด
 * ดังนั้น ก่อนเข้าสอบ ทุกคนในกลุ่มควรทำงานร่วมกัน สอนเพื่อนให้กลุ่มให้เข้าใจโจทย์และเนื้อหานะคะ

การบ้านครั้งที่ 1

 * ให้ วันจันทร์ที่ 5 พ.ย. 2553 ส่งก่อนเข้าเรียน วันจันทร์ที่ 8 พ.ย. 2553
 * ให้เขียนอธิบายใส่กระดาษด้วยลายมือนิสิต ดังนี้
 * เขียน algorithm ในการทำ insertion sort เพื่อเรียงลำดับข้อมูลจาก มากไปหาน้อย
 * เขียนอธิบายความถูกต้องของ algorithm นี้

การบ้านครั้งที่ 2

 * ให้เมื่อวันที่ 9 พ.ย. 2553 ส่งภายใน วันอาทิตย์ที่ 21 พ.ย. เวลา 20.00 น.  ผ่าน ระบบตรวจงาน
 * ตัวอย่างโจทย์ และ โค้ดเฉลย
 * การบวกข้อมูลทั้งหมด (ตัวอย่างคำตอบ)
 * นิสิตสามารถลอง submit เพื่อดูการตรวจได้
 * ทำโจทย์เขียนโปรแกรม 2 ข้อ
 * เรียงลำดับข้อมูล
 * สถิติ

การบ้านครั้งที่ 3

 * ให้ (ครบ) เมื่อวันศุกร์ที่ 3 ธ.ค. 2553 ส่งภายใน วันศุกร์ที่ 17 ธ.ค. วันศุกร์ที่ 7 ม.ค. เวลา 20.00 น.  ผ่าน ระบบตรวจงาน
 * pseudocode ของ BFS จาก wikipedia ที่จะช่วยในการทำการบ้านครั้งนี้ (บางข้อ)
 * ทำโจทย์เขียนโปรแกรม 3 ข้อ
 * Flood fill (Graph)
 * แข่งม้าในหมากรุก (Graph)
 * พ่อค้าคาวบอย (Divide and Conquer)

การบ้านครั้งที่ 4
ส่งภายใน วันศุกร์ที่ 21 ม.ค. 28 ม.ค. เวลา 23.59 น. ''' ผ่าน ระบบตรวจงาน (ส่งช้าได้ถึง วันอาทิตย์ที่ 6 ก.พ. เวลา 23.59 น. ขยายเวลาส่งไปอีก จะประกาศ deadline ให้ทราบล่วงหน้าทั่วกันเมื่อระบบขึ้นค่ะ)
 * ทำโจทย์เขียนโปรแกรม 3 ข้อ
 * ร้านถ่ายเอกสาร (Greedy) ลองรัน test case เพิ่มเติมได้ที่นี่ (ควรคลิกขวาแล้ว save as ไฟล์ .txt ค่ะ)
 * input1 | output1
 * input2 | output2
 * input3 | output3
 * input4 | output4
 * ทางที่สั้นที่สุด (Greedy) ลองรัน test case เพิ่มเติมได้ที่นี่ ( input | output) - ควรคลิกขวาแล้ว save as ไฟล์ .txt ค่ะ
 * Knapsack (Dynamic programming) ลองรัน test case เพิ่มเติมได้ที่นี่ (ควรคลิกขวาแล้ว save as ไฟล์ .txt ค่ะ)
 * input1 | output1
 * input2 | output2
 * input3 | output3
 * input4 | output4

การบ้านครั้งที่ 5
ส่งภายใน วันศุกร์ที่ 18 ก.พ. 25 ก.พ. 4 มี.ค. เวลา 23.59 น. ''' ผ่าน ระบบตรวจงาน
 * ทำโจทย์เขียนโปรแกรม 3 ข้อ
 * robot (Dynamic Programming) - (input1 | output1), (input2 | output2), (input3 | output3), (input4 | output4)
 * maxflow (Network Flow) - (input1 | output1), (input2 | output2), (input3 | output3)
 * บริจาคเลือด (Network Flow)