Section 001-002: Introduction & Dojo

จะเป็นอย่างไรถ้าเราสามารถเห็นกระบวนการของการแก้ปัญหาหนึ่ง ๆ ตั้งแต่ต้นจนจบ?”

Dojo Demo JavaScript and Python Support

“วิธีการแก้ปัญหา” เป็นเพียงแค่ผลลัพธ์ปลายทางเท่านั้น สิ่งที่สำคัญกว่าคือกระบวนการคิด ตั้งแต่การเข้าใจปัญหา การสังเกต การลองผิดลองถูกจนกระทั่งนำไปสู่วิธีแก้ปัญหาในท้ายที่สุด

ใน Section 001-002: Introduction & Dojo จะพาผู้เรียนไปปูพื้นฐานของการฝึกทำโจทย์ และสร้าง problem-solving framwork ของตัวเองผ่านการฝึกทำโจทย์คัดพิเศษ 60 ข้อที่ไม่ได้ง่าย (แล้วก็ไม่ได้ยากนัก) พร้อมเฉลยละเอียดที่ไม่ได้เล่าแค่ว่าปัญหานี้แก้ด้วยวิธีไหน แต่ “การได้มาซึ่งวิธีการดังกล่าวต้องผ่านวิธีคิดอะไรบ้าง”

ครอบคลุมทุกเนื้อหาที่ต้องรู้ สำหรับการนำไปปรับใช้ในงานเขียนโปรแกรม

SECTION 001: INTRODUCTION
1.1

1.1. Getting Started

คอร์ส Hands On Algorithmic Problem Solving คืออะไร? การออกแบบเนื้อหาเป็นอย่างไร? ทำไมคอร์สเรียนนี้ถึงเกิดขึ้นมา? อะไรคือสิ่งที่จะได้รับจากคอร์สเรียนนี้?

1.2

1.2. Learn “The Hard Way”

เราควรจะฝึกการแก้ปัญหายังไง?

1.3

1.3. Problem Solving Framework

ภาพรวม problem-solving process แบบกว้าง ๆ

SECTION 002: DOJO
Part #1

Part #1: Make It Work (15 problems)

ฝึกเทคนิคการ implement ผ่านโจทย์ที่แนวคิดการแก้ปัญหาค่อนข้างง่ายและไม่ซับซ้อน แต่การ implement อาจไม่ได้ง่ายตามไปด้วย

บทความปูพื้นฐานก่อนเริ่มแก้โจทย์

Lesson 1.1 Writing correct code
arraystringbinary-searchtwo-pointersliding-windowbruteforcerecursion
Part #2

Part #2: Aha! Insight (15 problems)

ฝึกเทคนิค observation & reasoning ผ่านโจทย์ที่การ implement ค่อนข้างง่าย แต่การจะได้มาซึ่งวิธีแก้ปัญหาอาจไม่ได้ง่ายนัก

mathgeometrygreedysortingconstructive
Part #3

Part #3: Structure Your Data (15 problems)

ฝึกการเลือกและปรับใช้ data structure เพื่อนำมาแก้ปัญหาในรูปแบบต่าง ๆ และลดความซับซ้อนในการ implement

setmapqueuestacklinked-listtreegraph theory
Part #4

Part #4: Squeezing Time & Space (15 problems)

ฝึกแก้ปัญหาที่ time และ memory space มีจำกัดมาก ๆ ออกแบบวิธีการแก้ปัญหาที่เร็วและประหยัดทรัพยากรมากที่สุด

dynamic programmingrandomized algorithmdivide and conquer
Dojo Demo JavaScript and Python Support