210 likes | 394 Views
Course Orientation Data Structure and Algorithms (070115903). คำอธิบายรายวิชา (Course Description). วิชานี้ศึกษาค้นคว้าในหัวข้อเกี่ยวกับการวิเคราะห์ขั้นตอนวิธี โครงสร้างข้อมูล การวนซ้ำ การค้นหา การจัดเรียงข้อมูล รายการเชื่อมโยงข้อมูล แถวคอย สแตค ทรี และกราฟ
E N D
คำอธิบายรายวิชา (Course Description) • วิชานี้ศึกษาค้นคว้าในหัวข้อเกี่ยวกับการวิเคราะห์ขั้นตอนวิธี โครงสร้างข้อมูล การวนซ้ำ การค้นหา การจัดเรียงข้อมูล รายการเชื่อมโยงข้อมูล แถวคอย สแตค ทรี และกราฟ • This subject involves analysis of algorithm; data structure; recursion; searching; sorting; linked list; queues; stacks; trees and graphs.
วัตถุประสงค์ทั่วไป (General Objective) • เพื่อให้นักศึกษามีความรู้ความเข้าใจเกี่ยวกับโครงสร้างข้อมูลชนิดต่างๆ ได้ • เพื่อให้นักศึกษาสามารถเลือกใช้โครงสร้างข้อมูลได้อย่างถูกต้อง • เพื่อให้นักศึกษาเข้าใจขั้นตอนวิธีการที่ใช้ในการจัดเรียงและค้นหาข้อมูลได้ • เพื่อให้นักศึกษาประยุกต์การใช้งานโครงสร้างข้อมูลและขั้นตอนวิธีได้
แผนการสอนรายสัปดาห์ (Weekly Teaching Plan) • พื้นฐานการออกแบบโปรแกรม • ความรู้เบื้องต้นเกี่ยวกับโครงสร้างข้อมูลและขั้นตอนวิธี • อาร์เรย์ (Array) • รายการเชื่อมโยงข้อมูล (Linked List) • สแตค (Stack) • แถวคอย (Queue)
แผนการสอนรายสัปดาห์ (Weekly Teaching Plan) • ทรี (Tree) • กราฟ (Graph) • การจัดเรียงข้อมูล (Sorting) • การค้นหา (Searching) • การประยุกต์ใช้งานโครงสร้างข้อมูล
1. พื้นฐานการออกแบบโปรแกรม • ขั้นตอนการพัฒนาโปรแกรม • กรรมวิธีการออกแบบโปรแกรม • การเขียนโปรแกรมแบบ Proceduralและ Object-Oriented • วัตถุประสงค์ของเทคนิคการออกแบบโปรแกรมเชิงโครงสร้าง • ความรู้เบื้องต้นเกี่ยวกับอัลกอริทึมและซูโดโค้ด • ปฏิบัติการพื้นฐาน 6 ประการของคอมพิวเตอร์ • โครงสร้างการควบคุมพื้นฐาน 3 รูปแบบ
2. ความรู้เบื้องต้นเกี่ยวกับโครงสร้างข้อมูลและขั้นตอนวิธี • หลักนามธรรม(Abstraction) • อัลกอริทึมกับความเป็นนามธรรมโดยธรรมชาติ • ซูโดโค้ด (Pseudo Code) • การสร้างประโยคคำสั่ง (Statement Constructs) • ความรู้เกี่ยวกับชนิดข้อมูลนามธรรม (The Abstract Data Types) • การวัดผลอัลกอริทึม (Measuring Algorithm) • ประสิทธิภาพของอัลกอริทึม (Algorithm Efficiency) • สัญลักษณ์บิ๊กโอ (Big-O Notation) • ตัวอย่างการวิเคราะห์บิ๊กโอ (Big-O Analysis Examples)
3. อาร์เรย์ (Array) • โครงสร้างข้อมูลแบบอาร์เรย์ • การอ้างอิงตำแหน่งสมาชิกในอาร์เรย์ • ขอบเขตของอาร์เรย์ (Bounds) • การจัดเก็บอาร์เรย์ในหน่วยความจำ
4. รายการเชื่อมโยงข้อมูล (Linked List) • แนวคิดพื้นฐานเกี่ยวกับลิสต์แบบเชิงเส้น (Linear List Concepts) • การดำเนินงานพื้นฐานของลิสต์ (Basic Operations) • แนวคิดของลิงก์ลิสต์ (Linked List Concepts) • โครงสร้างข้อมูลแบบลิงก์ลิสต์ (Linked List Data Structure) • อัลกอริทึมของลิงก์ลิสต์ (Linked List Algorithm) • ลิงก์ลิสต์ชนิดอื่นๆ (Others Linked Lists)
5. สแตค (Stack) • การดำเนินงานพื้นฐานของสแตค (Basic Stack Operations) • การสร้างสแตค (Stack Implementation) • อัลกอริทึมการสร้างสแตคด้วยลิงก์ลิสต์ (Stack Linked List Algorithm) • Abstract Data Type ของสแตค (Stack ADT) • การนำสแตคไปประยุกต์ใช้กับโปรแกรม • การประยุกต์ใช้งานสแตค (Stack Applications)
5. สแตค (Stack) • การแปลงนิพจน์ Infixมาเป็น Postfixด้วยมือ • อัลกอริทึมสำหรับแปลงนิพจน์ Infixมาเป็นนิพจน์ Postfix • การหาผลลัพธ์จากนิพจน์ Postfix • อัลกอริทึมการสร้างสแตคด้วยอาร์เรย์(Stack Array Algorithm) • การวนซ้ำ (Recursion)
6. แถวคอย (Queue) • การดำเนินงานของคิว (Queue Operations) • ตัวอย่างการทำงานของคิว (Queue Example) • การออกแบบคิวด้วยลิงก์ลิสต์ (Queue Linked List Design) • อัลกอริทึมของคิว (Queue Algorithms) • Abstract Data Typeของคิว (Queue ADT) • การออกแบบคิวด้วยอาร์เรย์ (Queue Array Design)
7. ทรี (Tree) • แนวคิดพื้นฐานของทรี (Basic Tree Concepts) • รูปแบบการนำเสนอโครงสร้างข้อมูลทรี (Tree Representation) • ไบนารีทรี (Binary Trees) • คุณสมบัติของไบนารีทรี (Properties) • ไบนารีทรีแบบสมบูรณ์และเกือบสมบูรณ์ (Complete and Nearly Complete Binary Trees) • การแทนไบนารีทรีในหน่วยความจำ(Binary Tree Representations)
7. ทรี (Tree) • การท่องเข้าไปในไบนารีทรี (Binary Tree Traversals) • เอ็กซ์เพรสชันทรี (Expression Trees) • เจเนอรัลทรี (General Trees) • ไบนารีเสิร์ชทรี (Binary Search Trees : BST) • การท่องเข้าไปในไบนารีเสิร์ชทรี (BST Traversals) • การค้นหาข้อมูลในไบนารีเสิร์ชทรี (BST Search) • การดำเนินงานในไบนารีเสิร์ชทรี (BST Operations)
7. ทรี (Tree) • เอวีแอลเสิร์ชทรี (AVL Search Trees) • ความสมดุลของทรี (Balancing Trees) • ฮีพ (Heaps) • อัลกอริทึมการสร้างฮีพ
8. กราฟ (Graph) • แนวคิดพื้นฐานเกี่ยวกับกราฟ (Basic Graph Concept) • การดำเนินงานของกราฟ (Graph Operations) • โครงสร้างการจัดเก็บข้อมูลในกราฟ (Graph Storage Structures) • อัลกอริทึมที่ใช้งานในกราฟ (Graph Algorithms) • เครือข่าย (Networks)
9. การจัดเรียงข้อมูล (Sorting) • ประเภทการจัดเรียงข้อมูล (Sort Classifications) • ลำดับการจัดเรียง (Sort Order) • ความคงที่ในการจัดเรียงข้อมูล (Sort Stability) • ประสิทธิภาพของการจัดเรียงข้อมูล (Sort Efficiency) • วิธีการจัดเรียงข้อมูล
10. การค้นหา (Searching) • การค้นหาแบบลำดับ (Sequential Search) • การค้นหาแบบไบนารี (Binary Search) • การค้นหาแบบแฮชชิง (Hashing Search) • แนวทางการแก้ไขเมื่อมีการชนกันของคีย์ (Collision Resolution)
11. การประยุกต์ใช้งานโครงสร้างข้อมูล • โปรแกรมแปลงนิพจน์คณิตศาสตร์ • โปรแกรมเครื่องคิดเลข • โปรแกรมพิมพ์ข้อความอย่างง่ายที่มีความสามารถ Undo/Redo
การวัดและประเมินผล • การมีส่วนร่วมในชั้นเรียน 10 % • แบบฝึกหัด/การบ้าน 10 % • การทดสอบระหว่างเรียน 10 % • สอบกลางภาค 30 % • สอบปลายภาค 40 % เกณฑ์การตัดสิน ผ่าน (Satisfactory : S) 60-100 % ไม่ผ่าน (Unsatisfactory : U) 0-59 %