TRƯỜNG CAO ĐẲNG CÔNG NGHỆ THÔNG TINHỮU NGHỊ VIỆT – HÀN KHOA CÔNG NGHỆ THÔNG TIN CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự do – Hạnh phúc LỊCH TRÌNH GIẢNG DẠY HỌC PHẦN Lớp: LT08A I
Trang 1TRƯỜNG CAO ĐẲNG CÔNG NGHỆ THÔNG TIN
HỮU NGHỊ VIỆT – HÀN
KHOA CÔNG NGHỆ THÔNG TIN
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
LỊCH TRÌNH GIẢNG DẠY HỌC PHẦN
Lớp: LT08A
I Thông tin về giảng viên
- Họ và tên: Nguyễn Thanh Cẩm - Chức danh, học hàm, học vị: Thạc Sĩ
- Thời gian, địa điểm làm việc: Khoa khoa học máy tính
- Địa chỉ liên hệ: - Điện thoại: 0121 5586 272
- E-mail: camcntt@yahoo.com
- Các hướng nghiên cứu chính:
- Thông tin về trợ giảng:
……….
II Thông tin về học phần
2 Thời lượng: 03 tín chỉ
3 Yêu cầu kiến thức trước khi học:
Cấu trúc dữ liệu
4 Mục tiêu của học phần:
- Mục tiêu về kiến thức: Cung cấp cho sinh viên những nội dung cơ bản sau:
+ Các phương pháp thiết kế thuật toán,
+ Kỹ thuật đánh giá độ phức tạp thuật toán;
+ Nguyên lý hoạt động của các thuật toán chia để trị, quy hoach động, tham lam, quay lui thông qua một số bài toán cụ thể
- Mục tiêu về kỹ năng: Sinh viên biết:
+ Cài đặt các thuật toán trên máy,
+ Thông qua kết quả trên máy nhằm để kiểm chứng kết quả đã khảo sát qua đó hiểu
rỏ hơn về sự hoạt động của thuật toán
- Mục tiêu về thái độ người học: Từng bước hình thành tác phong công nghiệp và
niềm đam mê ngành lập trình máy tính
5 Tóm tắt nội dung học phần:
Trang 2Học phần thuật toán giới thiệu các phương pháp thiết kế thuật toán, đánh giá độ phức tạp thuật toán Một số thuật toán kinh điển như chia để trị, quy hoach động, tham lam, quay lui
6 Nhiệm vụ của sinh viên:
- Phải nghiên cứu trước giáo trình, chuẩn bị các ý kiến hỏi, đề xuất khi nghe giảng;
- Sưu tầm, nghiên cứu các tài liệu có liên quan đến nội dung của từng phần, từng chương, mục hay chuyên đề theo sự hướng dẫn của giảng viên;
- Tham dự đầy đủ các giờ giảng của giảng viên và các buổi tổ chức thảo luận dưới
sự hướng dẫn và điều khiển của giảng viên theo quy chế
7 Tài liệu học tập:
7.1 Giáo trình chính
[1] Thuật toán, Nguyễn Thanh Cẩm, Lưu hành nội bộ 2009.
7.2 Tài liệu tham khảo
[2] Thuật toán và độ phức tạp thuật toán, Vũ Đình Hòa - Đỗ Trung Kiên; Nhà xuất
bản Đại Học Sư Phạm 2007
[3] Cấu trúc dữ liệu, phân tích thuật toán và phát triển phần mềm, Hồ Thuần – Hồ
Cẩm Hà – Trần Thiên Thành; Nhà xuất bản giáo dục 2008
[4] Richard Neapolitan, Kumarss Naimipour, Foundations of Algorithms Using C+ + Pseudocode, Jones and Bartlett Publishers
8 Đánh giá kết quả học tập học phần
- Kiểm tra thường xuyên (trọng số 0.3) gồm kiểm tra định kỳ và kiểm tra giữa học
phần
+ Kiểm tra định kỳ (hệ số 1): Kiểm tra 02 lần với hình thức thực hành trên máy + Kiểm tra giữa kỳ (hệ số 2): Hình thức: tự luận.
- Thi kết thúc học phần (trọng số 0,7): Hình thức: tự luận; thời gian thi: 75 phút
- Thang điểm đánh giá: 10
9 Nội dung chi tiết của học phần:
thuyết
Thực hành
Thảo luận
Tổng cộng
1.1 Khái niệm thuật toán
1.1.1 Một ví dụ về thuật toán 1
Trang 31.1.2 Khái niệm thuật toán
1.1.3 Các đặc trưng của thuật toán
1.2 Thiết kế - Phân tích – Đánh giá thuật toán
1.2.1 Thiết kế thuật toán
1.2.2 Phân tích thuật toán
1.2.3 Đánh giá thuật toán
1
1.3 Biểu diễn thuật toán
1.3.1 Phương pháp liệt kê từng bước
1.3.2 Phương pháp sơ đồ khối
1
1.4 Ngôn ngữ diễn đạt thuật toán
1.4.1 Kí tự và biểu thức
1.4.2 Một số câu lệnh chính
1.4.3 Chương trình con (Thủ tục và hàm)
1
1.5 Đánh giá Độ phức tạp thuật toán
1.5.1 Tại sao lại cần thuật toán có hiệu quả
1.5.2 Đánh giá thời gian thực hiện thuật toán
1.5.3 O(f(x)) và đánh giá thời gian thực hiên thuật
toán
1
1.5.4 Các quy tắc để đánh giá thời gian thực hiện
thuật toán
1
2.1 Thuật toán chia để trị tổng quát 0,5
2.2 Một số ví dụ minh họa
2.2.1 Bài toán tìm kiếm nhị phân
1 2.2.2 Bài toán phép nhân các số nguyên lớn 1
2.2.4 Bài toán dãy con lớn nhất 1
Trang 43.1 Thuật toán quy hoạch động tổng quát 0.5
3.2 Một số ví dụ minh họa
3.2.1 Bài toán thực hiện dãy phép nhân ma trận 1,5 3.2.2 Bài toán tìm đường đi ngắn nhất–thuật toán
3.2.3 Bài toán dãy con lớn nhất 1 3.2.4 Bài toán dãy con chung dài nhất 1,5 Chương 4 THUẬT TOÁN THAM LAM 6
4.1 Thuật toán tham lam
4.1.1 Đặc điểm chung của thuật toán tham lam
4.1.2 Thuật toán tham lam
4.2.3 Sự khác nhau giữa giải thuật tham lam và giải
thuật quy hoạch động
1
4.3 Một số ví dụ minh họa
4.3.1 Bài toán đường đi của người giao hàng
1 4.3.2 Bài toán các đoạn thẳng không giao nhau 1
4.3.3 Bài toán cây khung nhỏ nhất 2 Chương 5 THUẬT TOÁN QUAY LUI 6
5.1 Thuật toán quay lui
5.1.1 Đệ quy
5.1.2 Kỹ thuật quay lui
1
5.2 Một số ví dụ minh họa
5.2.1 Bài toán liệt kê dãy nhị phân độ dài n
1 5.2.2 Bài toán liệt kê tập con k phần tử 1,5
5.2.4 Bài toán tô màu đồ thị 1
Trang 5Tổng cộng 30
10 Lịch trình giảng dạy
10.1 Lịch trình giảng dạy chung
Nội dung
Hình thức tổ chức dạy học
Sinh viên tự nghiên cứu
Tổng cộng Giảng lý
thuyết
TH, BT, Thảo luận
Chương 1 THUẬT TOÁN VÀ ĐỘ PHỨC
Chương 4 THUẬT TOÁN THAM LAM 6 6
Chương 5 THUẬT TOÁN QUAY LUI 6 6
{để tiếp thu được 01 tín chỉ sinh viên phải dành ít nhất 30 giờ chuẩn bị cá nhân}
10.2 Lịch trình giảng dạy cụ thể
Tuần Nội dung công việc Thời gian thực hiện Tài liệu tham khảo
1
- Giới thiệu về môn học, hướng dẫn phương
pháp học tập, tài liệu phục vụ cho môn học…
- GV giảng mục:
1.1 Khái niệm thuật toán
1.2 Thiết kế - Phân tích – Đánh giá thuật toán
1.3 Biểu diễn thuật toán
1.4 Ngôn ngữ diễn đạt thuật toán
và hướng dẫn cho SV tự nghiên cứu mục:
về nhà đọc trước các mục trong giáo trình
1.5 Đánh giá Độ phức tạp thuật toán
2.1 Thuật toán chia để trị tổng quát
2.2.1 Bài toán tìm kiếm nhị phân
4 tiết LT
Giáo trình Thuật Toán (lưu hành nội bộ) từ trang 13 đến trang 30
2 - GV kết luận những nội dung SV tự nghiên
cứu
- GV giảng mục:
4 tiết LT
Trang 61.5 Đánh giá Độ phức tạp thuật toán
2.1 Thuật toán chia để trị tổng quát
2.2.1 Bài toán tìm kiếm nhị phân
- GV hướng dẫn sinh viên tự nghiên cứu mục:
về nhà cài đặt trên máy
2.2.1 Bài toán tìm kiếm nhị phân (cài đặt trên
máy)
về nhà đọc trước các mục trong giáo trình
2.2.2 Bài toán phép nhân các số nguyên lớn
2.2.3 Bài toán nhân ma trận
Giáo trình Thuật Toán (lưu hành nội bộ) từ trang 31 đến trang 35 và trang 95
3
- GV kết luận những nội dung SV tự nghiên
cứu mục…
TH: 2 tiết
2.2.1 Bài toán tìm kiếm nhị phân (cài đặt trên
máy)
- GV giảng mục:
2.2.2 Bài toán phép nhân các số nguyên lớn
2.2.3 Bài toán nhân ma trận
và hướng dẫn cho SV tự nghiên cứu mục:
về nhà cài đặt trên máy
2.2.2 Bài toán phép nhân các số nguyên lớn
(cài đặt trên máy)
2.2.3 Bài toán nhân ma trận (cài đặt trên
máy)
2LT 2TH
Giáo trình Thuật Toán (lưu hành nội bộ) từ trang 36 đến trang 47 ; từ trang 95 đến trang 96 và từ
97 đến 98
4
- GV kết luận những nội dung SV tự nghiên
cứu
TH: 4 tiết
2.2.2 Bài toán phép nhân các số nguyên lớn
(cài đặt trên máy)
2.2.3 Bài toán nhân ma trận (cài đặt trên máy)
về nhà đọc trước các mục trong giáo trình
2.2.4 Bài toán dãy con lớn nhất
2.2.5 Bài toán sắp xếp
2.2.6 Bài toán lũy thừa
4TH
Giáo trình Thuật Toán (lưu hành nội bộ) từ trang 36 đến trang 47
5 - GV kết luận những nội dung SV tự nghiên
cứu
- GV giảng mục:
2LT 2TH
Trang 72.2.4 Bài toán dãy con lớn nhất
2.2.5 Bài toán sắp xếp
2.2.6 Bài toán lũy thừa
TH: 2 tiết (cài đặt trên máy)
2.2.4 Bài toán dãy con lớn nhất
và hướng dẫn cho SV tự nghiên cứu mục:
về nhà đọc trước các mục trong giáo trình
3.1 Thuật toán quy hoạch động tổng quát
3.2.1 Bài toán thực hiện dãy phép nhân ma
trận
Giáo trình Thuật Toán (lưu hành nội bộ) từ trang 49 đến trang 56
6
- GV kết luận những nội dung SV tự nghiên
cứu
TH: 2 tiết (cài đặt trên máy)
2.2.5 Bài toán sắp xếp
- GV giảng mục:
3.1 Thuật toán quy hoạch động tổng quát
3.2 Một số ví dụ minh họa
3.2.1 Bài toán thực hiện dãy phép nhân ma
trận
và hướng dẫn cho SV tự nghiên cứu mục:
về nhà đọc trước các mục trong giáo trình
3.2.2 Bài toán tìm đường đi ngắn nhất–thuật
toán Floyd
2LT 2TH
Giáo trình Thuật Toán (lưu hành nội bộ) từ trang 57 đến trang 62
7 - GV kết luận những nội dung SV tự nghiên
cứu
TH: 2,5 tiết (cài đặt trên máy)
3.2.1 Bài toán thực hiện dãy phép nhân ma
trận
- GV giảng mục:
3.2.2 Bài toán tìm đường đi ngắn nhất–thuật
toán Floyd
và hướng dẫn cho SV tự nghiên cứu mục:
về nhà cài đặt:
3.2.2 Bài toán tìm đường đi ngắn nhất–thuật
toán Floyd
1,5LT 2,5TH
Giáo trình Thuật Toán (lưu hành nội bộ) từ trang 57 đến trang 62
Trang 8và hướng dẫn cho SV tự nghiên cứu mục:
về nhà đọc trước các mục trong giáo trình
3.2.3 Bài toán dãy con lớn nhất
3.2.4 Bài toán dãy con chung dài nhất
8
- GV kết luận những nội dung SV tự nghiên
cứu
TH: 2,5 tiết (cài đặt trên máy)
3.2.2 Bài toán tìm đường đi ngắn nhất–thuật
toán Floyd
- GV giảng mục
3.2.3 Bài toán dãy con lớn nhất
và hướng dẫn cho SV tự nghiên cứu mục:
về nhà đọc trước các mục trong giáo trình
3.2.4 Bài toán dãy con chung dài nhất
chuẩn bị kiểm tra giữa kỳ
1LT 2,5TH
Giáo trình Thuật Toán (lưu hành nội bộ) từ trang 64 đến trang 67
9
- Kiểm tra giữa học kỳ 1 tiết;
TH: 2 tiết (cài đặt trên máy)
3.2.3 Bài toán dãy con lớn nhất
- GV giảng mục
3.2.4 Bài toán dãy con chung dài nhất
và hướng dẫn cho SV tự nghiên cứu mục:
về nhà đọc trước các mục trong giáo trình
4.1 Thuật toán tham lam
4.2.1 Bài toán đường đi của người giao hàng
4.2.2 Bài toán các đoạn thẳng không giao nhau
1KT 1LT 2TH
Giáo trình Thuật Toán (lưu hành nội bộ) từ trang 69 đến trang 75
10 - GV kết luận những nội dung SV tự nghiên
cứu
TH: 1 tiết (cài đặt trên máy)
3.2.3 Bài toán dãy con chung dài nhất
- GV giảng mục
4.1 Thuật toán tham lam
4.2.1 Bài toán đường đi của người giao hàng
4.2.2 Bài toán các đoạn thẳng không giao nhau
và hướng dẫn cho SV tự nghiên cứu mục:
về nhà cài đặt:
3LT 1TH
Giáo trình Thuật Toán (lưu hành nội
Trang 94.2.2 Bài toán các đoạn thẳng không giao nhau
Đọc trước:
4.2.3 Bài toán cái balô
4.2.4 Bài toán cây khung nhỏ nhất
bộ) từ trang 76 đến trang 81 và trang 103
11
- GV kết luận những nội dung SV tự nghiên
cứu
TH: 1 tiết (cài đặt trên máy)
4.3.2 Bài toán các đoạn thẳng không giao nhau
- GV giảng mục
4.2.3 Bài toán cái balô
4.2.4 Bài toán cây khung nhỏ nhất
và hướng dẫn cho SV tự nghiên cứu mục:
về nhà cài đặt:
4.2.3 Bài toán cái balô
2LT 2TH
Giáo trình Thuật Toán (lưu hành nội bộ) từ trang 104 đến trang 105
12
- GV kết luận những nội dung SV tự nghiên
cứu
TH: 4 tiết (cài đặt trên máy)
4.2.3 Bài toán cái balô
4.2.4 Bài toán cây khung nhỏ nhất
và hướng dẫn cho SV tự nghiên cứu mục:
về nhà đọc trước các mục trong giáo trình
5.1 Thuật toán quay lui
5.2.1 Bài toán liệt kê dãy nhị phân độ dài n
4TH
Giáo trình Thuật Toán (lưu hành nội bộ) từ trang 85 đến trang 86
13 - GV kết luận những nội dung SV tự nghiên
cứu
- GV giảng mục
5.1 Thuật toán quay lui
5.2.1 Bài toán liệt kê dãy nhị phân độ dài n
TH: 2 tiết (cài đặt trên máy)
5.2.1 Bài toán liệt kê dãy nhị phân độ dài n
và hướng dẫn cho SV tự nghiên cứu mục:
về nhà đọc trước các mục trong giáo trình
5.2.2 Bài toán liệt kê tập con k phần tử
5.2.3 Bài toán xếp hậu
2LT 2TH
Giáo trình Thuật Toán (lưu hành nội bộ) từ trang 86 đến
Trang 10trang 87.
14
- GV kết luận những nội dung SV tự nghiên
cứu
TH: 1 tiết (cài đặt trên máy)
5.2.2 Bài toán liệt kê tập con k phần tử
- GV giảng mục
5.2.2 Bài toán liệt kê tập con k phần tử
5.2.3 Bài toán xếp hậu
và hướng dẫn cho SV tự nghiên cứu mục:
về nhà đọc trước các mục trong giáo trình
5.2.4 Bài toán tô màu đồ thị
3LT 1TH
Giáo trình Thuật Toán (lưu hành nội bộ) từ trang 89 đến trang 92
15
- GV kết luận những nội dung SV tự nghiên
cứu
TH: 3 tiết (cài đặt trên máy)
5.2.3 Bài toán xếp hậu
- GV giảng mục
5.2.4 Bài toán tô màu đồ thị
1LT 3TH
11 Trang thiết bị phục vụ giảng dạy, học tập: Slide bài giảng, đèn chiếu, bảng viết
và máy thực hành.