การแก้ปัญหาสำหรับการเขียนโปรแกรม

ในการเขียนโปรแกรมเพื่อให้คอมพิวเตอร์ทำงาน หรือแก้ปัญหาตามที่ได้ออกแบบไว้ ควรมีการปฏิบัติตามกระบวนการ ดังนี้ [1]

 

        ขั้นที่ 1    การวิเคราะห์และทำความเข้าใจปัญหา (Problem-Solving Phase)

                     (1) การวิเคราะห์และนิยามปัญหา (Analysis and Specification) เป็นการทำความเข้าใจกับปัญหาและหาคำตอบว่าอะไรคือสิ่งที่ต้องทำ เช่น การวิเคราะห์ข้อมูลนำเข้า, การประมวลผล, ผลลัพธ์การทำงาน และอุปกรณ์ที่ใช้ในระบบ เป็นต้น

                     (2) การหาผลเฉลยทั่วไป (General Solution) เป็นการออกแบบขั้นตอนวิธี (Algorithm) รวมถึงกำหนดความต้องการจำเป็นในการเขียนโปรแกรม อาทิเช่น การกำหนดตัวแปร กำหนดลำดับขั้นตอนการทำงานของโปรแกรม รวมไปถึงขั้นตอนในการแก้ปัญหา ผ่านการถ่ายทอดความคิดออกมาในรูปของผังงานหรือรหัสเทียม เป็นต้น

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

 

solve

 

        ขั้นที่ 2   การลงมือปฏิบัติ (Implementation Phase)

                    (1) การสร้างผลเฉลย (Concrete Solution) เป็นการถ่ายทอดขั้นตอนวิธีที่ผู้เรียน
ได้ออกแบบไว้ให้เป็นภาษาทางคอมพิวเตอร์ โดยใช้การเขียนโปรแกรมภาษาซีเพื่อควบคุมการทำงานของไมโครคอนโทรลเลอร์ (IPST-MicroBOX)

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

 

        ขั้นที่ 3   การบำรุงรักษา (Maintenance Phase)

                    (1) การใช้งาน (Use) เป็นการนำระบบที่ได้ผ่านการทดสอบแล้วไปทดลองใช้จริง
ซึ่งผู้เรียนจะพบกับปัจจัยที่อาจทำให้ต้องปรับปรุงแก้ไขโปรแกรม เช่น เสียงรบกวน ปริมาณแสงสว่างที่ไม่เพียงพอ เป็นต้น

                    (2) การบำรุงรักษา (Maintain) เป็นการปรับปรุงโปรแกรมเพื่อให้ตรงตาม
ความต้องการหรือเพื่อแก้ไขข้อบกพร่องที่เกิดขึ้นภายหลังการใช้งาน เช่น สามารถปรับปรุงโปรแกรม
ให้สามารถปรับระดับความดังเบาของเสียงที่เป็นข้อมูลนำเข้าได้ สามารถปรับเงื่อนไขการทำซ้ำ
ของโปรแกรมนาฬิกาพื้นฐานได้ เป็นต้น


[1]Dale, N. B., Weems, C., & Headington, M. (2007). Programming and Problem Solving with Java. Sudbury, MA: Jones and Bartlett.