Skip to main content

Tag: การเขียนโปรแกรม

ขอแสดงความยินดีกับตัวแทนประเทศไทยในแข่งขันคอมพิวเตอร์โอลิมปิกระหว่างประเทศ ประจำปี 2560

ขอแสดงความยินดีกับตัวแทนประเทศไทยในแข่งขันคอมพิวเตอร์โอลิมปิกระหว่างประเทศ ประจำปี 2560 (IOI 2017) ระหว่างวันที่ 28 กรกฎาคม – 4 สิงหาคม 2560 ณ กรุงเตหะราน สาธารณรัฐอิสลามอิหร่าน มีดังนี้
1. นายอรัญชย์ วงศ์พร้อมมูล โรงเรียนมหิดลวิทยานุสรณ์ ชั้นมัธยมศึกษาปีที่ 5 ได้รับรางวัลเหรียญเงิน
2. นายภาสพล เสาวคนธ์ โรงเรียนเตรียมอุดม ชั้นมัธยมศึกษาปีที่ 6 ได้รับรางวัลเหรียญทองแดง
3. นายภาวิน พร้องเผ่าพันธุ์ โรงเรียนมหิดลวิทยานุสรณ์ ชั้นมัธยมศึกษาปีที่ 6 ได้รับรางวัลเหรียญทองแดง
4. นายรุจธร ฉายรัตนอภิรมย์ โรงเรียนเตรียมอุดมศึกษา ชั้นมัธยมศึกษาปีที่ 6 ได้รับรางวัลเหรียญทองแดง

อรัญชย์ วงศ์พร้อมมูล ภาสพล เสาวคนธ์ ภาวิน พร้องเผ่าพันธุ์ รุจธร ฉายรัตนอภิรมย์

จำนวนผู้เข้าแข่งขัน 308 คน จาก 84 ประเทศ

โดยมีคณะอาจารย์ผู้ควบคุมทีม ได้แก่

  • ผศ.ดร.จิตร์ทัศน์ ฝักเจริญผล มหาวิทยาลัยเกษตรศาสตร์
  • ผศ.ดร.อรรถสิทธิ์ สุรฤกษ์ จุฬาลงกรณ์มหาวิทยาลัย
  • อาจารย์อรรถสิทธิ์ เมตตานันท มหาวิทยาลัยเกษตรศาสตร์
  • ดร.นิวรรณ วัฒนกิจรุ่งโรจน์ มหาวิทยาลัยสงขลานครินทร์
  • อาจารย์วชิรพรรณ ทองวิจิตร สสวท.

(จากซ้ายไปขวา) ดร.นิวรรณ วัฒนกิจรุ่งโรจน์  อาจารย์อรรถสิทธิ์ เมตตานันท  ผศ.ดร.อรรถสิทธิ์ สุรฤกษ์  ผศ.ดร.จิตร์ทัศน์ ฝักเจริญผล  อาจารย์วชิรพรรณ ทองวิจิตร

ผลการแข่งขันคอมพิวเตอร์โอลิมปิก 2016

ผลการแข่งขันคอมพิวเตอร์โอลิมปิก 2016 ณ เมืองคาร์ซาน ประเทศรัสเซีย มีดังนี้

  • นายพีรสิชฌ์ เจริญจิตเสรีวงศ์ โรงเรียนสาธิตจุฬาลงกรณ์มหาวิทยาลัย ฝ่ายมัธยม ได้เหรียญเงิน
  • นายเมธัส เกียรติชัยวัฒน์ โรงเรียนเบญจมราชรังสฤษฎิ์ ได้เหรียญทองแดง
  • นายปิยวัฒน์ อานันทคุณ โรงเรียนมหิดลวิทยานุสรณ์ ได้เหรียญทองแดง
  • นายนนทกฤษ ไชยวงค์ โรงเรียนมหิดลวิทยานุสรณ์. ได้เหรียญทองแดง

ioi2016

ในการเดินทางแข่งขันครั้งนี้มีคณะอาจารย์ผู้ฝึกสอนดังนี้

  • ผศ.ดร.นัทที นิภานันท์ ภาควิชาวิศวกรรมคอมพิวเตอร์ จุฬาลงกรณ์มหาวิทยาลัย หัวหน้าทีม
  • ผศ.ดร.สุกรี สินธุภิญโญ ภาควิชาวิศวกรรมคอมพิวเตอร์ จุฬาลงกรณ์มหาวิทยาลัย รองหัวหน้าทีม
  • อ.ผนวกเดช สุวรรณทัต ศูนย์เสริมสร้างการเรียนรู้และการสอน มหาวิทยาลัยเทคโนโลยีพระจอมเกล้าธนบุรี เป็นผู้ช่วยหัวหน้าทีม
  • ดร.อัครา ประโยชน์ ภาควิชาวิทยาการคอมพิวเตอร์และสารสนเทศ มหาวิทยาลัยเทคโนโลยีพระจอมเกล้าพระนครเหนือ ผู้สังเกตการณ์
  • นายพนมยงค์ แก้วประชุม สาขาวิชาเทคโนโลยี ผู้จัดการทีม

ในปีนี้ทีมที่ส่งนักเรียนมาแข่งขัน 81 ทีมประเทศ และมีประเทศมาสังเกตการณ์เพื่อเตรียมส่งนักเรียนเข้าแข่งอีก 5 ประเทศ จำนวนผู้เข้าแข่งขัน 308 คน

เริ่มต้นสอนเขียนโปรแกรมง่ายนิดเดียว

       การเขียนโปรแกรมเป็นการเรียนรู้ที่ทำให้ผู้เรียนมีทักษะการคิดวิเคราะห์ และการแก้ปัญหา  (critical thinking and problem solving) ซึ่งเป็นหนึ่งในทักษะที่จำเป็นสำหรับการเรียนรู้ในศตวรรษที่ 21 ทำให้ผู้เรียนมีการคิดแบบมีเหตุผล เป็นระบบ มีความคิดสร้างสรรค์ สามารถนำไปใช้ในการแก้ไขปัญหา การสร้างงานที่ดี  และดำรงชีวิตอยู่ได้ในปัจจุบัน ทั้งเกิดการเรียนรู้แบบยั่งยืนในอนาคต

ทำไมต้องเขียนโปรแกรม

  1. การโปรแกรมเป็นความรู้พื้นฐานในโลกยุคดิจิทัล

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

ผู้เรียนฝึกการเขียนโปรแกรมจากสื่อในแท็บเล็ต รูปที่ 1 ผู้เรียนฝึกการเขียนโปรแกรมจากสื่อในแท็บเล็ต

  1. พัฒนาการคิดและทำงานเป็นขั้นตอน

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

  1. ฝึกเป็นนักออกแบบและผู้สร้าง

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

  1. การเขียนโปรแกรมง่ายกว่าที่คิด

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

เห็นมั้ยล่ะว่า  “การเขียนโปรแกรมง่ายนิดเดียว”

 

เริ่มต้นสอนเขียนโปรแกรมกันเถอะ

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

 

  1. เริ่มต้นสอนเขียนโปรแกรมโดยไม่ต้องใช้คอมพิวเตอร์

          เราสามารถเริ่มต้นสอนเขียนโปรแกรมได้  โดยใช้กิจกรรมที่เปิดโอกาสให้นักเรียนได้ฝึกคิดอย่างมีเหตุผลและทำงานอย่างเป็นขั้นตอน  แล้วมีการแปลงแนวคิดในการทำงานต่างๆ เป็นรหัสคำสั่งที่ชัดเจนและสามารถนำไปปฏิบัติตามได้ ในที่นี้ผู้เขียนขอยกตัวอย่างกิจกรรมอย่างง่ายสำหรับนักเรียน ช่วงชั้น ป.4-ป.6

ซึ่งครูเริ่มการสอนโดยให้สถานการณ์แล้วให้นักเรียนเขียนรหัสคำสั่ง หรือให้รหัสคำสั่งแล้วให้นักเรียนปฏิบัติตามคำสั่ง ดังนี้

ตัวอย่างที่ 1   ครูให้สถานการณ์เป็นแผนที่ แล้วให้นักเรียนเขียนรหัสคำสั่ง ดังนี้

สถานการณ์  นักเรียนช่วยหุ่นยนต์ตามหาเพชร โดยเขียนรหัสคำสั่งเรียงต่อกันตามการสั่งงาน

02

ตัวอย่างที่ 2   ครูให้รหัสคำสั่ง แล้วให้นักเรียนใส่คำสั่งแต่ละคำสั่งลงในแผนที่ ที่มีแค่ตำแหน่งของหุ่นยนต์ ดังนี้

สถานการณ์  นักเรียนช่วยหุ่นยนต์ตามเก็บเพชร โดยทำตามรหัสคำสั่งต่อไปนี้

03

จากตัวอย่างที่ 2 ครูอาจถามเพิ่มเติมถึงจำนวนเพชรและตำแหน่งที่เพชรอยู่  นอกจากนี้จะเห็นว่ามีบางคำสังที่ทำงานซ้ำกัน ซึ่งครูอาจกำหนดสัญลักษณ์ () แทนการวนซ้ำ เช่น  ➔(3) หมายถึง การเดินไปทางขวา 3 ครั้ง  

2) เริ่มต้นสอนเขียนโปรแกรมโดยใช้สื่อเรียนรู้ใน code.org

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

03.1รูปที่ 2 เว็บไซต์ Cod.org

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

04รูปที่ 3 แถบภารกิจ

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

06รูปที่ 4 การแสดงผลลัพธ์ในแต่ละภาระกิจ

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

07

รูปที่ 5 เกียรติบัตรเมื่อผ่านกิจกรรม

เพื่อช่วยให้ครูสามารถนำสื่อเรียนรู้ใน code.org ไปใช้ในการสอนได้  ผู้เขียนขอแนะนำขั้นตอนในการดำเนินกิจกรรมดังนี้

  1. ครูจัดเตรียมสื่ออุปกรณ์ที่ใช้ในการสอน โดยเลือกสื่อเรียนรู้สำหรับนักเรียน ซึ่งพิจารณาจากอายุของนักเรียนหรือระดับชั้น  หลังจากนั้นจัดเตรียมอุปกรณ์ที่เกี่ยวข้องต่างๆ  เช่น คอมพิวเตอร์  แท็บเล็ต  ลำโพง หูฟัง ระบบอินเทอร์เน็ต  
  2. ครูจุดประกายความคิดในช่วงเริ่มต้นชั่วโมง ให้นักเรียนเห็นถึงประโยชน์และเหตุผลของการเขียนโปรแกรม โดยอาจให้นักเรียนช่วยกันยกตัวอย่างการใช้รหัสคำสั่งหรือโค้ดใช้ชีวิตประจำวัน หรืออาจให้นักเรียนดูวีดิทัศน์ แสดงความเห็นจากผู้ประสบความสำเร็จด้านการเขียนโปรแกรม
  3. ครูให้ link สำหรับการเข้าถึงสื่อใน code.org  โดยให้นักเรียนเริ่มศึกษาและทำภารกิจไปตามลำดับจนผ่านทุกภารกิจ ครูควรกระตุ้นให้นักเรียนทำงานด้วยตนเอง
  4. ครูให้นักเรียนสร้างงานของตนเองตามจินตนาการ หรือครูกำหนดสถานการณ์ เพื่อให้นักเรียนได้นำความรู้ต่างๆ มาประยุกต์ในการสร้างชิ้นงาน
  5. ครูควรให้รางวัลหรือคำชมเชยแก่นักเรียน หลังจากนักเรียนทำภารกิจต่างๆ เสร็จแล้ว ให้อัปโหลดผลงานลง code.org  เพื่อเผยแพร่ผลงานให้ผู้อื่นดู
  6. ครูสรุปความรู้และเชื่อมโยงไปสู่การเขียนโปรแกรมเพื่อสร้างซอฟต์แวร์ต่อไป

 

สรุป

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

“ถ้านักเรียนของคุณยังไม่ได้เรียนการเขียนโปรแกรม ควรเริ่มได้แล้ว ณ บัดนี้”

 

.

ยกร่างบทความโดย นางสาวทัศนีย์   กรองทอง
บรรณาธิการโดย คณะบรรณาธิการสาขาวิชาเทคโนโลยี สสวท.

อ้างอิง

https://code.org

http://readwrite.com/2013/05/31/programming-core-skill-21st-century

https://www.quora.com/Why-is-programming-so-important-in-the-modern-world

http://www.tynker.com/blog/articles/ideas-and-tips/four-reasons-why-kids-should-learn-programming/

Raptor:เครื่องมือเพิ่มพลังการเรียนรู้การโปรแกรม

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

การสร้างกระบวนการคิดแบบลำดับขั้นด้วย RAPTOR

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

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

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

image001รูปที่ 1 โปรแกรมบวกเลขแบบอนุกรม

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

เปลี่ยนจากผังงานเป็นโปรแกรมภาษา

            โปรแกรม Raptor สามารถแปลงผังงานเป็นโปรแกรมภาษาได้ เช่น Ada C# C++ และ JAVA โดยไปที่เมนู generate และเลือกภาษาที่ต้องการ

image002รูปที่ 2 การแปลงผังงานเป็นภาษาคอมพิวเตอร์ด้วย RAPTOR

ตัวอย่างผลการแปลงผังงานเป็นโปรแกรมภาษา C++ ดังรูป

image003รูปที่ 3 ตัวอย่างคำสั่งโปรแกรมภาษา C++

            จากรูปที่  3 จะเห็นได้ว่าโปรแกรมที่ได้จะเป็นคำสั่งที่เป็นโครงร่างยังไม่สามารถนำไปแปลและประมวลผลได้ จะต้องมีการแก้ไขให้สมบูรณ์ตามหลักไวยากรณ์ของภาษาก่อนที่จะนำไปใช้ดังรูป

image004รูปที่ 4 โปรแกรมที่ปรับแก้ให้ถูกต้องตามหลักไวยากรณ์ภาษา

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

** ผู้ที่สนใจสามารถ download RAPTOR และตัวอย่าง RAPTOR [3] ได้จาก http://raptor.martincarlisle.com/

ผลป้อนกลับจากการใช้ RAPOR เปรียบเทียบกับผังงาน

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

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

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

ยกร่างบทความโดย นางสาวมุทิตา สำเภาเงิน  โรงเรียนชัยนาทพิทยาคม
บรรณาธิการโดย คณะบรรณาธิการสาขาคอมพิวเตอร์ สสวท

อ้างอิง

  1. ธันวรุจน์ บูรณสุขสกุล(2558). ธรรมชาติของวัยรุ่น[ออนไลน์]. เข้าถึงได้ที่ http://www.smartteen.net/main/_admin/download/4-30-1387795341.pdf. สืบค้นเมื่อวันที่ 21 มกราคม 2558.
  2. บุรินทร์ รุจจนพันธุ์ (2557). ประเภทของ Flowchart[Online]. เข้าถึงได้ที่ http://www.thaiall.com/flowchart/indexo.html. สืบค้นวันที่ 20 มกราคม 2558.
  3. Elizabeth Drake and Stewart Venit(2011). RAPTOR Flowchart [Online].Web site http://raptor.martincarlisle.com/RAPTOR_data_files_Drake.pdf. Retrieved January, 20, 2015.

จาก Flowchart สู่ Scratch

          สิ่งสำคัญของการแก้ปัญหาใดๆ คือการกระบวนการแก้ปัญหา ในวิชาด้านวิทยาคอมพิวเตอร์เรียกว่าขั้นตอนวิธี (Algorithm)   ในการโปรแกรม (Programming) ครูผู้สอนจำเป็นจะต้องฝึกให้นักเรียนแสดงแนวความคิดในการแก้ปัญหาของตนโดยใช้รหัสลำลอง (Pseudocode) หรือ ผังงาน (Flowchart) ซึ่งเป็นเครื่องมือสากลที่ใช้ในการแสดงขั้นตอนการแก้ปัญหาทางคอมพิวเตอร์

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

          Scratchเป็นโปรแกรมที่ถูกพัฒนาขึ้นโดยสถาบัน MIT (The Massachusetts Institute of Technology) มีบล็อกคำสั่งที่นำมาวางต่อกัน ผู้ใช้ไม่ต้องพิมพ์คำสั่งใหม่ทั้งหมด จึงช่วยลดข้อผิดพลาดในการพิมพ์ นอกจากนี้ยังมีบล็อกที่ช่วยควบคุมการทำงานแบบมีเงื่อนไขและทำซ้ำ โดยผู้ใช้สามารถกำหนดเงื่อนไขเพิ่มเติมลงในโครงสร้างเหล่านี้ได้

  2015.06.29_003

รูปที่ 1 แสดงตัวอย่างคำสั่งในบล็อคควบคุม

ตัวอย่างการทำงานแบบมีเงื่อนไข เช่น พ่อค้าคนกลางจะต้องคัดเลือกปลาที่มีน้ำหนักตัวระหว่าง 5 ขีด ถึง 8 ขีด เพื่อส่งร้านอาหาร ให้เขียนโปรแกรมรับน้ำหนักปลาแต่ละตัว ตัวใดมีน้ำหนักอยู่ในช่วงดังกล่าวให้แสดงคำว่า “Pass”

      จากโจทย์แสดงว่าจะต้องมีการรับค่าน้ำหนักปลาแต่ละตัวเข้ามา โดยค่าที่รับจะรับเป็นจำนวนเต็มเท่านั้น นำมาตรวจสอบว่าน้ำหนักปลาตรงอยู่ในช่วง 5-8 ขีดหรือไม่ จะเขียนผังงานได้ดังรูปที่ 2

บล็อคควบคุม

รูปที่ 2 แสดงผังงานและ Scratch Script แสดงการทำงานแบบมีเงื่อนไข

          จากรูปที่ 2 เมื่อเขียนผังงานแล้วสามารถแปลงเป็นสคริปต์ โดยรับค่าด้วยบล็อก ask ค่าที่ผู้ใช้ป้อนจะถูกเก็บไว้ในบล็อก answer จึงใช้บล็อก set…to เพื่อนำค่าจากบล็อก answer เก็บไว้ในตัวแปร fishWeight แล้วนำค่าในตัวแปร fishWeight ไปเปรียบเทียบโดยใช้บล็อก if…then เมื่อเงื่อนไขที่กำหนด ( fishWeight > 4 ) and ( fishWeight < 9 ) เป็นจริง จะแสดงข้อความ Pass ด้วยบล็อก say หากไม่จริง จะสิ้นสุดการทำงาน

ตัวอย่างการทำงานแบบทำซ้ำ เช่น จงเขียนโปรแกรมหาผลรวมของเลข 1 – 10

          จากโจทย์เป็นการหาผลรวมของเลข 1 – 10 จึงต้องมีตัวนับจำนวนรอบในการทำงานและรันตัวเลข 1-10 ในตัวอย่างนี้ใช้ตัวแปร count เป็นตัวนับและรันตัวเลข ใช้ตัวแปร sum เก็บค่าผลรวม จำนวนรอบในการทำงานคือ 10 รอบ จึงตั้งเงื่อนไขในการทำซ้ำเป็น count <= 10 หมายความว่าจำมีการทำซ้ำเมื่อตัวแปร count มีค่าเป็น 1, 2, 3, …, 10 สามารเขียนผังงานได้ดังรูปที่ 3

2015.06.29_002

รูปที่ 3 แสดงผังงานและ Scratch Script แสดงการทำงานแบบทำซ้ำ

         จากผังงานในรูปที่ 3 สามารถแปลงเป็นสคริปต์ โดยใช้บล็อก set…to ในการกำหนดค่าเริ่มต้นให้กับตัวแปร ในที่นี้จะใช้กับตัวแปร sum และ count ในส่วนของการทำซ้ำของโปรแกรม Scratch จะมีบล็อกไว้กำหนดจำนวนรอบในการทำซ้ำได้เลย คือ บล็อก repeat เปรียบเทียบกับผังงานคือการตรวจสอบค่าในตัวแปร count เมื่อเงื่อนไขเป็นจริง เมื่อเงื่อนไขเป็นจริงจะทำการหาผลรวม โดยนำค่าที่อยู่ในตัวแปร sum มาเพิ่มค่าโดยใช้นิพจน์ sum = sum+count ตรงกับบล็อก set…for 1 secs (เพิ่ม for 1 secs เพื่อให้เห็นค่าที่ได้จากการคำนวณในขณะรันสคริปต์) ซึ่ง count จะมีการเพิ่มค่าครั้งละ 1 ด้วยบล็อก change … by

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

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

ยกร่างบทความโดย นางสาวชุลีพร สืบสิน  โรงเรียนเฉลิมพระเกียรติสมเด็จพระศรีนครินทร์ ภูเก็ต จ.ภูเก็ต
บรรณาธิการโดย คณะบรรณาธิการสาขาคอมพิวเตอร์ สสวท.

เทคนิคเบื้องต้นสำหรับเปลี่ยนแปลงตัวละคร Scratch

เขียนโดย นางสาวพรพิมล ตั้งชัยสิน นักวิชาการ สาขาคอมพิวเตอร์ สสวท.  

     Scratch เป็นโปรแกรมภาษาคอมพิวเตอร์สำหรับสร้างผลงานต่างๆ เช่น การทำแอนิเมชัน การจำลองทางวิทยาศาสตร์ เกม ดนตรี ศิลปะ การสร้างสื่อแบบมีปฏิสัมพันธ์ โดยมีวิธีการโปรแกรมที่ไม่ต้องพิมพ์คำสั่งที่ยุ่งยากซับซ้อนเพียงนำบล็อกคำสั่งมาวางเรียงต่อกันตามลำดับการทำงาน ซึ่งบล็อกคำสั่งนี้จะมีลักษณะคล้ายชิ้นส่วนจิ๊กซอว์ ดังรูป จึงง่ายต่อการโปรแกรมและเหมาะกับการสอนหลักการโปรแกรมที่ส่งเสริมความคิดริเริ่มสร้างสรรค์ การคิดอย่างมีระบบและการทำงานร่วมกัน นอกจากนี้ยังสามารถเผยแพร่และแลกเปลี่ยนผลงานผ่านทางเว็บไซต์http://scratch.mit.edu

11-1

      โปรแกรม Scratch ประกอบด้วยโครงสร้างหลัก 3 ส่วน ได้แก่ เวที (Stage) ตัวละคร (Sprite) และสคริปต์ (Script) โดยแต่ละส่วนมีความสัมพันธ์กันและทำงานร่วมกัน การเขียนโปรแกรม Scratch ทำได้โดยการเขียนสคริปต์สั่งให้ตัวละครทำงาน ณ ตำแหน่งต่างๆ บนเวที เพื่อให้ตัวละครเคลื่อนที่ เปลี่ยนแปลงรูปร่าง แสดงอิริยาบถต่างๆ เช่น พูด เดิน เปลี่ยนสี เปลี่ยนขนาด เป็นต้น ในที่นี้จะขอยกตัวอย่างเทคนิคเบื้องต้นสำหรับเปลี่ยนแปลงตัวละคร เพื่อเป็นประโยชน์ในการประยุกต์ให้ตัวละครเคลื่อนไหวในรูปแบบต่างๆ เพิ่มขึ้นตามจินตนาการของผู้เขียนโปรแกรม

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

การกะพริบ

        เป็นการปรากฏและหายไปของตัวละคร สลับกัน ภายในช่วงเวลาหนึ่ง  สามารถเขียนลำดับการทำงานโดยถ่ายทอดความคิดเป็นข้อความได้ดังนี้

  1. ตัวละครปรากฏ
  2. รอเวลา 1 วินาที
  3. ซ่อนตัวละคร
  4. รอเวลา 1 วินาที
  5. ทำซ้ำตั้งแต่ข้อ 1 ถึง ข้อ 4 ไปเรื่อยๆ

จากลำดับความคิดดังกล่าว เขียนเป็นคำสั่งได้ ดังนี้

11-2

ผลลัพธ์ที่ได้ คือ ภาพกะพริบ ซึ่งเกิดจากตัวละครปรากฏ 1 วินาที แล้วหายไป 1 วินาที สลับกัน   �

การย่อ-ขยายตัวละครสลับกัน

          เป็นการเปลี่ยนขนาดของตัวละครให้ใหญ่และเล็กภายในช่วงเวลาหนึ่งสลับกัน สามารถเขียนลำดับการทำงานโดยถ่ายทอดความคิดเป็นข้อความได้ดังนี้

  1. ตัวละครมีขนาดใหญ่ขึ้น 10%
  2. รอเวลา 1 วินาที
  3. ตัวละครมีขนาดเล็กลง 10%
  4. รอเวลา 1 วินาที
  5. ทำซ้ำข้อ 1 ถึง ข้อ 4 ไปเรื่อยๆ

จากลำดับความคิดดังกล่าว เขียนเป็นคำสั่งได้ ดังนี้

11-3

ผลลัพธ์ที่ได้ คือ ภาพตัวละครย่อ-ขยายสลับกัน ซึ่งเกิดจากตัวละครเปลี่ยนขนาดให้ใหญ่ขึ้น 10%เป็นเวลา 1 วินาที แล้วเปลี่ยนขนาดตัวละครให้เล็กลง 10% เป็นเวลา 1 วินาที สลับกัน

 

การเปลี่ยนสีตัวละครโดยเพิ่มค่าสี

     เป็นการเพิ่มค่าสีให้กับตัวละครโดยกำหนดค่าสีที่เพิ่มขึ้นภายในช่วงเวลาหนึ่ง  สามารถเขียนลำดับการทำงานโดยถ่ายทอดความคิดเป็นข้อความได้ดังนี้

  1. เปลี่ยนสีตัวละครเพิ่มขึ้น 25
  2. รอเวลา 1 วินาที
  3. ทำซ้ำข้อ 1 ถึง ข้อ 2 ไปเรื่อยๆ

จากลำดับความคิดดังกล่าว เขียนเป็นคำสั่งได้ ดังนี้

11-4

      ผลลัพธ์ที่ได้จากโปรแกรม คือ ตัวละครแมวเปลี่ยนสี เริ่มจากสีน้ำตาล สีเขียวอ่อน สีเขียวเข้ม สีฟ้าอ่อน สีน้ำเงิน สีม่วงเข้ม สีชมพู สีแดง และวนกลับไปเริ่มต้นสีน้ำตาล ไปเรื่อยๆ

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

เรียนโปรแกรมมิ่งไม่ยากอย่างที่คิด

สาขาคอมพิวเตอร์ ขอเชิญผู้สนใจสมัครเข้าร่วมอบรมด้วยตนเองแบบออนไลน์ หลักสูตรการเขียนโปรแกรมภาษาซี ผ่านเว็บไซต์ www.programming.in.th

เริ่มลงทะเบียนเข้ารับการอบรมได้ตั้งแต่ วันที่ 15 มิถุนายน 2551 เป็นต้นไป

 

2