Transcript now

Course Orientation
Data Structure and Algorithms
(070115903)
คำอธิบำยรำยวิชำ (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)
1. พื ้นฐานการออกแบบโปรแกรม
2. ความรู้เบื ้องต้ นเกี่ยวกับโครงสร้ างข้ อมูลและขันตอนวิ
้
ธี
3. อาร์ เรย์ (Array)
4. รายการเชื่อมโยงข้ อมูล (Linked List)
5. สแตค (Stack)
6. แถวคอย (Queue)
แผนกำรสอนรำยสั ปดำห์ (Weekly Teaching Plan)
7. ทรี (Tree)
8. กราฟ (Graph)
9. การจัดเรี ยงข้ อมูล (Sorting)
10.การค้ นหา (Searching)
11.การประยุกต์ใช้ งานโครงสร้ างข้ อมูล
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
กำรวัดและประเมินผล
1.
2.
3.
4.
5.
การมีสว่ นร่วมในชันเรี
้ ยน
แบบฝึ กหัด/การบ้ าน
การทดสอบระหว่างเรี ยน
สอบกลางภาค
สอบปลายภาค
10 %
10 %
10 %
30 %
40 %
เกณฑ์ การตัดสิน
ผ่ าน (Satisfactory : S)
ไม่ ผ่าน (Unsatisfactory : U)
60-100 %
0-59 %
Any Question ?