Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 11 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
11
Dung lượng
565,73 KB
Nội dung
TẠP CHÍ KHOA HỌC TRƯỜNG ĐẠI HỌC SƯ PHẠM TP HỒ CHÍ MINH HO CHI MINH CITY UNIVERSITY OF EDUCATION JOURNAL OF SCIENCE Tập 18, Số (2021): 331-341 ISSN: 1859-3100 Vol 18, No (2020): 331-341 Website: http://journal.hcmue.edu.vn Bài báo nghiên cứu* KHẢO SÁT CÁC THUẬT TOÁN ĐỊNH HƯỚNG KHOA HỌC MÁY TÍNH MƠN TIN HỌC CHƯƠNG TRÌNH GIÁO DỤC PHỔ THÔNG MỚI Phan Tấn Quốc*, Phan Thị Kim Loan, Trương Tấn Khoa Trường Đại học Sài Gòn, Việt Nam Tác giả liên hệ: Phan Tấn Quốc – Email: quocpt@sgu.edu.vn Ngày nhận bài: 20-3-2020; ngày nhận sửa: 29-4-2020; ngày duyệt đăng: 25-02-2021 * TĨM TẮT Chương trình giáo dục phổ thông thực từ năm học 2022-2023 bậc trung học phổ thông; chương trình mơn Tin học thiết kế gồm nội dung cốt lõi chuyên đề học tập định hướng nghề nghiệp; tại, yêu cầu cần đạt nội dung cốt lõi chuyên đề học tập liệt kê ngắn gọn Các chuyên đề học tập thiết kế theo hai định hướng Tin học ứng dụng Khoa học máy tính; đó, định hướng Tin học ứng dụng tập trung vào việc sử dụng phần mềm thông dụng thiết yếu để nâng cao hiệu suất công việc, tạo hội cho học sinh làm sản phẩm số thiết thực phục vụ học tập sống; định hướng Khoa học máy tính tập trung phát triển tư máy tính, lực phân tích tốn, lựa chọn kiểu liệu thiết kế thuật toán Trong báo này, khảo sát chi tiết hóa nội dung chuyên đề học tập định hướng Khoa học máy tính thuộc Chương trình Tin học lớp 11 bao gồm thuật toán đệ quy, thuật toán chia để trị thuật toán quay lui; báo nhằm đưa góc nhìn thuật tốn môn Tin học lớp 11 để giáo viên trung học phổ thơng tham khảo Từ khóa: thuật tốn quay lui; thuật toán nhánh cận; thuật toán chia để trị; thuật toán quy hoạch động; thuật toán sinh; thuật toán tham lam; thuật toán đệ quy Giới thiệu 1.1 Chương trình mơn Tin học thuộc Chương trình giáo dục phổ thơng Chương trình mơn Tin học 10 có chủ đề: Một số khái niệm tin học; hệ điều hành; soạn thảo văn bản; mạng máy tính Internet (Ho et al., 2014) Chương trình mơn Tin học 11 có chủ đề: Khái niệm lập trình ngơn ngữ lập trình; chương trình đơn giản; cấu trúc rẽ nhánh lặp; kiểu liệu có cấu trúc; tệp và thao tác với tệp; chương trình lập trình có cấu trúc (Ho et al., 2014) Chương trình mơn Tin học 12 có chủ đề: Khái niệm hệ sở liệu; hệ quản trị sở liệu Microsoft Access; hệ sở liệu quan hệ; kiến trúc bảo mật hệ sở liệu (Ho et al., 2012) Cite this article as: Phan Tan Quoc, Phan Thi Kim Loan, & Truong Tan Khoa (2021) A survey on algorithms in computer science for the new general education program Ho Chi Minh City University of Education Journal of Science, 18(2), 331-341 331 Tạp chí Khoa học Trường ĐHSP TPHCM Tập 18, Số (2021): 331-341 1.2 Chương trình mơn Tin học thuộc Chương trình giáo dục phổ thơng Trong chương trình giáo dục phổ thông (viết tắt CTGDPT) mới, lực tin học đặc biệt trọng; lực tin học cốt lõi (trong có chủ đề Lập trình lớp 10 Kĩ thuật lập trình lớp 11), CTGDPT thể phân hóa sâu định hướng nghề nghiệp; học sinh tự chọn chuyên đề học tập (viết tắt CĐHT) theo hai định hướng Tin học ứng dụng (viết tắt THƯD) Khoa học máy tính (viết tắt KHMT) (Ministry of Education and Training, 2018; Ministry of Education and Training, 2019) 1.3 So sánh chương trình môn Tin học thuộc CTGDPT CTGDPT Trong CTGDPT mới, vai trị mơn Tin học THPT có nhiều thay đổi: Tin học mơn học lựa chọn theo nguyện vọng định hướng nghề nghiệp học sinh, phân hóa theo hai định hướng THƯD KHMT (trong CTGDPT khơng phân hóa) Trong CTGDPT mới, bên cạnh nội dung giáo dục cốt lõi (70 tiết/lớp/năm học), học sinh chọn học số CĐHT (35 tiết/lớp/năm) tùy theo sở thích, nhu cầu định hướng nghề nghiệp So với CTGDPT tại, học sinh CTGDPT chọn môn Tin học (học nội dung cốt lõi CĐHT) số tiết học sinh học 315 tiết so với 175 tiết CTGDPT tại; tức 180% số tiết so với CTGDPT (Ministry of Education and Training, 2018; Ho et al., 2014) Trong CTGDPT mới, mơn Tin học xem bình đẳng mơn học tự chọn khác Vật lí, Hóa học, Sinh học, Lịch sử, Địa lí môn thi tuyển sinh đại học sau Các CĐHT theo định hướng KHMT tập trung vào nội dung như: thuật tốn, cấu trúc liệu, ngơn ngữ lập trình Trong CTGDPT mới, khơng quy định cụ thể ngơn ngữ lập trình giảng dạy Bảng Tính tự chọn/bắt buộc mơn Tin học CTGDPT tổng thể Lớp CTGDPT Lớp 10 Lớp 11 Lớp 12 Bắt buộc Bắt buộc Bắt buộc CTGDPT Chương trình cốt lõi Chuyên đề học tập Tự chọn Tự chọn Tự chọn Tự chọn Tự chọn Tự chọn Bảng Kiến thức lập trình khối lớp Lớp Lớp 10 Lớp 11 Lớp 12 Ngôn ngữ lập trình CTGDPT Khơng Lập trình Khơng Pascal CTGDPT Chương trình cốt lõi Chun đề học tập Lập trình Kĩ thuật lập trình Không Java/Python/C#/… 332 CĐHT CĐHT CĐHT Java/Python/C#/… Tạp chí Khoa học Trường ĐHSP TPHCM Phan Tấn Quốc tgk Bảng Thời lượng giảng dạy môn Tin học khối lớp Lớp Lớp 10 Lớp 11 Lớp 12 Cấp THPT CTGDPT CTGDPT Chương trình cốt lõi Chuyên đề học tập 70.0 52.5 52.5 175 tiết 70 70 70 35 35 35 315 tiết Khảo sát thuật toán thuộc nội dung CĐHT định hướng KHMT môn Tin học thuộc CTGDPT Phần trình bày thuật tốn, thuật tốn đệ quy, thuật toán chia để trị, thuật toán quay lui thuộc CĐHT định hướng KHMT môn Tin học lớp 11 thuộc CTGDPT số thuật toán liên quan 2.1 Thuật toán độ phức tạp Trong học Bài toán thuật toán (Ho et al., 2014), tác giả trình bày thuật tốn ngơn ngữ sơ đồ khối cho số toán sau: - Tìm giá trị lớn dãy số nguyên; - Kiểm tra tính nguyên tố số nguyên dương; - Bài toán xếp; - Bài toán tìm kiếm Học sinh lớp 11 CTGDPT học kiến thức Lập trình bản, Kĩ thuật lập trình học CĐHT định hướng KHMT, nên chúng tơi đề xuất số tốn có độ khó cao cho nội dung liên quan đến thuật toán Với nội dung thuật toán độ phức tạp (algorithm and complexity), đề xuất nội dung tham khảo: Bài tốn thuật toán, độ phức tạp thuật toán, số lớp thuật tốn, ngơn ngữ biểu diễn thuật tốn, số kĩ thuật phân tích thuật tốn, đánh giá độ phức tạp thuật toán quy tắc cộng quy tắc nhân, số toán tổ hợp toán đếm tổ hợp (counting problem), toán tồn tổ hợp (existence problem), toán liệt kê tổ hợp (enumeration problem), toán tối ưu tổ hợp (combinatorial optimization problem) (Nguyen, & Nguyen, 2009; Nguyen, 2013; Robert, & Kevin, 2011; Steven, & Felix, 2010; Jon, 2000) Một số tốn làm ví dụ minh họa để thấy quan trọng độ phức tạp thuật toán như: - Bài toán cho dãy n số nguyên (n106), tìm dãy liên tiếp có tổng lớn nhất; tốn giải với độ phức tạp O(n) - Bài toán cho dãy n số nguyên (n106), chuyển đoạn dãy gồm k phần tử đầu dãy cuối dãy (yêu cầu không dùng mảng phụ); tốn giải với độ phức tạp O(n) - Bài tốn cho dãy n số ngun (n106), tìm số có tích lớn nhất; tốn giải với độ phức tạp O(nlogn) 333 Tạp chí Khoa học Trường ĐHSP TPHCM Tập 18, Số (2021): 331-341 Một số toán để rèn luyện cho nội dung thuật toán cho dãy gồm n số nguyên dương (n106): - Tìm dãy liên tiếp tăng dài nhất; tốn giải với độ phức tạp O(n) - Đếm xem dãy có cặp số có tổng M; tốn giải với độ phức tạp O(nlogn) - Đếm xem dãy có số có giá trị đơi khác Cũng hướng dẫn mở rộng thêm thuật toán xếp đơn giản, toán số học số nguyên lớn, tốn tính tốn hình học đơn giản 2.2 Thuật toán đệ quy CĐHT Thực hành thiết kế thuật toán theo thuật toán đệ quy (recursive algorithm) Nội dung: Khái niệm đệ quy, thực hành thiết kế thuật toán theo thuật tốn đệ quy u cầu cần đạt: Trình bày tính đệ quy vài định nghĩa vật, việc; xác định phần sở phần đệ quy mô tả đệ quy; ứng dụng thuật toán đệ quy thiết kế vài thuật tốn như: tính an; tính n!; tìm phần tử thứ n dãy fibonaci; toán tháp Hà Nội; viết chương trình sử dụng thuật tốn đệ quy cho vài toán đơn giản; nhận biết tính ưu việt thuật tốn đệ quy định nghĩa vật, mô tả thiết kế thuật toán (Ministry of Education and Training, 2018) Với yêu cầu cần đạt nội dung thuật toán đệ quy trên, chúng tơi đề xuất nội dung tham khảo: Định nghĩa đệ quy, định nghĩa thuật toán đệ quy, đệ quy quy nạp toán học, hàm đệ quy, vấn đề khử đệ quy, sơ đồ thuật tốn đệ quy, phân tích thuật tốn đệ quy, chứng minh tính đắn thuật tốn đệ quy, đệ quy có nhớ (Nguyen, 2013; Le, 2012; Pham, & Do, 2018; Huynh, Phan, & Nguyen, 2016) Thuật toán Sơ đồ thuật toán đệ quy 10 11 12 void Recursive(Input) { if (kích thước Input nhỏ nhất) Thực Bước sở; else { Recursive(Input với kích thước nhỏ hơn); /* Bước đệ quy */ /*Có thể có thêm lệnh gọi đệ quy */ Tổ hợp lời giải toán để thu Lờigiải; return Lờigiải; } } Một số tốn điển hình ví dụ minh họa cho thuật tốn đệ quy: - Bài tốn tính giai thừa; - Bài tốn tính số hạng dãy fibonacci; 334 Tạp chí Khoa học Trường ĐHSP TPHCM Phan Tấn Quốc tgk - Bài tốn tính hệ số nhị thức; - Bài tốn tính số hạng hai dãy số có quan hệ hỗ tương; - Bài tốn tính số hạng dãy số dạng đệ quy phi tuyến; - Bài toán tháp Hà Nội; - Rèn luyện kĩ thuật đệ quy có nhớ qua số tốn như: tính số hạng dãy fibonacci, tính hệ số nhị thức Một số toán để rèn luyện cho thuật toán đệ quy như: - Tìm ước số chung lớn hai số tự nhiên; - Chuyển đổi số hệ đếm thập phân thành số hệ đếm số b; - Tính xn; - Một số toán dạng đệ quy nhị phân, đệ quy hỗ tương, đệ quy phi tuyến; Các thuật toán chia để trị, thuật tốn quay lui thường mơ tả dạng đệ quy; thuật tốn có vai trị quan trọng lĩnh vực thiết kế thuật tốn 2.3 Thuật toán chia để trị CĐHT Thực hành thiết kế thuật toán theo thuật toán chia để trị (divide and conquer algorithm) Nội dung: Thực hành thiết kế thuật toán theo thuật toán chia để trị Yêu cầu cần đạt: Giải thích sơ lược thuật tốn chia để trị; nêu ý tưởng thiết kế thuật toán theo thuật tốn chia để trị, giải thích mối liên hệ thiết kế thuật toán theo thuật toán chia để trị đệ quy, nêu ví dụ minh hoạ; viết chương trình đơn giản có sử dụng thuật chia toán để trị (Ministry of Education and Training, 2018) Với yêu cầu cần đạt nội dung thuật tốn chia để trị trên, chúng tơi đề xuất nội dung tham khảo: Ý tưởng thuật toán chia để trị, sơ đồ thuật toán chia để trị Để giải vấn đề toán theo thuật toán chia để trị, ta chia tốn cần giải thành nhiều tốn giải cách độc lập, giải (trị) tốn này, sau từ kết này, xây dựng (tổ hợp) kết cho toán cần giải ban đầu Chia để trị hướng tiếp cận tốn từ xuống; tức nhìn vào toán lớn-chia nhỏ thành toán con-trị toán con; viêc giải toán thường thực đệ quy (Nguyen, 2013; Do, 2015; Anany, 2012) Thuật toán chia để trị gồm thao tác sau: Chia (divide): Chia toán cần giải thành số tốn giải độc lập; tốn có kích thước nhỏ dạng với toán cần giải Trị (conquer): Giải toán con; thường sử dụng thuật tốn đệ quy; tốn có kích thước đủ nhỏ giải trực tiếp Tổ hợp (combine): Tổ hợp lời giải toán con; thu đươc lời giải toán xuất phát 335 Tạp chí Khoa học Trường ĐHSP TPHCM Tập 18, Số (2021): 331-341 Thuật toán Sơ đồ thuật toán chia để trị 10 11 12 void DivideConquer(A,x); // tìm nghiệm x toán A { if (A đủ nhỏ) Solve(A); //A đủ nhỏ để giải trực tiếp else { Phân A thành toán A1, A2,…, Am; for (i=1;i