1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Skkn Ứng dụng bài tập trò chơi trong giảng dạy lập trình python Để phát triển tư duy thuật toán và nâng cao hứng thú học tập cho học sinh

59 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Ứng Dụng Bài Tập Trò Chơi Trong Giảng Dạy Lập Trình Python Để Phát Triển Tư Duy Thuật Toán Và Nâng Cao Hứng Thú Học Tập Cho Học Sinh
Tác giả Nguyễn Thị Thủy
Trường học Trường THPT Yên Thành 2
Chuyên ngành Tin học
Thể loại Sáng kiến kinh nghiệm
Năm xuất bản 2024 - 2025
Thành phố Nghệ An
Định dạng
Số trang 59
Dung lượng 4,11 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

6 Chương II: MỘT SỐ GIẢI PHÁP ÁP DỤNG BÀI TẬP TRÒ CHƠI TRONG GIẢNG DẠY LẬP TRÌNH PYTHON ĐỂ PHÁT TRIỂN TƯ DUY THUẬT TOÁN VÀ NÂNG CAO HỨNG THÚ HỌC TẬP CHO HỌC SINH .... Xuất phát từ những

Trang 1

SỞ GIÁO DỤC VÀ ĐÀO TẠO NGHỆ AN

_

SÁNG KIẾN KINH NGHIỆM

ỨNG DỤNG BÀI TẬP TRÒ CHƠI TRONG GIẢNG DẠY LẬP TRÌNH PYTHON ĐỂ PHÁT TRIỂN TƯ DUY THUẬT TOÁN VÀ NÂNG CAO HỨNG THÚ HỌC TẬP

CHO HỌC SINH

LĨNH VỰC: TIN HỌC

Năm học 2024 - 2025

Trang 2

SỞ GIÁO DỤC VÀ ĐÀO TẠO NGHỆ AN TRƯỜNG THPT YÊN THÀNH 2 _

SÁNG KIẾN KINH NGHIỆM

ỨNG DỤNG BÀI TẬP TRÒ CHƠI TRONG GIẢNG DẠY LẬP TRÌNH PYTHON ĐỂ PHÁT TRIỂN TƯ DUY THUẬT TOÁN VÀ NÂNG CAO HỨNG THÚ HỌC TẬP

CHO HỌC SINH

LĨNH VỰC: TIN HỌC

Tác giả: Nguyễn Thị Thủy - 0978412473

Trang 3

Năm học 2024 - 2025

Trang 4

PHỤ LỤC

Phần I: ĐẶT VẤN ĐỀ 1

1.Lý do chọn đề tài: 1

2 Mục tiêu nghiên cứu 2

3 Đối tượng và phạm vi nghiên cứu 2

3.1 Đối tượng nghiên cứu 2

3.2 Phạm vi nghiên cứu 3

4 Phương pháp nghiên cứu 3

5 Tính mới của đề tài 3

Phần II: NỘI DUNG NGHIÊN CỨU 5

Chương I: CƠ SỞ LÝ LUẬN VÀ THỰC TIỄN CỦA ĐỀ TÀI 5

1 Cơ sở lý luận và thực tiễn 5

1.1 Cơ sở lý luận 5

1.2Cơ sở thực tiễn 6

Chương II: MỘT SỐ GIẢI PHÁP ÁP DỤNG BÀI TẬP TRÒ CHƠI TRONG GIẢNG DẠY LẬP TRÌNH PYTHON ĐỂ PHÁT TRIỂN TƯ DUY THUẬT TOÁN VÀ NÂNG CAO HỨNG THÚ HỌC TẬP CHO HỌC SINH 8

I Xây dựng bài tập trò chơi theo từng khái niệm 8

1 Trò chơi đoán số với câu lệnh rẽ nhánh 8

2 Trò chơi vẽ hình đa giác với vòng lặp for 10

3 Trò chơi thử thách đoán số với vòng lặp while 13

4 Trò chơi mô phỏng giỏ hàng với kiểu dữ liệu danh sách 17

5 Trò chơi đoán từ gốc với kiểu xâu kí tự 21

II Tổ chức làm bài tập theo nhóm tại lớp và giao bài tập về nhà 24

1 Tổ chức làm bài tập theo nhóm tại lớp 24

1.1 Hoạt động nhóm với trò chơi vẽ hình kim tự tháp 24

1.2 Hoạt động nhóm với trò chơi máy ATM ảo 26

1.3 Hoạt động nhóm với trò chơi vẽ bông hoa sáng tạo 28

2 Giao bài tập về nhà 30

Trang 5

2.1 Trò chơi đoán số với câu lệnh rẽ nhánh mở rộng 30

2.2 Trò chơi phiêu lưu hang động 31

2.3 Trò chơi vẽ hình sáng tạo với thư viện Turtle 35

III.Ứng dụng công nghệ học lập trình trực tuyến qua các trò chơi thử thách CodinGame…… 38

3.1 Giới thiệu về ứng dụng học lập trình trực tuyến CodinGame 38

3.2 Cách CodinGame hỗ trợ học tập 38

3.3 Lợi ích khi sử dụng CodinGame trong giảng dạy 38

3.4 Ứng dụng trong lớp học 40

Chương III: THỰC NGHIỆM SƯ PHẠM 44

3.1 Mục đích thực nghiệm 44

3.2 Đối tượng thực nghiệm 44

3.3 Nội dung thực nghiệm 45

3.4 Phương pháp thực nghiệm 45

3.5 Kết quả thực nghiệm 45

Phần III: KẾT LUẬN 50

1 Kết luận 50

2 Kiến nghị 50

Trang 6

1

Phần I ĐẶT VẤN ĐỀ

1 Lí do chọn đề tài

Python là một trong những ngôn ngữ lập trình phổ biến và dễ tiếp cận nhất, phù hợp để giảng dạy trong nhà trường Tuy nhiên, hầu hết học sinh đều mới làm quen với lập trình trên máy tính nên gặp rất nhiều khó khăn trong việc tiếp cận lập trình

do cảm thấy khô khan, trừu tượng và khó hiểu Học sinh thường chưa có kỹ năng phân tích vấn đề và chưa biết cách xây dựng các bước giải quyết bài toán một cách logic nhiều học sinh dễ nản khi gặp lỗi hoặc không hiểu cách chương trình hoạt động Học sinh thường học Python qua các bài tập đơn giản như tính toán, nhập xuất

dữ liệu, nhưng chưa có cơ hội để vận dụng kiến thức vào các bài toán thực tế hoặc các dự án thú vị

Bên cạnh đó, cách dạy lập trình truyền thống, chủ yếu dựa vào bài tập lý thuyết

và hướng dẫn trực tiếp, chưa thực sự tạo được sự hứng thú và tính chủ động trong học tập Do đó, cần có một phương pháp dạy học sáng tạo hơn để giúp học sinh tiếp cận lập trình một cách tự nhiên, hứng thú và hiệu quả hơn

Trong thời đại công nghệ số, lập trình trở thành một kỹ năng quan trọng, không chỉ dành cho các chuyên gia công nghệ mà còn là công cụ phát triển tư duy logic và sáng tạo cho học sinh Theo nhiều báo cáo về thị trường lao động, ngành Công nghệ Thông tin (CNTT) đang có nhu cầu tuyển dụng rất cao với mức lương hấp dẫn Các doanh nghiệp hiện nay không chỉ tìm kiếm nhân sự có kỹ năng lập trình mà còn ưu tiên những người có tư duy thuật toán tốt, khả năng sáng tạo và giải quyết vấn đề một cách linh hoạt Nhận thức được cơ hội nghề nghiệp rộng mở này, nhiều học sinh

đã định hướng theo ngành CNTT ngay từ sớm, đặc biệt là lựa chọn học lập trình để

có nền tảng vững chắc khi thi vào các ngành như Khoa học Máy tính, Kỹ thuật phần mềm, Trí tuệ nhân tạo (AI) và Phân tích dữ liệu (Data Science) Python là một trong những ngôn ngữ lập trình phổ biến nhất hiện nay, được sử dụng rộng rãi trong nhiều lĩnh vực như lập trình web, khoa học dữ liệu, trí tuệ nhân tạo và tự động hóa Do đó, việc trang bị kiến thức lập trình Python cho học sinh ngay từ khi còn ngồi trên ghế nhà trường là một bước đi cần thiết để giúp các em có lợi thế trong tương lai

Xuất phát từ những lí do trên, tôi chọn đề tài: “Ứng dụng bài tập trò chơi trong giảng dạy lập trình Python để phát triển tư duy thuật toán và nâng cao hứng thú học tập cho học sinh”

Khi học lập trình thông qua các bài tập trò chơi, học sinh không chỉ rèn luyện

tư duy thuật toán mà còn có cơ hội áp dụng kiến thức vào các tình huống thực tế, từ

đó nâng cao khả năng giải quyết vấn đề

Phương pháp này mang lại nhiều lợi ích, bao gồm:

Trang 7

2

- Giúp học sinh học lập trình một cách tự nhiên: Thay vì chỉ học cú pháp, học sinh

có thể áp dụng kiến thức về biến, vòng lặp, hàm, danh sách…vào việc tạo ra các trò chơi đơn giản, từ đó nâng cao tư duy thuật toán

- Tăng tính tương tác và hứng thú học tập: Khi lập trình một trò chơi, học sinh sẽ thấy ngay kết quả của mình trên màn hình, từ đó có động lực để thử nghiệm và sáng tạo hơn Học sinh sẽ hào hứng hơn khi có thể lập trình các trò chơi của riêng mình, thay vì chỉ làm các bài tập lý thuyết khô khan

- Phát triển tư duy thuật toán: Trò chơi yêu cầu học sinh phân tích, thiết kế và tối ưu hóa thuật toán để tạo ra một sản phẩm hoàn chỉnh Trò chơi viết ra có thể phản hồi ngay lập tức về kết quả bài làm, giúp học sinh nhanh chóng nhận ra các sai sót và tìm cách sửa chữa ngay tức thì, như thế học sinh sẽ học hỏi được nhiều kiến thức hơn trong quá trình tìm tòi, sửa lỗi và hiểu sâu hơn về vấn đề gặp phải

- Xây dựng kỹ năng làm việc nhóm: Một số trò chơi có thể lập trình theo nhóm, giúp học sinh học cách giao tiếp, hợp tác và chia sẻ ý tưởng

Tính cấp thiết của đề tài:

Việc ứng dụng bài tập trò chơi vào giảng dạy Python không chỉ giúp học sinh tiếp thu kiến thức lập trình một cách dễ dàng hơn mà còn nâng cao tư duy thuật toán – một kỹ năng quan trọng không chỉ trong lập trình mà còn trong nhiều lĩnh vực khác Đề tài này không chỉ có ý nghĩa thực tiễn mà còn góp phần thúc đẩy đổi mới phương pháp dạy học lập trình trong nhà trường, giúp học sinh chuẩn bị tốt hơn cho những thách thức trong tương lai

Chính vì những lý do trên, việc nghiên cứu và ứng dụng bài tập trò chơi trong giảng dạy Python để phát triển tư duy thuật toán và nâng cao hứng thú học tập cho học sinh là một hướng đi cần thiết và có ý nghĩa quan trọng

2 Mục tiêu nghiên cứu

Đề tài nhằm nghiên cứu và đề xuất phương pháp giảng dạy lập trình Python

thông qua bài tập trò chơi, giúp học sinh phát triển tư duy thuật toán và nâng cao hứng thú học tập Đề tài hướng đến việc giúp học sinh tiếp cận lập trình một cách dễ

hiểu, thực tiễn và sinh động hơn qua các bài tập trò chơi, từ đó nâng cao hiệu quả học tập và phát triển khả năng tư duy logic, sáng tạo

3 Đối tượng và phạm vi nghiên cứu

3.1 Đối tượng nghiên cứu

- Chương trình giáo dục phổ thông mới 2018

- Học sinh lớp 10A3, 10A4 trường THPT Yên Thành 2

- Phương pháp giảng dạy lập trình Python thông qua bài tập trò chơi nhằm phát triển tư duy thuật toán và nâng cao hứng thú học tập cho học sinh

Trang 8

3

3.2 Phạm vi nghiên cứu

- Về nội dung: Chủ đề 5 giải quyết bài toán với sự trợ giúp của máy tính sách tin học lớp 10 – Kết nối tri thức

- Về đối tượng: Học sinh lớp 10 đang học lập trình Python

- Về thời gian: Nghiên cứu được thực hiện trong năm học 2023- 2024

4 Phương pháp nghiên cứu

Để đạt được mục tiêu nghiên cứu, đề tài sử dụng các phương pháp sau:

4.1 Phương pháp nghiên cứu lý thuyết

- Tìm hiểu các tài liệu, giáo trình về lập trình Python, tư duy thuật toán và phương pháp giảng dạy Tin học

- Nghiên cứu các tài liệu khoa học về ứng dụng trò chơi trong giáo dục

- Phân tích các nghiên cứu trước đây liên quan đến dạy học lập trình bằng phương pháp trò chơi

4.2 Phương pháp khảo sát, điều tra

- Xây dựng bảng câu hỏi khảo sát học sinh về mức độ hứng thú, khó khăn khi học lập trình Python

- Thu thập ý kiến phản hồi của học sinh về hiệu quả của phương pháp giảng dạy thông qua trò chơi

- Xây dựng bảng câu hỏi khảo sát giáo viên về những khó khăn khi dạy lập trình

Python

4.3 Phương pháp thực nghiệm sư phạm

- Thiết kế một số bài tập trò chơi trong lập trình Python

- Thử nghiệm giảng dạy trên một lớp học để đánh giá hiệu quả của phương pháp

- So sánh kết quả học tập và mức độ phát triển tư duy thuật toán giữa nhóm học sinh

có sử dụng bài tập trò chơi trong giảng dạy và nhóm học sinh học theo phương pháp thông thường

4.4 Phương pháp phân tích, tổng hợp và đánh giá

- Phân tích dữ liệu thu thập được từ khảo sát, thực nghiệm để rút ra nhận xét

- Đánh giá tác động của phương pháp này đối với tư duy thuật toán và hứng thú học tập của học sinh

- Đề xuất hướng phát triển và hoàn thiện phương pháp giảng dạy này trong tương lai

Trang 9

4

5 Tính mới của đề tài

- Thay vì chỉ sử dụng các bài tập lập trình thông thường, đề tài tập trung vào thiết

kế và ứng dụng bài tập trò chơi có chủ đích để rèn luyện tư duy thuật toán cho học sinh

- Không chỉ dừng lại ở việc làm cho bài học thú vị hơn, mà còn giúp học sinh rèn luyện khả năng giải quyết vấn đề, tư duy logic và sáng tạo thông qua các trò chơi lập trình

- Đề tài hướng đến việc biến học sinh từ người học thụ động sang chủ động khám phá kiến thức thông qua trò chơi

- Các bài tập trò chơi khuyến khích học sinh tự tìm tòi, thử nghiệm và rút kinh nghiệm, giúp quá trình học lập trình trở nên tự nhiên hơn

- Phương pháp giảng dạy lập trình hiện nay chủ yếu dựa trên bài giảng lý thuyết

và bài tập cơ bản Đề tài này đưa ra cách tiếp cận mới, giúp học sinh tiếp cận lập trình một cách trực quan, dễ hiểu và hấp dẫn hơn

Trang 10

5

Phần II NỘI DUNG NGHIÊN CỨU Chương I: CƠ SỞ LÝ LUẬN VÀ THỰC TIỄN CỦA ĐỀ TÀI

1 Cơ sở lý luận và thực tiễn

1.1 Cơ sở lý luận

Tư duy thuật toán là khả năng phân tích vấn đề và tìm ra cách giải quyết bằng cách sử dụng các bước logic (thuật toán) để giải quyết vấn đề đó một cách hiệu quả Đây là nền tảng cốt lõi của lập trình, giúp học sinh giải quyết các bài toán phức tạp một cách có hệ thống Tư duy thuật toán không chỉ quan trọng trong lập trình mà còn hữu ích trong nhiều lĩnh vực khác của cuộc sống

Trong giáo dục, tư duy thuật toán giúp học sinh:

- Xây dựng và hiểu các thuật toán từ cơ bản đến nâng cao

- Phát triển khả năng phân tích, suy luận và tối ưu hóa lời giải

- Rèn luyện kỹ năng tư duy logic và sáng tạo

Python là một ngôn ngữ lập trình phổ biến với cú pháp đơn giản, phù hợp cho việc giảng dạy tư duy thuật toán Tuy nhiên, nhiều học sinh gặp khó khăn trong việc tiếp cận và áp dụng các thuật toán Do đó, việc sử dụng bài tập trò chơi để giảng dạy có thể giúp học sinh tiếp thu kiến thức một cách tự nhiên và hứng thú hơn

Theo Malone & Lepper (1987), trò chơi trong giáo dục (game-based learning

- GBL) là phương pháp giảng dạy sử dụng trò chơi để tạo môi trường học tập hấp dẫn, giúp học sinh tiếp thu kiến thức và phát triển kỹ năng một cách tự nhiên.Sự kết hợp giữa lập trình và trò chơi không chỉ giúp học sinh rèn luyện tư duy thuật toán

mà còn tạo động lực học tập mạnh mẽ thông qua các yếu tố như thử thách, phần thưởng và sự tương tác

Các nghiên cứu về phương pháp học tập thông qua trò chơi cho thấy rằng học sinh có thể học tập hiệu quả hơn khi:

- Học qua trải nghiệm: Thay vì học lý thuyết khô khan, học sinh có thể áp dụng kiến thức để giải quyết vấn đề thực tế trong trò chơi

- Nhận phản hồi tức thì: Khi chơi game, học sinh nhận được phản hồi ngay lập tức về kết quả của mình, giúp họ điều chỉnh và cải thiện thuật toán nhanh hơn

- Tăng cường động lực học tập: Trò chơi kích thích sự tò mò, tinh thần cạnh tranh và niềm vui khi chinh phục thử thách, giúp học sinh duy trì động lực học tập

Nhiều nghiên cứu trước đây đã chứng minh tính hiệu quả của phương pháp trò chơi hóa trong giáo dục lập trình:

- Papert (1980) đề xuất phương pháp học lập trình thông qua trò chơi, giúp học

Trang 11

6

sinh rèn luyện tư duy logic một cách tự nhiên

- Gee (2007) cho rằng trò chơi giúp kích thích tư duy phản biện và cải thiện khả

năng giải quyết vấn đề

Dựa trên những nghiên cứu này, tôi thấy đề tài này có tính khả thi cao và có thể được

áp dụng thực tế trong giảng dạy Python tại trường học

1.2 Cơ sở thực tiễn

a Thực trạng dạy và học lập trình Python ở phổ thông

Hiện nay ngôn ngữ lập trình Python là một trong những ngôn ngữ lập trình phổ biến và được đưa vào giảng dạy tại nhiều trường học trên thế giới cũng như ở Việt Nam Tuy nhiên, thực tế giảng dạy lập trình Python trong môi trường phổ thông còn gặp một số vấn đề:

- Học sinh gặp khó khăn trong tư duy thuật toán: Nhiều học sinh tiếp cận lập trình Python nhưng chưa có tư duy giải quyết vấn đề bài bản, dẫn đến khó khăn trong việc viết thuật toán

- Phương pháp giảng dạy còn nặng lý thuyết: Một số giáo viên giảng dạy Python theo cách truyền thống (giới thiệu cú pháp, giải bài tập theo mẫu), chưa tạo được sự hấp dẫn và khuyến khích học sinh tư duy sáng tạo

- Thiếu động lực học tập: Học sinh dễ chán nản nếu không thấy được ứng dụng thực tế của lập trình, đặc biệt với những em chưa có hứng thú với công nghệ

b Vai trò của trò chơi trong giáo dục và giảng dạy lập trình

- Nhiều nghiên cứu cho thấy rằng trò chơi giúp cải thiện khả năng tiếp thu kiến thức và nâng cao động lực học tập của học sinh

- Trong bối cảnh giáo dục STEM và chuyển đổi số, phương pháp game-based learning (học tập thông qua trò chơi) và gamification (trò chơi hóa) đang ngày càng được áp dụng rộng rãi

- Lập trình và trò chơi có nhiều điểm chung Cả hai đều đòi hỏi tư duy logic, sáng tạo và thử nghiệm liên tục Các trò chơi có thể mô phỏng bài toán thực tế, giúp học sinh hiểu sâu hơn về lập trình.Việc lập trình trò chơi có thể giúp học sinh hiểu

rõ cách thức hoạt động của thuật toán (ví dụ: vòng lặp, điều kiện, danh sách, đệ quy, ) một cách trực quan Nhờ đó, việc sử dụng bài tập trò chơi trong dạy Python không chỉ giúp học sinh nắm bắt kiến thức mà còn rèn luyện tư duy thuật toán hiệu quả hơn

c.Thực tiễn ứng dụng bài tập trò chơi trong giảng dạy Python tại Việt Nam

Trang 12

7

- Tại Việt Nam, việc dạy lập trình Python trong giáo dục phổ thông mới được triển khai ở một số trường chuyên và các chương trình đào tạo STEM Tuy nhiên, một số trung tâm đào tạo lập trình cho trẻ em như MindX, Teky, Algorithmics đã áp dụng mô hình học lập trình thông qua trò chơi và thu được hiệu quả tích cực Điều này cho thấy việc ứng dụng bài tập trò chơi trong giảng dạy Python hoàn toàn khả thi và có tiềm năng mở rộng trong giáo dục phổ thông

d Nhu cầu thực tiễn

- Kỹ năng lập trình và tư duy thuật toán ngày càng trở nên quan trọng trong thời đại công nghệ số Học sinh cần được trang bị những kỹ năng này để đáp ứng yêu cầu của thị trường lao động

e Sự phù hợp của đề tài với thực tiễn giáo dục

- Học sinh cần một phương pháp học lập trình thú vị hơn thay vì chỉ tiếp cận Python theo cách học thuộc cú pháp

- Việc ứng dụng bài tập trò chơi vào giảng dạy Python là hoàn toàn khả thi, đã được triển khai thành công tại nhiều quốc gia và đang bắt đầu được áp dụng tại Việt Nam

- Python là ngôn ngữ lập trình phù hợp, cung cấp nhiều thư viện có sẵn và công

cụ hỗ trợ lập trình game nên học sinh dễ dàng viết được những trò chơi đơn giản

- Đề tài này sẽ đóng góp vào việc đổi mới phương pháp dạy lập trình trong nhà trường, tạo ra một môi trường học tập sáng tạo, kích thích tư duy và tăng hứng thú học tập cho học sinh

Với sự phát triển mạnh mẽ của giáo dục STEM và lập trình trong nhà trường, đề tài này có tính ứng dụng cao và có thể triển khai rộng rãi trong giảng dạy ngôn ngữ lập trình Python

Trang 13

8

Chương II MỘT SỐ GIẢI PHÁP ÁP DỤNG BÀI TẬP TRÒ CHƠI

TRONG GIẢNG DẠY LẬP TRÌNH PYTHON ĐỂ PHÁT TRIỂN TƯ DUY THUẬT TOÁN VÀ NÂNG CAO HỨNG THÚ HỌC TẬP CHO HỌC SINH

I Xây dựng bài tập trò chơi theo từng khái niệm

Mục tiêu:

- Giúp học sinh hiểu và vận dụng các khái niệm cơ bản của Python thông qua các bài tập trò chơi Thay vì trình bày lý thuyết một cách khô khan, giáo viên có thể lồng ghép kiến thức vào trò chơi để học sinh tự khám phá quy tắc lập trình

- Phát triển tư duy thuật toán qua việc thực hành và mở rộng trò chơi

- Tăng hứng thú học tập bằng cách biến các bài học khô khan thành các trò chơi thú

vị và gần gũi

1 Trò chơi “đoán số” với câu lệnh rẽ nhánh

Bước 1: Đưa ra tình huống thực tế

Mô tả trò chơi:

Máy tính chọn một số ngẫu nhiên từ 1 đến 100 Người chơi sẽ nhập số để đoán Chương trình cần phản hồi với 3 trường hợp:

1 Nếu số đoán nhỏ hơn số bí mật → báo 'Số bạn đoán nhỏ hơn!'

2 Nếu số đoán lớn hơn số bí mật → báo 'Số bạn đoán lớn hơn!'

3 Nếu đoán đúng → báo 'Chúc mừng! Bạn đã đoán đúng.'

Đặt vấn đề:

Vậy làm sao để chương trình biết được khi nào cần hiển thị thông báo nào?

Bước 2: Khuyến khích học sinh đề xuất giải pháp

Đặt câu hỏi gợi mở:

1 Nếu nhập số 50, làm sao chương trình biết số đó lớn hơn hay nhỏ hơn số bí mật?

2 Chúng ta cần kiểm tra điều kiện gì?

Khuyến khích học sinh thảo luận và đưa ra ý kiến, từ đó gợi mở về việc cần kiểm tra các điều kiện so sánh như <, >, ==

Bước 3: Giới thiệu câu lệnh điều kiện

Trang 14

9

• Trình bày cú pháp cơ bản của câu lệnh điều kiện

• Giới thiệu thêm elif: Dùng elif để kiểm tra nhiều điều kiện mà không cần phải lồng if, giúp chương trình ngắn gọn hơn

• Thảo luận với học sinh: Khi nào sử dụng if, khi nào sử dụng elif và else để chương trình có thể phản hồi chính xác với mỗi trường hợp

Bước 4: Viết chương trình đơn giản

Cho học sinh quan sát và phân tích đoạn chương trình sau:

Giáo viên giải thích từng điều kiện và cách chương trình kiểm tra theo thứ tự từ if

→ elif → else

Cho học sinh chạy thử chương trình để trải nghiệm kết quả

Bước 5: Mở rộng và xử lý các tình huống đặc biệt

Trang 15

10

Đây là hai chương trình của trường hợp mở rộng:

2 Trò chơi “vẽ hình đa giác” với vòng lặp for

2.1 Giới thiệu thư viện turtle:

Thư viện Turtle trong Python là một công cụ hữu ích để vẽ đồ họa cơ bản Các câu lệnh trong thư viện này chủ yếu là các từ tiếng Anh đơn giản, gần gũi với chức năng của chúng, giúp người học dễ nhớ và áp dụng Khi giáo viên giới thiệu một số lệnh cơ bản, học sinh có thể nhanh chóng nắm bắt và sử dụng thư viện Turtle một cách dễ dàng và hiệu quả

Khi lập trình với Turtle, bạn điều khiển "con rùa" này để vẽ các hình dạng khác nhau bằng cách di chuyển, xoay, và điều chỉnh các thuộc tính vẽ Một số lệnh cơ bản

để điều khiển con rùa:

• forward(x): di chuyển rùa về phía trước với khoảng cách x

Trang 16

11

• backward(y): di chuyển rùa về phía sau với khoảng cách y

• left( a): quay con rùa sang bên trái 1 góc a độ

• right(b): quay con rùa sang bên phải 1 góc b độ

• goto(x,y): Di chuyển con rùa đến tọa độ x, y

• circle(r, c): Vẽ 1 vòng tròn bán kính r, cung c

Thay đổi kích thước của bút

• pensize(): Tăng giảm độ dày của bút

• penup(): nhấc bút lên dừng vẽ

• pendown(): Hạ bút xuống để vẽ

Thay đổi màu rùa và màu bút

• fillcolor(): thay đổi màu của rùa

• pencolor(): thay đổi màu của bút

• Mở bài bằng câu hỏi:

o Nếu muốn vẽ một hình vuông, bạn cần di chuyển như thế nào?

o Nếu vẽ hình vuông mà lặp lại 4 lần động tác: tiến – quay, liệu có thể dùng vòng lặp không?

Bước 2: Khuyến khích học sinh đề xuất giải pháp

Câu hỏi gợi mở:

1 Nếu muốn vẽ 4 cạnh giống nhau, có cách nào giúp rút ngắn số lệnh không?

2 Nếu mỗi lần đều cần quay 90 độ, làm thế nào để lặp lại thao tác này?

3 Chúng ta cần lặp lại bao nhiêu lần để vẽ xong hình vuông?

Khuyến khích học sinh thử đoán cách sử dụng vòng lặp để lặp lại thao tác

Bước 3: Giới thiệu chương trình vẽ hình vuông với vòng lặp for và thư viện Turtle

Trang 17

12

• Giải thích từng câu lệnh:

o turtle.forward(100): Rùa tiến 100 bước

o turtle.right(90): Rùa quay phải 90 độ

o range(4): Lặp 4 lần để vẽ đủ 4 cạnh của hình vuông

• Hỏi học sinh:

o Nếu muốn vẽ hình vuông nhỏ hơn hoặc lớn hơn thì cần sửa chỗ nào?

o Nếu muốn vẽ hình chữ nhật kích thước 170 x 100 thì cần điều chỉnh thế nào?

Dưới đây là chương trình vẽ hình chữ nhật, Nếu muốn tô màu hình chữ nhật, ta thêm lệnh fillcolor

Bước 4: Mở rộng và xử lý các tình huống đặc biệt

Mở rộng vấn đề:

Làm thế nào để vẽ một đa giác có số cạnh do người dùng nhập từ bàn phím? Chúng

ta cần điều chỉnh chương trình như thế nào?

Giáo viên gợi ý để học sinh suy luận về góc quay:

- Vẽ hình chữ nhật quay 360/4 =90 độ

Trang 18

13

- Vẽ hình tam giác quay 360/3 = 120 độ

- Vẽ hình ngũ giác quay 360/5 = 72 độ

- Vẽ hình đa giác bất kì thì góc quay = 360/ số cạnh

Chương trình vẽ hình đa giác với số cạnh nhập vào từ bàn phím

Sau khi hoàn thành bài tập, tôi yêu cầu học sinh chia sẻ những gì đã học được, những khó khăn gặp phải và cách giải quyết Hầu hết các em đã áp dụng tốt vòng lặp for để vẽ hình đa giác, tuy nhiên, vẫn cần chú ý hơn đến việc tính toán góc quay sao cho chính xác Tôi sẽ tiếp tục hỗ trợ để giúp học sinh hiểu rõ hơn về cách tính toán góc quay khi vẽ các hình phức tạp hơn

Ngoài vẽ hình đa giác, vòng lặp for còn có thể áp dụng vào nhiều trò chơi khác, giúp học sinh rèn luyện tư duy thuật toán

3 Trò chơi “thử thách đoán số” với vòng lặp while

Bước 1: Đặt vấn đề thực tế

Nhắc lại trò chơi “Đoán số” mà học sinh đã làm trước đó bằng câu lệnh if-else, trong

đó người chơi chỉ đoán được một lần

Đặt câu hỏi gợi mở:

• Nếu đoán sai thì sao?

• Làm thế nào để máy tính tiếp tục yêu cầu đoán số cho đến khi đoán đúng?

• Chúng ta có thể làm cho trò chơi trở nên thú vị hơn không?

Bước 2: Khuyến khích học sinh đề xuất giải pháp

Trang 19

14

Giáo viên yêu cầu học sinh suy nghĩ và đưa ra ý tưởng giải quyết bài toán

Thảo luận nhóm hoặc cá nhân về các phương án có thể thực hiện:

▪ Cách 1: Dùng nhiều câu lệnh if nối tiếp nhau

❌ Không hiệu quả vì không biết trước số lần đoán

▪ Cách 2: Sử dụng một vòng lặp để chương trình tự động lặp lại

✅ Đây là hướng đi đúng!

Giáo viên gợi mở để học sinh phát hiện:

• Khi nào chương trình cần dừng lại? → Khi đoán đúng

• Khi nào chương trình cần tiếp tục? → Khi đoán sai

• Cách nào để máy tính thực hiện điều này? → Sử dụng vòng lặp while

Bước 3: Xây dựng và kiểm thử chương trình với vòng lặp while

• Giới thiệu cú pháp vòng lặp while

• Viết chương trình đoán số sử dụng vòng lặp while

- Giáo viên hướng dẫn học sinh cải tiến chương trình từ if-else sang while

- Nếu không có vòng lặp, chương trình sẽ hoạt động thế nào?

• Kiểm thử chương trình

Học sinh chạy chương trình với các tình huống khác nhau:

- Đoán đúng ngay lần đầu

- Đoán sai nhiều lần rồi đoán đúng

Giáo viên đặt câu hỏi:

1 Tại sao cần nhập số trong vòng lặp?

2 Điều gì sẽ xảy ra nếu vòng lặp không có điều kiện dừng?

• Bài làm của 1 số học sinh sau khi được giáo viên hướng dẫn (học sinh gõ chương trình trên Google colab bằng điện thoại hoặc máy tính, đăng nhập bằng tài khoản Google của học sinh)

Trang 20

15 Bài làm của học sinh Nguyễn Duy Anh Khoa 10A4

Bài làm của em Nguyễn Xuân Khánh Lớp 10A4

Trang 21

16

Bài làm của em Nguyễn Minh Diệp lớp 10A3

Bước 4: Mở rộng và nâng cao bài toán

Sau khi học sinh đã hiểu và thực hành cơ bản về vòng lặp while, giáo viên có thể mở rộng bài toán để giúp học sinh tư duy sâu hơn và phát triển kỹ năng lập trình

1 Thêm gợi ý cho người chơi

• Hiện tại, chương trình chỉ thông báo "Sai rồi! Hãy đoán lại." mà không giúp người chơi biết họ nên đoán cao hơn hay thấp hơn

• Yêu cầu học sinh chỉnh sửa chương trình để:

- Nếu số đoán lớn hơn số bí mật, hiển thị: "Số bạn đoán quá cao! Hãy thử

số nhỏ hơn."

- Nếu số đoán nhỏ hơn số bí mật, hiển thị: "Số bạn đoán quá thấp! Hãy thử

số lớn hơn."

2 Kiểm tra số nhập vào hợp lệ

• Hiện tại, người chơi có thể nhập số ngoài phạm vi 1 đến 100, dẫn đến kết quả không mong muốn

• Yêu cầu học sinh sửa chương trình để:

- Nếu số đoán < 1 hoặc > 100, hiển thị: "Số nhập không hợp lệ! Vui lòng nhập

số trong khoảng 1 - 100."

- Không tính số lần đoán nếu nhập sai phạm vi

Trang 22

17 Kết quả hai bài làm ở nhà tốt nhất của học sinh:

Bài làm của em Ngô Phúc Khánh lớp 10A4

Trang 23

18

Bài làm của em Nguyễn Duy Hùng lớp 10A3 Thông qua trò chơi đoán số sử dụng vòng lặp while, các em không chỉ nắm bắt được cú pháp lập trình mà còn rèn luyện tư duy logic cùng khả năng xử lý lỗi một cách hiệu quả Trước đó, các em đã được giới thiệu về trò chơi này qua câu lệnh

rẽ nhánh và nắm được vấn đề cơ bản Nhờ vậy, khi chuyển sang học về vòng lặp while, sau những gợi ý ban đầu, tôi đã khuyến khích học sinh tự tay lập trình trên Google Colab bằng điện thoại Kết quả đạt được rất khả quan: các em đã biết cách sửa lỗi, tối ưu câu lệnh để chương trình hoạt động trơn tru, và tự tin khắc phục các vấn đề ngay lập tức Những trải nghiệm này đã càng làm tăng thêm sự hứng thú và

tự tin của các em trong quá trình học lập trình

4 Trò chơi “mô phỏng giỏ hàng” với kiểu dữ liệu danh sách

Bước 1: Đưa ra tình huống thực tế

Mô tả bài toán

• Khi đi siêu thị, chúng ta có một giỏ hàng để đựng sản phẩm

• Trong quá trình mua sắm, người dùng có thể:

o Thêm sản phẩm vào giỏ

o Lấy sản phẩm ra khỏi giỏ nếu không muốn mua nữa

o Kết thúc mua sắm, xem danh sách sản phẩm có trong giỏ hàng Đặt vấn đề: Nếu xây dựng một chương trình máy tính để mô phỏng việc này, ta cần đảm bảo chương trình cho phép người dùng thực hiện các thao tác như:

• Thêm sản phẩm vào giỏ

• Xóa sản phẩm khỏi giỏ

• Xem danh sách sản phẩm hiện tại trong giỏ

• Thoát chương trình khi người dùng không muốn tiếp tục nữa

Làm thế nào để xây dựng được một chương trình như vậy? Chúng ta sẽ sử dụng kiểu

dữ liệu danh sách (list) trong Python để quản lý giỏ hàng

Bước 2: Khuyến khích học sinh đề xuất giải pháp

Câu hỏi gợi mở:

• Nếu muốn thêm sản phẩm, chương trình cần làm gì?

Dùng append() để thêm vào danh sách

• Nếu muốn xóa sản phẩm, cần kiểm tra điều kiện gì?

Kiểm tra xem sản phẩm có trong danh sách trước khi remove()

• Làm sao để chương trình biết khi nào cần kết thúc?

Sử dụng vòng lặp while và kết thúc khi người dùng chọn "3"

Trang 24

Bước 3: Xây dựng thuật toán

Học sinh suy nghĩ cách xử lý từng thao tác:

• Thêm sản phẩm: Dùng lệnh gì để thêm vào danh sách? (append())

• Xóa sản phẩm: Dùng lệnh gì để xóa? (remove())

• Chạy liên tục: Dùng vòng lặp nào để chương trình không kết thúc ngay? (while True)

• Xử lý lựa chọn: Dùng câu lệnh nào để phân loại các thao tác? (if-elif-else) Kết luận:

• Cần một danh sách để lưu giỏ hàng

• Cần một vòng lặp while để liên tục hỏi người dùng

• Cần câu lệnh if-elif-else để xử lý các lựa chọn

1 Hiển thị menu thao tác:

o Lựa chọn 1 → Thêm sản phẩm

o Lựa chọn 2 → Xóa sản phẩm

o Lựa chọn 3 → Thoát chương trình

2 Xử lý lựa chọn của người dùng:

o Nếu chọn 1, nhập sản phẩm và thêm vào danh sách

o Nếu chọn 2, kiểm tra sản phẩm trước khi xóa

o Nếu chọn 3, thoát khỏi vòng lặp và in giỏ hàng còn lại

Bước 4: Viết chương trình hoàn chỉnh

Giáo viên hướng dẫn học sinh xây dựng chương trình theo các gợi ý sau:

a, Khởi tạo danh sách giỏ hàng

o Định nghĩa biến cart chứa các sản phẩm có sẵn, ví dụ:

Cart = [“Táo”, “Cam”, “Chuối”, “ Nho”, “Bưởi”]

b, Thêm sản phẩm vào giỏ hàng

Học sinh viết lệnh nhập tên sản phẩm cần thêm và dùng phương thức append()

để thêm sản phẩm đó vào cart

Trang 25

d, Xóa sản phẩm khỏi giỏ hàng

Học sinh thực hiện lệnh nhập tên sản phẩm cần xóa và sử dụng remove() để loại bỏ sản phẩm đó khỏi danh sách, đồng thời cần kiểm tra xem sản phẩm có tồn tại trong cart không?

Ví dụ:

e, Xây dựng menu lựa chọn

- Sau khi đã làm quen với các thao tác cơ bản, yêu cầu học sinh tích hợp tất

cả các lệnh trên vào một chương trình hoàn chỉnh sử dụng menu

- Menu cho phép người dùng lựa chọn thao tác: thêm sản phẩm, xóa sản phẩm, xem giỏ hàng và thoát chương trình

Trang 26

21

Như vậy, học sinh sẽ hoàn thiện chương trình mô phỏng giỏ hàng bằng cách kết hợp các thao tác cơ bản với vòng lặp và câu lệnh điều kiện, từ đó thực hành và củng cố kiến thức lập trình Python

Bước 5: Mở rộng bài toán

Gợi ý để học sinh phát triển bài toán:

Bổ sung chức năng xem giỏ hàng:

• Nếu giỏ hàng trống, hiển thị thông báo phù hợp

• Nếu có sản phẩm, hiển thị danh sách đầy đủ

Bổ sung chức năng xóa trong giỏ hàng:

• Nếu sản phẩm muốn xóa có trong giỏ hàng thì thực hiện xóa

Trang 27

22

• Nếu sản phẩm muốn xóa không có trong giỏ hàng thì hiển thị thông báo

phù hợp

Trò chơi mô phỏng giỏ hàng giúp các em phát triển các kỹ năng sau:

• Phát triển tư duy giải quyết vấn đề:

- Học sinh sẽ phải suy nghĩ và xử lý các tình huống thực tế khi làm việc với

danh sách (list) và xử lý ngoại lệ

- Giúp học sinh hiểu cách kiểm tra điều kiện trước khi thao tác với danh sách,

giúp tránh lỗi và bảo vệ chương trình

• Nâng cao kỹ năng lập trình Python:

- Học sinh làm quen với các thao tác nâng cao với danh sách như duyệt danh

sách, thêm, xóa phần tử và kiểm tra sự tồn tại của phần tử

- Luyện tập sử dụng câu lệnh điều kiện (if-elif-else), giúp học sinh hiểu cách

kiểm tra và xử lý nhiều tình huống khác nhau trong chương trình

• Gắn liền với thực tế, tạo hứng thú học tập:

- Bài toán quản lý giỏ hàng rất gần gũi với cuộc sống thực tế, như khi mua sắm

online, giúp học sinh dễ hình dung và áp dụng

- Tăng tính tương tác: Khi có nhiều lựa chọn như thêm, xóa, xem giỏ hàng, học

sinh sẽ cảm thấy bài toán thú vị và có thể áp dụng ngay lập tức

• Khuyến khích sáng tạo:

Học sinh có thể mở rộng bài toán theo ý tưởng riêng, ví dụ thêm giá tiền, tính

tổng hóa đơn, hoặc cải tiến giao diện người dùng

Những lợi ích này giúp học sinh không chỉ học lập trình mà còn phát triển các kỹ

năng giải quyết vấn đề và tư duy sáng tạo trong quá trình học tập

Trang 28

23

5 Trò chơi “đoán từ gốc” với kiểu xâu kí tự

Mục tiêu:

• Giúp học sinh thực hành các phương thức xử lý xâu trong Python, bao gồm:

o split(): Chia xâu thành các phần tử con

o join(): Kết hợp các phần tử con thành một xâu

o Phép nối xâu (+): Nối các chuỗi lại với nhau

• Phát triển tư duy logic và suy luận thông qua việc tìm lại từ gốc từ các chữ cái

bị đảo lộn Trò chơi kích thích khả năng nhận diện và sắp xếp chữ cái hợp lý

• Giúp học sinh hiểu cách hoạt động của các phương thức và phép toán xử lý chuỗi trong Python, đồng thời rèn luyện kỹ năng thao tác với xâu ký tự như tách, đảo và ghép chuỗi theo yêu cầu

Bước 1: Đưa ra tình huống thực tế

Giả sử bạn đang tham gia một trò chơi giải đố trong lớp học Trò chơi này kiểm tra khả năng nhận diện từ vựng của bạn thông qua một thử thách đặc biệt: máy tính sẽ

xáo trộn một từ tiếng Anh và bạn phải tìm ra từ gốc ban đầu

Ví dụ:

- Máy tính hiển thị từ "OTPYHN"

- Bạn cần đoán xem từ gốc là gì Nếu đoán "PYTHON", bạn sẽ chiến thắng! Tuy nhiên, nếu đoán sai, bạn sẽ có tối đa 3 lần thử và máy tính sẽ cung cấp gợi ý để giúp bạn tìm ra từ đúng Nếu hết lượt mà vẫn không đoán được, máy tính sẽ tiết lộ đáp án

Vậy làm sao để máy tính có thể kiểm tra từ bạn nhập vào và quyết định khi nào đưa

ra gợi ý?

Bước 2: Khuyến khích học sinh đề xuất giải pháp

Đặt câu hỏi gợi mở:

1 Nếu máy tính chọn từ "PYTHON" và xáo trộn thành "NTOYHP", làm thế nào chương trình có thể kiểm tra xem người chơi nhập từ đúng hay chưa?

2 Làm sao để máy tính có thể đảo ngẫu nhiên thứ tự các chữ cái trong một từ?

3 Nếu người chơi đoán sai, làm thế nào để máy tính đưa ra gợi ý phù hợp?

4 Chúng ta có thể đặt giới hạn số lần đoán để tăng thử thách không? Nếu có, làm sao để chương trình quản lý số lần thử đó?

Khuyến khích học sinh suy nghĩ và đề xuất giải pháp:

- Máy tính cần có một danh sách từ vựng để chọn từ ngẫu nhiên

Trang 29

24

- Sau khi chọn từ, máy tính có thể xáo trộn chữ cái để tạo thử thách

- Khi người chơi nhập từ, chương trình cần so sánh với từ gốc để xác định đúng hay sai

- Nếu đoán sai, chương trình có thể hiển thị gợi ý, ví dụ như số chữ cái, chữ cái đầu tiên…

- Học sinh có thể đề xuất cách giới hạn số lần đoán để làm trò chơi thú vị hơn

Sau khi thảo luận, giáo viên tổng hợp các ý kiến của học sinh và hướng dẫn cách sử dụng các phương thức xử lý xâu, vòng lặp, cũng như câu lệnh điều kiện để kiểm tra

câu trả lời của người chơi

Bước 3: Xây dựng thuật toán

Sau khi học sinh đã thảo luận và đề xuất giải pháp, giáo viên sẽ hướng dẫn học sinh xây dựng thuật toán, bao gồm:

• Khởi tạo danh sách từ vựng: Ta bắt đầu với một danh sách các từ mà người chơi sẽ phải đoán

• Chọn từ ngẫu nhiên: Sử dụng hàm random.choice() để chọn ngẫu nhiên một

từ trong danh sách từ vựng

• Xáo trộn chữ cái của từ: Sử dụng random.shuffle() để đảo ngược các chữ cái trong từ được chọn Sau khi xáo trộn, từ này sẽ được đưa vào dạng chuỗi string

để người chơi có thể nhìn thấy

• Hiển thị từ đã xáo trộn: In ra từ đã được xáo trộn để người chơi có thể nhìn và thử đoán

• Nhận input từ người chơi: Lặp lại việc yêu cầu người chơi nhập câu trả lời qua input()

• Kiểm tra đáp án:

So sánh đáp án người chơi nhập với từ gốc

- Nếu người chơi đoán đúng, thông báo "Chính xác!" và kết thúc trò chơi

- Nếu người chơi đoán sai, thông báo "Sai rồi, thử lại" và yêu cầu nhập lại

• Lặp lại cho đến khi đoán đúng: Trò chơi sẽ tiếp tục cho đến khi người chơi đoán đúng từ gốc

Bước 4: Viết chương trình

Giáo viên đưa ra chương trình, giới thiệu các lệnh và yêu cầu học sinh giải thích Sau khi giải thích các lệnh, giáo viên có thể yêu cầu học sinh thử thay đổi một số phần của chương trình để hiểu rõ hơn về cách hoạt động của các lệnh, ví dụ:

Ngày đăng: 28/06/2025, 09:57

HÌNH ẢNH LIÊN QUAN

Hình vẽ phải có ít nhất 3 yếu tố sau: - Skkn Ứng dụng bài tập trò chơi trong giảng dạy lập trình python Để phát triển tư duy thuật toán và nâng cao hứng thú học tập cho học sinh
Hình v ẽ phải có ít nhất 3 yếu tố sau: (Trang 43)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w