บทที่ 1 แนวคิดเชิงคำนวณ
ว22103 เทคโนโลยี (วิทยาการคำนวณ)
จุดประสงค์ของบทเรียน
อธิบายกระบวนการคิดตามแนวคิดเชิงคำนวณ ซึ่งประกอบไปด้วยการแบ่งปัญหาใหญ่เป็นปัญหาย่อย การพิจารณารูปแบบ การคิดเชิงนามธรรม และการออกแบบอัลกอริทึม
ออกแบบอัลกอริทึมเพื่อการแก้ปัญหาโดยใช้แนวคิดเชิงคำนวณ
1. การแบ่งปัญหาใหญ่เป็นปัญหาย่อย (Decomposition)
การแก้ปัญหาที่มีความซับซ้อนทำได้ยาก การแบ่งปัญหาใหญ่ให้เป็นปัญหาย่อย ๆ ทำให้ความซับซ้อนของปัญหาลดลง ช่วยให้การวิเคราะห์และพิจารณารายละเอียดของปัญหาทำได้อย่างถี่ถ้วน ส่งผลให้ออกแบบขั้นตอนการแก้ปัญหาย่อยแต่ละปัญหาได้ง่ายยิ่งขึ้น
การอธิบายรายละเอียดของภาพให้เพื่อนของนักเรียนวาดตามได้นั้นสามารถแบ่งออกเป็นปัญหาย่อยได้ดังนี้
ในภาพมีบ้านกี่หลัง
ขั้นตอนการวาดบ้านหลังที่ 1 เป็นอย่างไร และอยู่ตำแหน่งใด
ขั้นตอนการวาดบ้านหลังที่ 2 เป็นอย่างไร และอยู่ตำแหน่งใด
ขั้นตอนการวาดบ้านหลังที่ 3 เป็นอย่างไร และอยู่ตำแหน่งใด
ลองตอบปัญหาย่อย
1. ในภาพมีบ้านกี่หลัง ?
ตอบ 3 หลัง
2. ขั้นตอนการวาดบ้านหลังที่หนึ่งเป็นอย่างไร และอยู่ที่ตำแหน่งใด ?
ตอบ บ้านหลังที่หนึ่งวาดตัวบ้านเป็นรูปสี่เหลี่ยมจัตุรัสสีเหลืองขนาดด้านละ 100 หน่วย โดยที่มุมล่างซ้ายอยู่ที่พิกัด (0, 0) และด้านบนสี่เหลี่ยมวาดหลังคาเป็นรูปสามเหลี่ยมด้านเท่าสีม่วงยาวด้านละ 100 หน่วย
3. ขั้นตอนการวาดบ้านหลังที่สองเป็นอย่างไร และอยู่ที่ตำแหน่งใด ?
ตอบ บ้านหลังที่สองวาดตัวบ้านเป็นรูปสี่เหลี่ยมจัตุรัสสีแดงขนาดด้านละ 50 หน่วย โดยที่มุมล่างซ้ายอยู่ที่พิกัด (120, 90) และด้านบนสี่เหลี่ยมวาดหลังคาเป็นรูปสามเหลี่ยมด้านเท่าสีเทายาวด้านละ 50 หน่วย
3. ขั้นตอนการวาดบ้านหลังที่สามเป็นอย่างไร และอยู่ที่ตำแหน่งใด ?
ตอบ บ้านหลังที่สามวาดตัวบ้านเป็นรูปสี่เหลี่ยมจัตุรัสสีเขียวขนาดด้านละ 80 หน่วย โดยที่มุมล่างซ้ายอยู่ที่พิกัด (200, 10) และด้านบนสี่เหลี่ยมวาดหลังคาเป็นรูปสามเหลี่ยมด้านเท่าสีฟ้ายาวด้านละ 80 หน่วย
2. การพิจารณารูปแบบ (Pattern Recognition)
ปัญหาบางประเภทสามารถแบ่งออกเป็นปัญหาย่อยที่อาจจะมีรูปแบบเดียวกันหรือคล้ายกัน สามารถนำรูปแบบกระบวนการแก้ปัญหาย่อยปัญหาหนึ่งไปประยุกต์ใช้กับการแก้ปัญหาย่อยอื่น ๆ ได้ ทำให้ลดขั้นตอนในการออกแบบวิธีการแก้ปัญหาได้
ขั้นตอนการวาดบ้านหลังที่หนึ่งเป็นอย่างไรและอยู่ที่ตำแหน่งใด
บ้านหลังแรกวาดตัวบ้านเป็นรูปสี่เหลี่ยมจัตุรัสสีเหลืองขนาดด้านละ 100 หน่วย ตั้งอยู่ตำแหน่งมุมล่างซ้ายอยู่ที่พิกัด (0, 0) และด้านบนสี่เหลี่ยมวาดหลังคาเป็นรูปสามเหลี่ยมด้านเท่าสีม่วงขนาดด้านละ 100 หน่วย
ขั้นตอนการวาดบ้านหลังที่สองเป็นอย่างไรและอยู่ที่ตำแหน่งใด
บ้านหลังที่สองวาดตัวบ้านเป็นรูปสี่เหลี่ยมจัตุรัสสีเหลืองขนาดด้านละ 50 หน่วย ตั้งอยู่ตำแหน่งมุมล่างซ้ายอยู่ที่พิกัด (120, 90) และด้านบนสี่เหลี่ยมวาดหลังคาเป็นรูปสามเหลี่ยมด้านเท่าสีม่วงขนาดด้านละ 50 หน่วย
ขั้นตอนการวาดบ้านหลังที่สามเป็นอย่างไรและอยู่ที่ตำแหน่งใด
บ้านหลังที่สามวาดตัวบ้านเป็นรูปสี่เหลี่ยมจัตุรัสสีเหลืองขนาดด้านละ 80 หน่วย ตั้งอยู่ตำแหน่งมุมล่างซ้ายอยู่ที่พิกัด (200, 10) และด้านบนสี่เหลี่ยมวาดหลังคาเป็นรูปสามเหลี่ยมด้านเท่าสีม่วงขนาดด้านละ 80 หน่วย
สรุปสิ่งที่คล้ายคลึงกันของบ้านทั้งสามคือ
3. การคิดเชิงนามธรรม (Abtraction)
ปัญหาประกอบไปด้วยรายละเอียดที่หลากหลายโดยมีรายละเอียดที่จำเป็นและไม่จำเป็นต่อการแก้ปัญหาการคิดเชิงนามธรรมเป็นการคัดแยกรายละเอียดที่ไม่จำเป็นออกจากปัญหาที่พิจารณาอยู่ ทำให้สามารถเข้าใจ วิเคราะห์ และออกแบบวิธีการแก้ปัญหาในภาพรวมได้ง่ายขึ้น ปัญหาประกอบไปด้วยรายละเอียดที่หลากหลายโดยมีรายละเอียดที่จำเป็นและไม่จำเป็นต่อการแก้ปัญหาการคิดเชิงนามธรรมเป็นการขัดแยกรายละเอียดที่ไม่จำเป็นออกจากปัญหาที่พิจารณาอยู่ทำให้สามารถเข้าใจวิเคราะห์และออกแบบวิธีการแก้ปัญหาในภาพรวมได้ง่ายขึ้น
การคิดเชิงนามธรรมยังรวมถึงการซ่อนรายละเอียดโดยการแทนกลุ่มของปัญหา ขั้นตอน และกระบวนการที่มีรายละเอียดปลีกย่อย และกระบวนการที่มีรายละเอียดปีกย่อยหลายขั้นตอนให้เป็นขั้นตอนเดียว เพื่อให้สามารถ ให้เป็นขั้นตอนเดียวเพื่อให้สามารถอธิบายวิธีการแก้ปัญหาได้กระชับขึ้น
บ้านหลังที่ 1 อธิบายปัญหาโดยใช้รายละเอียดได้ดังนี้
บ้านหลังแรกวาดตัวบ้านเป็นรูปสี่เหลี่ยมจัตุรัสสีเหลืองขนาดด้านละ 100 หน่วย ตั้งอยู่ตำแหน่งมุมล่างซ้ายอยู่ที่พิกัด (0, 0) และด้านบนสี่เหลี่ยมวาดหลังคาเป็นรูปสามเหลี่ยมด้านเท่าสีม่วงขนาดด้านละ 100 หน่วย
อธิบายปัญหาแบบซ่อนรายละเอียดได้ดังนี้
บ้านหลังแรกมีขนาด 100 หน่วย ตัวบ้านสีเหลือง และหลังคาสีม่วง ตั้งอยู่ที่ตำแหน่ง (0, 0)
บ้านหลังที่ 2 อธิบายปัญหาโดยใช้รายละเอียดได้ดังนี้
บ้านหลังที่สองวาดตัวบ้านเป็นรูปสี่เหลี่ยมจัตุรัสสีเหลืองขนาดด้านละ 50 หน่วย ตั้งอยู่ตำแหน่งมุมล่างซ้ายอยู่ที่พิกัด (120, 90) และด้านบนสี่เหลี่ยมวาดหลังคาเป็นรูปสามเหลี่ยมด้านเท่าสีม่วงขนาดด้านละ 50 หน่วย
อธิบายปัญหาแบบซ่อนรายละเอียดได้ดังนี้
บ้านหลังที่สองมีขนาด 50 หน่วย ตัวบ้านสีแดง และหลังคาสีเทา ตั้งอยู่ที่ตำแหน่ง (120, 90)
บ้านหลังที่ 3 อธิบายปัญหาโดยใช้รายละเอียดได้ดังนี้
บ้านหลังที่สามวาดตัวบ้านเป็นรูปสี่เหลี่ยมจัตุรัสสีเหลืองขนาดด้านละ 80 หน่วย ตั้งอยู่ตำแหน่งมุมล่างซ้ายอยู่ที่พิกัด (200, 10) และด้านบนสี่เหลี่ยมวาดหลังคาเป็นรูปสามเหลี่ยมด้านเท่าสีม่วงขนาดด้านละ 80 หน่วย
อธิบายปัญหาแบบซ่อนรายละเอียดได้ดังนี้
บ้านหลังที่สามมีขนาด 80 หน่วย ตัวบ้านสีเขียว และหลังคาสีฟ้าตั้งอยู่ที่ตำแหน่ง (200, 10)
การออกแบบอัลกอริทึม (Algorithm)
รายการคำสั่งที่อธิบายขั้นตอนในการแก้ปัญหา โดยแต่ละคำสั่งนั้น รายการคำสั่งที่อธิบายขั้นตอนในการแก้ปัญหาโดยแต่ละคำสั่งนั้นต้องเป็นคำสั่งที่ให้ผู้อื่นนำไปปฏิบัติตามได้โดยไม่มีคำกำกวมซึ่งมักอยู่ในรูปขอรหัสลำลอง ซึ่งมักอยู่ในรูปแบบของรหัสลำลอง(peeudo code) หรือผังงาน (flowchart) ในกรณีที่ใช้คอมพิวเตอร์เป็นเครื่องมือในการแก้ปัญหา อันกอริทึมจะต้องถูกแปลงให้อยู่ในรูปแบบของภาษาโปรแกรมก่อนเพื่อให้คอมพิวเตอร์สามารถปฏิบัติตามได้ ดังนั้นการออกแบบรายละเอียดในอันกอริทึมจึงขึ้นอยู่กับคนหรือคอมพิวเตอร์ที่จะนำอันกอริทึมไปปฏิบัติ
ตัวอย่างอัลกอริทึมวาดภาพหมู่บ้านสำหรับคนนำไปปฏิบัติ
ขั้นตอนหลัก
1. วาดรูปบ้านขนาด 100 หน่วย ที่ตำแหน่ง (0, 0)
2. วาดรูปบ้านขนาด 50 หน่วย ที่ตำแหน่ง (120, 90)
3. วาดรูปบ้านขนาด 80 หน่วย ที่ตำแหน่ง (200,10)
ขั้นตอนย่อย การวาดรูปบ้านขนาด S หน่วยที่ตำแหน่ง (x,y)
1. วาดรูปสี่เหลี่ยมจัตุรัสยาวด้านละ S หน่วย ให้มีมุมล่างซ้ายอยู่ที่พิกัด (x,y)
2. วาดรูปสามเหลี่ยมด้านเท่าขนาด S หน่วยไว้บนสี่เหลี่ยมจัตุรัส
อัลกอริทึมวาดภาพหมู่บ้าน สำหรับสร้างเป็นโปรแกรมคอมพิวเตอร์