คอร์ส Data Structures and Algorithms Fundamentals เกี่ยวกับอะไรและเหมาะกับใคร? รูปแบบคอร์สเป็นยังไง? และคำถามที่พบบ่อยต่าง ๆ ก่อนเริ่มเรียน
🧑🏻💻 Exercises และ 1 challenge problem ท้ายบท
Big O notation คืออะไร? เราจะวัด efficiency ของ algorithm ได้ยังไง? space and time complexity คืออะไร?
🧑🏻💻 Exercises และ 1 challenge problem ท้ายบท
Asymptotic analysis คืออะไร? เข้าใจนิยามของ big O notation และ asymptotic notation อื่น ๆ อย่าง big omega และ big theta ผ่านภาษาของคณิตศาสตร์
🧑🏻💻 +3 challenge problem พร้อมเฉลยละเอียดท้ายบท
(สำหรับ +3 challenge problems จะเพิ่มใน class #3 นะครับ)
Binary search คืออะไร? เอามาใช้แก้ปัญหาอะไรได้บ้าง? และ binary search จำเป็นต้องใช้บนข้อมูลที่เรียงจากมากไปน้อยหรือน้อยไปมากเท่านั้นจริงหรอ!?
🧑🏻💻 Exercises และ 1 challenge problem ท้ายบท
Binary search เป็น algorithm ที่ถึงแม้ไอเดียจะเรียบง่าย แต่การ implement ให้ถูกนั้นเป็นเรื่องที่ยากมาก บทความนี้พามาชวน implement binary search แบบ step by step ผ่านการกำหนด pre-condition, post-condition, bound functions และ loop invariant
🧑🏻💻 +3 challenge problem พร้อมเฉลยละเอียดท้ายบท
(สำหรับ +3 challenge problems จะเพิ่มใน class #3 นะครับ)
Recursion คืออะไร? recursive function คืออะไร? เราต้องมองปัญหาอย่างไรเพื่อที่เราจะสามารถคิด recursive algorithm ที่แก้ปัญหาออกมาได้?
🧑🏻💻 Exercises และ 1 challenge problem ท้ายบท
Divide and conquer คืออะไร? แตกต่างกับ dynamic programming อย่างไร? เราสามารถใช้ recursion tree method และ master theorem ในการประเมิน time complexity ได้อย่างไร?
🧑🏻💻 +3 challenge problem พร้อมเฉลยละเอียดท้ายบท
(สำหรับ +3 challenge problems จะเพิ่มใน class #3 นะครับ)
Data structures คืออะไร? เราสามารถนำ data structures มาใช้แก้ปัญหาได้อย่างไร? และทำไม data structures ถึงเป็นเหมือนกับหัวใจหลักของการเขียนโปรแกรม?
🧑🏻💻 Exercises และ 1 challenge problem ท้ายบท
Abstract data types (ADT) ต่างกับ data structure อย่างไรและทำไมถึงสำคัญ? bloom filter คืออะไร? probabilistic data structure คืออะไร? ทำความเข้าใจผ่านการออกแบบระบบ recommendation system อย่างง่าย (BookTok)
🧑🏻💻 +3 challenge problem พร้อมเฉลยละเอียดท้ายบท
(สำหรับ +3 challenge problems จะเพิ่มใน class #3 นะครับ)
Graph theory คืออะไร? เราสามารถ implement graph แบบไหนได้บ้าง? graph เอาไปใช้ในการแก้ปัญหาอะไรได้บ้าง?
🧑🏻💻 Exercises และ 1 challenge problem ท้ายบท
Shortest path problem คืออะไร? และเราสามารถออกแบบ algorithm อย่างไรได้บ้างเพื่อแก้ปัญหาดังกล่าว (DFS/BFS, Dijkstra, A* algorithm)
🧑🏻💻 +3 challenge problem พร้อมเฉลยละเอียดท้ายบท
(สำหรับ +3 challenge problems จะเพิ่มใน class #3 นะครับ)
Tree คืออะไร? มีโครงสร้างเป็นอย่างไร? binary tree และ binary search tree ต่างกันอย่างไร? เอาไว้ใช้ในการแก้ปัญหาอะไรและมี operation อะไรบ้าง?
🧑🏻💻 Exercises และ 1 challenge problem ท้ายบท
Minimum spanning tree (MST) คืออะไรและใช้แก้ปัญหาอะไร เราสามารถสร้าง MST ได้ยังไงบ้าง (Prim's algorithm, Kruskal's algorithm)
🧑🏻💻 +3 challenge problem พร้อมเฉลยละเอียดท้ายบท
(สำหรับ +3 challenge problems จะเพิ่มใน class #3 นะครับ)
Dynamic programming คืออะไร? ปัญหาแบบไหนที่เหมาะสมกับการใช้ dynamic programming? memorization และ tabulation แตกต่างกันอย่างไร?
🧑🏻💻 Exercises และ 1 challenge problem ท้ายบท
Greedy algorithm คืออะไร? เราสามารถออกแบบ greedy algorithm เพื่อหา optimal solution ได้หรือไม่? และเราจะรู้ได้อย่างไรว่า greedy algorithm ของเราทำงานได้ถูกต้อง
🧑🏻💻 +3 challenge problem พร้อมเฉลยละเอียดท้ายบท
(สำหรับ +3 challenge problems จะเพิ่มใน class #3 นะครับ)