อัลกอริทึม คือ? เข้าใจ Algorithm ผ่านตัวอย่างในชีวิตประจำวันของเด็กๆ

เข้าใจทุกแง่มุมของเทคโนโลยี ผ่านการเรียนรู้ตัวอย่างอัลกอริทึม ในชีวิตประจําวัน ว่าอัลกอรึทึม คืออะไร มีขั้นตอนอะไรบ้าง

Category :

อัลกอริทึม (Algorithm)

อัลกอริทึม (Algorithm)

เลือกอ่านตามหัวข้อ

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

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

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

อัลกอริทึม คือ?

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

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

ประโยชน์ของอัลกอริทึม ทำไมเด็กยุคใหม่ถึงต้องเรียนรู้?

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

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

1. เสริมสร้างทักษะแนวคิดเชิงคำนวณ

การเขียนอัลกอริทึมและการเขียนโปรแกรมนั้นเป็นกิจกรรมที่ดีในการเสริมสร้างทักษะแนวคิดเชิงคำนวณ เนื่องจากแนวคิดเชิงคำนวณ คือ การแก้ปัญหาหรือพัฒนาชิ้นงาน วิธีการหรือนวัตกรรม โดยใช้ความคิดที่แปลกใหม่โดยใช้วิธีการที่เหมาะสม พิจารณาโครงสร้างเชิงระบบให้ครอบคลุมเพียงพอที่จะแก้ปัญหาประกอบไปด้วย การคิดอย่างมีวิจารณญาณ (Critical Thinking), การคิดเชิงระบบ (System Thinking), การคิดสร้างสรรค์ (Creative Thinking) และการคิดแก้ปัญหา (Problem Solving Thinking)

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

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

2. เสริมสร้างทักษะการหารูปแบบ Pattern Recognition

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

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

3. เสริมสร้างทักษะการแก้ปัญหา

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

การสร้าง อัลกอริทึมมีขั้นตอนอะไรบ้าง

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

1. วิเคราะห์ปัญหา

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

2. ออกแบบวิธีการแก้ปัญหา

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

3. เขียนอัลกอริทึม (algorithm) ด้วยการเขียน flowchart เบื้องต้น

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

Flowchart

ที่มา http://www.thaiall.com/flowchart/symbol.htm

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

Flowchart

ที่มา https://www.yupparaj.ac.th/thanphisit/bot2-4.html

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

4. เขียนโปรแกรม

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

5. ทดสอบและแก้ไข

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

หลักการเขียนอัลกอริทึม

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

เริ่มต้นจากจุดจุดเดียว

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

กำหนดขั้นตอนการทำงานให้ชัดเจน

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

การทำงานควรมีความกระชับ

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

ผลลัพธ์จากการทำงานแต่ละขั้นตอนควรต่อเนื่องกัน

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

ครอบคลุมการทำงานในหลายรูปแบบ

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

ตัวอย่างอัลกอริทึม ในชีวิตประจําวัน

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

ตัวอย่างอัลกอริทึม ในชีวิตประจําวัน: อัลกอริทัมการปรุงบะหมี่กึ่งสำเร็จรูปให้พร้อมเสิร์ฟ

1.) จัดเตรียมบะหมี่กึ่งสำเร็จรูปพร้อมอุปกรณ์ที่เกี่ยวข้อง

2.) ต้มน้ำสะอาดให้เดือดในหม้อ

3.)เเกะซองเเล้วแยกซองเครื่องปรุงออกมา

4.) นำบะหมี่ใส่ลงในหม้อ

5.) รอประมาณ 3 นาที

6.)  ฉีกซองเครื่องปรุงใส่ลงในชาม

7.) เทบะหมี่และน้ำเดือดลงในชามพอประมาณ

 8.) รับประทานได้ทันที

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

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

เรียนรู้ทักษะการสร้างอัลกอริทึมสำหรับเด็กกับ Code Genius

Code Genius เป็นสถาบันสอน Coding สำหรับเด็กที่พร้อมปูพื้นฐานเชิงวิทยาการคำนวณ และศาสตร์อื่น ๆ ตามหลัก STEM Education ที่มุ่งเน้นการประยุกต์การเรียนการสอนในรูปแบบการบูรณาการวิทยาศาสตร์ เทคโนโลยี วิศวกรรม และคณิตศาสตร์ เข้าด้วยกันและ Code Genius ยังได้พัฒนาหลักสูตรที่พร้อมปูพื้นฐานให้กับน้อง ๆ ทุกช่วงวัย โดยใช้การเรียนการสอนในเชิงรุกหรือ Active learning เพื่อให้น้อง ๆ มีปฏิสัมพันธ์ในห้องเรียนและกระตุ้นการเรียนรู้เพื่อให้เกิดประสิทธิภาพที่สุด

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

บทความที่เกี่ยวข้อง