อัลกอริทึมคือขั้นตอนในการแก้ปัญหาหรือการทำงานที่มีลำดับของคำสั่งหรือวิธีการชัดเจนจนคอมพิวเตอร์ปฏิบัติตามได้ ตามคำอธิบายในคู่มือการใช้หลักสูตรวิทยาการคำนวณของสถาบันส่งเสริมการสอนวิทยาศาสตร์และเทคโนโลยี (สสวท.) และในทางปฏิบัติเขียนออกมาได้ 3 แบบ คือ เขียนเป็นข้อความ เขียนเป็นรหัสลำลอง และวาดเป็นผังงาน
ประเด็นสำคัญ
- สสวท. จัดอัลกอริทึมเป็น 1 ใน 4 องค์ประกอบของการคิดเชิงคำนวณ ร่วมกับการแบ่งปัญหาย่อย การหารูปแบบ และการคิดเชิงนามธรรม
- ตัวชี้วัดฉบับปรับปรุง พ.ศ. 2560 ให้ ป.1 และ ป.2 แสดงลำดับขั้นตอนด้วยภาพ สัญลักษณ์ หรือข้อความ และใช้คำว่าอัลกอริทึมตรง ๆ ในตัวชี้วัด ป.3
- เขียนอัลกอริทึมได้ 3 แบบ คือ ข้อความ รหัสลำลอง และผังงาน โดยทุกแบบต้องบอกลำดับเดียวกัน
- ผังงานใช้สัญลักษณ์ตามมาตรฐาน ANSI เช่น วงรีสำหรับเริ่มและจบ สี่เหลี่ยมผืนผ้าสำหรับประมวลผล และสี่เหลี่ยมขนมเปียกปูนสำหรับการตัดสินใจ
- โครงสร้างควบคุมมี 3 แบบ คือ ลำดับ ทางเลือก และวนซ้ำ ซึ่งบทความของ สสวท. ระบุว่าแบบวนซ้ำเข้าใจยากที่สุด
อัลกอริทึมคืออะไร และคำนี้มาจากไหน?
ถ้าให้สรุปในประโยคเดียว อัลกอริทึมคือสูตรการทำงานที่เขียนละเอียดพอให้คนอื่นหรือเครื่องจักรทำตามแล้วได้ผลเหมือนกันทุกครั้ง คู่มือการใช้หลักสูตรสาระเทคโนโลยี (วิทยาการคำนวณ) ของ สสวท. เขียนไว้ในหัวข้อทักษะการคิดเชิงคำนวณว่า การออกแบบอัลกอริทึม (algorithms) คือขั้นตอนในการแก้ปัญหาหรือการทำงาน โดยมีลำดับของคำสั่งหรือวิธีการที่ชัดเจนที่คอมพิวเตอร์สามารถปฏิบัติตามได้
คู่มือเล่มเดียวกันยังให้คำอธิบายแบบง่ายสำหรับเด็กประถมไว้ในกิจกรรมของชั้น ป.4 สองแบบ แบบแรกบอกว่าอัลกอริทึมเป็นขั้นตอนที่ใช้ในการทำงานหรือแก้ปัญหา และแสดงขั้นตอนได้ด้วยการเขียน บอกเล่า วาดภาพ หรือใช้สัญลักษณ์ แบบที่สองบอกว่าอัลกอริทึมหมายถึงชุดคำสั่งหรือขั้นตอนการทำงานที่มีความชัดเจน
อัลกอริทึมเป็นส่วนหนึ่งของการคิดเชิงคำนวณ
สสวท. แบ่งทักษะการคิดเชิงคำนวณ (computational thinking) ออกเป็น 4 องค์ประกอบ ได้แก่ การแบ่งปัญหาใหญ่เป็นปัญหาย่อย (decomposition) การพิจารณารูปแบบของปัญหา (pattern recognition) การพิจารณาสาระสำคัญของปัญหา (abstraction) และการออกแบบอัลกอริทึม (algorithms) สามข้อแรกคือการทำความเข้าใจปัญหา ข้อสุดท้ายคือการเขียนวิธีแก้
ที่มาของคำว่า algorithm
คำนี้มาจากชื่อบุคคล สารานุกรม Wikipedia ภาษาอังกฤษอธิบายว่า ราว ค.ศ. 825 นักวิชาการชาวเปอร์เซียชื่อ al-Khwarizmi เขียนตำราว่าด้วยการคำนวณแบบอินเดีย ต่อมาในต้นศตวรรษที่ 12 มีฉบับแปลเป็นภาษาละตินชื่อ Liber Algoritmi de numero Indorum คำว่า algoritmi ในชื่อนั้นคือชื่อของ al-Khwarizmi ที่แปลงเป็นภาษาละติน และตัวบทเปิดด้วยวลี Dixit Algoritmi ซึ่งแปลว่า al-Khwarizmi กล่าวว่า จากตรงนั้นคำนี้ค่อย ๆ กลายมาเป็น algorithm ในภาษาอังกฤษ ส่วนในภาษาไทยมักสะกดทับศัพท์ว่า อัลกอริทึม หรือ อัลกอริธึม
อัลกอริทึมเรียนชั้นไหนในวิชาวิทยาการคำนวณ?
อัลกอริทึมอยู่ในมาตรฐาน ว 4.2 ของสาระที่ 4 เทคโนโลยี ในกลุ่มสาระการเรียนรู้วิทยาศาสตร์และเทคโนโลยี ตามตัวชี้วัดและสาระการเรียนรู้แกนกลาง ฉบับปรับปรุง พ.ศ. 2560 ตามหลักสูตรแกนกลางการศึกษาขั้นพื้นฐาน พุทธศักราช 2551 มาตรฐานนี้เขียนว่า เข้าใจและใช้แนวคิดเชิงคำนวณในการแก้ปัญหาที่พบในชีวิตจริงอย่างเป็นขั้นตอนและเป็นระบบ หน้าหลักสูตรบนเว็บไซต์ สสวท. ซึ่งแก้ไขล่าสุดเมื่อ 14 มีนาคม 2569 ยังแสดงหลักสูตรฉบับปรับปรุง พ.ศ. 2560 ชุดนี้อยู่
คู่มือแนะนำเวลาเรียนขั้นต่ำไว้เป็นรายช่วงชั้น ช่วงชั้นที่ 1 อย่างน้อย 20 ชั่วโมงต่อปี และช่วงชั้นที่ 2 ถึง 4 ช่วงละ 40 ชั่วโมงต่อปี โดยหมายเหตุว่าโรงเรียนเพิ่มหรือลดได้ตามจุดเน้นและบริบท ตารางด้านล่างสรุปเฉพาะตัวชี้วัดที่เกี่ยวกับการแสดงและออกแบบอัลกอริทึม จากคู่มือการใช้หลักสูตรของ สสวท.
| ชั้น | ตัวชี้วัดที่เกี่ยวข้อง | ตัวอย่างปัญหาในสาระการเรียนรู้ | วิธีแสดงขั้นตอนที่ระบุไว้ |
|---|---|---|---|
| ป.1 | แสดงลำดับขั้นตอนการทำงานหรือการแก้ปัญหาอย่างง่ายโดยใช้ภาพ สัญลักษณ์ หรือข้อความ | เกมเขาวงกต เกมหาจุดแตกต่างของภาพ การจัดหนังสือใส่กระเป๋า | เขียน บอกเล่า วาดภาพ หรือใช้สัญลักษณ์ |
| ป.2 | ตัวชี้วัดเดียวกับ ป.1 | เกมตัวต่อ 6 ถึง 12 ชิ้น การแต่งตัวมาโรงเรียน | เขียน บอกเล่า วาดภาพ หรือใช้สัญลักษณ์ |
| ป.3 | แสดงอัลกอริทึมในการทำงานหรือการแก้ปัญหาอย่างง่ายโดยใช้ภาพ สัญลักษณ์ หรือข้อความ | เกมบันไดงู เกม Tetris เกม OX การเดินไปโรงอาหาร การทำความสะอาดห้องเรียน | เขียน บอกเล่า วาดภาพ หรือใช้สัญลักษณ์ |
| ป.4 | ออกแบบและเขียนโปรแกรมอย่างง่าย ตรวจหาข้อผิดพลาดและแก้ไข | นิทานที่โต้ตอบกับผู้ใช้ การ์ตูนสั้น ภาพเคลื่อนไหว | storyboard หรือการออกแบบอัลกอริทึม ใช้ Scratch หรือ logo |
| ป.5 | ออกแบบและเขียนโปรแกรมที่มีการใช้เหตุผลเชิงตรรกะอย่างง่าย | โปรแกรมตรวจสอบเลขคู่เลขคี่ โปรแกรมให้ตัวละครทำตามเงื่อนไข | เขียนเป็นข้อความหรือผังงาน |
| ป.6 | ใช้เหตุผลเชิงตรรกะในการอธิบายและออกแบบวิธีการแก้ปัญหาที่พบในชีวิตประจำวัน | ทายเลข 1 ถึง 1,000,000 ให้ถูกภายใน 20 คำถาม โปรแกรมหา ค.ร.น. | ข้อความหรือผังงาน ที่มีตัวแปร การวนซ้ำ และเงื่อนไข |
| ม.1 | ออกแบบอัลกอริทึมที่ใช้แนวคิดเชิงนามธรรมเพื่อแก้ปัญหาหรืออธิบายการทำงานที่พบในชีวิตจริง | ปูหญ้าในสนาม โดยหญ้าหนึ่งผืนกว้าง 50 เซนติเมตร ยาว 50 เซนติเมตร | การวัดผลให้เขียนรหัสลำลองหรือผังงานได้ ใช้ Scratch, python, java หรือ c |
| ม.2 | ออกแบบอัลกอริทึมที่ใช้แนวคิดเชิงคำนวณในการแก้ปัญหาหรือการทำงานที่พบในชีวิตจริง | เข้าแถวตามลำดับความสูงให้เร็วที่สุด จัดเรียงเสื้อให้หาได้ง่ายที่สุด | ออกแบบอัลกอริทึมแล้วเขียนโปรแกรมที่ใช้ตรรกะและฟังก์ชัน |
หลักสูตรจึงเริ่มจากการเรียงลำดับเรื่องใกล้ตัว แล้วค่อยเพิ่มเงื่อนไข การวนซ้ำ และตัวแปรทีละชั้น ส่วน ม.3 และ ม.4 ตัวชี้วัดเปลี่ยนไปเน้นการพัฒนาแอปพลิเคชันและโครงงาน
ตัวอย่างทายเลขของ ป.6 น่าสนใจเป็นพิเศษ ถ้าเดาทีละเลขอาจต้องถามเกือบล้านครั้ง แต่ถ้าถามว่ามากกว่าหรือน้อยกว่าเลขกึ่งกลางทุกครั้ง ช่วงที่เหลือจะหดลงครึ่งหนึ่งทุกคำถาม เพราะ 2 ยกกำลัง 20 เท่ากับ 1,048,576 ซึ่งมากกว่า 1,000,000 จึงหาเจอภายใน 20 คำถามเสมอ นี่คือแก่นของการค้นหาแบบแบ่งครึ่ง และเป็นบทเรียนแรกว่าอัลกอริทึมสองแบบที่ได้คำตอบเดียวกันอาจเร็วต่างกันมหาศาล

อัลกอริทึมในชีวิตประจำวันมีอะไรบ้าง?
งานทุกอย่างที่ทำเป็นขั้นตอนซ้ำได้คืออัลกอริทึม แม้ไม่มีคอมพิวเตอร์เกี่ยวข้องเลย กิจกรรมเรื่องอัลกอริทึมสำหรับ ป.4 ในคู่มือของ สสวท. ซึ่งกำหนดเวลาไว้ 120 นาที เปิดบทเรียนด้วยการให้นักเรียนอภิปรายขั้นตอนของงาน 4 อย่าง คือ การต้มบะหมี่กึ่งสำเร็จรูป การซักผ้า การอาบน้ำ และการล้างจาน ส่วนคู่มือครู ม.1 ใช้ตัวอย่างการแปรงฟัน การใส่เสื้อ การเดินทางมาโรงเรียน การทอดไข่ และการล้างจาน
เอกสารประกอบการสอนเรื่อง Algorithm ของมหาวิทยาลัยสยามยกตัวอย่างตำราประกอบอาหาร วิธีปฐมพยาบาล และวิธีตัดเย็บเสื้อผ้า ส่วนเอกสารการเขียนผังงานของมหาวิทยาลัยราชภัฏสวนสุนันทาใช้การอุ่นอาหารด้วยไมโครเวฟ การชำระเงินที่ร้านสะดวกซื้อ และการซื้อบัตรโดยสารรถไฟฟ้าจากเครื่องขายบัตร เราจัดตัวอย่างเหล่านี้เป็นกลุ่มได้ดังนี้
- งานบ้านและกิจวัตร: ต้มบะหมี่ ซักผ้า ล้างจาน แปรงฟัน ทอดไข่ ทุกงานมีลำดับที่สลับกันไม่ได้ เช่น ต้องเปิดไฟก่อนตอกไข่ลงกระทะ
- การเดินทาง: บอกทางจากประตูโรงเรียนไปห้องสมุด ซึ่งคู่มือ สสวท. ใช้เป็นคำถามนำเข้าสู่บทเรียนเกมเขาวงกต
- การตัดสินใจ: จ่ายเงินสดหรือแตะบัตรสมาชิก ถ้าฝนตกให้พกร่ม ซึ่งเป็นตัวอย่างของโครงสร้างทางเลือก
- งานที่ทำซ้ำ: หยอดเหรียญที่เครื่องขายบัตรจนกว่ายอดเงินจะครบ ซึ่งเป็นตัวอย่างของโครงสร้างวนซ้ำ
- การจัดเรียงและค้นหา: เข้าแถวตามความสูง จัดตู้เสื้อผ้า หาเลขหน้าในหนังสือ ซึ่งเป็นโจทย์ของ ป.6 และ ม.2
เขียนอัลกอริทึมได้กี่แบบ และรหัสลำลองคืออะไร?
เขียนได้ 3 แบบหลัก คือ เขียนเป็นข้อความหรือคำบรรยาย เขียนเป็นรหัสลำลอง และวาดเป็นผังงาน สำหรับเด็กเล็ก สาระการเรียนรู้ ป.1 ถึง ป.3 ยอมรับการบอกเล่าและการวาดภาพด้วย พอถึง ป.5 และ ป.6 สาระการเรียนรู้ระบุว่าการออกแบบโปรแกรมทำได้โดยเขียนเป็นข้อความหรือผังงาน และในเกณฑ์การวัดผล ม.1 นักเรียนต้องเขียนรหัสลำลองหรือผังงานได้
คู่มือครู ม.1 ของ สสวท. วางขั้นตอนการแก้ปัญหาไว้ 4 ขั้น คือ การวิเคราะห์และกำหนดรายละเอียดของปัญหา การวางแผนการแก้ปัญหา การดำเนินการแก้ปัญหา และการตรวจสอบและประเมินผล โดยเขียนว่าในการวางแผนให้เข้าใจง่าย อาจใช้รหัสลำลองหรือผังงาน นั่นแปลว่าอัลกอริทึมอยู่ในขั้นที่ 2 ก่อนลงมือเขียนโปรแกรมจริงในขั้นที่ 3
รหัสลำลองคืออะไร
รหัสลำลอง (pseudocode) คือการเขียนขั้นตอนด้วยประโยคสั้นที่หน้าตาใกล้ภาษาโปรแกรม แต่ไม่ต้องถูกไวยากรณ์ของภาษาใดภาษาหนึ่ง เอกสารของมหาวิทยาลัยสยามอธิบายว่ารหัสลำลองไม่มีกฎเกณฑ์ตายตัว ใช้ประโยคภาษาอังกฤษอย่างง่าย และมักใช้คำอย่าง begin..end, if..else, do..while, while, for, read และ print
ตัวอย่างเดียวกัน เขียนครบ 3 แบบ
โจทย์นี้มาจากบทความ จาก FLOWCHART สู่ SCRATCH ของ สสวท. พ่อค้าคนกลางต้องคัดปลาที่หนักระหว่าง 5 ถึง 8 ขีดส่งร้านอาหาร ให้รับน้ำหนักปลาทีละตัวเป็นจำนวนเต็ม ถ้าอยู่ในช่วงนั้นให้แสดงคำว่า Pass ตัวอย่างด้านล่างเราเขียนขึ้นเองจากโจทย์ดังกล่าว
แบบที่ 1 เขียนเป็นข้อความ
- เริ่มต้น
- รับน้ำหนักปลาหนึ่งตัว หน่วยเป็นขีด
- ตรวจว่าน้ำหนักมากกว่าหรือเท่ากับ 5 และน้อยกว่าหรือเท่ากับ 8 หรือไม่
- ถ้าใช่ แสดงคำว่า Pass ถ้าไม่ใช่ ไม่ต้องแสดงอะไร
- จบการทำงาน
แบบที่ 2 เขียนเป็นรหัสลำลอง
BEGIN
READ weight
IF weight >= 5 AND weight <= 8 THEN
PRINT "Pass"
END IF
ENDแบบที่ 3 วาดเป็นผังงาน เริ่มจากวงรีคำว่า เริ่ม ลากลูกศรลงไปที่สี่เหลี่ยมด้านขนาน รับค่า weight แล้วต่อด้วยสี่เหลี่ยมขนมเปียกปูนที่เขียนว่า weight อยู่ระหว่าง 5 ถึง 8 หรือไม่ ทางออก ใช่ ไปที่สี่เหลี่ยมด้านขนาน แสดง Pass แล้วลงไปที่วงรีคำว่า จบ ส่วนทางออก ไม่ใช่ ลากไปที่วงรี จบ โดยตรง
ทั้งสามแบบบอกเรื่องเดียวกันทุกประการ ต่างกันแค่ผู้อ่าน ข้อความเหมาะกับคนทั่วไป รหัสลำลองเหมาะกับคนที่จะเขียนโปรแกรมต่อ ส่วนผังงานเหมาะกับการมองภาพรวมว่าเส้นทางแยกไปทางไหนบ้าง
ผังงานใช้สัญลักษณ์อะไรบ้าง?
ผังงานใช้รูปทรงมาตรฐานแทนงานแต่ละประเภท แล้วเชื่อมด้วยเส้นลูกศรตามทิศทางการทำงาน เอกสารการเขียนผังงานของมหาวิทยาลัยราชภัฏสวนสุนันทาแนะนำให้ใช้สัญลักษณ์ตามมาตรฐานของสถาบัน ANSI (American National Standards Institute) และแบ่งผังงานเป็น 2 ประเภท คือ ผังงานระบบ (system flowchart) ที่แสดงภาพรวมของระบบ และผังงานโปรแกรม (program flowchart) ที่แสดงขั้นตอนคำสั่งในโปรแกรม ตารางนี้สรุปสัญลักษณ์จากเอกสารดังกล่าว
| รูปสัญลักษณ์ | ชื่อภาษาอังกฤษ | ความหมาย | ตัวอย่างข้อความในรูป |
|---|---|---|---|
| สี่เหลี่ยมหัวมน หรือวงรียาว | Terminator | จุดเริ่มต้นและจุดสิ้นสุดของการทำงาน | เริ่ม, จบ |
| เส้นตรงมีหัวลูกศร | Flow line | ทิศทางการทำงาน ต้องมีหัวลูกศรเดียว | ไม่มีข้อความ |
| สี่เหลี่ยมผืนผ้า | Process | การประมวลผล หรือกำหนดค่าให้ตัวแปร | sum = sum + count |
| สี่เหลี่ยมด้านขนาน | Input/Output | รับหรือแสดงข้อมูลโดยไม่ระบุอุปกรณ์ | รับค่า weight |
| สี่เหลี่ยมขนมเปียกปูน | Decision | เปรียบเทียบเพื่อเลือกทาง มีเส้นออกทางจริงและทางเท็จ | weight อยู่ระหว่าง 5 ถึง 8 หรือไม่ |
| สี่เหลี่ยมด้านบนเอียง | Keyboard | รับข้อมูลจากแป้นพิมพ์ | พิมพ์รหัสสถานี |
| รูปจอภาพ | Monitor | แสดงผลทางจอภาพ | แสดงยอดเงิน |
| รูปกระดาษขอบล่างเป็นคลื่น | Printer | แสดงผลทางเครื่องพิมพ์ | พิมพ์ใบเสร็จ |
| วงกลมเล็ก | In-page connector | จุดเชื่อมต่อภายในหน้าเดียวกัน | A, B |
| รูปห้าเหลี่ยมคล้ายป้าย | Off-page connector | จุดเชื่อมต่อไปยังหน้าอื่น | ไปหน้า 2 |
| สี่เหลี่ยมคางหมู | Manual operation | กระบวนการที่คนทำเอง | ตรวจเหรียญด้วยมือ |
สำหรับโจทย์ในห้องเรียนส่วนใหญ่ ใช้เพียง 5 รูปแรกก็พอ คือ Terminator, Flow line, Process, Input/Output และ Decision ผังงานตัวอย่างในคู่มือครู ม.1 ของ สสวท. ก็ใช้แค่วงรี สี่เหลี่ยมผืนผ้า สี่เหลี่ยมขนมเปียกปูน และลูกศรเป็นหลัก
กติกาการวาดผังงานให้อ่านง่าย
เอกสารของมหาวิทยาลัยราชภัฏสวนสุนันทาให้กติกาไว้ดังนี้ เขียนขั้นตอนการทำงานเป็นข้อความทั้งหมดก่อนแล้วค่อยวาด ใช้ข้อความในรูปสั้นและชัด ขนาดรูปไม่เล็กหรือใหญ่เกินไป เขียนจากบนลงล่างหรือซ้ายไปขวา ทุกเส้นมีหัวลูกศร และพยายามให้จบในหน้าเดียว
โครงสร้างควบคุมของอัลกอริทึมมีกี่แบบ?
มี 3 แบบ คือ แบบลำดับ (sequence) แบบทางเลือกหรือมีเงื่อนไข (selection หรือ decision) และแบบวนซ้ำ (repetition หรือ loop) บทความเรื่อง RAPTOR ของ สสวท. เรียกว่าผังงาน 3 รูปแบบ คือ ผังงานแบบลำดับ ผังงานแบบทางเลือก และผังงานแบบวนซ้ำ และระบุว่าแบบวนซ้ำเข้าใจยากที่สุด เพราะกระบวนการเดียวถูกทำหลายครั้ง และค่าของตัวแปรเปลี่ยนไปในแต่ละรอบ
ในทางวิทยาการคอมพิวเตอร์ แนวคิดนี้เรียกว่าโครงสร้างมาตรฐานของ Böhm และ Jacopini คือ SEQUENCE, IF-THEN-ELSE และ WHILE-DO ซึ่งบทความ Algorithm ใน Wikipedia ระบุว่ามีผู้เพิ่มรูปแบบย่อยอีก 2 แบบ คือ DO-WHILE และ CASE แต่สำหรับการเรียนระดับโรงเรียน 3 แบบหลักก็เขียนอัลกอริทึมได้แทบทุกโจทย์
แบบลำดับ: ทำทีละขั้นจากบนลงล่าง
ไม่มีการเปรียบเทียบเงื่อนไขใดเลย ตัวอย่างในเอกสารของสวนสุนันทาคือการอุ่นอาหาร นำอาหารเข้าไมโครเวฟ ตั้งระดับความร้อนและเวลา เครื่องอุ่นอาหาร ส่งเสียงเตือน แล้วนำอาหารออก ทุกครั้งทำครบ 5 ขั้นเท่ากัน
แบบทางเลือก: แยกทางตามเงื่อนไข
มีจุดตัดสินใจที่แยกงานออกเป็นสองทางขึ้นไป ตัวอย่างการคัดปลา 5 ถึง 8 ขีดด้านบนคือแบบนี้ อีกตัวอย่างในเอกสารสวนสุนันทาคือการชำระค่าสินค้า ถ้าจ่ายเงินสดให้ส่งเงิน ถ้าใช้บัตรสมาชิกให้แตะบัตร แล้วจึงรับสินค้า
แบบวนซ้ำ: ทำซ้ำจนกว่าเงื่อนไขจะเปลี่ยน
ตัวอย่างการซื้อบัตรรถไฟฟ้าในเอกสารสวนสุนันทาคือ หยอดเหรียญ 5 หรือ 10 บาท ตรวจว่าเป็นเหรียญที่เครื่องรับหรือไม่ ถ้าไม่ใช่ให้กลับไปหยอดใหม่ แล้วตรวจว่ายอดครบหรือยัง ถ้ายังไม่ครบก็กลับไปหยอดอีก วนจนครบจึงรับบัตร เอกสารเดียวกันแยกการวนซ้ำเป็น while..do ที่ตรวจเงื่อนไขก่อนทำ และ do..until ที่ทำก่อนแล้วค่อยตรวจ ส่วนบทความของ สสวท. ใช้โจทย์หาผลรวมของเลข 1 ถึง 10 โดยใช้ตัวแปร count นับรอบ 10 รอบ และตัวแปร sum เก็บผลรวม ซึ่งคำตอบสุดท้ายคือ 55
อัลกอริทึมที่ดีต้องมีลักษณะอย่างไร?
เกณฑ์ที่ใช้อ้างอิงกันแพร่หลายมาจาก Donald Knuth ซึ่งบทความ Algorithm characterizations ใน Wikipedia สรุปว่าเขาให้คุณสมบัติไว้ 5 ข้อในงานปี 1968 และ 1973 ดังนี้
- มีจุดจบ (finiteness): ต้องหยุดทำงานเสมอหลังจากทำไปจำนวนขั้นที่จำกัด
- ชัดเจน (definiteness): ทุกขั้นต้องนิยามไว้แน่นอน ไม่กำกวมในทุกกรณี
- มีข้อมูลเข้า (input): ค่าที่ให้ไว้ก่อนเริ่ม ซึ่งมาจากกลุ่มข้อมูลที่กำหนด
- มีผลลัพธ์ (output): ค่าที่ได้ออกมาต้องสัมพันธ์กับข้อมูลเข้าตามที่กำหนด
- ทำได้จริง (effectiveness): ทุกขั้นต้องพื้นฐานพอที่คนจะทำด้วยกระดาษและดินสอได้ภายในเวลาจำกัด
เอกสารประกอบการสอนของมหาวิทยาลัยสยามให้ลักษณะของอัลกอริทึมที่ดีไว้อีก 3 ข้อในมุมผู้เขียน คือ มีความถูกต้องแม่นยำ เขียนแต่ละขั้นให้เข้าใจง่าย และออกแบบเป็นระดับชั้น โดยมีขั้นตอนหลักที่แตกเป็นขั้นตอนย่อยได้
ถูกต้องแล้วยังต้องดูว่าเร็วแค่ไหน
สาระการเรียนรู้ของ ม.1 และ ม.2 เขียนว่าการออกแบบอัลกอริทึมควรทำเพื่อให้การแก้ปัญหามีประสิทธิภาพ และโจทย์ ม.2 ก็ขอให้เข้าแถวตามความสูงให้เร็วที่สุด แปลว่าหลักสูตรไม่ได้ต้องการแค่คำตอบที่ถูก แต่ต้องการวิธีที่ใช้ขั้นตอนน้อยด้วย
ถ้าอยากฝึกต่อในระดับที่ลึกขึ้น นักเรียนที่สนใจการแข่งขันวิชาการสามารถอ่านภาพรวมของการสอบ สอวน.ได้ และผู้ที่กำลังวางแผนเข้ามหาวิทยาลัยสายวิทยาศาสตร์หรือวิศวกรรมควรดูว่าA-Level มีวิชาอะไรบ้างเพื่อเตรียมพื้นฐานคณิตศาสตร์ไปพร้อมกัน
คำถามที่พบบ่อย
อัลกอริทึมคืออะไร แบบสั้นที่สุด?
อัลกอริทึมคือลำดับขั้นตอนที่ชัดเจนสำหรับแก้ปัญหาหรือทำงานให้สำเร็จ คู่มือของ สสวท. ระบุว่าต้องชัดเจนพอที่คอมพิวเตอร์จะปฏิบัติตามได้
อัลกอริทึมภาษาไทยเรียกว่าอะไร?
บทความวิชาการของ สสวท. ใช้คำว่า ขั้นตอนวิธี คู่กับคำว่า Algorithm ส่วนในหนังสือและตัวชี้วัดของโรงเรียนมักใช้คำทับศัพท์ว่า อัลกอริทึม
อัลกอริทึมเรียนชั้นไหน?
ตัวชี้วัดฉบับปรับปรุง พ.ศ. 2560 ให้ฝึกแสดงลำดับขั้นตอนตั้งแต่ ป.1 ใช้คำว่าอัลกอริทึมในตัวชี้วัด ป.3 และให้ออกแบบอัลกอริทึมเพื่อแก้ปัญหาจริงใน ม.1 และ ม.2
เขียนอัลกอริทึมได้กี่แบบ?
3 แบบหลัก คือ เขียนเป็นข้อความหรือคำบรรยาย เขียนเป็นรหัสลำลอง และวาดเป็นผังงาน สำหรับเด็กประถมต้น หลักสูตรยอมรับการบอกเล่าและการวาดภาพด้วย
รหัสลำลองคืออะไร?
รหัสลำลอง (pseudocode) คือการเขียนขั้นตอนด้วยประโยคสั้นคล้ายภาษาโปรแกรม ไม่มีกฎตายตัว มักใช้คำอย่าง begin, end, if, else, while, for, read และ print
ผังงานใช้สัญลักษณ์อะไรบ้าง?
รูปหลักมี 5 แบบ คือ วงรีหรือสี่เหลี่ยมหัวมนสำหรับเริ่มและจบ สี่เหลี่ยมผืนผ้าสำหรับประมวลผล สี่เหลี่ยมด้านขนานสำหรับรับและแสดงข้อมูล สี่เหลี่ยมขนมเปียกปูนสำหรับตัดสินใจ และเส้นลูกศรบอกทิศทาง
รูปสี่เหลี่ยมขนมเปียกปูนในผังงานหมายถึงอะไร?
หมายถึงการตัดสินใจ (Decision) คือจุดเปรียบเทียบเงื่อนไข ซึ่งต้องมีเส้นออกอย่างน้อยสองเส้น คือทางที่เงื่อนไขเป็นจริงและทางที่เป็นเท็จ
โครงสร้างของอัลกอริทึมมีกี่แบบ?
มี 3 แบบ คือ แบบลำดับ แบบทางเลือก และแบบวนซ้ำ บทความของ สสวท. ระบุว่าแบบวนซ้ำเข้าใจยากที่สุด เพราะค่าตัวแปรเปลี่ยนไปในแต่ละรอบ
ตัวอย่างอัลกอริทึมในชีวิตประจำวันมีอะไรบ้าง?
คู่มือของ สสวท. ยกตัวอย่างการต้มบะหมี่กึ่งสำเร็จรูป การซักผ้า การอาบน้ำ การล้างจาน การแปรงฟัน และการเดินทางมาโรงเรียน ทุกงานมีลำดับขั้นที่ชัดเจนและทำซ้ำได้
อัลกอริทึมที่ดีต้องมีคุณสมบัติอะไร?
ตามแนวของ Donald Knuth ต้องมีจุดจบ ชัดเจนไม่กำกวม มีข้อมูลเข้า มีผลลัพธ์ และทุกขั้นทำได้จริงด้วยกระดาษและดินสอ
ทำไมทายเลข 1 ถึง 1,000,000 ได้ภายใน 20 คำถาม?
เพราะถามครึ่งหนึ่งของช่วงที่เหลือทุกครั้ง ช่วงจึงหดลงครึ่งหนึ่งต่อคำถาม และ 2 ยกกำลัง 20 เท่ากับ 1,048,576 ซึ่งมากกว่าหนึ่งล้าน
เริ่มฝึกเขียนอัลกอริทึมจากงานบ้านหนึ่งอย่าง
วิธีฝึกที่ง่ายที่สุดคือเลือกงานที่ทำทุกวันหนึ่งอย่าง เช่น ต้มบะหมี่ แล้วเขียนเป็นข้อความทีละข้อ จากนั้นให้คนในบ้านลองทำตามโดยห้ามถามเพิ่ม ถ้าเขาทำผิดหรือต้องเดา แปลว่าขั้นนั้นยังไม่ชัดเจน ให้แก้แล้วลองใหม่ เมื่อข้อความนิ่งแล้ว ลองแปลงเป็นผังงานด้วยรูป 5 แบบในตาราง แล้วหาดูว่าตรงไหนเป็นทางเลือก ตรงไหนเป็นการวนซ้ำ
สำหรับนักเรียน ม.1 ขึ้นไป ให้ลองเขียนโจทย์เดียวกันเป็นรหัสลำลอง แล้วนำไปต่อบล็อกใน Scratch ซึ่งพัฒนาโดย MIT ตามที่บทความของ สสวท. แนะนำ ถ้าผลลัพธ์ไม่ตรงกับที่คาด ให้ย้อนกลับไปดูผังงานทีละช่อง ขั้นนี้คือการตรวจสอบและประเมินผล ซึ่งเป็นขั้นที่ 4 ของการแก้ปัญหาตามคู่มือ
ตัวชี้วัด สาระการเรียนรู้ และเวลาเรียนในบทความนี้มาจากคู่มือการใช้หลักสูตรและคู่มือครูของ สสวท. ตามหลักสูตรแกนกลางการศึกษาขั้นพื้นฐาน พุทธศักราช 2551 ฉบับปรับปรุง พ.ศ. 2560 ซึ่งหน้าเว็บหลักสูตรของ สสวท. ยังแสดงอยู่ ณ วันตรวจสอบ 30 กันยายน 2569 หลักสูตรอาจมีการปรับปรุงในอนาคต และโรงเรียนแต่ละแห่งจัดรายวิชาและชั่วโมงเรียนได้ตามบริบท โปรดยืนยันรายละเอียดกับโรงเรียน สสวท. หรือกระทรวงศึกษาธิการก่อนนำไปใช้ ตัวอย่างอัลกอริทึม รหัสลำลอง และผังงานที่ทีมงานเขียนขึ้นเป็นตัวอย่างประกอบการอธิบาย ไม่ใช่เฉลยข้อสอบอย่างเป็นทางการ
แหล่งอ้างอิง
- สสวท.: คู่มือการใช้หลักสูตร สาระเทคโนโลยี (วิทยาการคำนวณ) ฉบับปรับปรุง พ.ศ. 2560 (ไฟล์ PDF)
- สสวท. คลังสื่อ scimath: หน้ารายการคู่มือการใช้หลักสูตร เทคโนโลยี (วิทยาการคำนวณ) เผยแพร่ 24 พฤษภาคม 2562
- สสวท.: คู่มือครูรายวิชาพื้นฐานวิทยาศาสตร์และเทคโนโลยี เทคโนโลยี (วิทยาการคำนวณ) ชั้นมัธยมศึกษาปีที่ 1
- สสวท.: หลักสูตรวิทยาศาสตร์ คณิตศาสตร์ และเทคโนโลยี (ฉบับปรับปรุง พ.ศ. 2560) แก้ไขล่าสุด 14 มีนาคม 2569
- สสวท.: หน้าสาขาวิทยาการคำนวณ หลักสูตร หนังสือเรียน และคู่มือครู
- สสวท.: จาก FLOWCHART สู่ SCRATCH (3 สิงหาคม 2558)
- สสวท.: RAPTOR เครื่องมือเพิ่มพลังการเรียนรู้การโปรแกรม (28 กันยายน 2558)
- มหาวิทยาลัยราชภัฏสวนสุนันทา: เอกสารการเขียนผังงาน สัญลักษณ์และรูปแบบของผังงาน
- มหาวิทยาลัยสยาม: เอกสารประกอบการสอนสัปดาห์ที่ 6 เรื่อง Algorithm
- Wikipedia: Algorithm characterizations (คุณสมบัติ 5 ข้อของ Knuth)
- Wikipedia: Algorithm (ที่มาของคำและโครงสร้างของ Böhm และ Jacopini)


