คงเป็นคำถามที่หลายคนสงสัย จะว่าไปก็ต้องบอกว่าได้ครับ แต่โปรแกรมที่ได้จะมีลูกเล่นน้อย นอกจากนี้ยังลำบากต่อผู้เรียนในการทำความเข้าใจอัลกอริทึมต่างๆ เวลาเรียนอีกด้วย และที่สำคัญคือนั่นจะไม่บรรลุจุดประสงค์ที่แท้จริงของการเขียนโปรแกรม ทำไมล่ะ? โดนัล เออร์วิน คนุธ (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 ก็ยังกล่าวว่า ความงามของคณิตศาสตร์เกิดจากการที่ตอนแรก เรามองไม่เห็นความเชื่อมโยงของสัญลักษณ์ต่างๆ แต่เมื่อเชื่อมโยงกันและเราเข้าใจ สมองจะทำงานในรูปแบบเดียวกับตอนที่เราดูงานศิลปะเลยทีเดียว เช่น ei*pi + 1 = 0 เราอาจไม่เข้าใจ e i และ pi สัมพันธ์กันอย่างไร แต่เมื่อมันสัมพันธ์กัน เราก็จะเกิดความสุนทรีย์ การเรียนคณิตศาสตร์จึงเป็นการคลายเครียดอีกแบบนั่นเอง
Tag ที่น่าสนใจ: คณิตศาสตร์ การเขียนโปรแกรม อัลกอริทึม ประวัติศาสตร์คอมพิวเตอร์ คอมพิวเตอร์ การคำนวณ โปรแกรมเมอร์ วงจรตรรกะ ภาษาคอมพิวเตอร์ อุดมคติ การคชย.ศ. แอลกอริทึม วงจรตรรกะอิเล็กทรอนิกส์ สารกึ่งตัวนำ ภาษา_assembly
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM
Copyright (c) 2013 expert-programming-tutor.com. All rights reserved. | 085-350-7540 | 084-88-00-255 | ntprintf@gmail.com