Sáng kiến kinh nghiệm Hướng dẫn các phương pháp giải bài tập Python trong Tin học 10 Kết nối tri thức

Năm học 2022-2023 chương trình giáo dục phổ thông 2018 chính thức áp dụng cho khối 10. Với định hướng ngay từ chương trình lớp 10 học sinh đã được học về ngôn ngữ lập trình, cụ thể là định hướng sử dụng ngôn ngữ lập trình Python. Nhưng hầu hết chúng ta đã quá quen với việc sử dụng ngôn ngữ lập trình Pascal và gần đây đã bắt đầu tiếp cận với ngôn ngữ lập trình C/C++. Tuy nhiên, sách giáo khoa mới thì ngôn ngữ lập trình Python lại được đưa vào chương trình giáo dục môn Tin học ngay từ lớp 10. Điều này làm cho đội ngũ giáo viên Tin học phải tự tìm hiểu và nghiên cứu thêm ngôn ngữ mới, nhằm phục vụ cho công các giảng dạy của bản thân.

Xuất phát từ thực tiễn giảng dạy tại trường THPT 1-5 tôi thấy rằng, để đạt hiệu quả cao trong mỗi phần học, tiết học cần có cách thiết kế bài giảng cho phù hợp với nội dung kiến thức; phương pháp, phương tiện dạy học phải phù hợp với từng bài dạy, từng đối tượng học sinh. Để qua mỗi phần học, tiết học học sinh thích thú với kiến thức mới, qua đó hiểu được kiến thức đã học trên lớp, đồng thời học sinh thấy được tầm quan trọng của vấn đề và việc ứng dụng của kiến thức trước hết để đáp ứng những yêu cầu của môn học, sau đó là việc ứng dụng của nó vào các công việc thực tiễn trong đời sống xã hội.

Tuy nhiên làm cách nào để giúp học sinh tiếp thu kiến thức mới tốt nhất cũng là vấn đề mà tôi nhận thấy bản thân cũng như các đồng nghiệp của mình trăn trở. Trong chương trình Tin học 10 “chủ đề 5: Giải quyết vấn đề với sự trợ giúp của máy tính”. Kiến thức học sinh được giới thiệu về ngôn ngữ lập trình bậc cao nói chung và cụ thể ngôn ngữ lập trình Python. Python là ngôn ngữ lập trình bậc cao có thế mạnh là rất gần gũi với ngôn ngữ tự nhiên, hiện nay là ngôn ngữ lập trình phổ biến rộng rãi ở Châu Âu, châu Mỹ và được coi như ngôn ngữ lập trình trường học. Dù là ngôn ngữ có cấu trúc rõ ràng, dễ đọc, dễ học nhưng đối với học sinh lớp 10 các em còn nhiều khó khăn khi bắt đầu học. Python là ngôn ngữ được dùng để phát triển các ứng dụng web, game, khoa học dữ liệu (tính toán, phân tích, khai thác dữ liệu), trí tuệ nhân tạo… Nên việc tìm ra những phương pháp dạy giúp các em học tốt phần kiến thức này tôi thấy là vấn đề cần thiết. Sau khi nghiên cứu phần kiến thức của chủ đề 5 tôi đưa ra sáng kiến với đề tài: “Hướng dẫn các phương pháp giải bài tập Python trong Tin học 10”.

docx 34 trang Thanh Ngân 22/12/2024 430
Bạn đang xem 20 trang mẫu của tài liệu "Sáng kiến kinh nghiệm Hướng dẫn các phương pháp giải bài tập Python trong Tin học 10 Kết nối tri thức", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

Tóm tắt nội dung tài liệu: Sáng kiến kinh nghiệm Hướng dẫn các phương pháp giải bài tập Python trong Tin học 10 Kết nối tri thức

Sáng kiến kinh nghiệm Hướng dẫn các phương pháp giải bài tập Python trong Tin học 10 Kết nối tri thức
 SỞ GIÁO DỤC VÀ ĐÀO TẠO NGHỆ AN
 TRƯỜNG THPT 1-5
 ĐỀ TÀI:
HƯỚNG DẪN CÁC PHƯƠNG PHÁP GIẢI BÀI TẬP PYTHON TRONG TIN 
 HỌC 10
 Lĩnh vực: Tin học 
 Tên tác giả 1: Nguyễn Trí Quyền 
 Số điện thoại: 0989922226 
 Tác giả 2: Nguyễn Thị Thu Huyền 
 Số điện thoại: 0986155995 
 Tổ chuyên môn: Toán – Tin 
 Năm thực hiện: 2022 – 2023
 Nghĩa Đàn, tháng 04 năm 2023 TÀI LIỆU THAM KHẢO
[1]- Sách Giáo khoa Tin học10 (Kết nối tri thức với cuộc sống). NXB Giáo dục Việt 
Nam. 
[2]- Sách bài tập Tin học10 (Kết nối tri thức với cuộc sống). NXB Giáo dục Việt 
Nam. 
[3]- Sách giáo viên Tin học10 (Kết nối tri thức với cuộc sống). NXB Giáo dục Việt 
Nam. 
[4]- Các nguồn tài liệu khác từ mạng Internet. 2. TÍNH MỚI CỦA ĐỀ TÀI 
Python là ngôn ngữ lập trình lần đầu tiên được đưa vào giảng dạy tại trường THPT 1-
5, nên học sinh còn nhiều bỡ ngỡ khi mới được làm quen với ngôn ngữ lập trình 
Python. Những phương pháp mà tôi đưa ra giúp học sinh giải bài tập là mới. Nó góp 
phần giúp các em yêu thích môn học và có thành tích cao hơn với môn học, là tiền đề 
giúp các em yêu thích lập trình và tham dự các kỳ thi học sinh giỏi Tin học các cấp. 
Giúp các đồng nghiệp có thêm những phương pháp để vận dụng vào giảng dạy khi 
cần.
 PHẦN II. NỘI DUNG NGHIÊN CỨU
1. CƠ SỞ KHOA HỌC 
1.1. Cơ sở lý luận 
Phương pháp dạy học chính là cách thức hoạt động giữa thầy và trò để nhằm đạt được 
mục tiêu dạy học xác định đồng thời phù hợp với nội dung và các điều kiện dạy học 
cụ thể. 
Một số phương pháp dạy học cụ thể: 
a. Phương pháp dạy học gợi mở - vấn đáp 
Là quá trình tương tác giữa giáo viên và học sinh được thực hiện thông qua hệ thống 
câu hỏi và câu trả lời tương ứng về một chủ đề nhất định được giáo viên đặt ra. Qua 
việc trả lời hệ thống câu hỏi dẫn dắt của giáo viên, học sinh thể hiện được suy nghĩ, ý 
tưởng của mình, từ đó khám phá và lĩnh hội đối tượng học tập. 
b. Phương pháp dạy học phát hiện và giải quyết vấn đề 
Là giáo viên tạo ra những tình huống có vấn đề, điều khiển học sinh phát hiện vấn đề, 
hoạt động tự giác, tích cực, chủ động, sáng tạo để giải quyết vấn đề và thông qua đó 
chiếm lĩnh tri thức, rèn luyện kĩ năng và đạt được những mục đích học tập khác. 
c. Phương pháp dạy học hợp tác trong nhóm nhỏ 
Là “Học sinh được phân chia thành từng nhóm nhỏ riêng biệt, chịu trách nhiệm về 
một mục tiêu duy nhất, được thực hiện thông qua nhiệm vụ riêng biệt của từng người. 
Các hoạt động cá nhân riêng biệt được tổ chức lại, liên kết hữu cơ với nhau nhằm thực 
hiện một mục tiêu chung”. 
Phương pháp hợp tác nhóm nhỏ được sử dụng nhằm giúp cho mọi người có thể tham 
gia chủ động vào quá trình học tập, tạo cơ hội cho các em có thể chia sẻ kiến thức, - Xây dựng hệ thống bài tập từ dễ đến khó, luyện tập được hết các mục tiêu của từng 
bài học. 
2.2. Giải pháp cụ thể 
Trong quá trình giảng dạy tôi thấy với cấu trúc lặp for, cách sử dụng hàm trong 
Python là học sinh khó hiểu bài và vận dụng để làm tốt các bài tập. Tôi đã đưa các 
phương pháp dạy học đa dạng vào từng nội dung kiến thức để giúp các em dễ dàng 
tiếp thu kiến thức, đạt được mục tiêu bài học. 
2.2.1 Một số ví dụ phương pháp hướng dẫn bài tập sử dụng “Câu lệnh lặp for” 
trong Python. 
Hoạt động 1: lệnh for, lệnh range 
- Mục Tiêu: Biết viết và sử dụng câu lệnh for 
- Nội dung: 
Lệnh range (n) trả lại vùng giá trị gồm n số từ 0 đến n-1 
Cú pháp của lệnh lặp với số lần biết trước For trong Python như sau: 
For in range (n): 
- Sản phẩm: HS hoàn thành tìm hiểu kiến thức
- Tổ chức thực hiện: 
Phương pháp: Hợp tác nhóm nhỏ, trò chơi (Trò chơi ô số may mắn) 
+ GV: Giới thiệu trò chơi: Trò chơi gồm có nhiều ô số; trong các ô số có thể chứa câu 
hỏi hoặc những phần quà hấp dẫn. Lần lượt các nhóm sẽ được chọn một ô số bất kỳ. 
+ HS: Tham gia trò chơi theo sự hướng dẫn của giáo viên. Phương pháp hoạt động nhóm và trò chơi giúp học sinh hứng thú trong tiết học, dễ ghi 
nhớ kiến thức và yêu thích môn học hơn. Để hoàn thành được mục tiêu bài học giáo 
viên cần chuẩn bị chu đáo về nội dung, cách thực hiện, quản lý và dẫn dắt các em. 
Hoạt động 2: Luyện tập lệnh lặp for và lệnh range () 
a) Mục tiêu: rèn luyện kĩ năng lập trình 
b) Nội dung: Hướng dẫn học sinh làm các bài tập sau: 
Bài 1: Viết chương trình tính tổng các số từ 1 đến 100 
Bài 2: Viết chương trình tính tổng các số chẵn từ 1 đến 100 
Bài 3: Viết chương trình nhập từ bàn phím số tự nhiên n và in ra kết quả là tổng sau: 
S = 13 + 23 +... + 푛3 
Bài 4: Viết đoạn chương trình tính tích 1× 2 × 3 ×...× n với n được nhập vào từ bàn 
phím. 
Bài 5: Nhập số tự nhiên n từ bàn phím và đếm số các ước số thực sự của n. Ước số 
thực sự của n là số tự nhiên k < n và là ước của n. 
c) Sản phẩm: HS hoàn thành tìm hiểu kiến thức, làm thực hành được các bài tập 
d) Tổ chức thực hiện: 
Phương pháp: Dạy học trực quan, luyện tập thực hành 
Bài 1: Viết chương trình tính tổng các số từ 1 đến 100
Qua bài toán này giúp học sinh hiểu rõ hơn về cấu trúc lặp với số lần biết trước. Nắm 
vững cú pháp câu lệnh for. 
Bài 2: Viết chương trình tính tổng các số chẵn từ 1 đến 100 
Cách 1: Bài 5: Nhập số tự nhiên n từ bàn phím và đếm số các ước số thực sự của n. Ước số 
thực sự của n là số tự nhiên k < n và là ước của n. 
Cách 1: (SGK) 
Hướng dẫn. Tương tự như chương trình ở nhiệm vụ 1, điểm khác là cần đếm số các 
ước số này và không tính n. Tạo một biển có tên count để đếm số các ước số thực sự 
của n.
Cách 2: Thuật toán tối ưu hơn. Đếm các ước chỉ cần kiểm tra từ 1 đến phần nguyên 
căn bậc 2 của số đó.
2.2.2 Một số ví dụ phương pháp hướng dẫn bài tập sử dụng “dữ liệu kiểu xâu” 
trong Python. - Phép toán a in b: cho kết quả = True nếu a là xâu con của b, ngược lại thì kết quả là 
False 
- Thao tác cắt trích: s[start : end : step] lần lượt duyệt và trích các phần tử thuộc phạm 
vi từ vị trí start đến vị trí end-1 sau mỗi lần lấy một phần tử trong phạm vi thì di 
chuyển con trỏ với bước nhảy có độ rộng step. Các tham số trên có thể vắng mặt: nếu 
thiếu start thì mặc định là bắt đầu từ đầu xâu, thiếu end thì mặc định đến hết xâu, thiếu 
step thì mặc định là 1 
- Hàm lấy độ dài xâu s: len(s); 
- Sao chép trong xâu s: ta sử dụng thao tác cắt trích xâu để gán cho biến khác. 
- Chèn và xóa xâu: Trong Python không cho phép chèn vào xâu. Ta có thể sử dụng 
hàm replace() hoặc thao tác cắt trích kết hợp ghép nối để xử lý. 
- Hàm tìm kiếm: tìm vị trí đầu tiên xuất hiện xâu x trong xâu s: s.find(x). Nếu xâu x 
không có trong xâu S thì kết quả = -1 
- Hàm tìm kiếm ngược: tìm vị trí cuối cùng xuất hiện xâu x trong xâu s: s.rfind (x). 
Nếu xâu x không có trong xâu S thì kết quả = -1 
- Hàm thay thế: s.replace (s1, s2) thay thế xâu con s1 của xâu s bởi xâu s2 trả về một 
xâu mới. 
- Hàm ord(ch): cho mã ASCII thập phân của ký tự ch. 
- Hàm chr(x): cho ký tự có mã ASCII là x 
- Hàm tạo xâu in hoa từ xâu s: s.upper() 
- Hàm tạo xâu in thường từ xâu s: s.lower()
* Một số thao tác mở rộng với xâu trong Python: 
- Hàm tìm kiếm: s.find sub, [start], [end]), với ý nghĩa tìm xâu con sub trong xâu s, vị 
trí bắt đầu tìm kiếm là start và vị trí kết thúc tìm kiếm là end, nếu vắng start thì mặc 
định bắt đầu tìm là vị trí 0 (cận trái) và nếu vắng end thì mặc định vị trí kết thúc tìm 
kiếm là cuối xâu. Nếu không tìm thấy thì kết quả = -1 
- s.rfind(x, [start], [end]): Tìm kiếm vị trí cuối cùng xuất hiện xâu x trong xâu s bắt 
đầu từ vị trí end-1, trở về vị trí start. 
- Hàm thay thế: s.replace(s1, s2) để thay thế phần xâu con s1 bằng một xâu s2, trả về 
một xâu mới. 
- Hàm capitalize() viết hoa ký tự đầu tiên trong xâu, các chữ còn lại viết thường Duyệt lần lượt các chỉ số của xâu ghép nối vào xâu kq (việc duyệt và ghép nối có thể 
có rất nhiều cách diễn đạt) 
Cách 2: Sử dụng phép toán ghép nối (+): 
Khởi tạo biến kq= “” 
Duyệt lần lượt các ký tự của xâu ghép nối vào xâu kq 
Cách 3: Sử dụng hàm đảo Xâu: dùng thao tác cắt trích s[start : end : step] 
Chương trình tham khảo viết bằng Python:
* Ý tưởng: Thông qua các chương trình nhấn mạnh cho học sinh các thao tác đã được 
vận dụng trong bài toán này và ý nghĩa, kỹ thuật sử dụng các thao tác trong Python. 
- Hàm len (): lấy độ dài xâu s. 
- Phép cộng (+): Ghép nối xâu. 
- Thao tác Cắt trích: s[start : end : step] 
Ý nghĩa là, lần lượt duyệt và trích các phần tử thuộc phạm vi từ vị trí start đến vị trí 
end-1 sau mỗi lần lấy một phần tử trong phạm vi thì di chuyển con trỏ với bước nhảy 
có độ rộng step. Các tham số trên có thể vắng mặt: nếu thiếu start thì mặc định là bắt 
đầu từ đầu xâu, nếu thiếu end thì mặc định đến hết xâu, nếu thiếu step thì mặc định là 
1.
Bài 2: Thông qua bài tập này nhấn mạnh, khắc sâu ý nghĩa, kỹ thuật sử dụng các thao tác xử 
lý xâu như phép ghép nối xâu, cắt trích xâu và hàm tìm kiếm, thay thế: 
- Hàm tìm kiếm: 
+ s.find(x, [start], [end]): Tìm kiếm vị trí đầu tiên xuất hiện xâu x trong xâu s. bắt đầu 
từ vị trí start, kết thúc ở vị trí end-1, nếu vắng start thì mặc định bắt đầu tìm là vị trí 0 
và nếu vắng end thì mặc định vị trí kết thúc tìm kiếm là cuối xâu. Nếu việc tìm kiếm 
không có kết quả thì hàm trả về giá trị -1 
+ s.rfind(x, [start], [end]): Tìm kiếm vị trí cuối cùng xuất hiện xâu x trong xâu s bắt 
đầu từ vị trí end-1, trở về vị trí start. 
- Hàm thay thế: 
+ s.replace(s1, s2) để thay thế phần xâu con s1 bằng một xâu mới s2.
Bài 3: Viết chương trình nhập vào từ bàn phím xâu ký tự s, tìm và thay thế tất cả 
các cụm ký tự s1 thành s2.
Ví dụ: 
 Xâu nhập vào: s = “anh oi, anh dang o 
 đau” 
 Xâu kết quả: s1= “anh”; s2= “em”; 
 S = “em oi, em dang o 
 đau” 
Ý tưởng giải thuật: 
Cách 1: Sử dụng thao tác cắt trích, so sánh và ghép nối để thực hiện ý tưởng trên. 
Cách 2: Dùng hàm replace để thực hiện. 
Chương trình tham khảo bằng Python: Ngoài ra, trong Python ta có thể sử dụng lệnh count để đếm số lần xuất hiện không 
chồng lấn của một ký tự hay xâu con bên tròn xâu lớn. Chương trình tham khảo trong 
Python (cách 2) sau được viết với ý tưởng này. 
Chương trình tham khảo:
Chương trình viết bằng Python (cách 1) Chương trình viết bằng Python (cách 
 2) 
Ý tưởng: 
Thông qua bài tập này nhấn mạnh cách thức sử dụng bảng mã ASCII, cách chuyển đổi 
qua lại giữa mã thập phân và ký tự, kỹ thuật đếm phân phối trên mảng với kiểu chỉ số 
tương ứng các ký tự. Ngoài ra, cần nhấn mạnh lệnh khởi tạo toàn bộ phần tử của mảng 
= 0. Lưu ý thêm lệnh ý nghĩa và cách sử dụng lệnh count trong Python. 
2.2.3 Một số ví dụ phương pháp hướng dẫn bài tập sử dụng “Hàm trong Python” 
trong Python. 
Để các em biết được chương trình con dạng hàm; biết cách tạo hàm; biết viết chương 
trình có sử dụng chương trình con tôi chú trọng các hoạt động chính và phương pháp 
như sau: 
Hoạt động 1: Tìm hiểu kiến thức cơ bản về hàm: 
- Mục Tiêu: Biết cú pháp chương trình con dạng hàm trong Python (Hình ảnh thực tế dạy trên lớp là sản phẩm các em đã hoàn thành)
Hoạt động 2: Biết cách tạo hàm: 
- Mục Tiêu: Biết viết hàm trong Python 
- Nội dung: Hướng dẫn các bài tập: 
Bài 1: Viết hàm yêu cầu người dùng nhập họ tên rồi đưa ra lời chào? 
Bài 2: Viết hàm tính luỹ thừa của 2 số ab (0<a,b<=106) 
Bài 3: Viết hàm prime(n) với tham số là số tự nhiên n và trả lại true nếu n là số 
nguyên tố, trả lại false nếu n không phải là số nguyên tố. 
Bài 4: Viết hàm cp(n) với tham số là số tự nhiên n và trả về true nếu n là số chính 
phương, trả lại false nếu n không phải số chính phương. 
Bài 5: Viết hàm tonguoc(n) trả về tổng ước của số nguyên n. (Ví dụ n=6 có tổng ước 
là 1+2+3+6=12) 
- Sản phẩm: Hs hoàn thành tìm hiều kiến thức, biết tạo các hàm đơn giản. 
- Tổ chức thực hiện: Cách 2: 
Hướng dẫn: Số nguyên tố là số tự nhiên lớn hơn 1, không có ước nào ngoài 1 và chính 
nó. Để thiết lập hàm prime(n) chúng ta cần tính số ước thực sự của n. Thực tế để tính 
ước của n ta chỉ cần tính số ước thực sự của n từ 1 đến phần nguyên căn bậc 2 của n.
Bài 4: Viết hàm cp(n) với tham số là số tự nhiên n và trả về true nếu n là số chính 
phương, trả lại false nếu n không phải số chính phương. 
Hướng dẫn: Số chính phương là căn bậc 2 của số đó là số nguyên
Bài 5: Viết hàm tonguoc(n) trả về tổng ước của số nguyên n. (Ví dụ n=6 có tổng ước 
là 1+2+3+6=12) 
Cách 1: Cách 2: Giáo viên hướng dẫn thuật toán tối ưu hơn cách 1: 10A6 - 43 43 % 42 % 9 % 6%
 học sinh
Thông qua 2 bài kiểm tra trên cho thấy rằng sau khi áp dụng sáng kiến chất lượng học 
sinh được nâng lên rõ rệt. Đặc biệt kết quả này được thể hiện rõ ràng hơn ở hai lớp 
10A1 và 10A8 với chất lượng đầu vào tương đương nhau, tỉ lệ học sinh đạt điểm cao 
chênh lệch rất lớn giữa lớp thực nghiệm 10A1, 10A8 với lớp đối chứng 10A3, 10A6.
 PHẦN III. KẾT LUẬN VÀ KIẾN NGHỊ
1. QUÁ TRÌNH NGHIÊN CỨU 
Từ thực tiễn dạy học tại trường, từ những băn khoăn trăn trở để đưa ra những phương 
pháp dạy học dễ hiểu nhất cho học sinh. Tôi đã nghiên cứu kỹ sách giáo khoa Tin học 
10, sách bài tập Tin học 10, sách giáo viên tin học 10 (bộ sách kết nối tri thức); các 
sách hướng dẫn về dạy lập trình Python. Vận dụng kiến thức được tập huấn về 
phương pháp giảng dạy mới. Tôi đã xây dựng sáng kiến “Hướng dẫn các phương 
pháp giải bài tập Python trong Tin học 10”. 
2. Ý NGHĨA CỦA ĐỀ TÀI 
Đề tài đã giúp tôi giải quyết những băn khoăn và khó khăn khi bắt đầu dạy chương 
trình mới cho học sinh. Giúp giáo viên tin học có thêm những phương pháp trong các 
bài dạy lập trình ngôn ngữ lập trình bậc cao. Các em học sinh dễ tiếp cận kiến thức, 
yêu thích môn học và có kết quả tốt. Chất lượng bộ môn Tin học được nâng cao, là 
tiền đề giúp các em yêu thích lập trình hơn có thể tham các kỳ thi chọn học sinh giỏi 
Tin học. 
3. ĐỀ XUẤT VÀ KIẾN NGHỊ 
Tôi sẽ cố gắng hoàn thiện đề tài để có thể ứng dụng rộng rãi, sử dụng đưa vào giáo án 
giảng dạy chung cho nhóm chuyên môn. 
Để góp phần nâng cao chất lượng giảng dạy môn Tin ở trường THPT tôi xin đề xuất 
một số ý kiến như sau: 
* Đối với nhà trường: 
Cần quan tâm hơn đối với bộ môn Tin học, tạo mọi điều kiện về cơ sở vật chất và 
phương tiện dạy học đáp ứng đầy đủ điều kiện để giáo viên có thể áp dụng các 

File đính kèm:

  • docxsang_kien_kinh_nghiem_huong_dan_cac_phuong_phap_giai_bai_tap.docx
  • pdfSáng kiến kinh nghiệm Hướng dẫn các phương pháp giải bài tập Python trong Tin học 10 Kết nối tri thứ.pdf