การเขียนโปรแกรมเป็นกระบวนการของการใช้ Algorithm และ Coding ให้เป็นภาษาคอมพิวเตอร์โดยใช้ภาษาสำหรับเขียนโปรแกรมเช่น ภาษา C , ภาษา C++ , ภาษา VB.NET , ภาษา C# , ภาษา Python (ทั้งหมดนี้ Expert-Programming-Tutor มีเปิดสอนนะครับ ) เพื่อให้ Computer สามารถนำไปใช้งานได้ แม้ว่าในโลกนี้จะมีภาษาสำหรับการเขียนโปรแกรมอยู่หลากหลายภาษา และมีคอมพิวเตอร์อยู่หลากหลายประเภท ( ทั้ง PC / Mobile / Microcontroller / หรือ อื่นๆ )ก็ตาม แต่ทุกๆการเขียนโปรแกรมก็มีสิ่งที่เกี่ยวเนื่องกันในทุกๆภาษา ! และ ในทุกๆ ประเภทของ Computer ที่จะไปรัน ขั้นตอนแรกที่สำคัญคือต้องมี Solution หรือคำตอบของปัญหาก่อนจึงสามารถเขียนโปรแกรมได้ หากไม่มีอัลกอริทึมจะไม่สามารถเขียนโปรแกรมใดๆได้ กล่าวโดยสรุปก็คือ ถึงแม้ว่า เราจะมี Computer Programming Language หลายชนิดแต่สิ่งที่เราเรียนหลักๆคือเรียนวิธีการแก้ปัญหาหรือว่า เรียน Algorithm นั้นเอง ดังนั้น ถ้าหากว่า ผู้ปกครองส่งลูกมาเรียนที่ Expert-Programming-Tutor แล้วก็ไม่ต้องกังวลว่าลูกจะได้เรียนไม่ครบหรือกังวลว่าต้องเรียนทุกภาษาเลยหรือไม่ คำตอบคือไม่ต้องเพราะว่าเราเรียนใจความหลักๆคือเรียน Algorithm ซึ่งสอนในทุกๆ ภาษาที่นี้ (ตรงนี้คือจุดที่เรามั่นใจในความแตกต่างของเรากับ การเรียนเขียนโปรแกรมที่อื่น เพราะว่าที่อื่นจะเน้นสอนภาษาอย่างเดียวไม่ได้เน้นสอน Algorithm ซึ่งปัญหาของการเน้นสอนภาษาโปรแกรมมิ่งอย่างเดียวโดยไม่ได้สอน เรื่องของ Algorithm ด้วย คือ ภาษาเขียนโปรแกรมแกรมเป็น Technology ที่มีการเปลี่ยนแปลงอยู่ตลอดเวลาการเขียนโปรแกรมได้โดยแค่จำภาษาได้จึงไม่พอเพราะว่าจะต้องมาเรียนซ้ำอยู่เรื่อยๆเมื่อ Technology มีการเปลี่ยนแปลง แต่ถ้าเรารู้ Algorithm แบบดิบดีแล้ว เรา สามารถนำความรู้ที่ได้ไปประยุกต์ได้กับในหลายๆอย่าง ไม่จำกัดแค่ในการเขียนโปรแกรมคอมพิวเตอร์เท่านั้น ซึ่งสำหรับเด็กๆ 8- 15 ปีตรงนี้เป็นจุดที่อยากจะเน้นย้ำมากกว่าการตะบี้ตะบันเรียนภาษาที่ คงจะล้าสมัยอย่างแน่นอนเมื่อลูกๆของคุณทำงานไปสัก 4- 5 ปี )
Computer Science คือสาขาวิชาที่ไม่ได้เป็นสาขาที่เพียงแค่ศึกษา การเขียนโปรแกรมคอมพิวเตอร์เท่านั้นแต่ Computer Science เป็น สาขาที่ศึกษาถึงปัญหาและวิธีการแก้ปัญหาด้วย การเขียนโปรแกรมเป็นวิธีการอย่างหนึ่งในการอธิบายวิธีการแก้ปัญหาออกมาเพื่อให้เครื่อง Computer สามารถเข้าใจได้ การศึกษาปัญหาและวิธีแก้ปัญหาเป็น Core หลักของ Computer Science
Algorithm ในภาษาไทยแปลว่าขั้นตอนวิธี (ศัพท์บัญญัติราชบัณฑิตยสถาน ) จริงๆคำนี้ผมไม่อยากให้แปลครับเพราะว่า คำว่า Algorithm มีที่มาจากชื่อของนักคณิตศาสตร์ชาวเปอร์เซียชื่อ อาบู อับดุลลาห์ อิบนุ มูซา อัลคอวาริซมีย์ (Abu Abdillah Muhammad ibn Musa al-Khwarizmi) ในยุคศตวรรษที่ 9 คำว่า al-Khwarizmi ได้เพี้ยนเป็น Algoritmi เมื่องานเขียนของเขาได้รับการแปลเป็นภาษาละติน แล้วกลายเป็น Algorithm อัลกอริทึม ซึ่งใช้หมายถึงกฎที่ใช้ในการคิดคำนวณเลขคณิต และได้กลายมาเป็นคำ ขั้นตอนวิธี ในช่วงศตวรรษที่ 18. ในปัจจุบัน คำนี้ได้มีความหมายที่กว้างขึ้น หมายรวมถึง ขั้นตอนวิธีการในการแก้ปัญหาต่างๆ
ขั้นตอนวิธี หรือ อัลกอริทึม (อังกฤษ: algorithm) หมายถึงกระบวนการแก้ปัญหาที่สามารถเข้าใจได้ มีลำดับหรือวิธีการในการแก้ไขปัญหาใดปัญหาหนึ่งอย่างเป็นขั้นเป็นตอนและชัดเจน เมื่อนำเข้าอะไร แล้วจะต้องได้ผลลัพธ์เช่นไร ซึ่งแตกต่างจากการแก้ปัญหาแบบสามัญสำนึก หรือฮิวริสติก (heuristic) โดยทั่วไป ขั้นตอนวิธี จะประกอบด้วย วิธีการเป็นขั้นๆ และมีส่วนที่ต้องทำแบบวนซ้ำ (iterate) หรือ เวียนเกิด (recursive) โดยใช้ตรรกะ (logic) และ/หรือ ในการเปรียบเทียบ (comparison) ในขั้นตอนต่างๆ จนกระทั่งเสร็จสิ้นการทำงาน ในการทำงานอย่างเดียวกัน เราอาจจะเลือกขั้นตอนวิธีที่ต่างกันเพื่อแก้ปัญหาได้ โดยที่ผลลัพธ์ที่ได้ในขั้นสุดท้ายจะออกมาเหมือนกันหรือไม่ก็ได้ และจะมีความแตกต่าง ที่จำนวนและชุดคำสั่งที่ใช้ต่างกันซึ่งส่งผลให้ เวลา (time) , และขนาดหน่วยความจำ (space) ที่ต้องการต่างกัน หรือเรียกได้อีกอย่างว่ามีความซับซ้อน (complexity) ต่างกัน การนำขั้นตอนวิธีไปใช้ ไม่จำกัดเฉพาะการเขียนโปรแกรมคอมพิวเตอร์ แต่สามารถใช้กับปัญหาอื่น ๆ ได้เช่น การออกแบบวงจรไฟฟ้า, การทำงานเครื่องจักรกล, หรือแม้กระทั่งปัญหาในธรรมชาติ เช่น วิธีของสมองมนุษย์ในการคิดเลข หรือวิธีการขนอาหารของแมลง
หนึ่งในขั้นตอนวิธีอย่างง่าย คือ ขั้นตอนวิธีที่ใช้หาจำนวนที่มีค่ามากที่สุดในรายการ (ซึ่งไม่ได้เรียงลำดับไว้) ในการแก้ปัญหานี้ เราจะต้องดูจำนวนทุกจำนวนในรายการ
(ที่มา https://th.wikipedia.org/wiki/ขั้นตอนวิธี )
Tag ที่น่าสนใจ: การเขียนโปรแกรม algorithm ภาษาโปรแกรม computer_science อัลกอริทึม วิธีการแก้ปัญหา ภาษา_c ภาษา_c++ ภาษา_vb.net ภาษา_c# ภาษา_python อะไรคือการเขียนโปรแกรม ศึกษา_computer_science กระบวนการ_algorithm computer_programming_language คำณ่าว_algorithm
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ 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