AAI-Official

AAI-Official Contact information, map and directions, contact form, opening hours, services, ratings, photos, videos and announcements from AAI-Official, Education Website, 169 ถนนลงหาดบางแสน ตำบลแสนสุข อำเภอเมือง จังหวัดชลบุรี 20131, .

หลักสูตรนี้มุ่งสร้างบัณฑิตนักปัญญาประดิษฐ์และเทคโนโลยีอัจฉริยะ มีทักษะด้านภาษาและมีความพร้อมปฏิบัติงาน มีคุณธรรม เป็นผู้นำในการขับเคลื่อนการเปลี่ยนรูปหน่วยงานให้เป็นองค์กรอัจฉริยะ มุ่งสร้างสิ่งประดิษฐ์ให้สอดคล้องกับความต้องการของยุทธศาสตร์ประเทศ

27/12/2024

⚡️⚡️สกมช.ขอมอบของขวัญปีใหม่สำหรับนักไซเบอร์⚡️⚡️

สถาบันวิชาการความมั่นคงปลอดภัยไซเบอร์แห่งชาติ สกมช.ร่วมกับ บริษัท ไมโครซอฟท์ (ประเทศไทย)จำกัด

ขอเชิญชวนทุกท่าน เข้าร่วมเรียนหลักสูตรออนไลน์ผ่านระบบ NCSA E-LEARNING ในหลักสูตร
-Microsoft AI Skills For All
-Microsoft 365 Copilot

เรียนฟรี ไม่มีค่าใช้จ่าย ได้รับ “Certificate” หลังเรียน เพื่อส่งเสริมทักษะด้าน AI พร้อมพัฒนาทักษะด้านพื้นฐานด้านความมั่นคงปลอดภัยทางไซเบอร์ให้กับผู้เรียนในรูปแบบออนไลน์ พร้อมต่อยอดการพัฒนาระบบ AI ให้มีความปลอดภัยไซเบอร์ในอนาคต

14/12/2024

ขอความร่วมมือผู้ใช้บริการลดพื้นที่การใช้งาน Google Drive ก่อนวันที่ 20 ธันวาคม พ.ศ. 2567

20/11/2024

💫 หนึ่งในปัญหาที่น่าปวดหัวที่สุดสำหรับนักพัฒนา คือการที่โค้ดของเราเกิดการ Import วนกันเป็นวงกลมโดยไม่รู้ตัว จนทำให้โปรแกรมพังไม่เป็นท่า
🤔 ปัญหา Circular Dependencies เกิดขึ้นง่าย แล้วก็เกิดขึ้นบ่อยด้วย โดยเฉพาะในโปรเจกต์ขนาดใหญ่ที่มีการแยกโค้ดออกเป็นหลายโมดูล การที่โมดูล A import โมดูล B และโมดูล B ก็ import โมดูล A กลับ ทำให้เกิดการวนลูปที่ไม่มีที่สิ้นสุด
🔍 การตามหาจุดที่เกิดปัญหานี้ก็ไม่ง่ายเท่าไหร่ เพราะในโค้ดจริงมักจะมีการ import กันหลายชั้น ไม่ได้เป็นแค่การ import ระหว่างสองไฟล์เท่านั้น บางครั้งอาจต้องไล่ดูการ import ที่วนไปมาผ่านหลายๆ ไฟล์กว่าจะพบต้นตอของปัญหา
🛠️ ส่วนวิธีแก้ไขปัญหาก็ขึ้นอยู่กับแต่งาน ตั้งแต่การแยก Shared Logic ออกมาเป็นโมดูลแยก การใช้ Event Emitter เพื่อให้โมดูลสื่อสารกันโดยไม่ต้อง import โดยตรง หรือการปรับโครงสร้างโค้ดใหม่ทั้งหมดเพื่อหลีกเลี่ยงการ Import กันเป็นวงกลม
🔧 หรือจะใช้เครื่องมืออย่าง Madge(https://github.com/pahen/madge) ที่สามารถช่วยให้เราเจอ Circular Dependencies ได้ง่ายขึ้น โดยจะแสดงแผนภาพความสัมพันธ์ระหว่างโมดูลต่างๆ ทำให้เห็นภาพรวมของการ import ได้ชัดเจน ไม่ต้องมานั่งไล่เอาเอง
📚 และสุดท้ายแม้แต่ Framework อย่าง NestJS ก็ยังมีคำแนะนำเกี่ยวกับการจัดการกับ Circular Dependencies โดยเฉพาะ แสดงให้เห็นว่านี่เป็นปัญหาที่พบได้บ่อยและสำคัญพอที่จะต้องมีวิธีจัดการที่เหมาะสม
📌 สามารถอ่านบทความฉบับเต็มได้เลยที่ลิงก์นี้ครับ https://www.borntodev.com/2024/11/17/circular-dep/
🦖 - พร้อมเปลี่ยนคนทำงาน ให้ก้าวสู่การเป็น Dev / Tech Expert

🤖🤳 ภาพบรรยากาศงาน AI Pitching evaluation rubic for Committee ของนิสิตสาขาAAIชั้นปีที่3 🤳🤖ณ วันที่ 18 ตุลาคม 2567ภาพบรรยา...
19/10/2024

🤖🤳 ภาพบรรยากาศงาน AI Pitching evaluation rubic for Committee ของนิสิตสาขาAAIชั้นปีที่3 🤳🤖

ณ วันที่ 18 ตุลาคม 2567

ภาพบรรยากาศเพิ่มเติม
https://drive.google.com/drive/folders/1eXlkTqwPIhOoGbOebWZV_aPoB6EjCBfj

15/10/2024
12/10/2024
10/10/2024

EP.1 วันนี้พวกเรามาที่ ”Eastern EconomicCorridor of Innovation (EECI)“ทริปนี้ไม่ได้แค่ชิล แต่เต็มไปด้วยประสบการณ์ใหม่ๆ และเรื่องราวสนุกสุดๆ! ของพวกเราชาวAAI🌟✨ #ทีมบูรพา

20/09/2024

พวกเรานิสิตAAI🦾🤖ขอส่งความรักและความขอบคุณไปยังอาจารย์ MR.JOHN GATEWOOD HAM ที่เป็นดั่งแสงสว่างนำทางให้กับนักศึกษาสาขา AAI คณะวิทยาการสารสนเทศ ขอให้ชีวิตหลังเกษียณของอาจารย์เต็มไปด้วยความสุขและการผจญภัยใหม่ๆ💓💓

We, the AAI students🦾🤖, would like to send our love and heartfelt thanks to Professor Mr. John Gatewood Ham, who has been a guiding light for many generations of students in the AAI program, Faculty of Information Science. May your retirement be filled with happiness and new adventures💓💓

#วิทยาการสารสนเทศ #บูรพา

29/08/2024

หนึ่งในปัญหาคลาสิก เวลาเขียนโปรแกรมที่ทุกคนต้องเจอเลย
ก็คือการบวกลบเลขทศนิยมในภาษาโปรแกรมของบางภาษา นี้แหละ
เช่น JavaScript, Python, Perl, C #, C, C++, Java, PHP, Fortran
(และอื่นๆ อีกหลายภาษาที่ไม่ได้กล่าวถึง)
หลายครั้งที่มันอาจเพี้ยนได้ เช่น
👉 0.1 บวกกัน 10 ครั้ง ก็ไม่ได้เป็น 1
แต่ได้เป็น 0.9999999999999999
ก็เหมือนกับความรัก บอกรักเธอทุกๆ วัน
แต่ก็ไม่ได้เป็นที่หนึ่งในใจเธอ ...เอ๊ะเกี่ยวกันเปล่า
👉 หรือ 0.1+0.2 ไม่ได้เท่ากับ 0.3
แต่ได้เป็นเศษเสี้ยวในใจเธอ ก็คือ
0.30000000000000004
เอาเป็นว่าคนเขียนโปรแกรมเจอแบบนี้เข้าไป
ก็เหมือนมวยโดนหมัดน๊อคมึนงงในดงโค้ด
:
แต่ใช่ว่ามันจะเพี้ยนทุกครั้ง ซะเมื่อไร เช่น
0.5+0.5 = 1 (ถูกต้องเป๊ะ)
0.2+0.3 = 0.5 (บังเอิญไม่เพี้ยน)
สำหรับ กรณี 0.2 กับ 0.3 มันถูกตัดเศษเหลือเป็น
0.2000000000000000111022302462515654042363166809082031250
กับ
0.2999999999999999888977697537484345957636833190917968750
พอบวกกันจึงได้ 0.5 พอดี แบบฟลุ๊คๆ
(ตรวจสอบดูได้ 0.2+0.3 == 0.5 ได้ค่าออกมาเป็น true)
:
สาเหตุที่เป็นเช่นนี้
ก็เพราะว่าคอมพิวเตอร์มันรู้จักแต่เลขฐาน2 อะนะ
ต่อให้เราเขียนโค้ดใช้เลขฐาน10 ก็ตาม
สุดท้ายถูกแปลงร่างคืนมาหอนเป็นเลขฐาน 2 อยู่ดี
😨 แล้วก็เป็นความซวยที่จะมาเยือนคนเขียนโปรแกรม
เพราะเวลาแปลงเลขฐาน10 ไปเป็นเลขฐาน 2
บางกรณีอย่าง 0.1, 0.2, 0.3 ในระบบเลขฐานสิบ
ต่อให้ฟ้าถล่มดินทลาย มันก็เป็นทศนิยมที่รู้จับ
แต่พอกลายร่างเป็นเลขฐาน เท่านั้นแหละ
อนิจจาวะตะสังขารา เธอเปี้ยนไป
ดันได้เลขทศนิยมไม่รู้จบเสียด้วยซิ
จึงทำให้การเก็บทศนิยมผิดเพี้ยนไปได้
(0.5 แปลงเป็นเลขฐานสองคือ 0.1 ซึ่งเป็นทศนิยมรู้จบ)
สำหรับรูปแบบการจัดเก็บเลขทศนิยมในหลายภาษา
เขาจะนิยมใช้มาตรฐาน IEEE-754 floating point
ซึ่งมีทั้งแบบ single precision (32 bit)
กับ double precision (64 bit)
แล้วแต่ภาษาจะเลือกความละเอียดแบบใด
ถ้าไปดูเงื่อนไขที่เขากำหนด
single precision -> Mantissa เก็บ 23 บิต
double precision -> Mantissa เก็บ 52 บิต
ขอไม่ลงลึกเรื่อง IEEE-754 แล้วกันเนอะ (ตัดจบดื้อๆ)
แต่จะขอยกตัวอย่าง 0.1 จะถูกมองว่าคือ 1/10 ในระบบเลขฐานสิบ
เมื่อเแปลงเป็นเลขทศนิยมฐานสอง จะได้เป็น
0.0001100110011001100110011001100110011001100110011...
เป็นเลขทศนิยมไม่รู้จบในระบบเลขฐานสอง
หรือจะเขียนในรูป Mantissa กับ exponent เท่ห์ๆ
0.1 = 1.10011001100110... x 2^-4
สุดท้าย 0.1 ก็จะเก็บตาม IEEE-754 เช่น เก็บแบบ double precision (64 bit) ก็จะได้เป็น
0011111110111001100110011001100110011001100110011001100110011010...นี้คือสิ่งที่คอมมองเห็นเลข 0.1 ไม่เหมือนคน
ถ้ามันบอกได้ คงบอกว่าเลขทศนิยมฐานสองไม่รู้จบ
เราเก็บจริงนะพวกมานุดโลก
แต่เราไม่ได้เก็บหมดครบทุกบิตอะนะ ไม่รู้อะดิ อิๆๆๆ
เวลาเกิดกรณีเลขฐานสองไม่รู้จบ ค่า Mantissa ต้องถูกปัดเศษตามข้อกำหนด IEEE-754
ถ้าเป็นแบบ single precision ก็ปัดให้เหลือ 23 บิต
หากเป็นแบบ double precision ก็ปัดให้เหลือ 52 บิต
Mantissa เก็บเป็นค่าประมาณการเท่านั้นแหละลูกพี่
เลขเลยเพี้ยนนิดหน่อย อย่าว่ากันนะ ...คอมเอ่ยปากเบาๆ
พอคอมแปลงกลับมาเป็นทศนิยม
เพื่อให้มนุษย์โลกอ่านเข้าใจ
ในรูปฐาน 10 ก็จะได้เป็น
0.1000000000000000055511151231257827021181583404541015625
ทว่าคอมมันจะตัดให้เหลือแค่ 0.1 (คนจึงเห็นแค่นี้)
:
🤔 ซึ่งความเพื้ยนแบบนี้
แน่นอนทำให้เกิดบั๊กเวลาคำนวณตัวเลข
- ยิ่งงานต้องการคำตอบที่ละเอียดมาก เช่น งานธนาคาร ก็จะประสบปัญหา เป็นต้น
- หรือเวลานำไปใช้ในเงื่อนไขเปรียบเทียบพวก if, while ฯลฯ ก็อาจมีบั๊กเกิดขึ้นได้ เป็นต้น
😀 แต่ไม่ต้องห่วง ในหลายๆ ภาษาเขาจะมีวิธีแก้ปัญหานี้อยู่ครับ
ป้องกันการคำนวณตัวเลข ไม่ให้คลาดเคลื่อน เช่น
- ใน Java ก็จะมีคลาส BigDecimal เอาไว้บวกลบคูณหาร สำหรับเลขทศนิยมโดยเฉพาะ
- ใน Python ก็จะมีคลาสคล้ายๆ กัน เช่น Decimal
- ส่วนใน JavaScript อาจใช้ไลบรารี่ ซึ่งมีให้เลือกเยอะเช่น
https://github.com/MikeMcl/decimal.js/
https://github.com/MikeMcl/bignumber.js/
https://github.com/MikeMcl/big.js/
- ภาษาอื่นที่เหลือลองไปศึกษาเองดูนะครับ
เรื่องบวกลบคูณหาร เลขทศนิยม ถือเป็นเรื่องสำคัญที่ไม่ควรมองข้าม หากพลาดขึ้นมาแล้ว
สุดท้ายต้องมาไล่นั่งแก้โค้ดหลายบรรทัด
เสียเวลานั่งไล่ test ใหม่อีกรอบอีก
หมายเหตุเห็นคอมเมนต์สงสัยว่า
PHP กับ C # รอดชะตากรรมเดียวกันไหม ?
ก็บอกว่าไม่รอดครับ
// ลองดูตัวอย่างโค้ด C #
Console.WriteLine( ((0.1+0.2) == 0.3)); // False
Console.WriteLine( ((0.1+0.2) == 0.30000000000000004)); // True
// ลองดูตัวอย่างโค้ด PHP
echo number_format(0.1+0.2 , 17);
++++++
อ่าน IEEE-754 floating point ได้ที่
https://th.wikipedia.org/wiki/จำนวนจุดลอยตัว
ก่อนจากกันขอขายของก่อน
ถ้าสนใจหนังสือ จาวาสคริปต์ 700 กว่าหน้า เนื้อหาแน่น ขายดี ก็อุดหนุนได้ที่ MEB
👉 https://www.mebmarket.com/web/index.php?action=BookDetails&data=YToyOntzOjc6InVzZXJfaWQiO3M6NzoiMTcyNTQ4MyI7czo3OiJib29rX2lkIjtzOjY6IjE1Njg1NCI7fQ
เล่มนี้แบ่งเนื้อหาออกเป็น 2 ส่วน ได้แก่
✅ 1) ทบทวน JavaScript มาตรฐานเก่า
✅ 2) มาตรฐาน JavaScript สมัยใหม่ตั้งแต่ ES6 เป็นต้นไป
++++สารบัญ++++
📒 บทที่ 1 แนะนำจาวาสคริปต์
📒 บทที่ 2 ทบทวน HTML5 โดยย่อ (เพิ่มเข้ามาใหม่)
📒 บทที่ 3 รันจาวาสคริปต์อย่างง่าย (เพิ่มเข้ามาใหม่)
📒 บทที่ 4 ทบทวนมาตรฐานเก่า
📒 บทที่ 5 ทบทวนประโยคคำสั่งเบื้องต้น
📒 บทที่ 6 ทบทวนอ็อบเจ็กต์
📒 บทที่ 7 ทบทวน regex (เพิ่มเข้ามาใหม่)
📒 บทที่ 8 ฟีเจอร์ใหม่ของตัวเลข สตริง และ regex
📒 บทที่ 9 การประกาศตัวแปร และการกำหนดค่า
📒 บทที่ 10 ฟังก์ชั่น
📒 บทที่ 11 เทมเพลตสตริง
📒 บทที่ 12 ซิมโบล
📒 บทที่ 13 ฟีเจอร์ใหม่ของอ็อบเจ็กต์
📒 บทที่ 14 คลาส
📒 บทที่ 15 คอลเลคชั่น
📒 บทที่ 16 อิเทอเรเตอร์ และเจนเนอเรเตอร์
📒 บทที่ 17 เมต้าโปรแกรมมิ่ง
📒 บทที่ 18 พรอมิส
📒 บทที่ 19 การใช้งาน async กับ await (เพิ่มเข้ามาใหม่)
📒 บทที่ 20 มอดูล
✍ เขียนโดย โปรแกรมเมอร์ไทย thai Programmer Automation

Address

169 ถนนลงหาดบางแสน ตำบลแสนสุข อำเภอเมือง จังหวัดชลบุรี 20131

Opening Hours

Monday 08:30 - 16:30
Tuesday 08:30 - 16:30
Wednesday 08:30 - 16:30
Thursday 08:30 - 16:30
Friday 08:30 - 16:30

Alerts

Be the first to know and let us send you an email when AAI-Official posts news and promotions. Your email address will not be used for any other purpose, and you can unsubscribe at any time.

Shortcuts

  • Want your school to be the top-listed School/college?

Share