การแก้ปัญหาสำหรับการเขียนโปรแกรม
ในการเขียนโปรแกรมเพื่อให้คอมพิวเตอร์ทำงาน หรือแก้ปัญหาตามที่ได้ออกแบบไว้ ควรมีการปฏิบัติตามกระบวนการ ดังนี้ [1]
ขั้นที่ 1 การวิเคราะห์และทำความเข้าใจปัญหา (Problem-Solving Phase)
(1) การวิเคราะห์และนิยามปัญหา (Analysis and Specification) เป็นการทำความเข้าใจกับปัญหาและหาคำตอบว่าอะไรคือสิ่งที่ต้องทำ เช่น การวิเคราะห์ข้อมูลนำเข้า, การประมวลผล, ผลลัพธ์การทำงาน และอุปกรณ์ที่ใช้ในระบบ เป็นต้น
(2) การหาผลเฉลยทั่วไป (General Solution) เป็นการออกแบบขั้นตอนวิธี (Algorithm) รวมถึงกำหนดความต้องการจำเป็นในการเขียนโปรแกรม อาทิเช่น การกำหนดตัวแปร กำหนดลำดับขั้นตอนการทำงานของโปรแกรม รวมไปถึงขั้นตอนในการแก้ปัญหา ผ่านการถ่ายทอดความคิดออกมาในรูปของผังงานหรือรหัสเทียม เป็นต้น
(3) การตรวจสอบ (Verify) เป็นการทบทวนกระบวนการหาผลเฉลยทั่วไป เพื่อให้แน่ใจว่าขั้นตอนวิธีที่ออกแบบไว้สามารถแก้ปัญหาได้จริง เช่น การเลือกใช้ชนิดข้อมูลที่สัมพันธ์
กับข้อมูลนำเข้า การเลือกใช้อุปกรณ์ที่สัมพันธ์กับสถานการณ์ปัญหา รูปแบบการทำงานของผังงานโปรแกรมสัมพันธ์กับการแก้ปัญหา เป็นต้น
ขั้นที่ 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.