Skip to main content

Tag: การโปรแกรม

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.

ทัศนคติกับการเรียนรู้การโปรแกรม

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

ทำไมเด็กไม่อยากเรียน?

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

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

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

ทัศนคติแง่บวกกับพฤติกรรมที่เปลี่ยนไป

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

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

                ลองพิจารณาว่า ถ้าเราเป็นเด็กเราจะรู้สึกอย่างไรเมื่อสอบได้คะแนนไม่ดี แล้วครูพูดในลักษณะ ดังนี้[3]

  • A “ไม่มีเรื่องอะไรต้องมานั่งเสียใจ มันผ่านไปแล้วนี่นา แก้ไขอะไรไม่ได้แล้ว”
  • B  “ชีวิตมันก็อย่างนี้แหล่ะ ต้องมีความผิดพลาดไว้เป็นบทเรียน” 
  • C “ลองฝึกกันดูใหม่ไหม ฝึกตรงส่วนที่ผิดพลาดเพิ่มนะ”
  • D “หนูคิดว่าหนูผิดพลาดตรงไหนกัน ลองคิดซิ”
  • E  “โถ่! พลาดไปนิดเดียวเองเน๊อะ”

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

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

 

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

อ้างอิง

  1. บุษกริน  นิติวงศ์(2557). วิธีการพูดและสอนเด็ก เพื่อกระตุ่นให้เขาอยากเรียนรู้ –ฉบับปรับปรุง. กรุงเทพฯ:บี มีเดีย กรุ๊ป(ประเทศไทย)
  2. ไทย สเตมไลฟ์(2558). ทำไมเด็กไม่อยากเรียน[ออนไลน์]. เข้าถึงได้จาก http://thaistemlife.co.th/com/?n=307. สืบค้นเมื่อวันที่ 20 มกราคม 2558
  3. สุริยเดว  ทรีปาตี(2558). จิตวิยาวัยรุ่น[ออนไลน์]. เข้าถึงได้จาก http://www.nicfd.cf.mahidol.ac.th/th/images/documents/3.pdf. สืบค้นเมื่อวันที่ 20 มกราคม 2558
  4. จิรกุล  ครบสอน(2555). ความเครียดและพฤติกรรมการเผชิญความเครียดของวัยรุ่นในสถานพินิจและคุ้มครองเด็กและเยาวชน. วิทยานิพนธ์ปริญญามหาบัณฑิต. สาขาวิชาการพยาบาลเด็ก คณะพยาบาลศาสตร์ มหาวิทยาลัยบูรพา.
  5. กชณา  สามชูสินธุ์(2558). ทัศนคติและความสนใจ[ออนไลน์]. เข้าถึงได้จาก https://docs.google.com/document/d/1VJWPKJdgeonoVxDPOHbK8Jzi5lksAKujmsNajnCaCUI/edit?sort=name&layout=list&pid=0B49o_E87-am7OGQ5OTk4OTEtZmFmYi00MDcwLTk3ZGYtNTZmYmQ5NzAyNDFh&cindex=1. สืบค้นเมื่อวันที่ 20 มกราคม 2558

จาก 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 ใช้งานง่าย และสามารถเชื่อมโยงลำดับความคิดในผังงานแต่ละขั้น     ไปยังสคริปต์แต่ละคำสั่งได้อย่างเป็นรูปธรรม เมื่อผู้เรียนมีทักษะในการเขียนผังงานได้เป็นอย่างดีแล้ว ก็จะสามารถถ่ายทอดความคิดจากผังงานไปสู่การเขียนโปรแกรมได้อย่างถูกต้อง ไม่ว่าจะเขียนโปรแกรมด้วยภาษาใดก็ตาม

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

การเขียนโปรแกรมกับการพัฒนาทักษะด้านการคิด

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

อัลกอริทึม คืออะไร (What is Algorithm?)

ราชบัณฑิตยสถาน ได้บัญญัติคำว่าอัลกอริทึม (Algorithm) เป็นภาษาไทยว่าขั้นตอนวิธี[1] ซึ่งมีความหมายคือ เป็นลำดับของขั้นตอนการคำนวณที่ใช้แก้ปัญหา โดยการเปลี่ยนข้อมูลนำเข้าของปัญหา (input) ออกมาเป็นผลลัพธ์ (output) ขั้นตอนวิธีดังกล่าวนั้นจะสามารถนำมาเขียนเป็นโปรแกรมในคอมพิวเตอร์ได้ [2]

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

image001
รูปที่  1 ตัวอย่างรหัสลำลอง

ผังงาน (Flowchart) เป็นการใช้สัญลักษณ์ในการแสดงรายละเอียดและลำดับของแต่ละขั้นตอนที่ใช้แก้ปัญหา[3]

image002รูปที่ 2 ตัวอย่างผังงาน

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

ขั้นตอนวิธีของนักเรียนคนที่ 1 ขั้นตอนวิธีของนักเรียนคนที่ 2

ภาพที่ 3 ผังงานในการแสดงขั้นตอนวิธีในการหาผลรวมของจำนวนนับตั้งแต่ 1 – N

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

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

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

ยกร่างบทความโดย นายพลกฤษณ์  รินทรึก โรงเรียนจำปาหลวงวิทยาคม  จ.กาฬสินธุ์
บรรณาธิการโดย คณะบรรณาธิการสาขาคอมพิวเตอร์ สสวท

อ้างอิง

[1]      ราชบัณฑิตยสถาน, พจนานุกรม ฉบับราชบัณฑิตยสถาน พ.ศ. 2546,2546 หน้า 5

[2]      สมชาย ประสิทธิ์จูตระกูล, การออกแบบและวิเคราะห์อัลกอริทึม, 2545, หน้า 1

[3]      Wikipedia:The Free Encyclopedia,ขั้นตอนวิธี[ออนไลน์]. เข้าถึงจาก http://th.wikipedia.org/wiki/ขั้นตอนวิธี [2015,Jan 21]

[4]      สถาบันส่งเสริมการสอนวิทยาศาสตร์และเทคโนโลยี  กระทรวงศึกษาธิการ,เทคโนโลยีสารสนเทศและการสื่อสาร ชั้นมัธยมศึกษาปีที่ 4-6,พ.ศ.2555,หน้า 191

[5]      สถาบันส่งเสริมการสอนวิทยาศาสตร์และเทคโนโลยี  กระทรวงศึกษาธิการ,เทคโนโลยีสารสนเทศและการสื่อสาร ชั้นมัธยมศึกษาปีที่ 4-6,พ.ศ.2555,หน้า 188-193

หนังสือเรียนภาษาไพทอน

หนังสือเรียนรายวิชาเพิ่มเติม เทคโนโลยีสารสนเทศและการสือสาร วิชาภาษาไพทอน(python)  ราคา 87 บาท

เหมาะสำหรับนักเรียนชั้นมัธยมศึกษาตอนปลายและผู้สนใจการเขียนโปรแกรม

ติดต่อ สอบถามรายละเอียดและสั่งซื้อได้ที่

องค์การค้าของ สกสค.
2249 ถ.ลาดพร้าว แขวงสะพานสอง
เขตวังทองหลาง กรุงเทพฯ 10310
02-514-4023-30 ต่อ 222,223

หรือสั่งซื้อออนไลน์ได้ที่  http://www.suksapanpanit.com/index.php?route=product/product&path=117_85_110&product_id=2175

coverPython1

ดาวน์โหลด แบบฝึกทักษะการเขียนโปรแกรม scratch เพื่อส่งเสริมความคิดสร้างสรรค์

ดาวน์โหลด แบบฝึกทักษะการเขียนโปรแกรม scratch เพื่อส่งเสริมความคิดสร้างสรรค์

 คลิกที่นี่เพื่อดาวน์โหลด

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

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

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

 

2