วิทยาการคำนวณม.4-5-6 เรียนอะไร? ....โพสต์นี้มีคำตอบ
👉 ม.4 -> ปูพื้นฐานวิทย์คอม ได้แก่ เรียนแนวคิดเชิงคำนวณ, อัลกอริทึม, การทำโครงงาน
👉 ม.5 -> เรียน data science (วิทยาการข้อมูล หรือวิทยาศาสตร์ข้อมูล)
👉 ส่วนม.6 ยังไม่มา รอปีหน้าก่อน -> แว่วๆ ว่าน่าจะมีเนื้อหา AI โผล่มาจ๊ะเอ๋ และหลายๆ เรื่องที่จะมีสอน
.
เรียกว่าดึงสิ่งที่ต้องเรียนรู้ในระดับปริญญาตรีมาปูพื้นฐานให้เด็กๆ ทั่วประเทศกันแหละ
.
*** หมายเหตุ "วิทยาการคำนวณ" มีตั้งแต่ ป.1 ยันถึง ม.6 กำลังทยอยเปิดสอนให้ครบทุกชั้นปี แต่โพสต์นี้ขอรีวิวเฉพาะ ม.4, 5 และ 6
===========
รีวิว ม.4
===========
วิทยาการคำนวณ ม.4 มีจำนวน 3 บท
🔥 +++บทที่ 1 แนวคิดเชิงคำนวณ +++++
บทนี้จะสอนแนวคิดเชิงคำนวณ (Computational Thinking) คืออะไร?
ซึ่งใครไม่รู้จักอาจงงเล็กน้อย ถึงปานกลาง
หรือเกิดคำถามคาใจ เรียนไปใช้ทำอะไรครับคุณครู
.
สำหรับแนวคิดเรื่อง Computational Thinking
(เรียกเป็นภาษาอังกฤษดีกว่า)
มีไว้เพื่อใช้แก้ปัญหาในแวดวง “วิทยาศาสตร์คอมพิวเตอร์” 🤩 🤩
จริงๆ แล้วมันไม่ใช่เรื่องแปลกใหม่แต่อย่างใด
.
ถ้าเราได้นั่งเรียนในระดับมหาวิทยาลัย
หรือได้ฝึกเขียนโปรแกรมไปเรื่อยๆ ก็จะใช้แนวคิดนี้โดยธรรมชาติ
อย่างไม่รู้ตัวอยู่แล้วครับ ไม่ต้องไปเรียนที่ไหน
.
นิยามของ Computational Thinking หรือแนวคิดเชิงคำนวณ
จะประกอบด้วยแนวคิดย่อย 4 อย่างดังนี้
1) Algorithm
2) Decomposition
3) Pattern recognition
4) Abstract thinking
.
หลายละเอียดแต่ละหัวข้อก็ตามนี้
👉 1) Algorithm ชื่อไทย “ขั้นตอนวิธี”
Algorithm คือลำดับขั้นตอนในการแก้ปัญหาหรือการทำงานที่ชัดเจน การคิดค้น อธิบายขั้นตอนวิธีในการแก้ปัญหาต่าง ๆ
.
ถ้าเคยเรียนตอนป.ตรี คงรู้จักคำนี้ดีไม่ต้องอธิบายมาก เช่น
-จะคำนวณหาพื้นที่เส้นรอบวง ต้องมีสเตปคำนวณอย่างไรบ้าง
-จะค้นหาข้อมูลแบบ binary search ต้องมีขั้นตอน 1,2,3 อย่างไรบ้าง
-จะหาเส้นทางที่ใกล้สุดในกราฟ ด้วยวิธี Dijkstra จะมีขั้นตอน 1,2,3 อย่างไรบ้าง
.
👉 2) Decomposition ชื่อไทยคือ “การแยกส่วนประกอบ และการย่อยปัญหา”
.
Decomposition เป็นการพิจารณาเพื่อแบ่งปัญหา หรืองานออกเป็นส่วนย่อย ทำให้สามารถจัดการกับปัญหาหรืองานได้ง่ายขึ้น พูดง่ายๆ เอาปัญหามาแยกย่อยออกเป็นส่วนๆ
.
⌨ ตัวอย่างการนำไปใช้ตอนเขียนโปรแกรม
เช่น การเขียนโปรแกรมแยกเป็นส่วนๆ แยกเป็นแพ็กเกจ แยกเป็นโมดูล
หรือทำระบบเป็น services ย่อยๆ หรือมองเป็น layer เป็นต้น
.
👉 3) Pattern recognition ชื่อไทยคือ “การหารูปแบบ”
.
Pattern recognition เป็นทักษะการหาความสัมพันธ์ที่เกี่ยวข้อง แนวโน้ม และลักษณะทั่วไปของสิ่งต่าง ๆ
.
⌨ ตัวอย่างการนำไปใช้ตอนเขียนโปรแกรม
เมื่อมีการทำงานของโปรแกรมที่หลากหลายแบบ
แต่ทว่ามีรูปแบบที่แน่นอนซ้ำๆ กัน
เราสามารถยุบโค้ดมาอยู่ในฟังก์ชั่นเดียวกันได้หรือไม่
หรือเขียนเป็นโปรแกรมวนลูป ให้อยู่ในลูปเดียวกัน เป็นต้น
.
👉 4) Abstract thinking ชือไทย “การคิดเชิงนามธรรม”
.
Abstract thinking เป็นกระบวนการคัดแยกคุณลักษณะที่สำคัญออกจากรายละเอียดปลีกย่อย ในปัญหา หรืองานที่กำลังพิจารณา เพื่อให้ได้ข้อมูลที่จำเป็นและเพียงพอในการแก้ปัญหา
⌨ ตัวอย่างการนำไปใช้ตอนเขียนโปรแกรม
-ก็เช่นการใช้ฟังก์ชั่น โดยเราแค่รู้รายละเอียดว่าฟังก์ชั่นทำงานอะไร ต้องการ input/ouput อะไร แล้วได้ return อะไรกลับมา ส่วนเนื้อหาไส้ในละเอียดเรามองไม่เห็น
.
🔥 +++++ บทที่ 2 การแก้ปัญหาและขั้นตอนวิธี +++++++
บททนี้เขาจะปูพื้นฐานอัลกอริทึมให้กับเด็กครับ ได้แก่
2.1 การแก้ปัญหาด้วยคอมพิวเตอร์
2.2 สอนให้รู้จักระบุข้อมูล input, ouput และเงื่อนไขของปัญหา
2.3 สอนการนำแนวคิด Computational Thinking มาออกแบบอัลกอริทึม
มี flow chart โผล่มาเล็กน้อย
2.4 สอนเรื่องการทำซ้ำ หรือก็คือสอนให้รู้จักวนลูปนั่นเอง
2.5 สอนอัลกอริทึมได้แก่ การจัดเรียงและค้นหาข้อมูล
ภาษาอังกฤษก็คือ อัลกอริทึมสำหรับ sort & search
.
🤓 สำหรับเรื่อง sort ก็จะมี
- selection sort (ชื่อไทย การจัดเรียงแบบเลือก)
- insertion sort (ชื่อไทย การจัดเรียงแบบแทรก)
.
🤓 สำหรับเรื่อง search ก็จะมี
-sequential search (ชื่อไทย การค้นหาแบบลำดับ)
-binary search (ชื่อไทย การค้นหาแบบทวีภาค)
.
ลืมบอกไป Big-O ตอนเรียนป.ตรี ก็โผล่ออกมาแว็บๆ นิดหน่อย
เด็กอาจสงสัยมันคืออะไร เป็นญาติอะไรกับ Big-C เปล่าเนี่ย
.
🔥 ++++ บทที่ 3 การพัฒนาโครงงาน ++++
บทนี้ถ้าสรุปสั้นๆ ก็สอนให้เด็กเขียนเสนอโครงงาน
หรือก็คือเขียน proposal เหมือนตอนเรียน ป. ตรีแหละครับ
.
ถ้าใครจำไม่ได้ ก็จะประมาณว่า การเขียนโครงงานต้องมี
บทที่ 1 บทนำ
บทที่ 2 หลักการ ทฤษฏี และงานที่เกียวข้อง
บทที่ 3 วิธีการดำเนินงาน
บทที่ 4 การทดลองและผลการทดลอง
บทที่ 5 สรุปผล วิเคราะห์ และข้อเสนอแนะ
.
===========
รีวิว ม.5
===========
ในวิชา "วิทยาการคำนวณ" ระดับชั้น ม. 5
ได้ดึงวิชา data science (วิทยาศาสตร์ข้อมูล)
มาปูพื้นฐานให้เด็กๆ ได้เรียนกันแล้ว นับว่าเป็นโชคดี
เพราะวิชาพวกนี้เป็นของสูง กว่าจะสัมผัสก็คงตอนป.ตรี โท เอก
ซึ่งผมจะรีวิวเนื้อหาให้อ่านคร่าวๆ เนื้อหาแบ่งเป็น 4 บท
.
👉 ++++ บทที่ 1 - ข้อมูลมีคุณค่า +++++
.
Data science ในตำราเรียนใช้ชื่อไทยว่า "วิทยาการข้อมูล"
บทนี้จะกล่าวถึง Big Data หรือข้อมูลขนาดใหญ่ที่มีค่ามากมาย
และมีบทบาทมากในยุค 4.0 นี้ ทั้งภาครัฐและเอกชน
.
ถ้านึกไม่ออกก็นึกถึงเวลาเราเล่นเนตค้นหาใน Google จะพบข้อมูลมากมายมหาศาล ซึ่งเราสามารถนำมาใช้ในธุรกิจเราได้ ก็เพราะเหตุนี้ศาสตร์ด้านข้อมูล จึงมีบทบาทสำคัญอย่างมากอย่างยิ่งยวด
.
จึงไม่น่าแปลกใจที่ทำให้อาชีพนักวิทยาศาสตร์ด้านข้อมูล (ชื่ออังกฤษ data scientist) มันมีบทบาทสำคัญ และเป็นอาชีพที่มีเสน่ห์และน่าสนใจที่สุดยุคศตวรรษที่ 21
.
Data science ถ้าตามหนังสือเขาให้นิยามว่า
"เป็นการศึกษาถึงกระบวนการ วิธีการ หรือเทคนิค ในการนำข้อมูลจำนวนมหาศาล มาประมวลผล เพื่อให้ได้องค์ความรู้ เข้าใจปรากฏการณ์หรือตีความ ทำนายหรือพยากรณ์ ค้นหารูปแบบหรือแนวโน้มจากข้อมูล
และสามารถนำมาวิเคราะห์ต่อยอดเพื่อแนะนำทางเลือกที่เหมาะสม หรือใช้ในการตัดสินใจเพื่อประโยชน์สูงสุด"
.
สำหรับงาน Data science เขาจะมีกระบวนตามขั้นตอนดังนี้
- ตั้งคำถามที่ตนเองสนใจ
- เก็บรวบรวมข้อมูล
- การสำรวจข้อมูล
- การวิเคราะห์ข้อมูล (analyze the data)
- การสื่อสารและการทำผลลัพธ์ให้เห็นเป็นภาพ (communicate and visualize the results)
.
🤔 นอกจากนี้เขายังพูดถึง design thinking ...ว่าแต่มันคืออะไร?
ต้องบอกว่างานของนักวิทยาศาสตร์ข้อมูล
มันไม่ได้จบแค่เอาข้อมูลที่เราวิเคราะห์ได้แล้ว
มาโชว์ให้คนอื่นเข้าใจ
.
ยังต้องมีขั้นตอนการออกแบบแอพลิชั่น
ที่ต้องใช้ข้อมูลจากที่เราวิเคราะห์ไปนั่นเอง
ซึ่งคำว่า design thinking มันก็คือความคิดยิ่งนักออกแบบดีๆ นี้เอง
ซึ่งนักวิทยาศาสตร์ข้อมูลควรมีไว้เพื่อออกแบบแอพลิชั่นขั้นสุดท้าย
จะได้ตอบสนองความต้องการผู้ใช้
.
👉 ++++ บทที่ 2 การเก็บรวบรวมและสำรวจข้อมูล +++++
.
บทนี้ก็แค่จะปูพื้นฐาน
2.1 การเก็บรวบรวมข้อมูล
ในบทนี้จะพูดถึงข้อมูลที่เป็นลักษณะทุติยภูมิ
ที่หาได้เกลื่อนเน็ต และเราต้องการรวบรวมมาใช้งาน
2.2 การเตรียมข้อมูล (data preparation)
เนื้อหาก็จะมี
-การทำความสะอาดข้อมูล (data cleansing)
-การแปลงข้อมูล (data transformation)
ในม.5 ไม่มีอะไรมาก แต่ถ้าในระดับมหาลัยจะเจอเทคนิคขั้นสูง เช่น PCA
-การเชื่อมโยงข้อมูล (combining data)
2.3 การสำรวจข้อมูล (data exploration)
พูดถึงการใช้กราฟมาสำรวจข้อมูล เช่น
กราฟเส้น ฮิสโทแกรม แผนภาพกล่อง (box plot) แผนภาพแบบกระจาย (scatter plot)
พร้อมยกตัวอย่างการเขียนโปรแกรมดึงข้อมูลออกมาพล็อตเป็นกราฟจากไฟล์ csv (หรือ xls)
2.4 ข้อมูลส่วนบุคคล
สำหรับหัวข้อนี้ ถ้านักวิทยาศาสตร์ข้อมูลจะนำข้อมูลส่วนบุคคลมาใช้งาน ต้องเก็บเป็นความลับ ห้ามหลุด
.
ซึ่งประเด็นข้อมูลส่วนบุคคล ปัจจุบันมีก็มีร่างพรบ. คุ้มครองข้อมูลส่วนบุคคล ออกมาเรียบร้อยแล้ว
.
.
👉 ++++ บทที่ 3 การวิเคราะห์ข้อมูล ++++
.
แบ่งเป็น 2 ส่วน ได้แก่
.
3.1 การวิเคราะห์เชิงพรรณา (descriptive analytics)
เป็นการวิเคราะห์โดยใช้เลขที่เราร่ำเรียนมาตั้งแต่
- การหาสัดส่วนหรือร้อยละ
- การวัดค่ากลางของข้อมูล พวกค่าเฉลี่ย มัธยฐาน ฐานนิยม
- การหาความสัมพันธ์ของชุดข้อมูล (Correlation) พร้อมตัวอย่างการเขียนโปรแกรมให้ดูง่าย
.
.
3.2 การวิเคราะห์เชิงทำนาย (predictive analytics)
.
- มีการพูดถึงการทำนายเชิงตัวเลข (numeric prediction)
- พูดถึงเทคนิคอย่าง linear regression สมการเส้นตรงที่จะเอาไว้ทำนายข้อมูลในอนาคต
รวมทั้งพูดถึงเรื่อง sum of squared errors
ดูว่ากราฟเส้นตรงมันนาบฟิตไปกับข้อมูลหรือยัง (พร้อมตัวอย่างเขียนโปรแกรม)
- สุดท้ายได้กล่าวถึง K-NN (K-Nearest Neighbors: K-NN) เป็นวิธีค้นหาเพื่อนบ้านใกล้เคียงที่สุด K ตัว สำหรับงาน classification (การแบ่งหมวดหมู่)
***หมายเหตุ*****
linear regression กับ K-NN
นี้ก็คืออัลกอริทึมหนึ่งในวิชา machine learning (การเรียนรู้ของเครื่อง สาขาหนึ่งของ AI)
เด็กสมัยเนี่ยได้เรียนแหละนะ
.
.
👉 +++ บทที่ 4 การทำให้ข้อมูลเป็นภาพและสื่อสารด้วยข้อมูล +++
.
บทนี้ไม่อะไรมาก ลองนึกถึงนักวิทยาศาสตร์ หลังวิเคราะห์ข้อมูลอะไรมาเสร็จสรรพ เหลือขั้นสุดท้ายก็คือ การโชว์ให้คนอื่นดูด้วยการทำ data visualization (เรียกทับศัพท์ดีกว่า)
.
ในเนื้อหาก็จะยกตัวอย่างการใช้ แผนภูมิแท่ง,กราฟเส้น, แผนภูมิวงกลม, แผนการกระจาย
.
สุดท้ายที่ขาดไม่ได้ก็คือการเล่าเรื่องจากข้อมูล (data story telling) พร้อมข้อควระวังเวลานำเสนอข้อมูล
.
.
.
***หมายเหตุนี้ ***
😗 ภาษาโปรแกรมที่ตำราเรียน ม.5 กล่าวถึง และยกตัวอย่างมาให้ดู
ก็ได้แก่ python กับภาษา R
.
สำหรับภาษา R หลายคนอาจไม่คุ้น
คนจบไอทีอาจคุ้นกับ python มากกว่า
แต่ใครมาจากสายสถิติจะคุ้นแน่นอน
เพราะภาษา R นิยมมากในสายงานสถิติ
และสามารถนำมาใช้ในงาน data science ได้ง่ายและนิยมไม่แพ้ python
.
แต่ถ้าคนจาก data science จะขยับไปอีกสายหนึ่งของ AI
ก็คือ deep learning (การเรียนรู้เชิงลึก)
python จะนิยมแบบกินขาดครับ
.
===========
รีวิว ม.6
===========
สำหรับม.6 หนังสือยังไม่มา เพราะหลักสูตรจะมาปีหน้า
แต่ถ้าไปอ่านคำอธิบายรายวิชาก็จะได้ตามนี้ (ก็อปปี้มาอีกที)
.
- ศึกษาการใช้เทคโนโลยีในการนำเสนอและแบ่งปันข้อมูลอย่างปลอดภัยและมีจริยธรรม
- การสร้างชิ้นงานและเผยแพร่ผ่านสื่อต่าง ๆ ที่คำนึงถึงจริยธรรม ลิขสิทธิ์ทรัพย์สินทางปัญญา และกฎหมาย
- หลักการของปัญญาประดิษฐ์ และเทคโนโลยีในอนาคต
- กรณีศึกษาเกี่ยวกับนวัตกรรมหรือเทคโนโลยีที่เกี่ยวข้องกับชีวิตประจำวัน
- อาชีพที่เกี่ยวข้องกับงานทางด้านเทคโนโลยีสารสนเทศ
- ตัวอย่างผลกระทบของเทคโนโลยีสารสนเทศ
+++++++++
เขียนโดยโปรแกรมเมอร์ไทย thai programmer
++++++++
อ้างอิง
- วิทยาการคำนวณม.4
- วิทยาการคำนวณม. 5
- http://oho.ipst.ac.th/…/ipst-cs-course-description-M1-M6.pdf
同時也有10000部Youtube影片,追蹤數超過62萬的網紅Bryan Wee,也在其Youtube影片中提到,...
「dijkstra algorithm」的推薦目錄:
- 關於dijkstra algorithm 在 โปรแกรมเมอร์ไทย Thai programmer Facebook
- 關於dijkstra algorithm 在 โปรแกรมเมอร์ไทย Thai programmer Facebook
- 關於dijkstra algorithm 在 โปรแกรมเมอร์ไทย Thai programmer Facebook
- 關於dijkstra algorithm 在 Bryan Wee Youtube
- 關於dijkstra algorithm 在 Travel Thirsty Youtube
- 關於dijkstra algorithm 在 スキマスイッチ - 「全力少年」Music Video : SUKIMASWITCH / ZENRYOKU SHOUNEN Music Video Youtube
- 關於dijkstra algorithm 在 Dijkstra's Algorithm - Computerphile - YouTube 的評價
dijkstra algorithm 在 โปรแกรมเมอร์ไทย Thai programmer Facebook 八卦
วิทยาการคำนวณม.4-5-6 เรียนอะไร? ....โพสต์นี้มีคำตอบ
👉 ม.4 -> ปูพื้นฐานวิทย์คอม ได้แก่ เรียนแนวคิดเชิงคำนวณ, อัลกอริทึม, การทำโครงงาน
👉 ม.5 -> เรียน data science (วิทยาการข้อมูล หรือวิทยาศาสตร์ข้อมูล)
👉 ส่วนม.6 ยังไม่มา รอปีหน้าก่อน -> แว่วๆ ว่าน่าจะมีเนื้อหา AI โผล่มาจ๊ะเอ๋ และหลายๆ เรื่องที่จะมีสอน
.
เรียกว่าดึงสิ่งที่ต้องเรียนรู้ในระดับปริญญาตรีมาปูพื้นฐานให้เด็กๆ ทั่วประเทศกันแหละ
.
*** หมายเหตุ "วิทยาการคำนวณ" มีตั้งแต่ ป.1 ยันถึง ม.6 กำลังทยอยเปิดสอนให้ครบทุกชั้นปี แต่โพสต์นี้ขอรีวิวเฉพาะ ม.4, 5 และ 6
===========
รีวิว ม.4
===========
วิทยาการคำนวณ ม.4 มีจำนวน 3 บท
🔥 +++บทที่ 1 แนวคิดเชิงคำนวณ +++++
บทนี้จะสอนแนวคิดเชิงคำนวณ (Computational Thinking) คืออะไร?
ซึ่งใครไม่รู้จักอาจงงเล็กน้อย ถึงปานกลาง
หรือเกิดคำถามคาใจ เรียนไปใช้ทำอะไรครับคุณครู
.
สำหรับแนวคิดเรื่อง Computational Thinking
(เรียกเป็นภาษาอังกฤษดีกว่า)
มีไว้เพื่อใช้แก้ปัญหาในแวดวง “วิทยาศาสตร์คอมพิวเตอร์” 🤩 🤩
จริงๆ แล้วมันไม่ใช่เรื่องแปลกใหม่แต่อย่างใด
.
ถ้าเราได้นั่งเรียนในระดับมหาวิทยาลัย
หรือได้ฝึกเขียนโปรแกรมไปเรื่อยๆ ก็จะใช้แนวคิดนี้โดยธรรมชาติ
อย่างไม่รู้ตัวอยู่แล้วครับ ไม่ต้องไปเรียนที่ไหน
.
นิยามของ Computational Thinking หรือแนวคิดเชิงคำนวณ
จะประกอบด้วยแนวคิดย่อย 4 อย่างดังนี้
1) Algorithm
2) Decomposition
3) Pattern recognition
4) Abstract thinking
.
หลายละเอียดแต่ละหัวข้อก็ตามนี้
👉 1) Algorithm ชื่อไทย “ขั้นตอนวิธี”
Algorithm คือลำดับขั้นตอนในการแก้ปัญหาหรือการทำงานที่ชัดเจน การคิดค้น อธิบายขั้นตอนวิธีในการแก้ปัญหาต่าง ๆ
.
ถ้าเคยเรียนตอนป.ตรี คงรู้จักคำนี้ดีไม่ต้องอธิบายมาก เช่น
-จะคำนวณหาพื้นที่เส้นรอบวง ต้องมีสเตปคำนวณอย่างไรบ้าง
-จะค้นหาข้อมูลแบบ binary search ต้องมีขั้นตอน 1,2,3 อย่างไรบ้าง
-จะหาเส้นทางที่ใกล้สุดในกราฟ ด้วยวิธี Dijkstra จะมีขั้นตอน 1,2,3 อย่างไรบ้าง
.
👉 2) Decomposition ชื่อไทยคือ “การแยกส่วนประกอบ และการย่อยปัญหา”
.
Decomposition เป็นการพิจารณาเพื่อแบ่งปัญหา หรืองานออกเป็นส่วนย่อย ทำให้สามารถจัดการกับปัญหาหรืองานได้ง่ายขึ้น พูดง่ายๆ เอาปัญหามาแยกย่อยออกเป็นส่วนๆ
.
⌨ ตัวอย่างการนำไปใช้ตอนเขียนโปรแกรม
เช่น การเขียนโปรแกรมแยกเป็นส่วนๆ แยกเป็นแพ็กเกจ แยกเป็นโมดูล
หรือทำระบบเป็น services ย่อยๆ หรือมองเป็น layer เป็นต้น
.
👉 3) Pattern recognition ชื่อไทยคือ “การหารูปแบบ”
.
Pattern recognition เป็นทักษะการหาความสัมพันธ์ที่เกี่ยวข้อง แนวโน้ม และลักษณะทั่วไปของสิ่งต่าง ๆ
.
⌨ ตัวอย่างการนำไปใช้ตอนเขียนโปรแกรม
เมื่อมีการทำงานของโปรแกรมที่หลากหลายแบบ
แต่ทว่ามีรูปแบบที่แน่นอนซ้ำๆ กัน
เราสามารถยุบโค้ดมาอยู่ในฟังก์ชั่นเดียวกันได้หรือไม่
หรือเขียนเป็นโปรแกรมวนลูป ให้อยู่ในลูปเดียวกัน เป็นต้น
.
👉 4) Abstract thinking ชือไทย “การคิดเชิงนามธรรม”
.
Abstract thinking เป็นกระบวนการคัดแยกคุณลักษณะที่สำคัญออกจากรายละเอียดปลีกย่อย ในปัญหา หรืองานที่กำลังพิจารณา เพื่อให้ได้ข้อมูลที่จำเป็นและเพียงพอในการแก้ปัญหา
⌨ ตัวอย่างการนำไปใช้ตอนเขียนโปรแกรม
-ก็เช่นการใช้ฟังก์ชั่น โดยเราแค่รู้รายละเอียดว่าฟังก์ชั่นทำงานอะไร ต้องการ input/ouput อะไร แล้วได้ return อะไรกลับมา ส่วนเนื้อหาไส้ในละเอียดเรามองไม่เห็น
.
🔥 +++++ บทที่ 2 การแก้ปัญหาและขั้นตอนวิธี +++++++
บททนี้เขาจะปูพื้นฐานอัลกอริทึมให้กับเด็กครับ ได้แก่
2.1 การแก้ปัญหาด้วยคอมพิวเตอร์
2.2 สอนให้รู้จักระบุข้อมูล input, ouput และเงื่อนไขของปัญหา
2.3 สอนการนำแนวคิด Computational Thinking มาออกแบบอัลกอริทึม
มี flow chart โผล่มาเล็กน้อย
2.4 สอนเรื่องการทำซ้ำ หรือก็คือสอนให้รู้จักวนลูปนั่นเอง
2.5 สอนอัลกอริทึมได้แก่ การจัดเรียงและค้นหาข้อมูล
ภาษาอังกฤษก็คือ อัลกอริทึมสำหรับ sort & search
.
🤓 สำหรับเรื่อง sort ก็จะมี
- selection sort (ชื่อไทย การจัดเรียงแบบเลือก)
- insertion sort (ชื่อไทย การจัดเรียงแบบแทรก)
.
🤓 สำหรับเรื่อง search ก็จะมี
-sequential search (ชื่อไทย การค้นหาแบบลำดับ)
-binary search (ชื่อไทย การค้นหาแบบทวีภาค)
.
ลืมบอกไป Big-O ตอนเรียนป.ตรี ก็โผล่ออกมาแว็บๆ นิดหน่อย
เด็กอาจสงสัยมันคืออะไร เป็นญาติอะไรกับ Big-C เปล่าเนี่ย
.
🔥 ++++ บทที่ 3 การพัฒนาโครงงาน ++++
บทนี้ถ้าสรุปสั้นๆ ก็สอนให้เด็กเขียนเสนอโครงงาน
หรือก็คือเขียน proposal เหมือนตอนเรียน ป. ตรีแหละครับ
.
ถ้าใครจำไม่ได้ ก็จะประมาณว่า การเขียนโครงงานต้องมี
บทที่ 1 บทนำ
บทที่ 2 หลักการ ทฤษฏี และงานที่เกียวข้อง
บทที่ 3 วิธีการดำเนินงาน
บทที่ 4 การทดลองและผลการทดลอง
บทที่ 5 สรุปผล วิเคราะห์ และข้อเสนอแนะ
.
===========
รีวิว ม.5
===========
ในวิชา "วิทยาการคำนวณ" ระดับชั้น ม. 5
ได้ดึงวิชา data science (วิทยาศาสตร์ข้อมูล)
มาปูพื้นฐานให้เด็กๆ ได้เรียนกันแล้ว นับว่าเป็นโชคดี
เพราะวิชาพวกนี้เป็นของสูง กว่าจะสัมผัสก็คงตอนป.ตรี โท เอก
ซึ่งผมจะรีวิวเนื้อหาให้อ่านคร่าวๆ เนื้อหาแบ่งเป็น 4 บท
.
👉 ++++ บทที่ 1 - ข้อมูลมีคุณค่า +++++
.
Data science ในตำราเรียนใช้ชื่อไทยว่า "วิทยาการข้อมูล"
บทนี้จะกล่าวถึง Big Data หรือข้อมูลขนาดใหญ่ที่มีค่ามากมาย
และมีบทบาทมากในยุค 4.0 นี้ ทั้งภาครัฐและเอกชน
.
ถ้านึกไม่ออกก็นึกถึงเวลาเราเล่นเนตค้นหาใน Google จะพบข้อมูลมากมายมหาศาล ซึ่งเราสามารถนำมาใช้ในธุรกิจเราได้ ก็เพราะเหตุนี้ศาสตร์ด้านข้อมูล จึงมีบทบาทสำคัญอย่างมากอย่างยิ่งยวด
.
จึงไม่น่าแปลกใจที่ทำให้อาชีพนักวิทยาศาสตร์ด้านข้อมูล (ชื่ออังกฤษ data scientist) มันมีบทบาทสำคัญ และเป็นอาชีพที่มีเสน่ห์และน่าสนใจที่สุดยุคศตวรรษที่ 21
.
Data science ถ้าตามหนังสือเขาให้นิยามว่า
"เป็นการศึกษาถึงกระบวนการ วิธีการ หรือเทคนิค ในการนำข้อมูลจำนวนมหาศาล มาประมวลผล เพื่อให้ได้องค์ความรู้ เข้าใจปรากฏการณ์หรือตีความ ทำนายหรือพยากรณ์ ค้นหารูปแบบหรือแนวโน้มจากข้อมูล
และสามารถนำมาวิเคราะห์ต่อยอดเพื่อแนะนำทางเลือกที่เหมาะสม หรือใช้ในการตัดสินใจเพื่อประโยชน์สูงสุด"
.
สำหรับงาน Data science เขาจะมีกระบวนตามขั้นตอนดังนี้
- ตั้งคำถามที่ตนเองสนใจ
- เก็บรวบรวมข้อมูล
- การสำรวจข้อมูล
- การวิเคราะห์ข้อมูล (analyze the data)
- การสื่อสารและการทำผลลัพธ์ให้เห็นเป็นภาพ (communicate and visualize the results)
.
🤔 นอกจากนี้เขายังพูดถึง design thinking ...ว่าแต่มันคืออะไร?
ต้องบอกว่างานของนักวิทยาศาสตร์ข้อมูล
มันไม่ได้จบแค่เอาข้อมูลที่เราวิเคราะห์ได้แล้ว
มาโชว์ให้คนอื่นเข้าใจ
.
ยังต้องมีขั้นตอนการออกแบบแอพลิชั่น
ที่ต้องใช้ข้อมูลจากที่เราวิเคราะห์ไปนั่นเอง
ซึ่งคำว่า design thinking มันก็คือความคิดยิ่งนักออกแบบดีๆ นี้เอง
ซึ่งนักวิทยาศาสตร์ข้อมูลควรมีไว้เพื่อออกแบบแอพลิชั่นขั้นสุดท้าย
จะได้ตอบสนองความต้องการผู้ใช้
.
👉 ++++ บทที่ 2 การเก็บรวบรวมและสำรวจข้อมูล +++++
.
บทนี้ก็แค่จะปูพื้นฐาน
2.1 การเก็บรวบรวมข้อมูล
ในบทนี้จะพูดถึงข้อมูลที่เป็นลักษณะทุติยภูมิ
ที่หาได้เกลื่อนเน็ต และเราต้องการรวบรวมมาใช้งาน
2.2 การเตรียมข้อมูล (data preparation)
เนื้อหาก็จะมี
-การทำความสะอาดข้อมูล (data cleansing)
-การแปลงข้อมูล (data transformation)
ในม.5 ไม่มีอะไรมาก แต่ถ้าในระดับมหาลัยจะเจอเทคนิคขั้นสูง เช่น PCA
-การเชื่อมโยงข้อมูล (combining data)
2.3 การสำรวจข้อมูล (data exploration)
พูดถึงการใช้กราฟมาสำรวจข้อมูล เช่น
กราฟเส้น ฮิสโทแกรม แผนภาพกล่อง (box plot) แผนภาพแบบกระจาย (scatter plot)
พร้อมยกตัวอย่างการเขียนโปรแกรมดึงข้อมูลออกมาพล็อตเป็นกราฟจากไฟล์ csv (หรือ xls)
2.4 ข้อมูลส่วนบุคคล
สำหรับหัวข้อนี้ ถ้านักวิทยาศาสตร์ข้อมูลจะนำข้อมูลส่วนบุคคลมาใช้งาน ต้องเก็บเป็นความลับ ห้ามหลุด
.
ซึ่งประเด็นข้อมูลส่วนบุคคล ปัจจุบันมีก็มีร่างพรบ. คุ้มครองข้อมูลส่วนบุคคล ออกมาเรียบร้อยแล้ว
.
.
👉 ++++ บทที่ 3 การวิเคราะห์ข้อมูล ++++
.
แบ่งเป็น 2 ส่วน ได้แก่
.
3.1 การวิเคราะห์เชิงพรรณา (descriptive analytics)
เป็นการวิเคราะห์โดยใช้เลขที่เราร่ำเรียนมาตั้งแต่
- การหาสัดส่วนหรือร้อยละ
- การวัดค่ากลางของข้อมูล พวกค่าเฉลี่ย มัธยฐาน ฐานนิยม
- การหาความสัมพันธ์ของชุดข้อมูล (Correlation) พร้อมตัวอย่างการเขียนโปรแกรมให้ดูง่าย
.
.
3.2 การวิเคราะห์เชิงทำนาย (predictive analytics)
.
- มีการพูดถึงการทำนายเชิงตัวเลข (numeric prediction)
- พูดถึงเทคนิคอย่าง linear regression สมการเส้นตรงที่จะเอาไว้ทำนายข้อมูลในอนาคต
รวมทั้งพูดถึงเรื่อง sum of squared errors
ดูว่ากราฟเส้นตรงมันนาบฟิตไปกับข้อมูลหรือยัง (พร้อมตัวอย่างเขียนโปรแกรม)
- สุดท้ายได้กล่าวถึง K-NN (K-Nearest Neighbors: K-NN) เป็นวิธีค้นหาเพื่อนบ้านใกล้เคียงที่สุด K ตัว สำหรับงาน classification (การแบ่งหมวดหมู่)
***หมายเหตุ*****
linear regression กับ K-NN
นี้ก็คืออัลกอริทึมหนึ่งในวิชา machine learning (การเรียนรู้ของเครื่อง สาขาหนึ่งของ AI)
เด็กสมัยเนี่ยได้เรียนแหละนะ
.
.
👉 +++ บทที่ 4 การทำให้ข้อมูลเป็นภาพและสื่อสารด้วยข้อมูล +++
.
บทนี้ไม่อะไรมาก ลองนึกถึงนักวิทยาศาสตร์ หลังวิเคราะห์ข้อมูลอะไรมาเสร็จสรรพ เหลือขั้นสุดท้ายก็คือ การโชว์ให้คนอื่นดูด้วยการทำ data visualization (เรียกทับศัพท์ดีกว่า)
.
ในเนื้อหาก็จะยกตัวอย่างการใช้ แผนภูมิแท่ง,กราฟเส้น, แผนภูมิวงกลม, แผนการกระจาย
.
สุดท้ายที่ขาดไม่ได้ก็คือการเล่าเรื่องจากข้อมูล (data story telling) พร้อมข้อควระวังเวลานำเสนอข้อมูล
.
.
.
***หมายเหตุนี้ ***
😗 ภาษาโปรแกรมที่ตำราเรียน ม.5 กล่าวถึง และยกตัวอย่างมาให้ดู
ก็ได้แก่ python กับภาษา R
.
สำหรับภาษา R หลายคนอาจไม่คุ้น
คนจบไอทีอาจคุ้นกับ python มากกว่า
แต่ใครมาจากสายสถิติจะคุ้นแน่นอน
เพราะภาษา R นิยมมากในสายงานสถิติ
และสามารถนำมาใช้ในงาน data science ได้ง่ายและนิยมไม่แพ้ python
.
แต่ถ้าคนจาก data science จะขยับไปอีกสายหนึ่งของ AI
ก็คือ deep learning (การเรียนรู้เชิงลึก)
python จะนิยมแบบกินขาดครับ
.
===========
รีวิว ม.6
===========
สำหรับม.6 หนังสือยังไม่มา เพราะหลักสูตรจะมาปีหน้า
แต่ถ้าไปอ่านคำอธิบายรายวิชาก็จะได้ตามนี้ (ก็อปปี้มาอีกที)
.
- ศึกษาการใช้เทคโนโลยีในการนำเสนอและแบ่งปันข้อมูลอย่างปลอดภัยและมีจริยธรรม
- การสร้างชิ้นงานและเผยแพร่ผ่านสื่อต่าง ๆ ที่คำนึงถึงจริยธรรม ลิขสิทธิ์ทรัพย์สินทางปัญญา และกฎหมาย
- หลักการของปัญญาประดิษฐ์ และเทคโนโลยีในอนาคต
- กรณีศึกษาเกี่ยวกับนวัตกรรมหรือเทคโนโลยีที่เกี่ยวข้องกับชีวิตประจำวัน
- อาชีพที่เกี่ยวข้องกับงานทางด้านเทคโนโลยีสารสนเทศ
- ตัวอย่างผลกระทบของเทคโนโลยีสารสนเทศ
+++++++++
เขียนโดยโปรแกรมเมอร์ไทย thai programmer
++++++++
อ้างอิง
- วิทยาการคำนวณม.4
- วิทยาการคำนวณม. 5
- http://oho.ipst.ac.th/download/mediaBook/ipst-cs-course-description-M1-M6.pdf
dijkstra algorithm 在 โปรแกรมเมอร์ไทย Thai programmer Facebook 八卦
"แอ็ดส์เคอร์ ไดก์สตรา" ได้ให้ คำคมที่ลึกซึ้งกินใจ #โปรแกรมเมอร์ ว่า
“If debugging is the process of removing software bugs ,then programming must be the process of putting them in.”
แปลเป็นไทยได้ว่า
“ถ้าการดีบักคือ กระบวนการเอาบั๊กซอฟแวร์ออกไปละก็ …
เมื่อนั้นการเขียนโปรแกรมต้องเป็น กระบวนการใส่บั๊กเข้าไปแน่ ๆ”
++++รู้ไว้ใช่ว่า ใส่บ่าแบกหาม++++
ประวัติ Edsger Dijkstra (แอ็ดส์เคอร์ ไดก์สตรา)
เขาเป็นนักวิทยาศาสตร์คอมพิวเตอร์ชาวดัชต์
ที่สร้างคุณานุประโยชน์ แก่วงการคอมอย่างมาก
เกิดเมื่อค.ศ. 1930 และเสียชีวิตด้วยโรคมะเร็งเมื่อ 6 ส.ค. 2002
รวมอายุได้ 72 ปี
เขาจบดอกเตอร์ทางคณิตศาสตร์และฟิสิกส์ ที่ University of Amsterdam เมื่อปี 1959
ปี 1972 ได้รับรางวัล "ACM Turing Award"
และปี 1984 ได้เป็นศาสตราจารย์ที่ Uninversity of Texas at Austin
ผลงานของเขา ที่คนเรียนสายคอมทุกคน ต้องรู้จักคือ
“Dijkstra’s algorithm”
ตำราเรียนอาจแปลว่า "ขั้นตอนวิธีของไดก์สตรา" (คุ้น ๆ ใช่มั๊ยละ)
มันเป็นวิธีแก้ปัญหาเรื่อง shortest path หรือก็คือหาระยะทางสั้นที่สุด จากจุดหนึ่งไปยังจุดใด ๆ ในกราฟ นั่นเอง
(ถ้าไม่รู้จักแสดงว่าโดดเรียน และทำข้อสอบไม่ได้นะ)
ผลงานดังอีกชิ้น ที่เราต้องเคยเรียนคือ
การแก้ปัญหาการกินอาหารของนักปราชญ์
หรือชื่อภาษาอังกฤษคือ "dining philosophers problem"
+++ส่วนผลงานดังด้านอื่น ๆ+++
-เป็นหัวหน้าทีมคิดค้นระบบ OS ที่เรียกว่า “THE” Multiprogramming System
-คิดค้นหลักการ Semaphore
-เป็นผู้เขียนบทความ “Go To Statement Considered Harmfull” จนปลุกกระแสต่อต้านคำสั่ง Goto ในยุคนั้น
-เขียนหนังสือ “A Discipline of Programming” ซึ่งรวบรวม Algorithms ที่ตัวเขาเองคิดค้น
-แต่งหนังสือร่วมกับ C. A. R. Hoare Ole-Johan Dah ชื่อหนังสือคือ “Structured Programming”
นอกจากนี้แล้ว เขายังเป็นผู้บุกเบิกศาสตร์ทางคอมหลายเรื่อง ยิ่งคนจบคอมมา ล้วนเคยเรียน หรือเคยอ่านผ่านตามาทั้งสิ้น ได้แก่
Distributed Computing, Compiler Writing, Heuristics, stream, Computer Hardware Design, Dining Philosopher, Software Configuration Management, Sorting Algorithms, Fast Fourier Transform, Deadlock, Concurrent Programming, Garbage Collection, Memory Design, AI: Pattern Matching, Graph Theory, Scope of Variables, Transaction และอื่นๆ อีกมากกว่า 1,000 บทความ
อ่านเพิ่ม -> http://www.patanasongsivilai.com/…/การเขียนโปรแกรม-คือการใ…/
dijkstra algorithm 在 Dijkstra's Algorithm - Computerphile - YouTube 的八卦
Dijkstra's Algorithm finds the shortest path between two points. Dr Mike Pound explains how it works. ... <看更多>