แนวคิดเชิงนามธรรม (abstract thinking หรือ abstraction) เป็นองค์ประกอบหนึ่งของแนวคิดเชิงคำนวณ (computational thinking) ซึ่งใช้กระบวนการคัดแยกคุณลักษณะที่สำคัญออกจากรายละเอียดปลีกย่อยในปัญหาหรืองานที่กำลังพิจารณา เพื่อให้ได้ข้อมูลที่จำเป็นและเพียงพอในการแก้ปัญหา
กระบวนการแก้ปัญหาที่สามารถอธิบายออกมาเป็นขั้นตอนที่ชัดเจน เมื่อนำเข้าอะไร แล้วจะต้อง ได้ผลลัพธ์เช่นไร กระบวนการนี้ประกอบด้วยจะประกอบด้วย วิธีการเป็นขั้นๆ และมีส่วนที่ต้องทำแบบวน ซ้ำอีก จนกระทั่งเสร็จสิ้นการทำงาน
วิธีการในการอธิบาย Algorithm ได้แก่
1.Natural Language อธิบายแบบใช้ภาษาที่เราสื่อสารกันทั่วไป
2.Pseudocode อธิบายด้วยรหัสจำลองหรือรหัสเทียม
3.Flowchart อธิบายด้วยแผนผัง
การนำอัลกอริทึมไปใช้ในการแก้ปัญหานั้น ไม่จำเป็นต้องใช้ในการเขียนโปรแกรมเท่านั้น แต่สามารถ ใช้ได้กับปัญหาอื่น ๆ เพื่อให้เกิดการใช้ทรัพยากรอย่างมีประสิทธิภาพที่สุด ซึ่งจำเป็นต้องวางเเผนอย่างเป็น ระบบ เป็นขั้นตอน เพื่อให้ทราบถึงขั้นตอนต่าง ๆ และสามารถตัดทอนขั้นตอนที่ซ้ำซ้อนเกินความจะเป็น เเละ เพิ่มเติมขั้นตอนใหม่เข้าไปได้ อัลกอริทึมมีความสำคัญอย่างไร การเขียนโปรแกรม หมายถึงการแสดงลำดับหรือขั้นตอนการทำงาน หรือการแก้ไขปัญหาต่าง ๆ เช่นการกำหนดขั้นตอนเพื่อการแก้ไขปัญหาการจัดรียงข้อมูล หรือการกำหนด ข้อมูลการค้นหาข้อมูล
อัลกอริทึมที่ดีควรมีคุณสมบัติดังนี้
➢ มีลำดับขั้นตอนการทำงาน ทั้งก่อน และหลังที่ชัดเจน
➢ เข้าใจลำดับขั้นตอนง่ายและไม่กำกวม
➢ สามารถเข้าใจการประมวลผลการทำงานด้วยคอมพิวเตอร์ได้
➢ การทำงานของอัลกอริทึมจะต้องสิ้นสุด หลังจากดำเนินงานตามระยะที่เวลากำหนด
รหัสลำลอง (pseudocode) เป็นการใช้คำบรรยาย อธิบายขั้นตอนอย่างชัดเจนในการแก้ปัญหา หรือการทำงานของโปรแกรม ซึ่งรูปแบบการเขียนจะขึ้นอยู่กับประสบการณ์ และความถนัดของผู้เขียน โดยอาจเขียนเป็นภาษาพูด ทำให้เขียนง่าย ไม่ต้องกังวลรูปแบบ
ข้อดีของรหัสลำลอง (Pseudo code)
1.เขียนง่าย ไม่ต้องคำนึงถึงวิธีการแก้ปัญหา และไม่ต้องกังวลว่าจะเขียนผิดรูปแบบ
2.ถ้าผู้เขียนมีความชำนาญ การเขียนรหัสลำลอง (Pseudo code) ในรูปแบบที่ คล้ายกับภาษาโปรแกรมจะทำให้สามารถดัดแปลงไปเป็นโปรแกรมคอมพิวเตอร์ ได้ง่าย
วิธีการเขียนรหัสลำลอง (Pseudo code)
1.ต้องมีการเริ่มต้น (Start/Begin) ตามด้วยชื่อของกิจกรรมนั้น และ ต้องมีจุดสิ้นสุด (End) เสมอ
2.ใช้คำหรือประโยคสั้นๆ ที่สื่อความหมายได้ชัดเจนและเข้าใจง่าย
3.รูปแบบการเขียนเป็นได้ทั้งภาษาไทยและภาษาอังกฤษ
4.ลักษณะการเขียน เริ่มต้นจากบนลงล่าง โดยมีทางเข้าหนึ่งทาง ทางออกหนึ่งทาง
5.การเขียนแต่ละคำสั่งควรแยกเป็นบรรทัด ไม่ควรเขียนหลายคำสั่งในบรรทัดเดียว
6.การเขียนคำสั่งควรมีการย่อหน้าหรือเว้นวรรค เพื่อให้เกิดความสวยงามเข้าใจง่าย
ถ้าผู้เขียนมีความชำนาญแล้วสามารถเขียนรหัสลำลองในรูปแบบที่คล้ายกับภาษาโปรแกรม ซึ่งจะสามารถนำไปดัดแปลงเป็นภาษาโปรแกรมได้ง่ายการใช้รหัสลำลองเป็นการถ่ายทอดความคิดแสดงดัง ตัวอย่างต่อไปนี้
รหัสลำลองการเตรียมตัวไปโรงเรียน
เริ่มต้น
1.ตื่นนอน
2.อาบน้ำ
3.แต่งตัว
4.กินข้าว
5.ขึ้นรถรับส่ง
6.ถึงโรงเรียน
จบ
รหัสลำลองการคำนวณหาพื้นที่สามเหลี่ยม
เริ่มต้น
1. รับค่าความยาวฐาน
2. รับค่าความสูง
3. คำนวณพื้นที่สามเหลี่ยมจากสูตรพื้นที่สามเหลี่ยม คือ 1/2 x ความยาวฐาน x สูง
4. แสดงผลลัพธ์พื้นที่สามเหลี่ยม
จบ
ผังงาน (Flowchart) คือ รูปภาพ (Image) หรือสัญลักษณ์ (Symbol) ที่ใช้เขียนแทนขั้นตอน คำอธิบาย ข้อความ หรือคำพูดที่ใช้ในอัลกอริทึม (Algorithm) เพราะการนำเสนอขั้นตอนของงานให้เข้าใจตรงกัน ระหว่างผู้เกี่ยวข้อง ด้วยคำพูด หรือ ข้อความ ทำได้ยากกว่าเมื่อใช้รูปภาพ หรือสัญลักษณ์
สัญลักษณ์พื้นฐานสำหรับการเขียนผังงาน
ตัวอย่าง การเขียนผังงานหาพื้นที่สามเหลี่ยม
ประโยชน์ของผังงาน
1. ช่วยอธิบายลำดับขั้นตอนการทำงานของโปรแกรม
2. ทำให้ตรวจสอบข้อผิดพลาดของโปรแกรมได้ง่าย
3. ทำให้ผู้อื่นสามารถศึกษาการทำงานของโปรแกรมและแก้ไขโปรแกรมได้ง่าย
1.แบบลำดับ (Sequential) มีลักษณะการทำงานจะเป็นไปตามขั้นตอน ก่อน-หลัง ต่อเนื่องกันไป เป็นลำดับ โดยการทำงานแต่ละขั้นตอนต้องทำให้เสร็จก่อน แล้วจึงไปทำขั้นตอนต่อไป
ตัวอย่างอัลกอริทึมแบบลำดับ (Sequential)
ตัวอย่างผังงานแบบเรียงลำดับ
จากตัวอย่างที่ 2 การคำนวณหาพื้นที่สามเหลี่ยม สามารถเขียนเป็นผังงานได้ดังนี้
ลำลอง (Pseudo code) ผังงาน (Flowchart)
2. แบบมีทางเลือก (Selection structure) เป็นโครงสร้างที่มีเงื่อนไขเพื่อให้ตัดสินใจเลือกว่าจะใช้วิธีการใด
โดยต้องมีการตรวจสอบเงื่อนไขว่าเป็นจริงหรือไม่ หากเป็นจริงจะต้องไปทำคำสั่งชุดหนึ่ง แต่ถ้าเป็นเท็จจะต้อง
ไปทำคำสั่งอีกชุดหนึ่ง
ตัวอย่างผังงานแบบมีทางเลือก
ตัวอย่างอัลกอริทึมแบบมีทางเลือก (Selection structure)
สถานการณ์ หลังรับประทานข้าว ถ้านักเรียนมีเงินเหลือจะซื้อขนม
ลำลอง (Pseudo code) ผังงาน (Flowchart)
3. แบบการทำงานแบบวนซ้ำ (iteration structure) เป็นโครงสร้างที่มีการวนการทำงานซ้ำๆ ตามเงื่อนไข
เช่น การหาผลคูณของสูตรคูณ
ตัวอย่างการผังงานแบบวนซ้ำ
ตัวอย่าง อัลกอริทึมการทำงานแบบวนซ้ำ (iteration structure)
สถานการณ์ นักเรียนร่วมวิ่งแข่งในงานกีฬาของหมู่บ้าน ซึ่งไม่ครบ 5 กิโลเมตรจะไม่หยุดวิ่ง