ทำไมคณิตศาสตร์สำคัญกับการเรียนเขียนโปรแกรมคอมพิวเตอร์
รับสอนเขียนโปรแกรมคอมพิวเตอร์
http://expert-programming-tutor.com/
ถ้าอยากเขียนโปรแกรมไม่เรียนคณิตศาสตร์ได้ไหมนะ?
คงเป็นคำถามที่หลายคนสงสัย จะว่าไปก็ต้องบอกว่าได้ครับ แต่โปรแกรมที่ได้จะมีลูกเล่นน้อย
นอกจากนี้ยังลำบากต่อผู้เรียนในการทำความเข้าใจอัลกอริทึมต่างๆเวลาเรียนอีกด้วย
และที่สำคัญคือนั่นจะไม่บรรลุจุดประสงค์ที่แท้จริงของการเขียนโปรแกรม
ทำไมหล่ะ? โดนัล เออร์วิน คนุธ (Donald Ervin Knuth) ผู้เป็นปรมาจารย์ด้านอัลกอริทึมกล่าวเรื่องการเขียนโปรแกรมไว้ว่า
“โปรแกรมที่ดีที่สุดเขียนขึ้นมาเพื่อให้เครื่องคำนวณ สามารถทำงานได้อย่างรวดเร็ว
และเพื่อให้มนุษย์นั้นสามารถเข้าใจเครื่องคำนวณเหล่านั้น
ในเชิงอุดมคติแล้วโปรแกรมเมอร์เป็นเหมือนนักเขียนรายงาน
ผู้ทำงานด้วยสุนทรียะตามแบบแผนและตามรูปแบบของงานเขียน
และรวมไปถึง [การใช้] ความคิดเรื่องคณิตศาสตร์
เพื่อจะสื่อสารให้รู้ว่าอัลกอริทึมทำงานอย่างไร
และเพื่อจูงใจให้ผู้อ่านเชื่อว่าผลลัพธ์จะถูกต้องเสมอ”
แล้วการเขียนโปรแกรมเขียนมาเพื่อคำนวณนั่นหมายความว่าอย่างไรนะ?
ถ้าจะพูดเรื่องนี้คงต้องเล่าถึงประวัติศาสตร์การเกิดคอมพิวเตอร์เสียก่อนว่ามนุษย์แต่ไหนแต่ไรมามีความต้องการที่จะหาเครื่องคำนวณอยู่แล้ว เช่น การขีดนับเลขกับกำแพงพัฒนามาหน่อยก็เป็นลูกคิดเป็นต้น วันเวลาผ่านไป เบส ปาสคาล(Blaise Pascal) ได้ประดิษฐ์เครื่องคำนวณแบบฟันเฟืองขึ้น โดยใช้หลักการหมุนของฟันเฟือง 1 อันถูกหมุนครบ 1 รอบ ฟันเฟืองอีกอันหนึ่งซึ่งอยู่ ทางด้านซ้ายจะถูกหมุนไปด้วยในเศษ 1 ส่วน 10 รอบ เครื่องมือของปาสคาลนี้ถูกนำมาขายในปี พ.ศ. 2188 แต่ไม่ค่อยมีคนนิยมเนื่องจากราคาแพง และตอนใช้งานจริงจะเกิดเหตุการณ์ที่ฟันเฟืองติดขัดบ่อยๆ ทำให้ผลลัพธ์ที่ได้ไม่ค่อยถูกต้องตรงความเป็นจริง ต่อมีไลบ์นิซGottfriend von Leibnitz) ได้ปรับปรุงเครื่องคำนวณของ ปาสคาลให้สามารถคูณและหารได้ด้วย
ชาลส์ แบบบิจ (Charles Babbage) “บิดาแห่งคอมพิวเตอร์” ต้องการสร้างเครื่องคำนวณหาผลต่าง แต่ไม่สำเร็จแต่ก็เป็นไอเดียของการสร้างคอมพิวเตอร์ต่อๆมา หลังจากนั้นเลดี้ เอดา(Lady Auqusta Ada Byron) ได้ทำการศึกษาความคิดของชาลส์ แบบิจจนเขียนวิธีการที่จะสร้างอย่างเป็นขั้นตอนด้วยภาษาคอมพิวเตอร์ชื่อ Ada จึงได้รับขนานนามว่าเป็น “โปรแกรมเมอร์คนแรก”อาดาได้ทำบัตรเจาะรูเพื่อให้คอมพิวเตอร์สามารถทำงานด้วยคำสั่งซ้ำๆจนเป็นที่มาของลูป(Loop)ในเวลาต่อมา ต่อในช่วงปี 1940 มีเครื่องคำนวณขนาดใหญ่ของจริงขึ้นมา โดยใช้หลอดสุญญากาศหลายๆท่อมาช่วยคำนวณเลขฐานสอง ชื่อ ENIAC (Electronic Numerical Integrator And Computer) แต่เครื่องแบบนี้ก็ร้อนมากแถมขนาดใหญ่มโหฬาร ต่อมาเลยทำเครื่องแบบ ทรานซิเตอร์ แทน.จอน นวูแมน (John Von Neumann) ได้พบวิธีการเก็บโปรแกรมไว้ ในหน่วยความจำของเครื่องเช่นเดียวกับการเก็บข้อมูลและต่อวงจรไฟฟ้า สำหรับการคำนวณ และการปฏิบัติการพื้นฐาน ไว้ให้เรียบร้อยภายในเครื่อง แล้วเรียกวงจรเหล่านี้ด้วยรหัสตัวเลขที่กำหนดไว้ เพื่อให้การใช้โปรแกรมง่ายขึ้น เครื่องคอมพิวเตอร์ที่ถูกพัฒนาขึ้นตามแนวความคิดนี้ได้แก่ EVAC (Electronic Ddiscreate Variable Automatic Computer)
คอมพิวเตอร์ถูกพัฒนามาเรื่อย John Backus และ IBM ร่วมกันสร้างภาษาคอมพิวเตอร์ชื่อ FORTRAN ซึ่งเป็นภาษาระดับสูง (high level programming language) ภาษาแรกในประวัติศาสตร์คอมพิวเตอร์ คอมพิวเตอร์ยุคต่อมาใช้ วงจรไอซี (Integrated Circuit) เป็นสารกึ่งตัวนำที่สามารถบรรจุวงจรทางตรรกะไว้แล้วพิมพ์บนแผ่นซิลิกอน (Silicon) เรียกว่า "ชิป"
หลังจากคอมพิวเตอร์ได้ผ่านการเวลาและมีภาษา Assembly ในการสั่งการเครื่องแล้วก็เกิดภาควิชาใหม่แยกออกมาจากภาควิชาคณิตศาสตร์นั้นคือภาควิชาคอมพิวเตอร์ที่มีการศึกษาด้านการพัฒนาซอร์ฟแวร์อย่างจริงจัง อลัน ทัวริ่ง(Alan Mathison Turing) ได้เขียนบทความชื่อ “ว่าด้วยจำนวนที่คำนวณได้และการประยุกต์ใช้สำหรับปัญหาการตัดสนใจ (On Computable Numbers with an application to the Entscheidungs problem)" บทความนี้เกี่ยวกับ คำสั่งตรรกะ (logical instructions)ของการทำงาน แล้วก็บอกว่าการทำงานต้องมี กฎเกณฑ์ที่แน่นอน (definite method) ทั้งหมดก็เป็นเรื่องที่เกี่ยวกับวิธีการเขียนโปรแกรมต่มมา ซึ่งทำให้ต่อมาเขาได้ชื่อว่าเป็น “ผู้ก่อตั้งวิทยาการคอมพิวเตอร์ในยุดใหม่”
จะเห็นได้ว่าจากประวัติคร่าวๆคอมพิวเตอร์นั้นเกิดจากการที่นักคณิตศาสตร์เริ่มจะขี้เกียจคิดเลขจนต้องหาเครื่องมาช่วยคิด ไปๆมาๆก็เลยกลายคอมพิวเตอร์และพัฒนากันมาจนถึงปัจจุบัน หากจะบอกคอมพิวเตอร์ไม่เกี่ยวกับคณิตศาสตร์ก็คงไม่ใช่แล้ว นี่เป็นเหตุผลแรกเลยก็ว่าได้ว่าทำไมเราจึงควรเรียนคณิตศาสตร์ ก็เพื่อให้เข้าใจคอมพิวเตอร์ได้มากที่สุดนั่นเอง
หน้าที่หลักของคอมพิวเตอร์คือการคำนวณแทนมนุษย์อย่างที่ได้กล่าวไปแล้ว แล้วจะคำนวณได้อย่างไรกันนะ?
ALU (Arithmetic & Logical Unit : ALU) หรือหน่วยคำนวณตรรกะ ทำหน้าที่เหมือนกับเครื่องคำนวณอยู่ในเครื่องคอมพิวเตอร์โดยทำงานเกี่ยวข้องกับ การคำนวณทางคณิตศาสตร์ เช่น บวก ลบ คูณ หาร นอกจากนี้ยังสามารถคำนวณในเชิงตรรกะศาสตร์ ได้แก่ ความสามารถในการเปรียบเทียบตามเงื่อนไข และกฎเกณฑ์ทางคณิตศาสตร์ เพื่อตรวจเงื่อนไขนั้นเป็น จริง หรือ เท็จ เช่น เปรียบเทียบมากว่า น้อยกว่า เท่ากัน ไม่เท่ากัน ของจำนวน 2 จำนวน เป็นต้น ซึ่งการเปรียบเทียบนี้มักจะใช้ในการเลือกทำงานของเครื่องคอมพิวเตอร์ จะทำตามคำสั่งใดของโปรแกรมเป็น คำสั่งต่อไป
ส่วนคำนวณเป็นส่วนประมวลผล ซึ่งนับว่าเป็นส่วนที่สำคัญที่สุดของเครื่องคอมพิวเตอร์ ส่วนคำนวณทำหน้าที่ใหญ่ ๆ สองประการ คือ ประการแรกทำการบวก ลบ คูณ และหาร ประการที่สองคือ ทำหน้าที่ตัดสินใจว่าข้อมูลมากกว่าหรือน้อยกว่าอีกข้อมูลหนึ่ง หน้าที่ทั้งสองประการนี้สามารถเกิดได้ด้วยการอาศัยวงจรตรรกะที่เป็นวงจรอิเล็กทรอนิกส์ จึงทำให้ส่วนคำนวณนี้มีชื่อเรียกอีกอย่างหนึ่งว่า ส่วนคำนวณตรรกะ (arithmetic logic unit; ALU) นอกจากนี้ ส่วนคำนวณสามารถเลื่อนข้อมูลไปทางซ้าย หรือทางขวา เก็บหรือย้ายข้อมูลไปยังส่วนอื่น ๆ ของส่วนควบคุมกลางได้ วงจรตรรกะ (logic circuits) เป็นวงจรทางอิเล็กทรอนิกส์ที่ใช้ส่วนประกอบ เช่น ตัวความต้านทาน ตัวเก็บประจุ ไดโอด ทรานซิสเตอร์ ฯลฯ มาจัดให้สามารถทำงานแทนการคำนวณทางตรรกะได้ โดยใช้ "การมีสัญญาณไฟฟ้า" และ "ไม่มีสัญญาณไฟฟ้า" แทนสภาวะตรรกะ "จริง" และ "เท็จ" หรือ "1" กับ "0"
และนี่ก็คือการทำงานของคอมพิวเตอร์นั่นเองต้องอาศัยเรื่องการคำนวณและตรรกศาสตร์ ซึ่งเรื่องพวกนี้ยังช่วยพัฒนาระบบความคิดของเราให้เป็นระบบซึ่งจะทำให้ง่ายต่อการเข้าอัลกอริทึมหรือวิธีคิดในการเขียนโปรแกรมคอมพิวเตอร์ด้วย
คณิตศาสตร์ช่วยเราแก้ปัญหาอะไรเราบ้าง?
ก็อย่างที่เรารู้กันแล้วว่าคอมพิวเตอร์ช่วยแก้ปัญหาทางคณิตศาสตร์ได้ แล้วคณิตศาสตร์ช่วยแก้ปัญหาอะไรให้เราบ้างนะ เราก็จะพบว่าโลกที่เราอยู่ทุกวันเต็มไปด้วยคณิตศาสตร์อยู่รอบตัวเรา
เช่น เวลาที่อยู่บ้าน เราตื่นนอนด้วยนาฬิกาปลุก ก็ต้องตั้งนาฬิกาปลุก ไหนจะตอนไม่ตื่นแล้วกดเลื่อนเวลานาฬิกาก็ต้องทำการคำนวณหาเวลาใหม่และทำการปลุกต่อไป ไม่เพียงแค่นี้เท่านั้นเรายังต้องใช้การคำนวณทำสิ่งต่างๆอีกมากมาย ทั้งการคำนวณเวลารายรับรายจ่ายประจำวัน หรือหาเฉลี่ยของค่าใช้จ่ายรายเดือน หรือแม้กระทั่งเราจะทาสีบ้านต้องใช้สีเท่าไหร่ จะวางเฟอร์นิเจอร์อย่างไรให้ได้พื้นที่ใช้สอยสูงสุด
และเวลาที่ไปเที่ยวก็ยังต้องมีการคำนวณระยะทาง ระดับน้ำมันที่จะใช้ หรือถ้าขึ้นเครื่องบินเราก็ต้องคำนวณการเดินทางไปให้ทันเวลาออก ไหนจะน้ำหนักกระเป่า ว่าเราควรจะใส่อะไรในกระเป่าให้เป็นประโยชน์มากที่สุดก็ล้วนต้องใช้คณิตศาสตร์
นอกจากนี้ในระดับประเทศเราก็ยังระบบธนาคารการคำนวณดอกเบี้ย หากเราฝากเงินไว้กับธนาคารเราจะสามารถคำนวณล่วงหน้าถึงดอกเบี้ยที่จะได้ ราคาหุ้นที่ต้องเปลี่ยนไปวินาทีต่อวินาทีต้องมีการคำนวณอย่างรวดเร็วบนหน้าจอแสดงผล การเก็บข้อมูลประชากรก็ไม่ใช่เรื่องเล่นๆ เรายังต้องคำนวณหาว่าแล้วพลเมืองของรัฐจะเติมโตขึ้นกี่เปอร์เซ็นต์เพื่อนำไปคำนวณด้านอาหาร พลังงานและโรงเรียน สาธารณูปโภคให้มีเท่ากับความต้องการของคนในชาติ หรือถ้าพบว่ามีแนวโน้มลดลงเราจะหาคนจากไหนมาทำงานต่อ รวมไปถึงเวลามีโรคแพร่ระบาดก็ต้องควบคุมประชากรและคำนวณหาโอกาสของผู้ที่จะติดเชื้อด้วย การหาเลขบัตรประชาชนที่จะไม่ซ้ำกับคนอื่นๆ
และสำคัญที่สุดที่ขาดไม่ได้คือโลกแห่งวิทยาศาสตร์ที่เติมโตไปข้างหน้าทุกวันก็ปฏิเสธไม่ได้เลยว่าวิทยาศาสตร์ต้องเดินด้วยคณิตศาสตร์ คอมพิวเตอร์เป็นเทคโนโลยีเป็นวิทยาศาสตร์ก็ต้องเดินด้วยคณิตศาสตร์ แต่ก่อนนักวิทยาศาสตร์นั้นอธิบายปรากฏการณ์ของโลกด้วยคำบรรยายมากมาย แต่เมื่อกาลิเลโอผู้มีเรื่องเล่าว่าไปโยนหินบนหอเอนปิซ่า ได้ขึ้นมาประกาศว่าต่อไปนี้ฟิสิกส์ และธรรมชาติ จะสามารถอธิบายด้วยคณิตศาสตร์ได้เพราะคณิตศาสตร์มีความถูกต้องเหมือนกับที่ฟิสิกส์มีความถูกต้อง ก็เป็นที่นิยมมาถึงปัจจุบันที่ฟิสิกส์และศาสตร์อื่นนำคณิตศาสตร์มาใช้อธิบายโลก เช่น การเดินทางดวงจันทร์ และการคำนวณอื่นๆอีกมากมาย
เกมส์ต่างๆที่เราเล่นก็ต้องใช้คณิตศาสตร์นะ ทุกวันนี้เวลาต้องเดินทางด้วยรถเมล์หรือบีทีเอสนานๆมันคงน่าเบื่อไม่น้อยถ้าเรายังต้องมานั่งบิดบัตรบีทีเอสเล่นไปมา แต่ด้วยความโชคดีที่เหล่าโปรแกรมเมอร์ทั้งหลายต่างสร้างเกมส์มาเพื่อแก้เบื่อให้เรา แล้วเกมส์มันสร้างยังไงล่ะ คำตอบคือเกมส์ก็เป็นการคำนวณทางคณิตศาสตร์ ขั้นเล็กน้อย ตั้งแต่ set vector ,matrix เช่นการเปลี่ยนตำแหน่งของตัวละคร ให้สัตว์ประหลาดหรือมอนสเตอร์มาโจมตีผู้เล่นต่างก็เป็นคณิตศาสตร์ทั้งนั้น ไปจนถึงคณิตศาสตร์ชั้นสูง (calculus , linear algebra ฯลฯ )เช่น การ simulate ต่างๆ มากมาย
ในชีวิตประจำวันๆหนึ่งเราไม่สามารถหนีคณิตศาสตร์ได้เลยจริงๆ แต่การคำนวณทางคณิตศาสตร์จะทำทุกครั้งด้วยตัวเองก็ไม่ไหว เราจึงควรศึกษาคณิตศาสตร์เพื่อมาเขียนโปรแกรมซะ ชีวิตจะได้ง่ายขึ้นเยอะ
สมองมนุษย์กับคณิตศาสตร์
และนอกจากนี้ ถึงจะไม่เกี่ยวกับคอมพิวเตอร์เท่าไหร่ แต่การเรียนคณิตศาสตร์ก็ยังมีช่วยในจิตใจสงบและเกิดสุนทรียภาพด้วย จากบทความ “Mathematics: Why the brain sees maths as beauty” โดย James Gallagher ก็ยังกล่าวว่า ความงามของคณิตศาสตร์เกิดจากการที่ตอนแรกเรามองไม่เห็นความเชื่อมโยงของสัญลักษณ์ต่างๆแต่เมื่อเมื่อเชื่อมโยงกันและเราเข้าใจสมองจะทำงานในรูปแบบเดียวกับตอนที่เราดูงอนศิลปะเลยทีเช่น เช่น e^{i *pi} + 1 = 0 เราอาจไม่เข้าใจ e i และ pi สัมพันธ์กันอย่างไรแต่เมื่อมันสัมพันธ์กันเราก็จะเกิดความสุนทรีย์ การเรียนคณิตศาสตร์ก็เป็นการคลายเครียดไปอีกแบบนั่นเอง
*************************************
บทความโดยน้องตี้
รับสอนเขียนโปรแกรมคอมพิวเตอร์
http://expert-programming-tutor.com/
[ view entry ] ( 1318 views ) | permalink | ( 2.9 / 1303 )
<Back | 1 | 2 | 3 | 4 | 5 | Next> Last>>