1.1 แนวคิดเชิงนามธรรม
แนวคิดเชิงนามธรรม (abstract thinking หรือ abstraction) เป็นองค์ประกอบหนึ่งของแนวคิดเชิงคำนวณ (computational thinking) ใช้กระบวนการคัดแยกคุณลักษณะที่สำคัญออกจากรายละเอียดปลีกย่อยในปัญหา หรืองานที่กำลังพิจาณา เพื่อให้ได้ข้อมูลที่จำเป็นและเพียงพอในการแก้ปัญหา
คำว่า Hello แต่ละตัวมีรูปแบบที่แตกต่างกันขึ้นอยู่กับประสบการณ์ที่ผู้เขียนแต่ละคนมี จากตัวอย่างจะเห็นรายละเอียดที่แตกต่างกัน เช่น สี รูปแบบอักษร (font) อักษรตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็ก และรายละเอียดอื่น ๆ เช่น การขีดเส้นใต้ หรือการเอียงของตัวอักษร โดยรูปแบบที่แต่ละคนมีอยู่ ถ้าจะถ่ายทอดให้ผู้อื่นรับรู้และเข้าใจทุกอย่างแทบจะเป็นไปไม่ได้ และอาจจะไม่มีความจำเป็นที่ผู้อื่นต้องรับรู้รายละเอียดทั้งหมด
ตัวอย่างที่ 1.2 คัดกรองรายละเอียดของคำว่า HELLO เมื่อระบุความต้องการที่แตกต่างกันดังนี้
· ข้อมูลประกอบด้วยอักขระใดบ้าง แต่ละอักษรเป็นอักษรตัวพิมพ์เล็กหรือตัวพิมพ์ใหญ่ และมีสีอะไร
· ข้อมูลประกอบด้วยอักขระใดบ้าง แต่ละอักขระประกอบด้วยสีอะไร
· ข้อมูลประกอบด้วยอักขระใดบ้าง
· ข้อมูลประกอบด้วยอักขระกี่ตัว
· ข้อมูลประกอบด้วยคำกี่คำ
1.2 การคัดเลือกคุณลักษณะที่จำเป็นต่อการแก้ปัญหา
ปัญหาที่กำลังพิจารณาอยู่นั้นอาจประกอบไปด้วยรายละเอียดจำนวนมาก ทั้งที่จำเป็นและไม่จำเป็นต่อการแก้ปัญหา ลองพิจารณาปัญหาในสถานการณ์สมมติดังต่อไปนี้
ตัวอย่างที่ 1.3 แชร์กับฉัน
ห้องเรียนห้องหนึ่งในโรงเรียนมัธยมแห่งหนึ่งมีนักเรียนอยู่ทั้งหมด 20 คน เพื่อเป็นการต้อนรับการเปิดเทอม ก๊วนเพื่อนรักซึ่งประกอบไปด้วยหนูนิก หนูแนน และหนูหน่อยได้นัดกันไปรับประทานอาหารที่ร้านป้าแป๋วใกล้โรงเรียน และตกลงกันว่าไม่ว่าใครจะสั่งอะไรก็จะจ่ายค่าอาหารคนละเท่า ๆ กัน โดยมีรายการอาหารดังนี้
หนูนิกสั่งสลัดผักกับน้ำมะนาวปั่น หนูแนนสั่งข้าวผัดกับชาเย็น ส่วนหนูหน่อยสั่งก๋วยเตี๋ยวกับทับทิมกรอบ ให้พิจารณารูป 1.1 ว่าข้อมูลใดบ้างที่จำเป็นต่อการแก้ปัญหา
จะเห็นว่าข้อมูลที่จำเป็นต้องทราบ คือ ราคาอาหารแต่ละรายการที่สั่ง เพื่อที่จะนำมารวมกัน แล้วหารด้วยจำนวนเพื่อนที่ไป ซึ่งประกอบด้วย 3 คน คือ หนูนิก หนูแนน และหนูหน่อย
1.3 การถ่ายทอดรายละเอียดของปัญหาและการแก้ปัญหา
หลังจากที่คัดแยกรายละเอียดที่จำเป็นออกจากรายละเอียดที่ไม่จำเป็นได้ แล้วขั้นตอนต่อไปคือ การถ่ายทอดรายละเอียดนี้ไปสู่ผู้ที่จะวิเคราะห์และแก้ปัญหา ซึ่งมีหลายรูปแบบ
ตัวอย่างที่ 1.4 ด่านผ่านทางของลุงสมบัติ
ลุงสมบัติต้องการหารายได้เสริมโดยการตัดถนนส่วนบุคคลที่อนุญาตให้ผู้ขับขี่ยานพาหนะผ่านไปมาได้ แต่ต้องจ่ายค่าผ่านทาง โดยเริ่มต้นที่คันละ 10 บาท บวกด้วยค่าธรรมเนียมที่คิดตามจำนวนล้อของยานพาหนะล้อละ 5 บาท (ตัวอย่างเช่น รถเก๋ง 4 ล้อ จะต้องเสียค่าผ่านทาง 10 + 4 x 5 = 30 บาท) ส่วนคนเดินเท้าสามารถสัญจรผ่านไปมาได้โดยไม่ต้องเสียค่าผ่านทาง
รูป 1.3 แผนภาพแสดงที่ตั้งสถานที่ต่าง ๆ
รูป 1.3 เป็นแผนภาพแสดงที่ตั้งของสถานที่ต่าง ๆ รวมถึงเส้นทางและระยะทางของถนนแต่ละเส้น โดยให้มีรายละเอียดเพียงพอที่จะหาคำตอบเหล่านี้ได้
· เส้นทางเดินจากโรงเรียนกลับบ้านที่ใช้ระยะทางสั้นที่สุด
· เส้นทางเดินจากโรงเรียนกลับบ้านที่สั้นที่สุดโดยแวะร้านขายขนม
· เส้นทางเดินจากโรงเรียนกลับบ้านที่สั้นที่สุดโดยแวะร้านขายขนม และเลือกเดินเฉพาะถนนที่มีร่มเงาเท่านั้น
หมายเลข 1 คือ เปลี่ยนภาษา ซึ่งมีให้เลือกถึง 64 ภาษาด้วยกัน
หมายเลข 2 คือ เมนูบันทึก เมนูเรียกเปิดงานเก่า เมนูแก้ไข และเมนูตัวอย่างชิ้นงานของคนอื่นที่ได้สร้างไว้
หมายเลข 3 คือ หมวดหมู่บล็อกโค้ดคำสั่ง ที่ภายในถูกบรรจุคำสั่งย่อย ๆ เอาไว้
หมายเลข 4 คือ ปรับแต่งแก้ไขตัวละลร หรือพื้นหลังที่เราเลือก
หมายเลข 5 คือ คำสั่งการจัดการเกี่ยวกับเสียง เช่นการปรับแต่งเสียง การบันทึกเสียง การลบ การตัดเสียง
หมายเลข 6 คือ พื้นที่ในการวางบล็อกคำสั่ง (script) ประกอบด้วย
3.1 บล็อกคำสั่งแต่ละบล็อกถูกจัดอยู่ภายในกลุ่มที่ทำหน้าที่ที่เกี่ยวข้องกัน โดยมีทั้งหมด 10 กลุ่ม และถ้าคลิกที่กลุ่มบล็อกใด ก็จะปรากฎบล็อกคำสั่งภายในกลุ่มนั้น
3.2 พื้นที่เขียนโปรแกรม ผู้ใช้สามารถลากบล็อกคำสั่งที่ต้องการมาวางเรียงต่อกันในพื้นที่เขียนโปรแกรม
หมายเลข 7 คือ ปุ่มสั่งให้โปรแกรมทำงานและสั่งให้โปรแกรมหยุดทำงาน
หมายเลข 8 คือ เวทีแสดงผล (state)
หมายเลข 9 คือ ปุ่มการแสดงผล การปรับเปลี่ยนรูปแบบการแสดงผลของโปรแกรม scratch
หมายเลข 10 คือ ปุ่มย่อ ขยาย กึ่งกลางพื้นที่วางบล็อกคำสั่ง
หมายเลข 11 คือ ตัวละคร รูปพื้นหลัง รูปภาพ หรือวัตถุที่เรานำเข้ามา (sprite)
หมายเลข 12 คือ นำเข้าตัวละคร
หมายเลข 13 คือ นำเข้าภาพพื้นหลัง