รายวิชา
ระดับปริญญาศึกษา
|
รหัสวิชา
|
|
ชื่อวิชา
|
|
|
โครงสร้างข้อมูล
(DATA
STRUCTURE)
|
|
ผู้สอน :
ปรมัตถ์ปัญปรัชญ์ ต้องประสงค์ โทร. 022445234-5 หรือ
022445740 email:phorramatpanyaprat@hotmail.com |
|
|
|
คำอธิบาย รายวิชา
|
|
ความรู้เบื้องต้นเกี่ยวกับโครงสร้างข้อมูล การประมวลผลข้อมูลสตริงก์(String
Processing)
อะเรย์
เรคคอร์ด และพอยน์เตอร์
(Arrays, Records and
Pointers)
ลิงค์ลิสก์
(Linked List)
สแตก(Stacks) คิว(Queues)
การเวียนเกิด
(Recursion) ต้นไม้(Tree)
กราฟและการประยุกต์ใช้
(Graphs and Their
Applications)
การเรียกและการค้นหาข้อมูล
(Sorting and
Searching)
|
จุดประสงค์ |
|
1.
เพื่อให้นักศึกษามีความรู้โครงสร้างข้อมูลพื้นฐานของคอมพิวเตอร์
และการประมวลผลข้อมูลที่เกี่ยวข้อง |
|
|
2.
เพื่อให้นักศึกษามีทักษะในการออกแบบขั้นตอนและโครงสร้างข้อมูลที่เหมาะสมและมีประสิทธิภาพของโปรแกรม
|
|
3.
เพื่อให้นักศึกษามีทักษะในการวิเคราะห์ขั้นตอนในการทำงานของโปรแกรม
ที่เกี่ยวข้องกับการใช้งานโครงสร้างข้อมูล และ
สามารถประยุกต์ใช้ความรู้ที่ได้รับจากการเรียนในงานที่เกี่ยวข้องได้ |
|
|
|
แผนการเรียน |
ผลการเรียนรู้ |
|
1.
นักศึกษามีความรู้โครงสร้างข้อมูลพื้นฐานทางคอมพิวเตอร์
และการประมวลผข้อมูลที่เกี่ยวข้อง |
|
|
2. นักศึกษามีทักษะในการออกแบบขั้นตอน
และเลือกใช้โครงสร้างข้อมูลที่เหมาะสมและมีประสิทธิภาพของโปรแกรม |
|
3. นักศึกษามีความสามารถวิเคราะห์ขั้นตอนในการทำงานของโปรแกรม
ที่เก่ยวข้องกับการใช้งานโครงสร้างข้อมูล
และสามารถประยกุต์ใช้ความรู้ที่ได้รับจากการเรียนในงานที่เกี่ยวข้องได้ |
|
|
สัปดาห์ที่ 1 |
|
รายการเรียน
[PDF] |
|
|
ความสำคัญของวิชาโครงสร้างข้อมูลและอัลกอริทึม
[PDF]
|
|
|
1.1
ชนิดของข้อมูล
|
|
1.1.1 ชนิดของข้อมูล
|
|
|
|
1.1.3 ชนิดของข้อมูลในภาษาซี
|
|
1.2 การแทนที่ข้อมูลเชิงเดี่ยวในหน่วยความจำ |
|
1.2.1 การแทนที่ข้อมูลตรรก และอักขระ |
|
1.2.2 การแทนที่ข้อมูลจำนวนเต็มและจำนวนจริง
|
|
1.3
ทบทวนการใช้โปรแกรมภาษาซี
[PDF]
|
สัปดาห์ที่ 2 |
|
แถวลำดับและระเบียนข้อมูล[PDF]
|
|
|
Array and Record |
|
2.1 ชนิดข้อมูลแบบแถวลำดับ
|
|
2.1.1 การกำหนดคุณลักษณะเฉพาะของแถวลำดับ |
|
2.1.2 พารามิเตอร์ของแถวลำดับ และการจัดเก็บข้อมูลแถวลำดับในหน่วยความจำ
|
|
|
|
2.2.1 การกำหนดคุณลักษณะเฉพาะของระเบียน
|
|
2.2.2
พารามิเตอร์ของระเบียนและการจัดเก็บข้อมูลชนิดระเบียนในหน่วยความจำ |
|
2.3
การใช้แถวลำดับและระเบียนในการจัดเก็บข้อมูล |
|
2.3.1
การใช้แถวลำดับและระเบียนในการจัดเก็บข้อมูล |
|
2.3.2 ตัวอย่างการประยุกต์ใช้แถวลำดับและระเบียนในการจัดเก็บข้อมูลและการประมวลผล |
สัปดาห์ที่ 3 |
|
|
|
|
Set and String |
|
3.1 การจัดสรรเนื้อที่ในหน่วยความจำให้กับตัวแปร
|
|
3.1.1 การจัดสรรเนื้อที่แบบสแตติก
|
|
3.1.2 การจัดสรรเนื้อที่แบบไดนามิก
|
|
3.2
ข้อความ |
|
3.2.1
การกำหนดประเภทข้อความ |
|
3.2.2
การสร้างข้อความกับตัวแปรในหน่วยความจำ |
สัปดาห์ที่
4 |
|
|
|
|
Linked List |
|
4.1
โครงสร้างข้อมูลแบบลิงค์ลิสต์
|
|
4.1.1 การกำหนดคุณลักษณะเฉพาะของลิงค์ลิสต์
|
|
4.1.2 การสร้างลิงค์ลิสต์ด้วยอะเรย์
|
|
4.1.3 การสร้างลิสต์ด้วยลิงค์ลิสต์
|
|
4.1.4 การใช้และการทดสอบลิงค์ลิสต์ |
|
4.2 การประยุกต์ใช้ลิงค์ลิสต์
|
|
4.2.1 การใช้ลิงค์ลิสต์ในการจัดเก็บข้อมูล |
|
4.2.2 การใช้ลิงค์ลิสต์ในการเรียงลำดับข้อมูล |
สัปดาห์ที่ 5 |
|
|
|
|
Strack |
|
|
|
5.1.1 การกำหนดคุณลักษณะเฉพาะของสแตก |
|
5.1.2 การสร้างสแตกด้วยอะเรย์ |
|
5.1.3 การสร้างสแตกด้วยลิงค์ลิสต์ |
|
5.1.4 การใช้และการทดสอบสแตก |
|
5.1.5 เปรียบเทียบประสิทธิภาพของการสร้างสแตกด้วยอะเรย์และลิงค์ลิสต์ |
|
5..2 การประยุกต์ใช้แสตก |
|
5.2.1 การจัดการหน่วยความจำ |
|
5.2.2
การใช้สแตกในกระบวนการเรียกใช้โพรซีเดอร์หรือฟังก์ชัน |
|
5.2.3 การคำนวณค่าของนิพจน์เลขคณิต
|
สัปดาห์ที่ 6 |
|
|
|
|
Queue |
|
|
|
6.1.1 การกำหนดคุณลักษณะเฉพาะของคิว
|
|
6.1.2
การสร้างคิวด้วยอะเรย์ |
|
6.1.3
การสร้างคิวด้วยลิงค์ลิสต์ |
|
6.1.4
การใช้และการทดสอบคิว |
|
6.2 การประยุกต์ใช้คิว |
|
6.2.1 ระบบการให้บริการต่าง ๆ
|
สัปดาห์ที่ 7 |
|
สอบกลางภาค [Midterm Examination]
|
สัปดาห์ที่
8 |
|
ต้นไม้และการประยุกต์ใช้งาน
[PDF]
|
|
|
Trees and Application |
|
8.1
นิยามและการประยุกต์ใช้งาน
|
|
|
|
|
|
8.2
การสร้างและการดำเนินการต่าง ๆ
|
|
8.2.1 การสร้างต้นไม้ |
|
8.2.2 การดำเนินการต่าง ๆ
กับต้นไม้ |
สัปดาห์ที่
9 |
|
ต้นไม้และการประยุกต์ใช้งาน
(ต่อ)
|
สัปดาห์ที่
10 |
|
|
|
|
Graphs |
|
10.1
แนวคิดพื้นฐานเกี่ยวกับกราฟ
|
|
10.1.1
ประเภทของกราฟ
|
|
10.1.2
เส้นทาง
|
|
|
|
10.1.4
ไซเคิลและลูป |
|
10.1.5 ความต่อเนื่องของกราฟ |
|
10.1.6 ดีกรี |
|
|
|
10.2.1
การแทรกเวอร์เท็กซ์
|
|
10.2.2
การลบเวอร์เท็กซ์ |
|
10.2.3
การเพิ่มเอดจ์ |
|
10.2.4 การลบเอดจ์ |
|
10.2.5
การค้นหาเวอร์เท็กซ์ |
|
10.2.6
การท่องเข้าไปในกราฟ |
|
10.3
โครงสร้างการจัดเก็บข้อมูลในกราฟ |
|
10.3.1
แมทริกซ์ประชิด |
|
10.3.2
ลิสต์ประชิด |
|
10.4
อัลกอริทึมที่ใช้ในงานกราฟ |
|
10.5 เครือข่าย |
|
10.5.1 Minimum
Spanning Tree |
|
10.5.2 Shortest
Path Algorithm |
สัปดาห์ที่
11 |
|
|
สัปดาห์ที่
12 |
|
การเรียงลำดับข้อมูล
[PDF]
|
|
|
12.1
ประเภทของการเรียงลำดับ
|
|
12.1.1
การเรียงลำดับข้อมูลแบบภายใน |
|
12.1.2
การเรียงลำดับข้อมูลแบบภายนอก
|
|
12.2 ลำดับการจัดเรียง |
|
12.3
ความคงที่ในการเรียงลำดับข้อมูล |
|
12.4
ประสิทธิภาพของกาเรียงลำดับข้อมูล |
|
12.5
วิธีการเรียงลำดับ
|
|
|
|
- Heap Sort |
|
- Selection Sort |
|
|
|
- Quick Sort |
|
- Bubble Sort
|
|
- Radix Sort
|
|
12.2
การเรียงลำดับข้อมูลในลักษณะพิเศษ |
สัปดาห์ที่
13 |
|
การเรียงลำดับข้อมูล
(ต่อ)
|
สัปดาห์ที่
14 |
|
|
|
|
Hash Table |
|
14.1
ตารางการเข้าถึงแบบตรง
|
|
14.2 ตารางแฮซ
|
|
14.3
การชนกันของข้อมูล
|
|
14.4
การแก้ปัญหาการชนกันของข้อมูล
|
|
14.5 วิธีการสร้างฟังก์ชันแฮซ |
สัปดาห์ที่
15 |
|
ทบทวน บทเรียน สรุป
ตอบข้อซักถาม
[PDF]
|
สัปดาห์ที่
16 |
|
สอบปลายภาค (กรณีสอบนอกตาราง)
|
|
|
1.1.วัดความเข้าใจ และความสามารถในการเรียน
|
|
2.วัดความสามารถนำเสนอกรณีศึกษาด้านการจัดการชนิดของข้อมูล
|
|
3.วัดความสามารถในการศึกษาพัฒนาระบบข้อมูล
|
|
4.วัดความเข้าใจในการวางระบบพื้นฐานของโครงสร้างข้อมูล
|
|
5.วัดความสามารถในการวิเคราะห์ข้อมูลจากโครงสร้างข้อมูล
|
|
|
คะแนนเต็ม 100 แบ่งเป็น
2 ส่วน ดังนี้
|
|
|
1.คะแนนระหว่างภาค ร้อยละ
60
|
|
|
1.1
การนำเสนองานและการมีส่วนร่วมในกิจกรรมการเรียน ร้อยละ 10
|
|
|
1.2 การจัดทำรายงาน/แบบฝึกหัด ร้อยละ 30
|
|
|
1.3 สอบเก็บคะแนน
ร้อยละ 20
|
|
|
2. คะแนนสอบปลายภาค ร้อยละ
40
|
|
|
|
|
|
เกณฑ์การประเมินผล ใช้วิธีอิงเกณฑ์ ดังนี้
|
|
|
ระดับการเรียน
|
ค่าร้อยละ |
ความหมายค่า |
ระดับคะแนน |
|
|
|
95-100 |
ดีเยี่ยม |
4.00 |
|
|
|
85-89 |
ดีมาก |
3.50 |
|
|
B
|
75-84 |
ดี |
3.00 |
|
|
|
70-74 |
ดีพอใช้ |
2.50 |
|
|
C
|
60-69 |
พอใช้ |
2.00 |
|
|
D+
|
59-55 |
อ่อน |
1.50 |
|
|
D
|
50-54 |
อ่อนมาก |
1.00 |
|
|
F
|
ต่ำกว่า 50 |
ตก |
0.00 |
|
|
|
|
|
งานที่มอบหมาย |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แหล่งอ้างอิง/เอกสาร-สื่อที่ใช้ในการอ้างอิงประกอบการเรียน |
1. |
|
|
|
|
นิตณา
วิเศษชัยนุสรณ์, ผศ.,โครงสร้างข้อมูล.กรุงเทพมหานคร
:
โครงการศูนย์หนังสือมหาวิทยาลัยราชภัฏ
สวนดุสิต
:
2550. |
2. |
|
|
|
|
http://www.arc.dusit.ac.th |
|
http://dusithost.dusit.ac.th/!phorramatpanyaprat_ton |
|
http://www.google.co.th |
|
เวปไซต์ที่เกี่ยวข้องกับโครงสร้างข้อมูล
และอัลกอริทึม |
3. |
|
|
|
|
จรณิต
แก้วกังวาล.(2547).โครงสร้างไฟล์ข้อมูล อัลกอริทึมและการจัดการไฟล์ข้อมูล.
กรุงเทพมหานคร
: ซีเอ็ดยูเคชั่น. |
|
ชิดชนก
เหลือสินทรัพย์.(2543).
Analysis & Design of Algorithm.
กรุงเทพมหานคร:
ดี แอล เอส. |
|
นิรุต อำนวยศิลป์.(2548).โครงสร้างข้อมูล:การเขียนโปรแกรมและการประยุกต์.
กรุงเทพมหานคร:
ด่านสุทธาการพิมพ์.
|
|
นิสาชล โตอดเทพย์.(2537).
โครงสร้างข้อมูล. กรุงเทพมหานคร:
โอเดียนสโตร์. |
|
วิวัฒน์ อภิสิทธิ์ภิญโญ
และอมร มุสิกสาร. (2548). โครงสร้างข้อมูล.นครราชสีมา:
โชคเจริญมาร์เก็ตติ้ง. |
|
สุรชาติ พ่วงพุ่ม.(2547).
โครงสร้างข้อมูลกับปาสคาล. กรุงเทพมหานคร : ศูนย์ผลิตตำราเรียนสถาบัน
เทคโนโลยีพระจอมเกล้าพระนครเหนือ. |
|
สมพิศ โกศัลวัฒน์.รศ..(2541).
โครงสร้างข้อมูลและอัลกอริทึม. CS 243 (341).
กรุงเทพมหานคร :
คณะวิทยาศาสตร์ มหาวิทยาลัยรามคำแหง.
|
|
สุชาย ธนวเสถียร และวิชัย
จิวังกูร.(2545).
โครงสร้างข้อมูล เพื่อการออกแบบโปรแกรมคอมพิวเตอร์.
กรุงเทพมหานคร : ซีเอ็ดยูเคชั่น. |
|
ยืน ภู่วรวรรณ
และคณะ.(2547) . โครงสร้างข้อมูล
และอัลกอริทึม. กรุงเทพมหานคร:
ด่านสุทธา
การพิมพ์. |
|
โอภาส
เอี่ยมสิริวงศ์.(2549).โครงสร้างข้อมูล (Data
Structure)
เพื่อการออกแบบโปรแกรม
คอมพิวเตอร์.
กรุงเทพมหานคร:
ซีเอ็ดยูเคชั่น. |
|
Carrano, F.M.,Helman, P.,&Veroff,
R.(1998). Data abstraction and Problem solving with
C++
walls and mirrors.
(2nd ed.). MA:Addison-Wesley. |
|
Gilberg, R.F.,&Forouzan, B.A.(2001).
Data structures A Pseudocode Approach with C++.
Australia: Brook/Cole. |
|
Lipschutz, S.(1986). Schaum s Ouline of
Theory and Problems of Data structures. Sigapore:
McGraw-Hill. |
|
Sahni, S.(1998). Data
Structure, algorithms, and application in C++. Sigapore:McGraw-Hill. |
|
Stabdish, Thomas A.(1994).
Data structures Algorithms and Software. MA: Addision-Wesley. |
|
Wirth, N.(1976) .
Algorithms + Data Structures=Programs. New Jersey: Prentice-Hall. |
4. |
|
|
5. |
|
1.กรณีศึกษาด้านงานที่เกี่ยวข้องกับการใช้โครงสร้างข้อมูล
|
6. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+
up
.
|