Đề cương chi tiết học phần Cấu trúc dữ liệu và giải thuật (Data structures and algorithms) thông tin đến các bạn cái nhìn tổng quát về học phần Cấu trúc dữ liệu và giải thuật như thời gian, phân bố chương trình, tóm tắt nội dung, các yêu cầu cần thiết để học tập chủ động và hiệu quả hơn.
BM01.QT02/ĐNT-ĐT TRƯỜNG ĐH NGOẠI NGỮ - TIN HỌC TP.HCM CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM KHOA CƠNG NGHỆ THÔNG TIN Độc lập – Tự – Hạnh Phúc ĐỀ CƯƠNG CHI TIẾT HỌC PHẦN Thông tin chung học phần Tên học phần: Cấu trúc liệu giải thuật (Data structures and algorithms) Mã học phần: 4021014 Số tín chỉ: (3+1) tín Thuộc chương trình đào tạo bậc, ngành: Cao đẳng, ngành Công nghệ thông tin Số tiết học phần: Nghe giảng lý thuyết : 30 tiết Làm tập lớp : 10 tiết Thảo luận : tiết Thực hành, thực tập : 30 tiết Hoạt động theo nhóm : tiết Thực tế : tiết Tự học : 120 tiết Đơn vị phụ trách: Bộ môn Khoa học máy tính, Khoa Cơng nghệ thơng tin Học phần trước: Nhập mơn lập trình Mục tiêu học phần Hiểu tầm quan trọng giải thuật cách tổ chức liệu Khai thác cấu trúc liệu phức tạp Chuẩn đầu học phần Nội dung Kiến thức Đáp ứng CĐR CTĐT 4.1.1 Trình bày tầm quan trọng giải thuật cách tổ K1 chức liệu – hai thành phần quan trọng chương trình lập cho máy tính 4.1.2 Thiết kế thuật tốn lập trình (ý tưởng, K2 cài đặt, đánh giá thuật toán, đặc biệt thuật tốn xếp tìm kiếm, thuật toán cây) 4.1.3 Áp dụng thuật toán lập trình (ý tưởng, K3 cài đặt, đánh giá thuật toán, đặc biệt thuật toán xếp tìm kiếm, thuật tốn cây) để giải số tốn cho máy tính Phân tích tốn thực tế, chọn CTDL giải thuật để giải Phân tích đánh giá độ phức tạp CTDL giải thuật chọn cho tốn cụ thể Kỹ 4.2.1 Có khả tư logic cách tổ chức, áp dụng S1 cấu trúc liệu thích hợp vào tốn lập trình cụ thể 4.2.2 Có khả sử dụng ngơn ngữ lập trình C/C++ để cài đặt S2 cấu trúc liệu cụ thể 4.2.3 Có khả xây dựng chương trình thực S3 CTDL cụ thể với thuật toán tương ứng để giải tốn cụ thể Thái độ 4.3.1 Có thái độ làm việc khoa học, trung thực, rõ ràng A1 4.3.2 Chuẩn bị trước đến lớp Đi học đầy đủ Tham gia A2,A3 tích cực học 4.3.3 Làm tất tập lý thuyết thực hành A3 Mơ tả tóm tắt nội dung học phần Vai trò cấu trúc liệu giải thuật sống phương thức đánh giá cấu trúc giải thuật Tìm hiểu, phân tích đánh giá giải thuật tìm kiếm xếp nội Tìm hiểu, phân tích đánh giá kiểu danh sách lưu trữ nhiều phần tử, kiểu danh sách đặc biệt tốn ứng dụng Tìm hiểu, phân tích, đánh giá xây dựng cấu trúc lý thuyết nhị phân tìm kiếm, cân AVL Nội dung lịch trình giảng dạy 6.1 Lý thuyết Buổi/ Tiết Nội dung Chương 1: Tổng quan CTDL 1.1 Vai trò CTDL 1.2 Mối quan hệ CTDL giải thuật 1.3 Các tiêu chuẩn để đánh giá CTDL 1.4 Một số kiểu liệu 1.5 Kiểu liệu trừu tượng Hoạt động giảng viên - Giới thiệu môn học Hoạt động sinh viên Giáo trình Tài liệu tham khảo Ghi - Nghe giảng, - Làm tập [1]: Chương Mở đầu [2]: Chương [3]: Chương 4.1.1, 4.3.1, 4.3.2, 4.3.3 - Nghe giảng, - Làm tập [1]: Chương Mở đầu [2]: Chương 4.1.1, 4.3.1, 4.3.2, 4.3.3 - Nghe giảng, - Thảo luận, - Làm tập nhóm - Làm tập cá nhân [1]: Chương - Nghe giảng, - Thảo luận, - Làm tập nhóm - Làm tập cá [1]: Chương - Tổ chức lớp - Hướng dẫn học tập học phần - Thuyết giảng - Hướng dẫn tập Chương 1: Tổng quan CTDL 1.6 Đánh giá độ phức tạp giải thuật - Thuyết giảng Chương 2: Tìm kiếm xếp 2.1 Vai trị tìm kiếm xếp liệu hệ thống thơng tin 2.2 Các giải thuật tìm kiếm nội 2.2.1 Tìm kiếm tuyến tính 2.2.2 Tìm kiếm nhị phân - Thuyết giảng Chương 2: Tìm kiếm xếp 2.3 Các giải thuật xếp nội 2.3.1 Định nghĩa toán xếp 2.3.2 Các phương pháp xếp thông dụng: đổi chỗ trực tiếp, bọt, Shaker sort, Quick Sort - Thuyết giảng - Hướng dẫn tập - Hướng dẫn tập - Hướng dẫn tập 4.1.1, 4.1.2, 4.2.1 [2]: Chương 4.1.1, 4.1.2, 4.2.1 nhân Chương 2: Tìm kiếm xếp 2.3 Các giải thuật xếp nội 2.3.2 Các phương pháp xếp thông dụng: chọn trực tiếp, Heap Sort - Thuyết giảng Chương 2: Tìm kiếm xếp 2.3 Các giải thuật xếp nội 2.3.2 Các phương pháp xếp thông dụng: chèn trực tiếp, Shell Sort - Thuyết giảng Chương 2: Tìm kiếm xếp 2.3 Các giải thuật xếp nội 2.3.2 Các phương pháp xếp thông dụng: Merge Sort, Radix Sort - Thuyết giảng Chương 3: Danh sách 3.1 Định nghĩa 3.2 Phân loại 3.3 Danh sách đặc 3.4 Danh sách liên kết 3.4.1 Định nghĩa 3.4.2 Danh sách liên kết đơn 3.4.3 Danh sách liên kết kép 3.4.4 Danh sách liên kết có thứ tự 3.4.5 Danh sách vịng 3.4.6 Danh sách có nhiều mối liên kết - Thuyết giảng - Hướng dẫn tập - Hướng dẫn tập - Hướng dẫn tập - Hướng dẫn tập [1]: Chương [2]: Chương 4.1.1, 4.1.2, 4.2.1 - Nghe giảng, - Thảo luận, - Làm tập nhóm - Làm tập cá nhân [1]: Chương [2]: Chương 4.1.1, 4.1.2, 4.2.1 - Nghe giảng, - Thảo luận, - Làm tập nhóm - Làm tập cá nhân [1]: Chương [2]: Chương 4.1.1, 4.1.2, 4.2.1 - Nghe giảng, - Thảo luận, - Làm tập nhóm - Làm tập cá nhân [1]: Chương 4, Chương [2]: Chương 4.1.1, 4.1.2, - Nghe giảng, - Thảo luận, - Làm tập nhóm - Làm tập cá nhân 4.2.1 10 11 12 13 Chương 3: Danh sách 3.5 Các cấu trúc đặc biệt danh sách 3.5.1 Stack 3.5.1 Queue - Thuyết giảng Chương 3: Danh sách 3.5 Các cấu trúc đặc biệt danh sách 3.5.3 Các ứng dụng: tính biểu thức, khử đệ quy - Thuyết giảng Chương 4: Cấu trúc 4.1 Các khái niệm 4.2 Cách biểu diễn 4.3 Cây nhị phân 4.3.1 Một số tính chất nhị phân 4.3.2 Duyệt nhị phân 4.4 Cây nhị phân tìm kiếm Chương 4: Cấu trúc 4.5 Cây AVL 4.5.1 Cấu trúc - Thuyết giảng Chương 4: Cấu trúc 4.5 Cây AVL 4.5.2 Xây dựng - Thuyết giảng - Hướng dẫn tập - Hướng dẫn tập - Hướng dẫn tập - Thuyết giảng - Hướng dẫn tập - Hướng dẫn tập 4.1.1, 4.1.2, - Nghe giảng, - Thảo luận, - Làm tập nhóm - Làm tập cá nhân [1]: Chương 2, Chương [2]: Chương - Nghe giảng, - Thảo luận, - Làm tập nhóm - Làm tập cá nhân [1]: Chương 1, Chương [2]: Chương 4.1.1, 4.1.2, 4.1.3, 4.2.1, 4.2.2, 4.2.3, 4.3.2 - Nghe giảng, - Thảo luận, - Làm tập nhóm - Làm tập cá nhân [1]: Chương [2]: Chương 4.1.1, 4.1.2, 4.2.1 - Nghe giảng, - Thảo luận, - Làm tập nhóm - Làm tập cá nhân [1]: Chương [2]: Chương 4.1.1, 4.1.2, 4.2.1 - Nghe giảng, - Thảo luận, - Làm tập [1]: Chương [2]: Chương 4.1.1, 4.1.2, 4.1.3, 4.2.1, 4.2.2, 4.2.3, 4.2.1 nhóm - Làm tập cá nhân 14 15 Chương 4: Cấu trúc 4.5 Cây AVL 4.5.2 Xây dựng - Thuyết giảng Ôn tập - Thuyết giảng - Hướng dẫn tập - Nghe giảng, - Thảo luận, - Làm tập nhóm - Làm tập cá nhân 4.3.2 [1]: Chương [2]: Chương 4.1.1, 4.1.2, 4.1.3, 4.2.1, 4.2.2, 4.2.3, 4.3.2 4.3.1 - Nghe giảng 6.2 Thực hành Buổi/ Tiết Nội dung Bài 1-4: Tìm kiếm tuyến tính Hoạt động giảng viên - Hướng dẫn làm tập - Hướng dẫn cách nộp - Sửa lỗi lập trình cho SV Bài 5-9: Tìm kiếm nhị phân, Bubblesort - Hướng dẫn làm tập - Hướng dẫn cách nộp - Sửa lỗi lập trình cho SV Bài 11-13: Quicksort - Sửa lỗi lập trình cho SV Hoạt động sinh viên Giáo trình Tài liệu tham khảo Ghi - Thực hành viết chương trình theo yêu cầu tập [2] Danh sách tập 4.1.1, 4.1.2, 4.1.3, 4.2.1, 4.2.2, 4.3.1, 4.3.3 - Thực hành viết chương trình theo yêu cầu tập [2] Danh sách tập 4.1.1, 4.1.2, 4.1.3, 4.2.1, 4.2.2, 4.3.1, 4.3.3 - Viết chương trình theo yêu cầu tập [2] Danh sách tập 4.1.1, 4.1.3, 4.2.1, 4.2.2, 4.3.1, 4.3.3 Bài 14,15: selection sort, heap sort, insertion sort - Sửa lỗi lập trình cho SV - Viết chương trình theo yêu cầu tập [2] Danh sách tập 4.1.1, 4.1.3, 4.2.1, 4.2.2, 4.3.1, 4.3.3 Bài 16,17: shell sort, merge sort - Sửa lỗi lập trình cho SV - Viết chương trình theo yêu cầu tập [2] Danh sách tập 4.1.1, 4.1.3, 4.2.1, 4.2.2, 4.3.1, 4.3.3 Bài 18,19: Danh sách kề - Sửa lỗi lập trình cho SV - Viết chương trình theo yêu cầu tập [2] Danh sách tập 4.1.1, 4.1.2, 4.1.3, 4.2.1, 4.2.2, 4.3.1, 4.3.3 Bài 20-22: Danh sách liên kết - Sửa lỗi lập trình cho SV - Viết chương trình theo yêu cầu tập [2] Danh sách tập 4.1.1, 4.1.2, 4.1.3, 4.2.1, 4.2.2, 4.3.1, 4.3.3 Bài 23,24: Stack toán biểu - Sửa lỗi lập trình cho SV thức - Viết chương trình theo yêu cầu tập [2] Danh sách tập 4.1.2, 4.1.3, 4.2.1, 4.2.2, 4.3.1, 4.3.3 10 Bài 25: Cây AVL - Viết chương trình theo yêu cầu tập [2] Danh sách tập 4.1.2, 4.1.3, 4.2.1, 4.2.2, 4.3.1, 4.3.3 - Sửa lỗi lập trình cho SV 7 Nhiệm vụ sinh viên Yêu cầu chung Về kiến thức tảng: sinh viên nắm vững nguyên lý sở lập trình để có tảng để tiếp tục nghiên cứu học phần Về nghiên cứu tài liệu: sinh viên đọc tài liệu liên quan đến môn học theo hướng dẫn giảng viên Về thực hành: sinh viên tham gia đầy đủ buổi thực hành thực hồn thành tốn giao Về nghiên cứu xử lý tình huống, làm tập: sinh viên phải hoàn thành đầy đủ tập cá nhân tập nhóm Về thái độ học tập, chuyên cần: sinh viên tham gia đầy đủ hoạt động lớp Về việc tự học: sinh viên phải thực việc tự học theo kế hoạch giảng viên Quy định hành vi lớp học Khóa học thực nguyên tắc tôn trọng người học người dạy Mọi hành vi làm ảnh hưởng đến trình dạy học bị nghiêm cấm Sinh viên phải học quy định Sinh viên trễ phút sau học bắt đầu không điểm danh tham dự buổi học Tuyệt đối không làm ồn, gây ảnh hưởng đến người khác trình học Tuyệt đối không ăn, uống, nhai kẹo cao su, sử dụng thiết bị điện thoại, máy nghe nhạc học Máy tính xách tay, máy tính bảng thực vào mục đích ghi chép giảng, tính tốn phục vụ giảng, tập, tuyệt đối không dùng vào việc khác Sinh viên vi phạm nguyên tắc bị mời khỏi lớp bị coi vắng buổi học Đánh giá kết học tập sinh viên 8.1 Cách đánh giá TT Điểm thành phần Điểm thi kỳ Quy định - Tham gia học lý thuyết - Tham gia học thực hành - Nộp tập thực hành - Làm tập nhóm - Làm tập cá nhân Điểm thi kết thúc Thi viết 90 phút học phần Trọng số 5% 5% 10% 5% 5% 70% Mục tiêu 4.1.2, 4.1.3, 4.2.1, 4.2.2, 4.2.3, 4.3.1, 4.3.2, 4.3.3 4.1.1, 4.1.2, 4.2.1, 4.2.2, 4.3.1 8.2 Cách tính điểm Điểm đánh giá thành phần điểm thi kết thúc học phần chấm theo thang điểm 10 (từ đến 10), làm tròn đến 0.5 Điểm học phần tổng điểm tất điểm đánh giá thành phần học phần nhân với trọng số tương ứng Điểm học phần theo thang điểm 10 làm tròn đến chữ số thập phân Tài liệu học tập 9.1 Giáo trình [1] Nguyễn Hồng Chương, “Cấu trúc liệu - Ứng dụng cài đặt C”, NXB TPHCM, 2003 9.2 Tài liệu tham khảo [2] Trần Hạnh Nhi, Dương Anh Đức, “Nhập mơn cấu trúc liệu thuật tốn”, ĐH Quốc gia TPHCM, 2003 [3] Kurt Mehlhorn and Peter Sanders, “Algorithms and Data Structures – The Basic Toolbox”, Springer, 2007 Free Ebook - http://www.freetechbooks.com/algorithms-anddata-structures-the-basic-toolbox-t871.html 10 Hướng dẫn sinh viên tự học 10.1 Lý thuyết Theo nội dung phần Nội dung lịch trình giảng dạy, thực theo thời gian việc sau: Đọc tài liệu phần nội dung tương ứng tài liệu tài liệu tham khảo Ghi lại mục đích, ý tưởng, tính chất, độ phức tạp cấu trúc giải thuật tương ứng Sau học lớp, thực nhiều lần giải thuật tay với nhiều ví dụ so sánh kết làm tay với giải thuật cài đặt để nắm rõ hoạt động giải thuật Tìm kiếm thêm tài liệu khác internet với từ khóa tên giải thuật, tên cấu trúc để hiểu sâu cấu trúc/giải thuật 10.2 Thực hành Làm trước 2/3 yêu cầu tập thực hành nhà Tạm ghi điểm bị lỗi, điểm chưa hiểu lại để xử lý sau Hoàn thiện thực hành lớp thực hành thông qua hỏi đáp với giảng viên hướng dẫn Nộp thực hành hoàn thiện cho giảng viên hướng dẫn Ngày … tháng … năm 2015 Trưởng khoa (Ký ghi rõ họ tên) Ngày … tháng … năm 2015 Tổ trưởng Bộ môn (Ký ghi rõ họ tên) Ngày … tháng … năm 2015 Người biên soạn (Ký ghi rõ họ tên) Đinh Hùng ThS Phạm Minh Dũng Ngày … tháng … năm 2015 Ban giám hiệu 10 ... thực hành A3 Mô tả tóm tắt nội dung học phần Vai trị cấu trúc liệu giải thuật sống phương thức đánh giá cấu trúc giải thuật Tìm hiểu, phân tích đánh giá giải thuật tìm kiếm xếp nội Tìm hiểu,... tạp cấu trúc giải thuật tương ứng Sau học lớp, thực nhiều lần giải thuật tay với nhiều ví dụ so sánh kết làm tay với giải thuật cài đặt để nắm rõ hoạt động giải thuật Tìm kiếm thêm tài liệu. .. Tài liệu học tập 9.1 Giáo trình [1] Nguyễn Hồng Chương, ? ?Cấu trúc liệu - Ứng dụng cài đặt C”, NXB TPHCM, 2003 9.2 Tài liệu tham khảo [2] Trần Hạnh Nhi, Dương Anh Đức, “Nhập môn cấu trúc liệu thuật