Mục tiêu của học phần: Môn học này giúp sinh viên thực sự hiểu được tầm quan trọng của giải thuật và cách tổ chức dữ liệu, là hai thành tố quan trọng nhất cho một chương trình.. Ứng dụn
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CẦN THƠ CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự do – Hạnh Phúc
ĐỀ CƯƠNG CHI TIẾT HỌC PHẦN
1 Tên học phần: Cấu trúc dữ liệu – Toán TK (Data Structures - Statistics Mathematics)
- Mã số học phần : TN185
- Số tín chỉ học phần : 03 tín chỉ
- Số tiết học phần : 30 tiết lý thuyết, 30 tiết thực hành và 90 tiết tự học
2 Đơn vị phụ trách học phần:
- Bộ môn: Tin Học Ứng Dụng
- Khoa/Viện/Trung tâm/Bộ môn: Khoa Học Tự Nhiên
3 Điều kiện tiên quyết: TN035
4 Mục tiêu của học phần:
Môn học này giúp sinh viên thực sự hiểu được tầm quan trọng của giải thuật và cách tổ chức dữ liệu, là hai thành tố quan trọng nhất cho một chương trình Ngoài
ra, giai đoạn này còn giúp sinh viên củng cố và phát triển kỹ năng lập trình vừa được học trong các môn lập trình căn bản ở giai đoạn trước
4.1 Kiến thức: sinh viên phải nắm và ứng dụng được các kiến thức sau
4.1.1 Hiểu thế nào là kiểu dữ liệu, kiểu dữ liệu trừu tượng, cấu trúc dữ liệu và
các tiêu chí đánh giá cấu trúc dữ liệu Giải thuật là gì? Đánh giá độ phức tạp giải thuật
Ứng dụng giải bài tập về tính toán độ phức tạp giải thuật
4.1.2 Kiểu dữ liệu trừu tượng danh sách Các khái niệm cơ bản, các cách cài đặt:
cài đặt bằng mảng, cài đặt bằng con trỏ, cài đặt bằng con nháy
4.1.3 Khái niệm về 2 kiểu danh sách đặc biệt đó là ngăn xếp, hàng đợi; cách cài
đặt và khai báo sử dụng Danh sách liên kết kép
4.1.4 Kiểu dữ liệu trừu tượng cây Các thuật ngữ liên quan và cách cài đặt cây
tổng quát, cũng như cây nhị phân và cây nhị phân tìm kiếm
4.1.5 Kiểu dữ liệu tập hợp, từ điển, bảng băm
4.1.6 Các giải thuật tìm kiếm và sắp xếp nội
4.1.7 Một số kỹ thuật thiết kế giải thuật, tối ưu hóa giải thuật thông qua việc tinh
chỉnh mã lệnh
4.1.8 Ứng dụng các kiến thức đã học giải được các bài tập theo yêu cầu giáo
viên và các bài tập trong các buổi thực hành từ 1->6
Trang 24.2 Kỹ năng:
4.2.1 Kỹ năng cứng
- Nắm được các kiểu dữ liệu trừu tượng danh sách, ngăn xếp, hàng đợi, cây,…
- Có khả năng lựa chọn cấu trúc dữ liệu phù hợp nhất khi giải quyết 1 bài toán theo yêu cầu
- Nắm các kỹ thuật thiết kế giải thuật như chia để trị, tham ăn, qui hoạch động,… và vận dụng nó để giải các bài toán thực tế như bài toán người đi giao hàng, bài toán cái ba lô,
- Hiểu và ứng dụng các giải thuật tìm kiếm và sắp xếp nội
- Biết tính độ phức tạp của 1 giải thuật đã cho Vận dụng những kiến thức đã học để phân tích, so sánh và chọn lựa những giải thuật tối ưu trong quá trình lập trình
4.2.2 Kỹ năng mềm
- Có khả năng vận dụng các kiến thức đã học để giải quyết 1 vấn đề thực tế
- Có khả năng làm việc nhóm, thảo luận, lắng nghe và phê bình
- Kỹ năng đọc các tài liệu công nghệ thông tin, nhất là các tài liệu liên quan đến kỹ thuật lập trình
- Phát triển khả năng tư duy và suy luận logic
4.3 Thái độ:
4.3.1 Nghiêm túc trong học tập, thực hiện đúng qui định của trường của lóp
Biết giúp đỡ, chia sẽ kiến thức, kinh nghiệm với bạn bè
4.3.2 Trung thực, chính xác và tinh thần trách nhiệm cao trong công tác, tinh
thần làm việc hợp tác tốt với đồng nghiệp và cộng đồng
4.3.3 Thể hiện trách nhiệm công dân, thái độ và đạo đức nghề nghiệp đúng đắn;
tinh thần ý thức kỷ luật, tác phong công nghiệp; khả năng làm việc khoa học và hợp tác nhóm
4.3.4 Có phương pháp suy nghĩ và làm việc khoa học, đầu tư và sáng tạo tứng
dụng Công nghệ thông tin phục vụ đời sống
4.3.5 Có ý thức học tập và học tập suốt đời
5 Mô tả tóm tắt nội dung học phần:
Môn học này cung cấp cho sinh viên hai mảng kiến thức quan trọng đó là:
- Cấu trúc dữ liệu: cung cấp các kiến thức cơ bản về các kiểu dữ liệu trừu tượng (danh sách, ngăn xếp, hàng đợi, cây, ) và các phép toán cơ bản trên các kiểu dữ liệu trừu tượng Cấu trúc dữ liệu và các phép toán được cài đặt minh họa bằng ngôn ngữ lập trình C (C++)
Trang 3- Giải thuật: giới thiệu đến sinh viên 2 nội dung chính là kỹ thuật phân tích thuật toán và kỹ thuật thiết kế thuật toán Kỹ thuật phân tích thuật toán đề cập đến các kiến thức và kỹ năng đánh giá để đánh giá các thuật toán, giúp lập trình viên chọn ra được đâu là giải thuật tốt hơn Bên cạnh đó các kỹ năng để tạo ra 1 thuật toán sẽ được truyền tải đến sinh viên thông qua nội dung phần kỹ thuật thiết kế giải thuật Các kỹ thuật được trình bày trong 2 nội dung là ý tưởng của kỹ thuật và các ví dụ minh họa
6 Cấu trúc nội dung học phần:
6.1 Lý thuyết
Lời giới thiệu
Lờ i tựa
Mục lu ̣c
Danh sách chữ viết tắt - thuật ngữ - Quy ước
Danh sách đồ thi ̣, bảng và hình ảnh
Chương 1: Tổng quan về cấu trúc dữ liệu và giải thuật
Mục tiêu
Nội dung
1.1 Từ bài toán đến chương trình
1.2 Khái niệm về kiểu dữ liệu, kiểu dữ liệu trừu
tượng, cấu trúc dữ liệu
1.3 Các tiêu chí đánh giá CTDL
1.4 Khái niệm giải thuật, đánh giá độ phức tạp giải
thuật
Câu hỏi ôn tập
4
½
½
3
4.1.1; 4.2; 4.3
4.1.1; 4.2; 4.3 4.1.1; 4.2; 4.3 4.1.1; 4.2; 4.3 4.1.1; 4.2; 4.3
Chương 2: Các kiểu dữ liệu trừu tượng cơ bản
Mục tiêu
Nội dung
2.1 Kiểu dữ liệu trừu tượng "Danh sách" (List)
2.2 Ngăn xếp (Stack)
2.3 Hàng đợi (Queue)
2.4 Danh sách liên kết kép (Double List)
Câu hỏi ôn tập
12
4
4
2
2
4.1.2; 4.2; 4.3 4.1.3; 4.2; 4.3 4.1.3; 4.2; 4.3 4.1.3; 4.2; 4.3
Chương 3: Cấu trúc cây (Tree)
Mục tiêu
Nội dung
3.1 Các thuật ngữ cơ bản
6
½ 4.1.4; 4.2; 4.3
4.1.4; 4.2; 4.3
Trang 43.2 Kiểu dữ liệu trừu tượng cây
3.3 Cài đặt cây
3.4 Cây nhị phân
3.5 Cây nhị phân tìm kiếm
Câu hỏi ôn tập
Bài tập
1.5
1
2
1
4.1.4; 4.2; 4.3 4.1.4; 4.2; 4.3
Chương 4: Tập hợp
Mục tiêu
Nội dung
4.1 Khái niệm
4.2 Các phép toán cơ bản trên tập họp
4.3 Cài đặt tập hợp
4.4.Từ điển
4.5 Bảng băm
Câu hỏi ôn tập
Bài tập
6
¼
¾
2
1
1
1
4.1.5; 4.2; 4.3
4.1.5; 4.2; 4.3 4.1.5; 4.2; 4.3 4.1.5; 4.2; 4.3 4.1.5; 4.2; 4.3 4.1.5; 4.2; 4.3 4.1.5; 4.2; 4.3
Chương 5: Tìm kiếm và sắp xếp
Mục tiêu
Nội dung
5.1 Các giải thuật tìm kiếm nội: Tìm kiếm tuyến tính,
tìm kiếm nhị phân
5.2 Các giải thuật sắp xếp nội: Chọn trực tiếp, chèn
trực tiếp, quicksort, heapsort,…
Câu hỏi ôn tập
Bài tập
6
1
4
1
2
4.1.6; 4.2; 4.3
4.1.6; 4.2; 4.3 4.1.6; 4.2; 4.3 4.1.6; 4.2; 4.3 4.1.6; 4.2; 4.3 4.1.6; 4.2; 4.3 Chương 6: Kỹ thuật thiết kế giải thuật
Mục tiêu
Nội dung
6.1 Kỹ thuật chia để trị
6.2 Kỹ thuật qui hoạch động
6.3 Kỹ thuật tham ăn
6.4 Kỹ thuật quay lui
6.5 Tinh chỉnh mã
Câu hỏi ôn tập, Bài tập
11
1
2
1
3
2
2
4.1.7; 4.2; 4.3
4.1.7; 4.2; 4.3 4.1.7; 4.2; 4.3 4.1.7; 4.2; 4.3 4.1.7; 4.2; 4.3 4.1.7; 4.2; 4.3 4.1; 4.2; 4.3
6.2 Thực hành
Trang 5Sinh viên sẽ được bố trí 6 buổi thực hành, mỗi buổi phải thực hiện tối đa 6 bài tập theo yêu cầu của giáo viên
Buổi 1: Bài tập về cài đặt danh sách 5 4.1.1; 4.1.2;
4.1.3; 4.2; 4.3
Buổi 2: Danh sách đặc biệt: ngăn xếp, hàng đợi
Buổi 3: Bài tập về cài đặt cây tổng quát, cây nhị phân và
cây nhị phân tìm kiếm
5 4.1.1-> 4.1.4;
4.2; 4.3
Buổi 4: Cài đặt các giải thuật tìm kiếm nội và sắp xếp
nội
5 4.1.1->4.1.5;
4.2; 4.3
Buổi 5: Cài đặt các chương trình minh họa các kỹ thuật
chia để trị, qui hoạch động, tham lam, quay lui
5 4.1; 4.2; 4.3
Buổi 6: Bài tập tổng hợp Ôn tập 5 4.1; 4.2; 4.3
7 Phương pháp giảng dạy:
- Kết hợp phương pháp đặt vấn đề và diễn giảng trên lớp
- Thực hành minh họa thuật toán trên máy tính
- Phân nhóm làm bài tập lớn
8 Nhiệm vụ của sinh viên:
Sinh viên phải thực hiện các nhiệm vụ như sau:
- Tham dự tối thiểu 80% số tiết học lý thuyết
- Tham gia đầy đủ 100% giờ thực hành và có nộp kết quả bài làm sau mỗi buổi
- Sinh viên lên bảng sửa bài tập và nộp bài tập theo yêu cầu của giáo viên
- Tham dự kiểm tra giữa học kỳ
- Tham dự thi kết thúc học phần
- Chủ động tổ chức thực hiện giờ tự học
9 Đánh giá kết quả học tập của sinh viên:
9.1 Cách đánh giá
Sinh viên được đánh giá tích lũy học phần như sau:
1
Điểm kiểm tra
giữa kỳ trên
máy
- Tham gia 100% buổi thực hành
- Có cộng thêm điểm chuyên cần cho các sinh viên tích cực (đi học đầy
đủ, lên bảng làm bài tập, )
30% 4.1; 4.2;
4.3
Trang 6- Bắt buộc dự thi
2 Điểm thi kết
thúc học phần
- Thi viết/ trắc nghiệm (sẽ thông báo trong khi học theo tình hình riêng của lớp)
- Tham dự đủ 80% tiết lý thuyết và 100% buổi thực hành
- Bắt buộc dự thi
70% 4.1; 4.2;
4.3
9.2 Cách tính điểm
- Điểm đánh giá thành phần và điểm thi kết thúc học phần được chấm theo thang điểm 10 (từ 0 đến 10), làm tròn đến một chữ số thập phân
- Điểm học phần là tổng điểm của tất cả các điểm đánh giá thành phần của 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 một chữ số thập phân, sau đó được quy đổi sang điểm chữ và điểm số theo thang điểm
4 theo quy định về công tác học vụ của Trường
10 Tài liệu học tập:
Thông tin về tài liệu Số đăng ký cá biệt
[1] Alfred V AHO, John E Hopcroft, Jeffrey D Ullman; Data
structures and algorithms; Addison-Wesley, 1987
[2] Nguyễn Văn Linh, Trần Cao Đệ et al; Giáo trình Cấu trúc dữ
liệu; ĐHCT; 2003
[3] Trần Cao Đệ; Cấu trúc dữ liệu; NXB Đại học Cần Thơ;2010
[4] Trần Hạnh Nhi, Nhập môn cấu trúc dữ liệu và thuật toán,
Trường ĐH KHTN, Tp HCM, 2003
[5] Nguyễn Văn Linh, Phân tích và thiết kế thuật toán, NXB Đại
học Cần Thơ, 2010
[6] Lê Hữu Lập, Nguyễn Duy Phương; Giáo trình Kỹ thuật lập
trình; NXB Bưu Điện; 2002
[7] Trương Thị Thanh Tuyền et al; Bài giảng thực hành cấu trúc dữ
liệu (Ngôn ngữ C); ĐHCT; 2006
11 Hướng dẫn sinh viên tự học:
uần Nội dung
Lý
thuyết
(tiết)
Thực hành (tiết)
Nhiệm vụ của sinh viên
1 Chương 1: Tổng quan
1.1 Từ bài toán
1.2 Kiểu dữ liệu
4 0 Nghiên cứu trước: Đọc trước lý thuyết
- Xem lại cách viết 1 chương trình bằng ngôn ngữ C (học phần TN195)
Trang 71.3 Các tiêu chí
1.4 Khái niệm giải thuật
- Tài liệu [1]: nội dung từ mục 1.1 đến 1.7, chapter 1; mục 9.1->9.4; chapter 9
- Tài liệu [2]: chương 1
- Tài liệu [5]: chương 1
2 Chương 2: Các kiểu dữ liệu
2.1 Danh sách
Bài tập về danh sách
4 5 - Làm bài tập:
+ Tài liệu [5]: bài tập chương 1 + Tài liệu [1]: bài tập chapter 1
- Đọc trước tài liệu + Tài liệu [1]: nội dung từ mục 2.1 đến 2.2, chapter 2
+ Tài liệu [2]: mục 2.1
3 Chương 2: Các kiểu dữ liệu
2.2 Ngăn xếp
Bài tập về ngăn xếp
4 2.5 - Làm bài tập buổi thực hành số 1
- Đọc trước tài liệu + Tài liệu [1]: mục 2.3, chapter 2 + Tài liệu [2]: mục 2.2, chương 2
4 Chương 2: Các kiểu dữ liệu
2.3 Hàng đợi
Bài tập về hàng đợi
2.4 Danh sách liên kết kép
4 2.5 - Làm bài tập:
+ Bài 1, 2, 3 buổi TH số 2 + Xem thêm bài tập trong tài liệu [1] trang 72->74
- Đọc trước tài liệu + Tài liệu [1]: mục 2.4, chapter 2 + Tài liệu [2]: mục 2.3, 2.4; chương 2
5 Chương 3: Cây
3.1 Các thuật ngữ cơ bản
3.2 ADT Cây
3.3 Cài đặt cây
3.4 Cây nhị phân
4 2.5 - Làm bài tập 4, 5, 6 buổi TH số 2
- Đọc trước tài liệu + Tài liệu [1]: chapter 3 + Tài liệu [2]: mục 3.1->3.4; chương 3
6 Chương 3: Cây
3.5 Cây tìm kiếm nhị phân
Bài tập
Chương 4: Tập hợp
4.1 Khái niệm
4.2 Các phép toán trên TH
4.3 Cài đặt tập hợp
4.4 Từ điển
Bài tập
2
2
2.5 - Làm bài tập 1, 2, 3 buổi TH số 3
- Đọc trước tài liệu + Tài liệu [1]: chapter 3 + Tài liệu [2]: mục 3.5; chương 3 + Tài liệu [2]: mục 4.1->4.3; chương 4
- Nộp bài tập theo yêu cầu của GV
7 Chương 4: Tập hợp
4.4 Bảng băm
Bài tập
Chương 5: Tìm kiếm
5.1 Các GT tìm kiếm nội
2
2
1 - Làm bài tập 4, 5, 6 buổi TH số 3
- Đọc trước tài liệu + Tài liệu [1]: 4.7, 4.8; chapter 4; + Tài liệu [2]: mục 4.4; chương 4 + Tài liệu [4]: mục 2.1; chương 2
Trang 8Bài tập
8 Chương 5: Tìm kiếm
5.2 Các giải thuật sắp xếp nội
4 4 - Ôn tập các kiến thức đã học từ đầu
- Làm bài tập 1,2 buổi TH số 4
- Đọc trước tài liệu + Tài liệu [1]: 4.1->4.6; chapter 4 + Tài liệu [2]: mục 3.5; chương 4 + Tài liệu [4]: mục 2.2; chương 2 + Tài liệu [5]: chương 2
9 Chương 6: Kỹ thuật
Kiểm tra giửa kỳ
Bài tập về sắp xếp
6.1 Chia để trị
6.2 Qui hoạch động
3 2.5 - Làm bài tập 3, 4, 5 buổi TH số 4
- Đọc trước tài liệu + Tài liệu [1]: nội dung mục 10.1, 10.2, 10.3; chapter 10
+ Tài liệu [5]: mục 3.1, 3.2, 3.4; chương 3
10 Chương 6: Kỹ thuật
6.3 Kỹ thuật tham ăn
6.4 Kỹ thuật quay lui
Bài tập
4 2.5 - Làm bài tập 1, 2, 3 buổi TH số 5
- Đọc trước tài liệu + Tài liệu [1]: nội dung mục 10.4, 10.5; chapter 10
+ Tài liệu [5]: mục 3.3, 3.5; chương 3
11 Chương 6: Kỹ thuật
6.4 Kỹ thuật quay lui (tt)
Bài tập
6.5 Tinh chỉnh mã
4 5 - Bài tập làm bài 4, 5 buổi TH số 5
+ Chuẩn bị bài buổi TH số 6 + Bài tập trong tài liệu [5] từ trang 93->98
- Đọc trước tài liệu + Tài liệu [1]: nội dung mục 10.4, 10.5; chapter 10
+ Tài liệu [5]: 3.3, 3.5; chương 3
- Nộp bài tập theo yêu cầu của GV
12 Ôn tập và giải đáp thắc mắc 2 5 - Làm bài tập buổi TH số 6
- Ôn tập, tổng hợp lại các kiến thức
đã học
Cần Thơ, ngày 23 tháng 03 năm 2014
TL HIỆU TRƯỞNG
TRƯỞNG KHOA/GIÁM ĐỐC VIỆN/
GIÁM ĐỐC TRUNG TÂM
TRƯỞNG BỘ MÔN