ชลอชีวิตที่วิ่งเร็ว…ด้วยการ…ขีดๆ เขียนๆ

16 Aug
2015-08-14 15.04.00

ช่วงนี้ด้วยกรอบเวลาของการปฏิบัติงานเริ่มบีบอัดเข้ามาทำให้ช่องว่างของชีวิตเริ่มแคบลง แคบลงไปทุกๆ ที ไม่ว่าจะเป็ภาระกิจการจัดการเรียนการสอน การประกันคุณภาพ การวิจัย ตลอดจนการต้องตัดสินใจที่ส่งผลกระทบต่อตนเอง และคนอื่นๆ อีกหลายต่อหลายเรื่อง สิ่งที่ต้องพิจารณาต่อชีวิตตนเองในตอนนี้คือ ยิ่งเร่งเครื่อง ยิ่งวิ่งตามกระแสชีวิตที่รวดเร็วก็จะยิ่งพัง และเกิดความล้มเหลวในที่สุด การหาทางชลอชีวิตให้ช้าลง ลดทอนบางอย่างที่ไม่จำเป็นออกไป และให้ความสำคัญกับเรื่องบางเรื่องให้มากขึ้น น่าจะเป็นจุดเริ่มที่ดีที่จะควบคุมชีวิตให้คงที่อยู่ในกระแสต่อไปได้อย่างมั่นคง เลือกทำในสิ่งที่จำเป็น…ปล่อยวางบางสิ่ง ให้มันผ่านไปแบบง่ายๆ ก็คงไม่เสียหายอะไรนัก วันนี้ได้รับแรงบันดาลใจอะไรใหม่ๆ ในหลายๆ เรื่อง จากการที่เอาตัวเองเข้าไปอยู่ในสังคมของ Tumblr#studyblr เข้าไปอยู่ในกลุ่มของนักเรียน เด็กนักเรียน นักศึกษาที่กำลังมุ่งมั่นกับการเรียน มีการทำ Lecture Note ออกมาอวด มาประชันกัน ทำให้อดคิดถึงสมัยกำลังเรียนมหาวิทยาลัยไม่ได้ ที่ชีวิตมีการเรียน การอ่าน และการขีดๆ เขียน วันนี้เลยพยายามเอาแรงบันดาลใจนี้มาใช้กับตัวเอง ไม่ว่าจะในเรื่องของการทำงาน … Read More »

การค้นหาในปริภูมิสภานะโดยใช้อัลกอริทึ่มปีนเขา (Hill-Climbing)

21 Feb
hill-climbing1

เตรียมการสอนเรื่อง Heuristic Search โดยเรื่องแรกที่จะสอนคือ การค้นหาในปริภูมิสภานะโดยใช้อัลกอริทึ่มปีนเขา หรือ Hill Climbing ซึ่งเป็นอัลกอริทึ่มอย่างง่ายที่สุด โดยกระบวนการสอนยังใช้ปัญหาเป็นฐานในการสอน คือ ปัญหาเรื่อง Travelling Sealsman Problem เช่นเดิม แต่เพิ่มจำนวนของเมืองให้มากขึ้น เพื่อให้ปริภูมิสถานะมีขนาดใหญ่มากๆ จนไม่สามารถค้นหาแบบแจกแจงสถานะทั้งหมดในปริภูมิได้ หรือ ไม่สามารถใช้การค้นหาแบบ Exhaustive Search ได้ จากตัวอย่างที่ยกขึ้นมานั้นเพิ่มจำนวนเมืองให้เป็น 10 เมือง ซึ่งจำนวนเส้นทางที่เป็นไปได้ที่เกิดจาการสับเปลี่ยนตำแหน่ง หรือ permutations จะสามารถคำนวนได้จาก 10! ซึ่งเป็นจำนวนมหาศาล ลักษณะการทำงานของอัลกอริทึ่มปีนเขา คือการนำเอาค่าฮิวริสติกเข้ามาช่วยตัดสินใจ โดยจะตัดสินใจเลือกเส้นทางการค้นหาว่าจะดำเนินไปในทิศทางใด โดยจะเลือกจากตำแหน่งที่มีค่าฮิวริสติกที่ดีขึ้นจากสถานะปัจจุบันเท่านั้น ซึ่งเปรียบเสมือนการปีนเขา คือจะมีการปีนขึ้นไปยังจุดที่มีความสูงกว่าตำแหน่งปัจจุบันเท่านั้น การเรียนรู้จากอัลกอริทึ่มปีนเขา … Read More »

ตัวอย่างการค้นหาในปริภูมิสภานะแบบค้นหาทั้งหมด (exhaustive search)

8 Feb
16285282530_9e1b217ee8_b

บทเรียนต่อไปที่ต้องเตรียมการสอนคือ การค้นหาในปริภูมิสภานะ หรือ state space เรื่องของการค้นหาฟังดูแล้วเหมือนจะไม่ยากแต่จริงๆ มีประเด็นที่น่าสนใจมากมายในฟิลด์นี้ และน่าจะเป็นเรื่องยากสำหรับนักศึกษาที่ไม่มีพื้นฐานเรื่องการคิด ระบบอัลกอลิทึ่ม และมีพื้นฐานการเขียนโปรแกรมที่ไม่ดีพอสมควร การปูพื้นฐานกระบวนการค้นหาพื้นฐาน จากวิธีที่ง่ายๆ เพื่อเชื่อมโยงไปสู่กระบวนการค้นหาแบบฮิวริสติก จึงเป็นเรื่องที่จำเป็นอย่างมาก ดังนั้นในเคสแบบนี้การจะสอนให้นักศึกษาเข้าใจพื้นฐานและต่อยอดไปสู่ระดับที่สูงขึ้นคงต้องใจเย็นกันสักหน่อย และการนำเอาวิธีการสอนแบบใช้ปัญหาเป็นฐาน (Problem Based Learning) ดูจะเป็นเรื่องที่เหมาะสมและน่าจะเป็นไปได้ที่สุด เลยเลือกปัญหาที่เป็นหาที่ง่ายที่สุดสำหรับฟิลด์ทางด้น AI มาคือ ปัญหาการเดินทางของพนักงานขาย หรือ Traveling Salesman Problem เริ่มจากการจำลองเมืองต่างๆ ให้อยู่ในรูปของพิกัด X และ Y บนระนาบ 2 มิติ และสอนวิธีการค้นหาระยะทางระหว่างจุดด้วยสูตรการคำนวนทางคณิตศาสตร์ ซึ่งผู้สนใจสามารถเข้าไปดูสูตรคำนวนได้ที่ calculate distance … Read More »

การออกแบบและพัฒนาเว็บ : การนำเสนอข้อมูลในรูปแบบของตาราง (Table)

1 Feb
16229868397_dcf2229faa_b

เนื่องจากวันที่ 2 – 3 ก.พ. 2558 นี้ผมต้องไปราชการเกี่ยวกับงานประกันคุณภาพการศึกษา ที่ อุบลราชธานี ทำให้ไม่สามารถดดำเนินการจัดการเรียนการสอนได้ตามแผนที่วางไว้ แต่อย่างไรก็ตามเพื่อไม่ให้การเรียนการสอนของนักศึกษา หยุดชะงัก ซึ่งจะเป็นผลเสีย ผมเลยจัดการให้นักศึกษาสามารถที่จะศึกษาเรียนรู้ได้ด้วยตนเอง และลงมือปฏิบัติเพื่อสร้างชิ้นงานมาส่งได้ เรื่องที่จะต้องจัดการเรียนการสอนในรายวิชา การออกแบบและพัฒนาเว็บ อยู่ในหัวข้อเรื่อง การออกนำเสนอข้อมูลในรูปแบบของตาราง หรือว่า Table พอดี ลักษรณะของตาราง ในภาษา HTML นั้นสามารถใช้ Tag ในการสร้างองค์ประกอบของตารางขึ้นมา ได้จาก Tabe ดังต่อไปนี้

วิชาการออกแบบและพัฒนาเว็บ : เริ่มต้นความกล้าที่จะคิด

28 Jan
16361910316_f5469bedde_b

ให้นักศึกษาที่ลงทะเบียนเรียนในรายวิชาการออกแบบและพัฒนาเว็บ เริ่มตีโจทย์ความต้องการของตนเองที่จะทำการพัฒนาเว็บไซต์ ว่า “อยากจะทำเว็บอะไร ?” พยายามให้นักศึกษาเริ่มต้นโดยการถามความต้องการของตัวเองก่อนว่าถ้ามีโอกาสที่จะทำเว็บไซต์แล้ว ตัวเองต้องการจะทำเว็บไซต์อะไร และอะไรคือสิ่งที่ตัวเองชอบ จะสื่อสิ่งที่ชอบออกมาในรูปแบบอะไรและอย่างไร นักศึกษาทุกๆ คนจะต้องเขียนประเด็นที่ต้องการพัฒนาเป็นเว็บไซต์ ลงใจสมุด จากนั้นค่อยๆ เขียน วาดภาพสิ่งที่ตนเองต้องการนำเสนอออกมาเป็นรูปภาพ ระบายสีให้ชัดเจน ทำแบบนี้โดยไม่ต้องใช้ความรู้ ทฤษฏี ใดๆ มาจับ หรือเกี่ยวข้อง เอาแค่จินตนาการอย่างเดียวล้วนๆ ที่เหลือจากนั้น ถึงจะเป็นการจัดการเรียนการสอนที่ป้อนความรู้ต่างๆ ที่จำเป็นสำหรับการสร้างชิ้นงานพื้นฐานเบื้องต้น แต่จะไม่สอนความรู้ที่เป็นเทคนิคขั้นสูงแนวประยุกต์ใดๆ เพราะนักศึกษาจะต้องค้นคว้าหาความรู้เอาเองเพื่อตอบสนองความต้องการในการสร้างสรรของตัวเอง เมื่อนักศึกษามีความรู้เพิ่มมากขึ้น จากการเรียนทั้งความรู้เรื่อง HTML พื้นฐาน ทฤษฏีสี ทฤษฏีการออกแบบ และหลักของความงาม จะให้นักศึกษาเริ่มพัฒนางานของตนเองโดยการวาดภาพร่างของเว็บไซต์ที่ตนเองต้องการสร้างลงในสมุดซ้ำๆ จนได้งานที่แน่ใจแล้วว่าสามารถพัฒนาเป็นชิ้นงานได้จริงๆ แล้วค่อยปล่อยให้นักศึกษาลงมือทำจริงๆ และเปิดเวทีให้นักศึกษาได้มีโอกาส นำเสนอแลกเปลี่ยนข้อคิดเห็น ซักถามเพื่อพัฒนาทักษะในการนำเสนอ … Read More »

Pyplot Animation Graph

12 Jan
16068280880_76cfdb41a7_z

พยายามจะทำโปรแกรมเพื่อใช้สำหรับประกอบการสอนในรายวิชา AI โดยเนื้อหาแรกๆ ต้องการจะอธิบายให้เด็นนักศึกษาเข้าในเรื่องการปริภูมิค้นหหาและอัลกอริทึ่มของการค้นหา คาดว่าการอธิบายเชิงทฤษฏีเพียงอย่างเดียวจะไม่สามารถทำให้เด็กๆ เข้าใจถึงเนื้อหา คอนเซ็ป ตลอดจนกระบวนการทำงานตามอัลกอริทึ่มได้ ทางออกที่ดีที่สุดคือการเขียนโปรแกรมเพื่อใช้สำหรับเป็นตัวอธิบาย และสาธิตการทำงานให้เห็นภาพ และโปรแกรมจะต้องมีการทำงานผ่าน GUI ด้วยเด็กๆ นักศึกษาถึงจะเห็นภาพได้ชัดเจนยิ่งขึ้น กระบวนการเขียนโปรแกรมโดยใช้ GUI เข้ามาช่วย ผมเลือกเครื่องมือที่ง่ายที่สุดคือ pyplot ซึ่งเป็นไลบารีที่อยู่ใน Matplotlib ซึ่งเน้นไปที่การแสดงกราฟในรูปแบบต่างๆ และสามารถแสดงกราฟแบบแอนนิเมชั่นแบบเรียลไทม์ได้อีกด้วย การทำความเข้าใจการเขียนโปรแกรมโดยใช้ pyplot ดูจะไม่ยากเย็นอะไรรูปแบบ API ค่อนข้างง่าย การเขียนโปรแกรมกระชับมากๆ ด้วยการคีย์โค๊ดเพียงไม่กี่บรรทัดก็สามารถสร้างและแสดงกราฟ ที่ซับซ้อนได้แล้ว แต่ปัญหาที่ยากจริงๆ คือ การสร้างกราฟที่มีการทำงานเป็นแอนนิเมชั่น ซึ่งมีการปรับรูปแบบกราฟไปมาตามข้อมูลนำเข้า (Input Data) ตามที่เราต้องการ เพราะการสร้างกราฟในรูปแบบดังกล่าวจะต้องใช้งานผ่าน API … Read More »

บันทึกการติดตั้ง PySide บน OSX Yesomitte 10.10

1 Jan
Screen Shot 2558-02-05 at 8.40.45 AM

ลองมาหลายวิธี จนเจอวิธีที่ง่ายที่สุด ก่อนอื่นๆ บนเครื่องต้องมี QT Library ก่อน ถ้ายังไม่มีให้ติดตั้งผ่าน Homebrew ก่อน $ brew install qt จากนั้นติดตั้ง PySide ผ่าน Homebrew เช่นกัน $ brew install pyside เมื่อติดตั้งเสร็จแล้ว ตัวไบนารีของ pyside จะอยู่ที่ # /usr/local/lib/python2.7/site-packages/PySide ให้สร้าง Symbolic Link เองไปไว้ที่ site-package ของ Python โดย $ cd /Library/Python/2.7/site-packages … Read More »