วันพฤหัสบดีที่ 24 มิถุนายน พ.ศ. 2553

MADLAB: เกมที่ใช้แนวคิด Direct Manipulation

  • โดเรมอน


  • Slide Board


  • Digital Glove



  • MADLAB SwordEdge Game (NSC Champion)



  • LiveBook (Imagine Cup Champion)

ผลิตภัณฑ์และต้นแบบ อุปกรณ์ที่เน้นการเชื่อมต่อกับมนุษย์

  • Sketchpad (YT)
  • MIT Sketching (YT)
  • Smartboard (YT)
  • Apple Lisa (YT)
  • Apple Newton (YT)
  • The first computer mouse (YT)
  • Microsoft Surface (YT)
  • Nintendo WII (YT)
  • Amazon Kindle (YT)
  • Sony E-Book Reader (YT)
  • Apple iPad (YT)

Direct Manipulation Interface

Direct Manipulation Interface (DMI) เป็นการควบคุมระบบโดยผลตอบสนองจะเหมือนกระทำกับของจริงมากที่สุด ตัวอย่างเช่น

  • การใช้งาน Google Earth ซึ่ง การเปลี่ยนตำแหน่งหรือการซูมเข้าออกของพิกัดของแผนที่ที่เราต้องการดูบนจอภาพ (YT)
  • การใช้ multi touch interface (YT)
  • Video Control (YT)
  • CAD Design (YT)
ถ้าอยากจะลองใช้ซอฟต์แวร์ ก็ลองไปที่ DimP ซึ่งจะมีโปรแกรมพร้อมวีดีโอตัวอย่างให้ไปโหลดเล่น โดยการนำเสนอของเขาดู (YT)

ถ้าสนใจแนวคิดเจ๋งที่น่าสนใจ ลองดูได้ สองอันนี้ครับ





)  

วันอังคารที่ 8 มิถุนายน พ.ศ. 2553

Universal Principles of Design

ผมซื้อหนังสือเล่มนี้มาจาก Asia Book ที่เซ็นทรัลแจ้งวัฒนะครับ (คงมีเล่มเดียวบนแผงเขาแหละ) หนังสือมีชื่อว่า Universal Principles of Design (อ่านบางหน้าจาก amazon.com หรืออ่านเล่มเก่าได้ที่ Google Book) เขียนโดย William Lidwell, Kritina Holden, and Jill Butler 




ผมซื้อมา ๙๕๐ บาท แต่บน amazon ขายแค่ USD 30 เอง หนังสือเล่มนี้ ผมใช้เป็นหนังสืออ่านประกอบในวิชา Computer Human Interfaces นะครับ 

แนะนำสำหรับผู้ที่ต้องการ แรงบันดาลใจ ในการออกแบบ

วันจันทร์ที่ 7 มิถุนายน พ.ศ. 2553

HCI - บรรยายครั้งแรก

วันที่ ๗ มิถุนายน ๒๕๕๓

วันแรกของการเปิดภาคต้น ปี ๒๕๕๓ มีการบรรยายที่ห้อง ๕๐๗ คนเรียนล้นห้องอย่างน่าตกใจ เพราะไม่เคยคิดเลยว่าจะต้องสอน วิชานี้ด้วยคนเรียนเยอะขนาดนี้ จะสอนได้หรือไม่ ก็ไม่ค่อยแน่ใจ

บรรยายไปก็ไม่มีอะไรมาก

อย่างแรกพูดถึงว่าเนื้อหาวิชานี้ไม่มีอะไร นิสิตก็ขำๆ เลยถามว่าเทอมที่แล้วเรียนอะไรมาบ้าง คำตอบอันนึงก็คือ เครือข่ายคอมพิวเตอร์ ซึ่งนิสิตก็บอกว่าเรียนอะไรมาเพียบ เลยตั้งคำถามง่ายๆว่า ให้บอกว่าเรียนอะไรมาบ้างมาสักสามประโยค เวลาผ่านไปสักพัก ก็ตอบได้แค่ประโยคเดียว คือ "การศึกษาการเชื่อมต่อระหว่างคอมพิวเตอร์กับคอมพิวเตอร์" ไม่ได้สามประโยคตามที่ต้องการ อยากรู้จังคนสอนจะรู้สึกอย่างไร

จากนั้น ก็เลยถามนิสิตว่าไหนว่าเรียนอะไรมาเยอะแยะ แต่ถ้าให้อธิบายสามประโยคทำไมมันยากนักหนา จึงอธิบายต่ออีกนิดว่า เนื้อหาวิชาเครือข่ายคอมพิวเตอร์ทั้งหมด อาจจะโฟกัสได้ที่จุดเดียวคือ ชื่อวิชา การขยายต่อเป็นสามประโยคก็คือการย้ายจุดโฟกัสออกไปอีกที่นึง เราควรจะปรับโฟกัสซึ่งหมายถึง จัดระดับความสำคัญตามเงื่อนไขที่กำหนดให้ ซึ่งเป็นหนึ่งในแนวคิดวิศวกรรม

พูดไปก็นอกเรื่องไม่ได้ใช้สไลด์เลย เนื่องจากใกล้เที่ยง นึกถึงโรงอาหารคณะวิศวะขึ้นมา ซึ่งโรงอาหารใหม่เปิดใช้วันแรก เลยให้คาดเดารูปแบบการดำเนินการ ซึ่งก็สรุปว่านั่นแหละคือ การเชื่อมต่อโรงอาหารกับผู้ใช้ โดยให้นึกถึงโรงอาหารนอกจากที่เห็น ก็ยังมีโรงอาหารตามห้าง ให้จินตนาการต่อว่าทำไมขายด้วยเงินสดบางที่ และใช่คูปองบางที่ แล้วก็สรุปว่า การใช้เงินสดของคณะก็ง่ายดี คณะได้ตังค์เลย ไม่ต้องคิดมาก ส่วนการใช้คูปองจะทำให้มีการจัดการได้ว่าร้านไหนขายไม่ดี ก็ออกไปเหอะ

ตัวอย่างถัดไป คือ ไอโฟน กะ ไอพอด ซึ่งจะบอกว่าเทคโนโลยีที่ใช้ผลิตส่วนใหญ่ วิศวกรมืออาชีพก็รู้จักเทคโนโลยีเหล่านั้นทั้งสิ้น แต่คนที่เข้าใจเลือก ก็ทำให้ทุกคนที่เคยผลิตมาก่อนกลับมาเป็นผู้ตาม

อืม รู้สึกตัวอย่างเยอะ พูดต่อถึง file manager ของ Windows 7 ที่ใครๆชื่นชอบ คำถามง่ายๆ (อีกแล้ว) ก็คือ คุณจะทำอะไรให้ดีกว่าที่ Microsoft ทำมาได้ไม๊ ก็มีคนตอบว่าได้บ้างไม่ได้บ้างมา ตามเรื่อง ก็มีคำถามต่อเนื่องว่า ถ้าคุณไม่รู้ปรับปรุงอะไร แล้วคุณคิดว่าที่เขาเอามาขายนั้นสมบูรณ์แบบแล้วหรือยัง แน่นอนตอบว่ายัง และมีคนวิจารณ์กันอีกเยอะว่าอยากทำโน่นนี่เพิ่ม ซึ่งก็ชี้ให้เห็นว่า เรายังมีช่องในการออกแบบให้ดีกว่าของที่มีอยู่

ตัวอย่างต่อไป ก็คือ Linux 10.0.4  ที่บ่นกันทั้งเมืองในการย้ายปุ่ม Max Min จากตรงมุมบนขวา ไปไว้มุมบนซ้าย หลายคนบอกว่าอันนี้เป็น วิทยาการเลียนแบบ MacOS แต่ผมคาดว่ามันเป็นเพราะ Ubuntu ยังมีความลับอะไรที่ยังไม่อยากบอก เพราะการเปลี่ยนแบบนี้มันดูเหมือนเป็นความคิดที่ไม่เข้าท่า แต่ไม่ว่าจะเป็นอะไรก็ตามก็คงบอกได้ว่า คนถนัดขวาคงไม่ชอบหรอก เพราะย้ายมือไกลกว่า และคนที่ชินกะอะไรอย่างหนึ่งไปแล้วก็คงไม่ชอบเปลี่ยนแปลงในเรื่องที่ไม่มีสาระแบบนี้

ซึ่งนึกถึง qwerty ที่ออกแบบผังแป้นพิมพ์ที่ลดให้ความเร็วในการพิมพ์ลดลงจังเลย

ต่อจากนั้นอีกนิด ก็เล่าถึง blog นี้แหละ โดยบอกนิสิตว่าจะใส่สาระลงใน blog  แทน แล้วก็เล่าถึงแผนการสอน การให้คะแนน การตัดเกรด

สุดท้ายเล่าเรื่องข้อสอบเก่า เพื่อชี้ให้เห็นว่า เราอยากได้อะไร เรียนอะไรกันในเทอมนี้

และขำๆ เตรียมคอมพ์ไว้เพื่อฉายจอภาพ ปรากฏว่าพล่ามจนหมดเวลา ใช้สไลด์ไปแค่ ๔-๕ แผ่นเองมั้ง

จบวันแรก

Computer Human Interfaces: แผนการสอน

วิชานี้ สอนที่ม.เกษตรศาสตร์ ด้วยรหัส ๒๐๔๔๘๒ โดยเป็นวิชาบังคับของหลักสูตร วิศวกรรมซอฟต์แวร์และความรู้ และเป็นวิชาเลือกของหลักสูตรวิศวกรรมคอมพิวเตอร์ เปิดสอนมาตั้งแต่ปี ๒๕๕๑ โดย ผมเป็นผู้สอนครับ

ประวัติของวิชานี้ ที่จำได้ก็คืออยู่ในหลักสูตรมาเกือบ ๒๐ ปี แต่ไม่เคยมีการเปิดสอน อันเนื่องเหตุผลต่างๆนาๆ ส่วนผมเองก็ไม่เคยสนใจจะสอนเลยครับจนมาวันนึงมีคนถามผมว่า Apple ทำไมถึงขาย iPod และ iPhone ได้ มันมีอะไรใหม่กว่า คนที่ทำ mp3 player หรือ cell phone มาก่อนหน้าตั้งหลายปีได้ มันเกี่ยวอะไรกับเทคโนโลยีหรือป่าว แม้คำตอบก็พอมีเกี่ยวกับเทคโนโลยีอยู่บ้าง แต่ถ้าถามคนโน้นคนนี้ คนที่สนใจ Apple มันเกี่ยวกับการออกแบบล้วนๆ ... ใครๆก็ว่างั้น

มันก็เป็นคำถาม ว่า ถ้านิสิตเกษตรของเราจะออกแบบได้ เราขาดความรู้อะไรเกี่ยวกับเทคโนโลยีเหล่านั้น คำตอบกว้างๆคือ เทคโนโลยีไม่ขาด แต่ขาดแนวคิดที่จะออกแบบคอมพิวเตอร์ให้ดี ... เท่านั้นแหละครับ

มันก็เป็๋นคำถามตรงประเด็นจากนิสิตว่า แล้ววิชานี้มีพื้นฐานอะไรยังไง คำถามอะไรก็ตาม sense หรือป่าว ผมก็มักมีคำตอบมาตรฐานก็คือ ... sense มีความสำคัญ แต่ถ้าไม่มีหลักการสนับสนุน

วิชานี้ เป็นเรื่องเกี่ยวกับ แนวทาง (guide line) เป็นส่วนใหญ่ ทฤษฎี (theory) กรอบปฏิบัติ (framework) ก็มีอยู่บ้าง นั่นก็แปลว่า สิ่งที่พูดไม่ใช่สิ่งที่ถึงกะต้องยึดเป็นสรณะ ไม่รู้ไม่ได้ตายแน่ หรืออะไรที่จำเป็นขนาดนั้น แต่ที่สำคัญที่สุดและเป็นเป้าหมายของวิชานี้ คือ การจินตนาการมุมมองของผู้ใช้โดยผู้ออกแบบเพื่อให้ได้ประโยชน์สูงสุดจากเทคโนโลยีที่เป็นไปได้ 

ผมเอาข้อสอบเทอมเก่าๆมาให้ดูเป็นตัวอย่างสักนิดแล้วกัน
  1. ในการโปรแกรมเพื่อพัฒนาซอฟต์แวร์ เราสามารถใช้ภาษาโปรแกรมได้หลากหลาย เช่น C C++ JAVA และ C# ฯลฯ และเรายังเห็นได้อีกว่า เรามีเครื่องมือที่ใช้กันอย่างหลากหลายเช่น ใช้ IDE ที่แตกต่างกัน เช่น eclipse netbeans, visual studio ฯลฯ หรือในบางครั้งพบว่าใช้เพียง editor พื้นฐานเท่านั้น เช่น vi หรือ notepad ฯลฯ หรือในบางครั้งเราอาจเห็นการเขียนโปรแกรมที่ใช้ภาพเป็นองค์ประกอบ (visual programming) ในการสร้างความเข้าใจ เช่น Logo, basic stamp หรือ UML ฯลฯ จงอธิบายว่าเหตุใดผู้คนจึงใช้เครื่องมือที่แตกต่างกันในการทำเรื่องๆเดียวกัน
  2. เมื่อหลายปีก่อน บ.ยักษ์ใหญ่ทางคอมพิวเตอร์แห่งหนึ่ง มีปัญหาทางกฎหมายกับประเทศในยุโรปในเรื่องของการผูกขาดและกีดกันทางการค้า เนื่องจาก ระบบ OS ของบริษัทนี้ ได้รวม web browser และ media player มาพร้อมการติดตั้ง OS นั้น ซึ่งข้อกล่าวหาคือทำให้บริษัทที่พัฒนา web browser และ media player เพียงอย่างเดียว ในเชิงเศรษฐศาสตร์ เป็นการกีดกันทางการค้าเพราะไม่มีใครสามารถขายผลิตภัณฑ์ของตนได้เลยเพราะแข่งขันกับของฟรีซึ่งถือว่าเป็นการทุ่มตลาด จงให้เหตุผลในเชิงของ HCI ว่ากรณีนี้การกีดกันทางค้าอย่างไร และในทำนองเดียวกัน บริษัทแห่งนี้ได้พ่วงโปรแกรม Instant messing มาด้วยแต่ไม่ถูกฟ้องว่ากีดกันทางการค้า และในทำนองเดียวกัน จงให้เหตุผลในเชิงของ HCI ว่ากรณีนี้ไม่เป็รการกีดกันทางค้าอย่างไร
  3. ในการควบคุมเครื่องจักรเช่น รถยนต์ หรือ เครื่องบิน จะมีอุปกรณ์เฉพาะในการควบคุม แต่เราพบว่าในการเล่นวีดีโอเกม ที่เกี่ยวข้องกับการแข่งรถ หรือ เครื่องบิน เราสามารถใช้ joystick ควบคุมได้ จงให้เหตุผลว่าเราสามารถ บังคับ รถยนต์ หรือ เครื่องบิน จริงๆ ด้วย joystick ได้หรือไม่
  4. อะไรคือปัญหาที่สำคัญอันเป็นที่มาของการศึกษาและวิจัยด้าน Human Computer Interaction
  5. มหาวิทยาลัยมีแนวคิดที่จะให้นิสิตใหม่ป้อนข้อมูลที่ถูกต้องด้วยตนเองก่อนเข้ามอบตัวกับทางมหาวิทยาลัย จึงต้องการออกแบบระบบเก็บข้อมูลที่จะทำให้เจ้าหน้าที่สามารถตรวจสอบที่กรอกมากับเอกสารต้นฉบับได้สะดวก จงออกแบบจอภาพเว็บ เพื่อเก็บประวัติส่วนตัวของนิสิต ซึ่งประกอบด้วยข้อมูล เลขประจำตัวประชาชน, ชื่อ, นามสกุล, อายุ, ที่อยู่ซึ่งประกอบด้วย บ้านเลขที่ ตำบล อำเภอ จังหวัด และ รหัสไปรษณีย์, วันเดือนปีเกิด, ชื่อ นามสกุล เลขประจำตัวประชาชน และที่อยู่ของผู้ปกครอง, ภาพหน้าตรงนิสิต, ภาพบัตรประชาชน, ภาพทะเบียนบ้าน และจงออกแบบหน้าจอเพื่อให้เจ้าหน้าที่ตรวจสอบความถูกต้อง คุณสามารถอธิบายกระบวนการเพิ่มเติมนอกจากนี้ได้ถ้าจำเป็น
  6. เนื่องจาก การใช้คอมพิวเตอร์ในปัจจุบันการใช้ interface แบบต่างๆอาจจะง่ายดีอยู่ แต่เนื่องจากเหตุผลมากมาย คุณเลยได้รับมอบหมายให้ออกแบบ ชุดคำสั่งพิเศษในลักษณะ command line เพื่อใช้ในการลงทะเบียน เพิ่มวิชา ถอนวิชา และ ดูคะแนนทั้งหมดหรือเฉพาะวิชาที่ต้องการ และแน่นอนว่าต้องเป็นคำสั่งภาษาไทย
  7. จงวิจารณ์เชิงเปรียบเทียบ เพื่อจำแนกประเภทการใช้งานออกจากกันได้อย่างชัดเจน ระหว่าง email, twitter, instant messaging, webboard และ blog

การเรียนการสอนในวิชานี้ เน้นการออกแบบ การบ้าน การนำเสนอ การวิจารณ์ จะเป็นจุดหลักของการเรียน ตำรามีผลในเรื่องการเพิ่มประสบการณ์และแนวทางที่เป็นทางการที่จำเป็นอย่างยิ่งในการใช้ประกอบการเรียน ผมใช้หนังสือชื่อ "Designing the User Interface: Strategies for Effective Human-Computer Interaction (5th Edition)" เขียนโดย Ben Shneiderman, Catherine Plaisant, Maxine Cohen, Steven Jacobs

ปกเป็นอย่างนี้ครับ 

สไลด์: ใช้ของหนังสือ เป็นหลัก ผมจะแทรกบ้างตามโอกาส
การให้คะแนน: กลางภาค ๔๐ ปลายภาค ๔๐ การนำเสนอในชั้นเรียน ๒๐
เกรด: ๕๐ ผ่าน เกินกว่านั้น พิจารณาจากการกระจายของคะแนน
ห้องเรียน: ๕๐๗

FAQ
  • ทำไมรับแค่ ๔๐ คน : ก็อยากสอนหมดทุกคนนะครับ แต่วิชานี้เป็นวิชาเน้นการคุยกันในห้องครับ รับหมด คุณก็ไม่ได้อย่างที่ควรเป็นอยู่ดีครับ
  • ปี ๓ ลงได้ไม๊ : ก็เก้าอี้เต็มครับ ปีหน้าผมเปิดให้อยู่ดี