อะไรคือการเขียนโปรแกรมคอมพิวเตอร์กันแน่ ?

การเขียนโปรแกรมเป็นกระบวนการของการใช้ 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/ขั้นตอนวิธี )

ฟรี TUTORIAL JAVA

ฟรีtutorial JAVA 01 install Eclipse ฟรีtutorial JAVA 02 intro to programming Eclipse ฟรีtutorial JAVA 03 condiotion ฟรีtutorial JAVA 04.loop ฟรีtutorial JAVA 05.array ฟรีtutorial JAVA 05 2 array cont ฟรีtutorial JAVA 06 01 function ฟรีtutorial JAVA 06 02 function cont ฟรีtutorial JAVA 07 object ฟรีtutorial JAVA 08 string ฟรีtutorial JAVA 09 constructor ฟรีtutorial JAVA 10 01 oop ฟรีtutorial JAVA 10 02 oop2 ฟรีtutorial JAVA 11 exception ฟรีtutorial JAVA 12 reading file ฟรีtutorial JAVA 13 thread ฟรีtutorial JAVA 14 generic ฟรีtutorial JAVA 15 01 GUI ฟรีtutorial JAVA 15 02 GUI2 ฟรีtutorial JAVA 15 03.GUI3 ฟรีtutorial JAVA 16 using WindowBuilder ฟรีtutorial JAVA 17 event ฟรีtutorial JAVA 18 database management system ฟรีtutorial JAVA 19 ER diagram ฟรีtutorial JAVA 20 Relational ฟรีtutorial JAVA 21 Xampp ฟรีtutorial JAVA 22 JDBC ฟรีtutorial JAVA 23 MVC ฟรีtutorial JAVA 24 SQL ฟรีtutorial JAVA
ขอย้ำอีกครั้งว่าเนื้อหาที่เห็นอยู่นี้ไม่ใช่เนื้อหาตามปกติที่เราสอนในห้องเรียนเป็นแค่ tutorial ไว้อ่านประกอบเฉยๆ แทบไม่เกี่ยวกันเลย และไม่เกี่ยวกับการบ้านที่ทำครับ ในห้องเรียนเนื้อหาจะเยอะกว่านี้ค่อนข้างมากครับ
ขอบคุณน้องตี้ อย่างสูงสำหรับ Tutorial ดีๆ

ฟรี TUTORIAL DATA STRUCTURE

DATA STRUCTURE

ฟรีtutorial : DATA STRUCTURE : 01 1การเรียงลำดับ(Sorting) ฟรีtutorial : DATA STRUCTURE : 01 2 การเรียงลำดับ2 ฟรีtutorial : DATA STRUCTURE : 02 อาร์เรย์ลิสต์ (Array List) ฟรีtutorial : DATA STRUCTURE : 03 ลิงค์ลิสต์ (Linked List) ฟรีtutorial : DATA STRUCTURE : 04 สแต๊ค ฟรีtutorial : DATA STRUCTURE : 05 1 คิวและไพออริตี้คิว ฟรีtutorial : DATA STRUCTURE : 05 2 คิวและไพออริตี้คิว ฟรีtutorial : DATA STRUCTURE : 06 1 ไบนารีทรี ฟรีtutorial : DATA STRUCTURE : 06 2 ไบนารีเสิร์ชทรี ฟรีtutorial : DATA STRUCTURE : 06 3 ไบนารีเสิร์ชทรี ฟรีtutorial : DATA STRUCTURE : 08 แฮช ฟรีtutorial : DATA STRUCTURE : 09 กราฟ ฟรีtutorial : DATA STRUCTURE :
ขอย้ำอีกครั้งว่าเนื้อหาที่เห็นอยู่นี้ไม่ใช่เนื้อหาตามปกติที่เราสอนในห้องเรียนเป็นแค่ tutorial ไว้อ่านประกอบเฉยๆ แทบไม่เกี่ยวกันเลย และไม่เกี่ยวกับการบ้านที่ทำครับ ในห้องเรียนเนื้อหาจะเยอะกว่านี้ค่อนข้างมากครับ
ขอบคุณน้องตี้ อย่างสูงสำหรับ Tutorial ดีๆ


แผนผังการเรียนเขียนโปรแกรม