1. TRƯỜNG ĐH NÔNG LÂM TPHCM CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM
KHOA: CÔNG NGHỆ THÔNG TIN Độc lập - Tự do - Hạnh phúc
ĐỀ CƯƠNG MÔN HỌC
CẤU TRÚC DỮ LIỆU
1. Thông tin về giảng viên:
Họ và tên: Nguyễn Thanh Phước
Chức danh, học hàm, học vị: Thạc sỹ
Thời gian, địa điểm làm việc: Khoa CNTT Trường ĐHNL, TpHCM
Địa chỉ liên hệ: 142 Chung cư Lô A Đường Phạm Thế Hiển, P4 Q8 TpHCM.
Điện thoại, email: ntphuoc@hcmuaf.edu.vn
Các hướng nghiên cứu chính: Nghiên cứu phát triển phần mềm phục vụ kinh doanh cho doanh
nghiệp (Enterprise Resource Planning)
Thông tin về trợ giảng (nếu có) (họ và tên, địa chỉ liên hệ, điện thoại, e-mail):
2. Thông tin chung về môn học
- Tên môn học: Cấu Trúc Dữ Liệu
- Mã môn học: 214441
- Số tín chỉ: 4 (45LT – 30 TH)
- Môn học: Bắt buộc
- Các môn học tiên quyết: không
- Các môn học trước: Lập trình nâng cao (214331)
- Các môn học kế tiếp:
- Các yêu cầu đối với môn học (nếu có):
- Giờ tín chỉ đối với các hoạt động:
+ Nghe giảng lý thuyết: 30
+ Làm bài tập trên lớp:
+ Thảo luận: 15
+ Thực hành, thực tập (ở PTN, nhà máy, studio, điền dã, thực tập...): 30
+ Hoạt động theo nhóm:
+ Tự học:
- Địa chỉ Khoa/ bộ môn phụ trách môn học: Khoa CNTT Trường ĐHNL TpHCM.
3. Mục tiêu của môn học
- Kiến thức:
+ Kỹ thuật lập trình với mảng, xâu liên kết, bảng băm, cây nhị phân, đệ quy
+ Các thuật toán sắp xếp tìm kiếm trên mảng
+ Cơ chế hoạt động của các vật chứa Set, Stack, Queue, List, Map, Bag
- Kỹ năng:
+ Khả năng tư duy giải quyết bài toán bằng các cấu trúc điều khiển.
+ Xây dựng thuật toán
- Thái độ, chuyên cần: Tự tin giải quyết được các bài toán.
4. Tóm tắt nội dung môn học
Môn học được tổ chức thành 13 chương. Chương 1 giới thiệu về lập trình Generic trong
Java. Chương 2 giới thiệu về vật chứa, nó là một khái niệm quan trọng trong các ngôn ngữ lập trình
2. cấp cao. Chương 3 giới thiệu về Set và kỹ thuật cài đặt vật chứa đó bằng mảng. Chương 4 giới thiệu
xâu liên kết đơn một kỹ thuật không thể không biết khi giải quyết các bài toán đòi hỏi bộ nhớ lớn.
Chương 5 giới thiệu Iterator, Comparable, Comparator là những khái niệm cơ sở giúp ta làm việc
với vật chứa và thứ tự các phần tử trong vật chứa. Chương 6 giới thiệu về các thuật toán tìm kiếm
và sắp xếp trên mảng nó là một trong những thuật toán không thể không biết khi xây dựng một phần
mềm. Chương 7 kỹ thuật lập trình đệ quy một kỹ thuật không thể không biết khi giải quyết các bài
toán mang tính chất đệ quy. Chương 8, 9 giới thiệu vật chứa Stack, Queue và List là những vật chứa
quan trọng trong phần mềm, nó xuất hiện hầu hết trong các phần mềm ngày nay. Chương 10 giới
thiệu về bảng băm một trong những kỹ thuật tiên tiến giúp cho ta xây dựng các giải pháp tìm kiếm
hiệu quả. Chương 11, 12 nói về Map và Tree. Chương 13 nói về Java Collection Framework một bộ
framework không thể không biết khi phát triển các sản phẩm phần mềm bằng ngôn ngữ Java.
5. Nội dung chi tiết môn học
Phần 1: Generic & Mảng trong Java
- Định nghĩa
- Sử dụng
- Xây dựng lớp hỗ trợ Generic
Phần 2: Vật chứa
- Định nghĩa
- Xây dựng
- Kiểm tra
- Bài toán áp dụng
Phần 3: Vật chứa Set
- Định nghĩa
- Xây dựng vật chứa Set bằng Mảng
- Kiểm tra
- Bài toán: Hệ thống rút thăm trúng thưởng
Phần 4: Xâu liên kết đơn
- Định nghĩa
- Xây dựng các thao tác trên xâu
- Xây dựng vật chứa Set bằng Xâu liên kết đơn
- Kiểm tra
- Bài toán: Hệ thống rút thăm trúng thưởng
Phần 5: Iterator & Comparable & Comparator
- Định nghĩa
- Xây dựng ArrayIterator
- Xây dựng LinkedIterator
- Comparable & Comparator
3. Phần 6: Thuật toán sắp xếp và tìm kiếm trên mảng
- Tìm kiếm tuyến tính (Linear Search)
- Tìm kiếm nhị phân (Binary Search)
- Sắp xếp theo thuật toán chọn trực tiếp (Selection Sort)
- Sắp xếp theo thuật toán chèn trực tiếp (Insertion Sort)
- Sắp xếp theo thuật toán Bubble Sort
Phần 7: Lập trình đệ quy và sắp xếp đệ quy
- Định nghĩa
- Công thức đệ quy
- Bài toán tháp hà nội
- Sắp xếp theo thuật toán Quick Sort
- Sắp xếp theo thuật toán Merge Sort
Phần 8: Stack và Queue
- Định nghĩa
- Xây dựng dùng Mảng và Xâu liên kết đơn
- Kiểm tra
- Bài toán: Ước lượng giá trị biểu thức Infix, Mã hoá dữ liệu với Queue
Phần 9: Danh sách
- Định nghĩa
- Danh sách thứ tự ( OrderedList)
- Danh sách không thứ tự (UnOrderedList)
- Danh sách chỉ mục (IndexedList)
- Cài đặt dùng Mảng và Xâu liên kết đơn
- Kiểm tra
- Bài toán: Thuật toán tìm kiếm nhị phân trên OrderedList
Phần 10: Bảng băm
- Định nghĩa
- Hàm băm
- Giải quyết xung đột
- Cài đặt Set dùng Bảng băm
- Kiểm tra
- Bài toán: Xây dựng bài toán đánh giá hiệu quả của HashSet và ArraySet
Phần 11: Vật chưa Map
4. - Định nghĩa
- Cài đặt dùng Bảng băm
- Kiểm tra
Phần 12: Cây nhị phân và Cây biểu thức
- Định nghĩa
- Cây nhị phân
- Cây biểu thức
- Thuật toán duyệt trên cây
Phần 13: Sử dụng Java Collection Framework
6. Học liệu
1. Algorithms in Java: Parts 1-4, Third Edition, By Robert Sedgewick
2. Data Structures and Algorithms with Object-Oriented Design Patterns in Java
3. Java 1.5 Tiger A Developers Notebook (OReilly)
7. Hình thức tổ chức dạy học
* Lịch trình chung:
Nội dung
Hình thức tổ chức dạy học môn học
Tổng
Lên lớp Thực hành,
thí nghiệm,
thực tập
giáotrình,
rèn nghề, …
Tự học, tự
nghiên cứu
Lý
thuyết
Bài tập
Thảo
luận
Phần 1: Generic & Mảng
trong Java
3 3
Phần 2: Vật chứa 2 1 3 6
Phần 3: Vật chứa Set 3 3 6
Phần 4: Xâu liên kết đơn 4 1 1 3 9
Phần 5: Iterator &
Comparable &
Comparator
3 3
Phần 6: Thuật toán sắp
xếp và tìm kiếm trên
mảng
4 1 1 3 9
Phần 7: Lập trình đệ quy
và sắp xếp đệ quy
1 1 1 3 6
Phần 8: Stack và Queue 3 3 6
Phần 9: Danh sách 3 3 6
Phần 10: Bảng băm 3 3 6
Phần 11: Vật chưa Map 1 1 1 3 6
Phần 12: Cây nhị phân và
Cây biểu thức
3 3
5. Phần 13: Sử dụng Java
Collection Framework
2 1 3 6
Tổng cộng 35 4 6 30 75
8. Chính sách đối với môn học và các yêu cầu khác của giảng viên
Yêu cầu và cách thức đánh giá, sự hiện diện trên lớp, mức độ tích cực tham gia các hoạt
động trên lớp, các qui định về thời hạn, chất lượng các bài tập, bài kiểm tra.
9. Phương pháp, hình thức kiểm tra - đánh giá kết quả học tập môn học
Phân chia các mục tiêu cho từng hình thức kiểm tra - đánh giá
9.1. Kiểm tra – đánh giá thường xuyên
9.2. Kiểm tra - đánh giá định kì: Bao gồm các phần sau (trọng số của từng phần do giảng viên đề
xuất, chủ nhiệm bộ môn thông qua):
- Hoạt động theo nhóm (làm bài tập nhóm/ học kỳ): 20%
- Kiểm tra - đánh giá giữa kì: 20%
- Kiểm tra - đánh giá cuối kì: 60%
9.3. Tiêu chí đánh giá các loại bài tập
9.4. Lịch thi, kiểm tra (kể cả thi lại)
Giảng viên Duyệt Chủ nhiệm bộ môn Thủ trưởng đơn vị đào tạo
(Ký tên) (Ký tên) (Ký tên)
6. Phần 13: Sử dụng Java
Collection Framework
2 1 3 6
Tổng cộng 35 4 6 30 75
8. Chính sách đối với môn học và các yêu cầu khác của giảng viên
Yêu cầu và cách thức đánh giá, sự hiện diện trên lớp, mức độ tích cực tham gia các hoạt
động trên lớp, các qui định về thời hạn, chất lượng các bài tập, bài kiểm tra.
9. Phương pháp, hình thức kiểm tra - đánh giá kết quả học tập môn học
Phân chia các mục tiêu cho từng hình thức kiểm tra - đánh giá
9.1. Kiểm tra – đánh giá thường xuyên
9.2. Kiểm tra - đánh giá định kì: Bao gồm các phần sau (trọng số của từng phần do giảng viên đề
xuất, chủ nhiệm bộ môn thông qua):
- Hoạt động theo nhóm (làm bài tập nhóm/ học kỳ): 20%
- Kiểm tra - đánh giá giữa kì: 20%
- Kiểm tra - đánh giá cuối kì: 60%
9.3. Tiêu chí đánh giá các loại bài tập
9.4. Lịch thi, kiểm tra (kể cả thi lại)
Giảng viên Duyệt Chủ nhiệm bộ môn Thủ trưởng đơn vị đào tạo
(Ký tên) (Ký tên) (Ký tên)