วทิ ยาการคานวณ 1.1 แนวคดิ เชงิ คานวณ (computational thinking) แนวคดิ เชงิ คานวณ (computational thinking) แนวคดิ เชิงคานวณ (computational thinking) ซึ่งเป็นพ้ืนฐานของการคดิ แก้ปัญหาตา่ ง ๆ ทีส่ ามารถนาไป ประยกุ ตใ์ นการแกป้ ัญหาในชีวิตประจาวัน แนวคิดนไ้ี ม่ใชเ่ ร่ืองใหม่ เพราะมนษุ ย์ต้องแกป้ ัญหาตา่ ง ๆ อยู่ตลอดเวลา ความทา้ ทายหลกั ของแนวคดิ เชิงคานวณอยู่ท่กี ารออกแบบกระบวนการแก้ปัญหาทคี่ ลมุ เครือใหเ้ ปน็ ข้ันตอนที่ชดั เจน มากพอทจ่ี ะนาไปแก้ปัญหาได้ ตัวอย่างของขน้ั ตอนวิธกี ารแก้ปัญหาตามแนวทางการคดิ เชิงคานวณ โดยการคิดแบบ แยกส่วนประกอบและการย่อยปัญหา (decomposition) การหารปู แบบของปัญหา (pattern recognition) การคิด เชิงนามธรรม (abstraction) เพ่ือพิจารณาสาระสาคัญของปัญหา และการออกแบบขั้นตอนวธิ ใี นการแก้ปัญหา (algorithm) 1.2 การแยกสว่ นประกอบและการยอ่ ยปญั หา การแยกส่วนประกอบเปน็ วธิ คี ิดรูป แบบหนึ่งของแนวคิดเชิงคานวณ เป็นการพิจารณาเพื่อ แบ่งปัญหาหรือ งานออกเป็นส่วนย่อย ทาให้สามารถ จัดการกบั ปัญหาหรืองานได้งา่ ยขึน้ เพื่ออธบิ ายแนวคิดน้ี ให้พจิ ารณารูป จกั รยาน จักรยานประกอบด้วย ล้อ แฮนด์ โครงจกั รยาน ระบบ ขบั เคลื่อน หรืออ่ืน ๆ ถา้ มองในรายละเอียดของล้อ จักรยานจะเห็น วา่ ประกอบด้วย ยางล้อ วงล้อ และซล่ี วด หรือถ้าพิจารณาชุด ขับเคล่ือนก็จะพบวา่ ประกอบด้วยเฟือง โซ่ และบันได เมอ่ื นาข้อมลู ดังกลา่ วมาเขียนเป็นแผนภาพจะไดด้ ังรูป
กจิ กรรมที่ 2 นักสบื ชายผู้รา่ รวยคนหนึ่งตัดสินใจมาใช้ชีวิตลาพังในกระท่อมกลางป่า โดยใช้บรกิ ารจดั ส่งอาหาร หนังสือพิมพ์ และ จดหมายตา่ ง ๆ เช้าวันพฤหัส บุรุษไปรษณยี ม์ าสง่ จดหมาย และพบวา่ ประตูกระทอ่ มเปดิ อยู่ เมอื่ ชะโงกหน้าเข้า ไปดูจงึ เหน็ ว่าชายคนน้ีกลายเปน็ ศพนอนจมกองเลือดเสียแล้ว เม่ือตารวจมาถงึ ทีเ่ กิดเหตุ ก็เร่มิ สารวจไปรอบ ๆ กระท่อม และพบปิ่นโตอาหารที่ยังอนุ่ อยู่บน ระเบียงหน้ากระทอ่ ม หนังสือพิมพ์ฉบับวันจันทร์ และจดหมายท่ี ยงั ไมไ่ ดเ้ ปิด หากนกั เรียนตอ้ งสบื คดนี ้ี นกั เรยี นจะชว่ ยตารวจหาตวั คนร้ายได้หรอื ไม่ วา่ คนร้ายคือใคร
1.3 การหารปู แบบ (pattern recognition) การหารูปแบบ (pattern recognition) การหารปู แบบเป็นทักษะการหาความสัมพนั ธ์ท่เี ก่ียวข้อง แนวโนม้ และลกั ษณะ ทว่ั ไปของสิ่งตา่ ง ๆ โดยทั่วไปแล้วนักเรียนจะเรม่ิ พจิ ารณาปัญหาหรือสิ่งท่ีสนใจ จากน้ันอาจใชท้ ักษะการแยกส่วนประกอบทาใหไ้ ด้ องค์ประกอบภายในอ่ืน ๆ แล้วจึง ใชท้ ักษะการหารูปแบบเพ่ือสรา้ งความเขา้ ใจระหว่างองค์ประกอบเหล่านั้น กจิ กรรมท่ี 3 การเลน่ เกมทายใจ ผ้ตู ัง้ ปรศิ นา (ผู้เลน่ คนท่ี 1) จะต้องเลือกรปู ทเ่ี ป็นคาตอบไวใ้ นใจ 1 รูป ในทีน่ ีเ้ ลือกหมีแพนด้า หลงั จากนั้นใหผ้ ู้ ตง้ั คาถาม (ผเู้ ลน่ คนที่ 2) ทายคาตอบโดยตั้งคาถามท่เี ป็น คณุ ลักษณะของส่ิงมชี ีวิตทต่ี ้องการทาย และผตู้ ้ัง ปริศนาสามารถตอบได้เพียง “ใช่” หรือ “ไมใ่ ช่” เท่านั้น หลกั การทายทั่วไปควรเป็นคาถามที่ สามารถตดั ภาพ ที่ไม่ตอ้ งการออกไปใหไ้ ด้มากทสี่ ุด ในการถามแตล่ ะรอบ ผตู้ ั้งคาถามต้องเริ่มต้นด้วย คาถามใดเพือ่ ทายภาพ สิ่งมีชีวติ ที่ผู้ต้ังปรศิ นา เลือกไว้
1.4 การคดิ เชงิ นามธรรม (abstraction) คดิ เชงิ นามธรรม (abstraction) การคิดเชิงนามธรรม คือ กระบวนการคัดแยก คุณลกั ษณะทส่ี าคัญออกจากรายละเอียดในโจทย์ ปัญหา หรอื งานที่กาลังพจิ ารณา เพ่ือให้ได้องค์ ประกอบที่จาเป็นเพียงพอ และกระชับที่สุดในการพจิ ารณาภายใต้ สถานการณท์ ส่ี นใจ กิจกรรมท่ี 4 เดนิ ทางกลับบ้านหลังเลกิ เรียน จากภาพ จงหาว่าเส้นทางเดินจากโรงเรียน กลับบา้ นเสน้ ทางใด ท่สี น้ั ทีส่ ดุ เปน็ ระยะทางเทา่ ใด โดยมเี ง่ือนไขคือแวะร้านขนมและเลือกเดนิ เฉพาะถนนทมี่ ีร่มเงา พร้อมท้ัง แสดงวิธคี ิด
1.5 การออกแบบขน้ั ตอนวธิ ี การออกแบบขน้ั ตอนวธิ ี ขั้นตอนวธิ ี หรือ อัลกอริทึม (algorithm) หมายถึงกระบวนการแก้ปัญหาท่ีสามารถเข้าใจได้ มีลาดับหรือ วิธีการในการแก้ไขปัญหาใดปญั หาหนึ่งอย่างเป็นขั้นเป็นตอนและชัดเจน เมื่อนาเขา้ อะไร แล้วจะตอ้ งไดผ้ ลลัพธ์ เช่นไร ซึ่งแตกต่างจากการแก้ปัญหาแบบสามัญสานึก หรือฮิวริสติก (heuristic)โดยทั่วไป ขั้นตอนวิธี จะ ประกอบด้วย วิธีการเป็นข้ันๆ และมีส่วนที่ต้องทาแบบวนซ้า (iterate) หรือ เวียนเกิด (recursive) โดยใช้ ตรรกะ (logic) และ/หรือ ในการเปรียบเทียบ (comparison) ในข้ันตอนต่างๆ จนกระท่ังเสร็จส้ินการทางาน ในการทางานอยา่ งเดียวกัน อาจจะเลอื กขั้นตอนวิธีทีต่ ่างกันเพื่อแก้ปัญหาได้ โดยที่ผลลัพธ์ท่ีไดใ้ นข้นั สุดท้ายจะ ออกมาเหมอื นกันหรือไม่ก็ได้ และจะมคี วามแตกตา่ ง ท่ีจานวนและชดุ คาสั่งทีใ่ ช้ตา่ งกันซึง่ ส่งผลให้ เวลา (time) , และขนาดหน่วยความจา (space) ท่ีต้องการต่างกัน หรือเรียกได้อีกอย่างว่ามีความซับซ้อน (complexity) ต่างกัน การนาขั้นตอนวธิ ไี ปใช้ ไมจ่ ากดั เฉพาะการเขยี นโปรแกรมคอมพิวเตอร์ แต่สามารถใช้กับปญั หา อนื่ ๆ ได้เช่น การออกแบบวงจรไฟฟ้า, การทางานเคร่ืองจักรกล, หรอื แม้กระท่ังปัญหาในธรรมชาติ เช่น วิธี ของสมองมนุษย์ในการคดิ เลข หรือวธิ กี ารขนอาหารของแมลง คาว่า Algorithm มีท่ีมาจากชื่อของนักคณิตศาสตร์ชาวเปอร์เซียในยุคศตวรรษที่ 9 อะบู อบั ดิลลาหฺ อิบน มูซา อัลคอวาริซมีย์ (Abu Abdillah Muhammad ibn Musa al-Khawarizmi) คาว่า al-Khawarizmi ได้เพี้ยนเป็น Algoritmi เมื่องานเขียนของเขาได้รับการแปลเป็นภาษาละติน แล้วกลายเป็น Algorithm อัลกอริทึม ซ่ึงใช้หมายถึงกฎท่ีใชใ้ นการคดิ คานวณเลขคณิต และได้กลายมาเป็นคา ขั้นตอนวิธี ในช่วงศตวรรษ ที่ 18. ในปัจจุบัน คานี้ได้มีความหมายท่กี ว้างขึ้น หมายรวมถงึ ข้ันตอนวิธีการในการแก้ปัญหาต่าง ๆ ขั้นตอน วิธีแรกสาหรับคอมพิวเตอร์น้ัน เขียนข้ึนในปี ค.ศ. 1842 โดย เอดา ไบรอน ใน notes on the analytical engine ทาให้ถือกันว่า เอดาเป็นนักพัฒนาโปรแกรมหรือนักเขียนโปรแกรมคนแรกของโลก แต่เน่ืองจาก ชาร์ลส แบบเบจ ไมไ่ ดส้ รา้ ง analytical engine จนเสร็จ ขั้นตอนวธิ ขี องเอดาน้ันจึงไม่ได้มีการใช้จริง การตัดสินใจรดนา้ ตน้ ไมข้ องระบบรดน้าตน้ ไม้อตั โนมตั ิ ตวั อย่าง การตัดสินใจรดน้าต้นไม้ของระบบรดนาต้นไม้อัตโนมัติ ระบบจะตอ้ งอา่ นข้อมลู ความช้ืนของดิน แล้ว เปรยี บเทียบกับค่าทกี่ าหนดไว้ (สมมติคา่ ความช้ืนทกี่ าหนดเป็น 0.1 หนว่ ย) หากคา่ ความชื้นตา่ กว่าค่าทก่ี าหนด ระบบจะส่งสัญญาณเปิดน้า และหากค่าความช้ืนเกินกว่าหรอื เท่ากับค่าท่ีกาหนดไว้ ระบบจะส่งสญั ญาณปิดน้า มขี นั้ ตอนวธิ ดี งั นี้
ขน้ั ตอนวธิ ี: ควบคุมการเปดิ ปดิ นา้ าของเคร่อื งรดนา้ าตน้ ไม้ 1. อา่ นคา่ ความช้ืนของดิน 2. ให้ H แทนค่าความช้ืน 3. ถ้า H < 0.1 แล้ว 3.1 ส่งสัญญาณเปดิ นา้ ถ้าเง่ือนไขไมเ่ ปน็ จริง 3.2 ส่งสัญญาณปดิ นา้ ข้ันตอนวธิ ดี ังกลา่ วเป็นการตัดสินใจเพียงคร้ังเดียว เพื่อความสมบรู ณข์ องขัน้ ตอนวิธี จะต้องใหร้ ะบบรดนา้ ตน้ ไมม้ กี ารอ่านค่าและส่งสัญญาณควบคมุ สม่าเสมอ จึงต้องให้มีการทางานซ้าๆ ต่อเน่ืองกันไป ดังนี้ ข้นั ตอนวธิ :ี ควบคุมการเปดิ ปดิ นา้ าของเคร่อื งรดนา้ าตน้ ไม้ ขอ้ มลู เขา้ : คา่ ความชื้นของดิน ขอ้ มลู ออก : สัญญาณเปิดปดิ นา้ 1. ทาซา้ ทกุ ๆ 1 วินาที 1.1 อา่ นคา่ ความชื้นของดนิ 1.2 ให้ H แทนค่าความช้ืน 1.3 ถ้า H < 0.1 แล้ว 1.3.1 สง่ สญั ญาณเปดิ นา้ ถา้ เง่ือนไขไมเ่ ป็นจริง 1.3.2 ส่งสัญญาณปิดน้า
1.6 การออกแบบเงอ่ื นไข ตวั อยา่ งสถานการณ์ สมมติพ้นื ที่ของโรงเรียนเป็นรูปส่เี หลี่ยมมุมฉากทีม่ ีดา้ นขนานกบั แกนต้ังและแกนนอน โดยมพี ิกดั มุมล่าง ซ้ายอย่ทู ีต่ าแหน่ง (1,1) และมมุ บนขวาในแผนท่ีอยูท่ ่ี (4,3) นักเรียนคนหน่ึงอยู่ที่ ตาแหน่ง (x,y) เง่ือนไขทีร่ ะบุ วา่ นกั เรียนอยู่ในโรงเรียนสามารถเขียนไดห้ ลายแบบ เช่น เง่ือนไข แบบท่ี 1 : พกิ ัด (x,y) อยใู่ นขอบเขตของโรงเรียนเงื่อนไข แบบที่ 2 : 1 < x < 4 และ 1 < y < 3 การออกแบบเง่ือนไขทช่ี ัดเจนจะทาใหข้ ั้นตอนวิธที างานไดถ้ กู ต้อง มีความชัดเจนและไมค่ ลุมเครือ โดยอาจเป็น การระบเุ ง่ือนไขอย่างง่ายท่ีเป็นการเปรยี บเทียบ เช่น มากกวา่ น้อยกว่า เท่ากัน หรือไมเ่ ท่ากนั ตวั เอย่างเช่น การหาค่าสูงสุด มีการใช้เง่ือนไขคือ ถา้ x > Max แล้ว ให้ Max<--x นอกจากน้ีในบางกรณีจะต้องมกี ารระบุเง่ือนไขที่ซับซ้อนโดยใช้ตัวดาเนินการตรรกะ “และ” (AND) “หรือ” (OR) และ “นิเสธ” (NOT) เช่น รถยนต์ความเร็วมากกวา่ 40 กโิ ลเมตรต่อชั่วโมง และ ไม่เกนิ 90 กโิ ลเมตรต่อชั่วโมง เม่ือกาหนดให้ x เปน็ ความเร็วรถยนต์ สามารถเขียนไดเ้ ป็น x >40 AND <= 90 ซ่ึงเม่ือแทนค่า x และจะสามมารถหา คา่ ความจริงได้ โดยค่าความจริงของเง่ือนไขทใ่ี ช้ตัวดาเนินการตรรกะดังตาราง เงือ่ นไข แบบท่ี 3 : (1 < x) และ (x < 4) และ (1 < y) และ (y < 3) กจิ กรรมท่ี 5 การออกแบบเงอ่ื นไข ให้นักเรยี นเขียนโปรแกรมด้วย Kidbright โดยใช้คาส่ังเงื่อนไข แล้วบันทึก หนา้ จอส่งในช่องความคิดเห็นพร้อมท้ังตั้งช่ือโปรแกรม
1.7 การทาซา้ การทาซา้ ในการทางานบางครั้งย่อมมีการทางานรูปแบบเดยี วกันซา้ ๆ หลายรอบ ซ่ึงลักษณะการทาซา้ เช่น การ ทาซ้าในรายการ การทาซ้าด้วยเงื่อนไข การทาซา้ ในรายการ การทาซา้ ในรายการจะพจิ ารณาข้อมูลในรายการทลี ะตัวจนครบทกุ รายการโดยมีรูปแบบการพจิ ารณาคือ 1. ใหต้ ัวแปร x แทนข้อมลู ท่ีพิจารณาอยู่ 2. ประมวลผลตัวแปร x ตวั อยา่ งการทาซา้ ในรายการ ถา้ นักเรียนมีเงนิ M บาท และมีรายการราคาสินค้า A สามารถเขียน ขัน้ ตอนวิธนี บั จานวนสินคา้ ท่ีมีราคา ไม่เกนิ M บาทไดด้ ังน้ี ขั้นตอนวิธี : หาจานวนสินคา้ ทมี่ รี าคาไมเ่ กิน M บาท ขอ้ มูลเขา้ : ราคาสนิ คา้ ในรายการ A ข้อมลู ออก : จานวนสินค้าท่มี ีราคาไมเ่ กิน M บาท ให้ตัวแปร count ← 0 พจิ ารณาข้อมูลราคาสินค้าในรายการ A ทีละจานวน จนครบ 2.1 ให้ x แทนข้อมูลราคาสินคา้ ท่ีพิจารณาอยู่ 2.2 ถา้ x นอ้ ยกวา่ หรือเท่ากบั M แล้ว ให้ count ← count + 1 คืนคา่ จานวนสินคา้ เท่ากับ count การทาซา้ ดว้ ยเงอื่ นไข การทาซ้าแบบมีเงื่อนไขเป็นการทาซ้าท่ีมีเงื่อนไขในการหยุดการทาซา้ ตัวอยา่ ง ถา้ ต้องการประมาณคา่ ของรากทส่ี องของ 10 ท่เี ปน็ ทศนิยม 3 ตาแหน่ง เขยี นขั้นตอนวิธีได้ ดงั น้ี ขัน้ ตอนวธิ ี : ประมาณค่ารากที่สองของ 10 ท่ีเป็นทศนิยม 3 ตาแหน่ง ขอ้ มลู เข้า : - ขอ้ มูลออก : ค่าประมาณของรากท่สี องของ 10 ทเ่ี ปน็ ทศนยิ ม 3 ตาแหน่ง ให้ s ← 0 ให้ a ← 0 (เกบ็ คา่ ประมาณที่ดที ี่สดุ ) ทาซา้ ในขณะที่ s ≤ 10
3.1 ถา้ |s2 - 10| < |a2 - 10| แล้ว a ←s 3.2 s ← s + 0.001 คืนค่า a และจบการทางาน จากข้นั ตอนวธิ ีข้างต้นเป็นการทาซ้าด้วยเง่ือนไข s ≤ 10 ดังนั้นจะมกี ารทาซา้ ในข้อ 3.1 และ 3.2 จนกวา่ s จะ มีค่ามากกวา่ 10 กจิ กรรมที่ 6 การทาซา้ ให้นกั เรยี นเขยี นโปรแกรมด้วย Kidbright โดยใชค้ าสั่งทาซา้ แล้วนามาแสดงในช่อง ความคิดเห็น
Search
Read the Text Version
- 1 - 10
Pages: