ขอบเขตเนื้อหา TOI

เนื้อหาการเรียนทั้งหมดสำหรับการเตรียมตัวสอบแข่งขัน TOI

องค์ประกอบของคอมพิวเตอร์ โปรแกรมคอมพิวเตอร์ ภาษาคอมพิวเตอร์ประเภทต่าง ๆ

การเริ่มต้นเขียนโปรแกรม การใช้งานคอมไพล์เลอ การใช้งานเครื่องมือต่าง ๆ ในการเขียนโปรแกรม

การรับข้อมูลน้ำเข้าและการแสดงข้อมูลส่งออกเบื้องต้น

โปรแกรมโครงสร้าง และภาษาคอมพิวเตอร์ ภาษาซีหรือภาษาซีพลัสพลัสในการเขียนโปรแกรม

โครงสร้างของภาษา เริ่มต้นเขียนโปรแกรม

ข้อมูล ชนิดของข้อมูล ตัวแปร ค่าคงที่ ตัวปฏิบัติการ นิพจน์ ข้อความสั่ง

โครงสร้างควบคุมต่าง ๆ ของภาษาคอมพิวเตอร์

การเขียนโปรแกรมแบบโครงสร้าง การวางแผนการเขียนโปรแกรม

การรวมกลุ่มข้อมูลด้วยอาเรย์ และการใช้งานอาเรย์ในการแก้ปัญหาต่าง ๆ

ฟังก์ชัน การคืนค่าผ่านฟังก์ชัน การใช้งานฟังก์ชันเพื่อทำงานเดิมซ้ำไปมา

ตัวอย่างโจทย์ การทดลองแก้ไขโจทย์ด้วยการเขียนโปรแกรมคอมพิวเตอร์

การเขียนโปรแกรมเพื่อแก้ไขปัญหา การตรวจสอบโปรแกรมที่เขียนขึ้น

การวิเคราะห์ประสิทธิภาพเบื้องต้น การคำนวณความซับซ้อนของโปรแกรม

การเรียงข้อมูล

ตรรกศาสตร์พื้นฐาน

เซต

ฟังก์ชัน ความสัมพันธ์

การนับเบื้องต้น การจัดหมู่ การเรียงสับเปลี่ยน

ทฤษฎีจำนวนเบื้องต้น

เมทริกซ์เบื้องต้น เรขาคณิตเบื้องต้น

ตรีโกณมิติ

ลำดับ

อนุกรม

สมการ อสมการ

พอยน์เตอร์ (pointer)

คลาส หรือ struct

การแก้ไขและหาจุดผิดพลาดของโปรแกรมเบื้องต้น (debug)

กราฟแบบไม่มีทิศทาง กราฟแบบมีทิศทาง กราฟแบบมีน้ำหนัก

กราฟ ต้นไม้ เน็ตเวอร์ก กราฟประเภทต่าง ๆ

ต้นไม้ (tree)

ต้นไม้ทวิภาค (binary tree)

ต้นไม้ทอดข้าม (spanning tree)

อาร์เรย์ (Array)

กองซ้อน และ แถวคอย (stack & queue)

การประยุกต์ใช้โครงสร้างข้อมูล

การใช้งานโครงสร้างข้อมูลแบบ associative

การใช้งานโครงสร้างข้อมูลแถวคอยบุริมภาพ (priority queue)

การวิเคราะห์ความซับซ้อนของขั้นตอนวิธี

การสร้างโมเดลของปัญหา

การค้นหาแบบทวิภาค (binary search)

ขั้นตอนวิธีเบื้องต้นสำหรับอาร์เรย์สองมิติ

ขั้นตอนวิธีสำหรับการค้นหาในปริภูมิสถานะ

ขั้นตอนวิธีสำหรับกราฟเบื้องต้น

ขั้นตอนวิธีแบบแบ่งแยกและเอาชนะ (Divide and Conquer)

ขั้นตอนวิธีแบบกำหนดการณ์พลวัต (Dynamic Programming)

ขั้นตอนวิธีแบบละโมบ (Greedy Algorithm)