Tải bản đầy đủ (.doc) (16 trang)

(SKKN 2022) phương thức làm việc của vòng lặp FOR trong ngôn nghữ lập trình PYTHON, hỗ trợ giảng dạy môn tin học 10 theo chương trình giáo dục THPT 2018

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (218.43 KB, 16 trang )

SỞ GIÁO DỤC VÀ ĐÀO TẠO THANH HOÁ

TRƯỜNG THPT DÂN TỘC NỘI TRÚ TỈNH

SÁNG KIẾN KINH NGHIỆM

PHƯƠNG THỨC LÀM VIỆC CỦA VỊNG LẶP FOR
TRONG NGƠN NGỮ LẬP TRÌNH PYTHON, HỖ TRỢ
GIẢNG DẠY MƠN TIN HỌC 10 THEO CHƯƠNG TRÌNH
GIÁO DỤC PHỔ THÔNG 2018

Người thực hiện: Trương Văn Phát
Chức vụ: Giáo viên
SKKN thuộc lĩnh vực (mơn): Tin học

THANH HỐ, NĂM 2022


DANH MỤC CHỮ VIẾT TẮT
STT Từ

Từ viết tắt

Nghĩa từ viết tắt

1

GD ĐT

Giáo dục Đào tạo


2

CNTT

Công nghệ thông tin

3

THPT

Trung học phổ thông

4

CNTT & TT

Công nghệ thông tin và truyền thông

5

HS

Học sinh

6

GV

Giáo viên


7

SGK

Sách giáo khoa

8

PPCT

Phân phối chương trình

9

LT

Lập trình

10

CTGD

Chương trình giáo dục


MỤC LỤC
1. Mở đầu.................................................................................................................1
1.1. Lý do chọn đề tài.............................................................................................1
1.2. Phạm vi và đới tượng đề tài...............................................................................1
1.3. Mục đích đề tài................................................................................................1

1.4. Điểm mới của sáng kiến....................................................................................2
1.5. Phương pháp nghiên cứu..................................................................................2
1.5.1. Phương pháp nghiên cứu lý thuyết............................................................2
1.5.2. Phương pháp tham vấn chuyên gia...........................................................2
2. Nội dung sáng kiến kinh nghiệm.........................................................................2
2.1. Cơ sở lý luận của sáng kiến kinh nghiệm...........................................................2
2.2. Thực trạng chất lượng giảng dạy môn tin học tại trường THPT Dân tộc nội trú tỉnh
Thanh Hoá (cơ sở thực nghiệm)...................................................................................3
2.2.1. Đặc điểm tình hình...................................................................................3
2.2.2. Thực trạng của vấn đề..............................................................................4
3. Nội dung nghiên cứu............................................................................................4
3.4. Sử dụng ngơn ngữ Python để tạo vịng lặp với một array....................................8
3.5. Sử dụng Nested cho vòng lặp trong ngôn ngữ Python.........................................9
4. Hiệu quả của sáng kiến........................................................................................9
5. Kết luận, kiến nghị...............................................................................................9
5.1. Kết luận...........................................................................................................9
5.2. Kiến nghị.......................................................................................................10


Sáng kiến kinh nghiệm

Bộ môn Tin học

1. Mở đầu
1.1. Lý do chọn đề tài
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. Tuy nhiên, rất nhiều trường đã và đang sử dụng ngôn ngữ lập trình pascal,
C/C++ như là công cụ để giảng dạy cho học sinh, đặc biệt là học sinh của đội

tuyển dự thi học sinh giỏi các cấp môn tin học.
Hầu hết chúng ta đã quá quen với việc sử dụng ngôn ngữ lập trình Pascal,
gần đây là bắt đầu tiếp cận ngôn ngữ lập trình C/C++. Tuy nhiên, sách giáo khoa
mới thì ngôn ngữ 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ụ tốt công tác dạy học của bản thân.
Python là ngôn ngữ lập trình khá phổ biến hiện nay, được rất nhiều lập trình
viên sử dụng. Ngôn ngữ này khơng khó viết, nhưng do tiếp cận mới nên sẽ gặp
những khó khăn riêng. Xuất phát từ lý do này và qua kiến thức tự học tự nghiên
cứu trong quá trình dạy học. Tôi xin đề cập tới đề tài: “Phương thức làm việc
của vòng lặp for trong ngơn ngữ lập trình Python, hỗ trợ giảng dạy mơn tin
học 10 theo chương trình giáo dục phổ thơng 2018”.
1.2. Phạm vi và đối tượng đề tài
- Phạm vi: Nghiên cứu thực tế trong công tác dạy học tại trường THPT Dân
tộc nội trú tỉnh Thanh Hóa.
- Đới tượng: Nghiên cứu giải pháp nhằm nâng cao chất lượng dạy học bộ môn tin
học ở trường THPT theo chương trình giáo dục phổ thơng 2018.
1.3. Mục đích đề tài
Tìm hiểu và nêu các kiến thức liên quan về “phương thức làm việc của vịng
lặp for trong ngơn ngữ lập trình Python, hỗ trợ giảng dạy môn tin học 10 theo
chương trình giáo dục phổ thông 2018”.
1


Sáng kiến kinh nghiệm

Bộ môn Tin học

1.4. Điểm mới của sáng kiến
Đề xuất các kiến thức cơ bản về vòng lặp for trong ngôn ngữ lập trình

Python.
1.5. Phương pháp nghiên cứu
1.5.1. Phương pháp nghiên cứu lý thuyết
 Nghiên cứu tài liệu và các công trình khoa học liên quan đến kiến thức lập
trình trong Python.
 Nghiên cứu cấu trúc, nội dung sách giáo khoa tin học THPT theo chương
trình giáo dục phổ thông 2018.
1.5.2. Phương pháp tham vấn chuyên gia
2. Nội dung sáng kiến kinh nghiệm
2.1. Cơ sở lý luận của sáng kiến kinh nghiệm
* Khái quát về ngôn ngữ lập trình Python
Hiện nay với những đặc điểm và tính năng vượt trội thì đa phần lập trình
viên chọn lựa Python là ngơn ngữ lập trình chính.
2.1.1. ngơn ngữ lập trình Python là gì?
Là ngơn ngữ mã nguồn mở đa mục đích, một loại ngơn ngữ bậc cao, thơng
dịch và hướng đới tượng.
2.1.2. Python có gì đặc biệt?
Đó chính là cú pháp của Python rất dễ hiểu, dễ học. Trong việc phát triển
ứng dụng thì ngôn ngữ này cũng rất linh hoạt. Python hỗ trợ mẫu đa lập trình, bao
gồm lập trình hướng đối tượng, lập trình hàm và mệnh lệnh hoặc là những phong
cách lập trình theo thủ tục.
Python không chỉ làm việc trên lĩnh vực đặc biệt như lập trình Web, 3D
CAD… mà cịn là ngơn ngữ lập trình động, nên bạn không cần phải sử dụng các
kiểu dữ liệu khai báo. Ngôn ngữ Python giúp cho việc phát triển ứng dụng và
debug trở nên nhanh chóng hơn rất nhiều.
2.1.3. Tại sao nên học lập trình Python?
2


Sáng kiến kinh nghiệm


Bợ mơn Tin học

• Dễ học
Code của Python dễ đọc, ngắn gọn (ngắn hơn code Java 3-5 lần, và C++ 5-10
lần).
• Bước đệm để học các ngơn ngữ lập trình khác
Python là ngơn ngữ hướng đới tượng được ứng dụng rất đa dạng. Vì vậy,
những hiểu biết về cấu trúc và kiến trúc Python sẽ là nền tảng tham chiếu rất tốt
khi bạn muốn chuyển sang học các ngơn ngữ lập trình khác.
• Được trả lương cao
Cùng với Ruby, Python là ngôn ngữ lập trình giúp developer nhận mức lương
cao thứ nhì (khoảng $107,000/năm) tại Mỹ.
• Thiết thực trong thiết kế web/ứng dụng web
Django, web framework được viết bởi Python sẽ làm cho việc lập trình web
trở nên đơn giản hơn, giúp code của bạn nhanh và ổn định hơn nhiều, đồng thời
tiết kiệm hàng tấn thời gian lập trình.
• Là tương lai của trí tuệ nhân tạo
Nhờ tính linh hoạt của ngơn ngữ, tớc độ xử lý và các tính năng Machine
Learning được cung cấp bởi các libraries như scikit-learn, Keras, và TensorFlow.
Đây thực sự là một ngơn ngữ lập trình có hình thức sáng sủa, cấu trúc rõ ràng,
cú pháp rất ngắn gọn. Python với tớc độ xử lý cực nhanh, ngơn ngữ này có thể tạo
ra các chương trình từ những script siêu nhỏ tới những phần mềm cực lớn như
Biender 3D.
2.2. Thực trạng chất lượng giảng dạy môn tin học tại trường THPT Dân tộc
nội trú tỉnh Thanh Hoá (cơ sở thực nghiệm).
2.2.1. Đặc điểm tình hình
Trường THPT Dân tộc nội trú tỉnh Thanh Hóa là một trường chuyên biệt,
100% học sinh là người dân tộc thiểu số, sinh sống tại 11 Huyện miền núi của
Tỉnh Thanh Hóa được hưởng chế độ chính sách của nhà nước và của Tỉnh.


3


Sáng kiến kinh nghiệm

Bộ môn Tin học

Cơ sở vật chất nhà trường được cấp, cơ quan quản lý trang bị đầy đủ, bao gồm
trang bị máy chiếu, máy tính, phịng tin học phục vụ cho công tác dạy và học của nhà
trường.
Đội ngũ giáo viên tâm huyết, năng động, nhiệt tình trong cơng tác cùng với
hơn 540 học sinh tồn trường được chia làm 18 lớp thuộc 3 khối.
Khối 10: 06 lớp với 180 học sinh.
Khối 11: 06 lớp với 180 học sinh.
Khối 12: 06 lớp với 180 học sinh.
2.2.2. Thực trạng của vấn đề
a. Thuận lợi:
Được sự quan tâm của Sở Giáo dục & Đào tạo, nhà trường được trang bị 03
phịng máy tính thực hành, 100% phịng học có máy chiếu và phương tiện hỗ trợ
ứng dụng CNTT trong giảng dạy.
Chương trình giáo dục phổ thông 2018 được thực hiện đồng bộ trên tồn
Q́c, phù hợp với sự thay đổi của nền giáo dục nước nhà.
b. Khó khăn:
Sự đa dạng về trình độ học sinh trong các lớp tại trường THPT Dân tộc
nội trú nói riêng và các trường THPT trong tỉnh nói chung có sự phân hố nhất
định. Trường THPT Dân tộc nội trú Tỉnh với gần 100% đối tượng học sinh là
người dân tộc thiểu số, thuộc các xã đặc biệt khó khăn. Trước đây phần đa chưa
được tiếp xúc nhiều với bộ môn tin học và các phương tiện CNTT hiện đại, thiếu
kỹ năng sử dụng máy tính.

Chính vì vậy mục tiêu của đề tài này là hỗ trợ giáo viên tin học có thêm thông
tin, giúp truyền đạt kiến thức đến học sinh tốt nhất, bắt kịp với sự thay đổi của
chương trình giáo dục.
3. Nội dung nghiên cứu
3.1. Phương thức làm việc của vịng lặp for trong ngơn ngữ lập trình Python

4


Sáng kiến kinh nghiệm

Bợ mơn Tin học

Vịng lặp for của Python hoạt động bằng cách lặp qua chuỗi của một mảng
(array). Về cơ bản, nó hữu ích khi xử lý các chuỗi, danh sách, từ điển, tập hợp
hoặc bộ giá trị. Từ khóa in thường theo sau vịng lặp for trong Python.
Một vịng lặp for có đặc điểm tương tự trong tất cả ngơn ngữ lập trình. Ví
dụ, dù có sự khác biệt về cú pháp, đặc điểm vòng lặp for của Java tương tự của
Python.
Cú pháp Python cho vòng lặp for như sau:
for new_variable in parent_variable:
execute some statements

Như đã nói từ đầu, khác while, vịng lặp for mạnh hơn nên nó cung cấp
nhiều quyền kiểm sốt luồng hơn.
Cụ thể, một vịng for giớng như câu lệnh: “for every male student you meet
in a class, write down one, else, write down it’s a class of females only.”
Câu lệnh này giống như một hướng dẫn đơn giản, cho bạn biết bạn cần viết
tên từng nam sinh đã gặp trong một lớp học cụ thể. Nó là một vịng lặp liên tục.
Tuy nhiên, để bắt đầu vòng lặp for trong trường hợp này, bạn phải gặp một học

sinh nam. Nếu không, sau đó, bạn phải viết câu lệnh else (nếu khơng).
Nếu câu lệnh trên khơng có điều kiện else, bạn sẽ khơng cần phải viết thêm
bất cứ điều gì sau đó. Điều này đồng nghĩa với việc nó là một mảng trớng.
3.2. Ví dụ thực tế về cách sử dụng vịng lặp for của ngơn ngữ Python
Giờ hãy xét một sớ ví dụ thực tế về cách sử dụng vòng lặp for trong
Python. Đoạn mã sau đây xuất ra từng mục trong danh sách:
items = ["shoe", "bag", "shirts", "lamp"]
for i in items:
print(i)

Bạn cũng có thể chỉnh sửa đoạn code trên để xuất bất kỳ mục có chữ cái
“a” trong danh sách:
items = ["shoe", "bag", "shirts", "lamp"]
for i in items:

5


Sáng kiến kinh nghiệm

Bộ môn Tin học

if "a" in i:
print(i)

Một vòng lặp for trong Python cũng dùng câu lệnh else trực tiếp:
b=[2, 3, 5, 6]
for i in b:
print(i)
else:

print("Loop has ended")

Bạn có thể dùng lệnh break để thay đổi quy trình của một vòng lặp:
b=[2, 3, 5, 6]
for i in b:
if i>3:
break
print(i)

Bạn cũng có thể sử dụng từ khóa continue với một loop for:
b=[2, 3, 5, 6]
for i in b:
if i>3:
continue
print(i)

3.3. Sử dụng vòng lặp for với List và String trong ngôn ngữ Python
Giờ chúng ta hãy quan sát đoạn code dưới đây, đoạn code này cho phép
xuất toàn bộ các số nguyên dưới từ 1 tới 100. Để thực hiện việc này, đầu tiên tạo
một danh sách các số trong phạm vi từ 1 đến 100 bằng việc sử dụng
hàm range của Python.
for x in range(1, 101):
print(x)

Bạn có thể chỉnh sửa khối code bằng cách giới thiệu một lệnh điều kiện để
xuất tồn bộ sớ lẻ giữa 1 và 100.
for x in range(1, 101):

6



Sáng kiến kinh nghiệm

Bộ môn Tin học

if x%2==1:
print(x)

Hoặc bạn cũng có thể tạo bảng cửu chương nhân 2 theo đầu ra của đoạn mã
trên. Để làm việc này, bạn chỉ cần thêm một vài câu lệnh đơn giản:
for x in range(1, 101):
if x%2==1:
print(x, "x", 2, "=", x * 2)

Giờ bạn đã biết cách vòng lặp for hoạt động với một danh sách các số
nguyên. Tiếp theo, chúng ta hãy tìm hiểu cách sử dụng vòng lặp for với các chuỗi.
Đoạn code bên dưới trả về một chuỗi của mỗi string trong một lệnh:
a = "How to use a for loop in Python"
for i in a:
print(i)

Chúng ta cũng có thể đếm số của chuỗi (bao gồm khoảng cách) trong
biến a sử dụng vòng lặp for:
a = ["How to use a for loop in Python"]
for i in a:
print(i.count(''))
Output: 32

Tuy nhiên, bạn cũng có thể đặt một vịng lặp for trong một biến riêng và
nhận kết quả tương tự bằng cách điều chỉnh đoạn code trên như sau:

a=["How to use a for loop in Python"]
c=[b.count('') for b in a]
print(c)
Output: [32]

Chú ý: Để có được sớ lượng ký tự, đảm bảo khơng có khoảng cách giữa
các dấu ngoặc kép trong ngoặc đơn theo sau từ khóa count. Bạn cũng có thể
chỉnh sửa từng code trong hai đoạn mã gần nhất ở trên để tạo ra một bộ đếm từ
đơn giản bằng vòng lặp for. Lúc này, toàn bộ việc bạn cần làm trong trường hợp
này là chèn thêm một khoảng trắng giữa mỗi dấu ngoặc kép trong dấu ngoặc đơn:
7


Sáng kiến kinh nghiệm

Bộ môn Tin học

a=["How to use a for loop in Python"]
for i in a:
print(i.count(' ') + 1)
Output: 8

Giống như đã từng làm ở bộ đếm ký tự, bạn cũng có thể chỉnh lại code đếm
từ ở trên bằng cách đặt vòng lặp for trong một biến như sau:
a = ["How to use a for loop in Python"]
c=[b.count(' ') + 1 for b in a]
print(c)
Output: [8]

Chú ý tới khoảng trắng duy nhất nằm ở giữa các trích dẫn trong ngoặc đơn.

3.4. Sử dụng ngôn ngữ Python để tạo vịng lặp với một array
Bạn cũng có thể dùng vịng lặp for để có một nhân tớ cụ thể trong một
array. Giải sử bạn có một mảng dữ liệu Sheep với các giá trị Yes cho động vật
“healthy” và No cho “unhealthy”. Mỗi con cừu đều có tên riêng và bạn ḿn
cách ly tất cả những con bị bệnh.
Bạn có thể dùng vịng lặp for để xuất tồn bộ cừu bị bệnh, chẳng hạn như
sau:
array = [{"name":"Sheep1", "healthy":"Yes"},
{"name":"Sheep3", "healthy":"No"},
{"name":"Sheep4", "healthy":"Yes"},
{"name":"Sheep5", "healthy":"Yes"},
{"name":"Sheep8", "healthy":"No"},
{"name":"Sheep7", "healthy":"No"},
{"name":"Sheep9", "healthy":"No"}
]
for sheeps in array:
if sheeps["healthy"]=="No":
print("Quarantine", sheeps["name"])

8


Sáng kiến kinh nghiệm

Bộ môn Tin học

3.5. Sử dụng Nested cho vịng lặp trong ngơn ngữ Python
Một vịng lặp for lồng nhau rất hữu ích khi bạn ḿn xuất từng nhân tố
trong một dãy phần tử phức tạp hay được lồng nhau. Nó hoạt động bằng cách đặt
một vịng lặp bên trong vịng lặp khác.

Ví dụ:
nested_list = [[1, 2, 4, 5], {"name":"Python", "method":"write"}]
for dict in nested_list:
for i in dict:
print(i)

Tùy thuộc vào vấn đề, mỗi vịng lặp for và while có tầm ảnh hưởng riêng
trong ngôn ngữ Python.
4. Hiệu quả của sáng kiến
Từ thực tế dạy học của bản thân trong những năm học vừa qua. Tôi nhận
thấy việc dùng ngôn ngữ C/C++ trong dạy học tin học cũng như bồi dưỡng học
sinh giỏi vẫn có nhiều ưu điểm. Tuy nhiên, với chương trình giáo dục phổ thông
2018 mới thì việc tiếp cận ngôn ngữ Python là cần thiết, không phải bởi được viết
trong sách giáo khoa mà còn vì đây là ngôn ngữ đang được ứng dụng rất phổ biến
trong lĩnh vực lập trình.
Khi đã quen với Python thì việc viết chương trình sẽ trở nên đơn giản hơn
rất nhiều so với việc sử dụng các ngôn ngữ khác như Pascal và C/C++.
Các kỹ thuật lập trình được hỗ trợ tốt hơn, khả năng phát triển ứng dụng và
debug nhanh hơn.
Học sinh có thể dễ dàng tiếp cận hơn do Python không cần sử dụng các
kiểu dữ liệu khai báo.
5. Kết luận, kiến nghị
5.1. Kết luận
Việc ứng dụng ngôn ngữ lập trình nào trong dạy học bộ môn tin học hiện
nay đang rất mở, không bắt buộc cụ thể với loại ngôn ngữ nào. Tuy nhiên, theo
chương trình giáo dục mới và theo Sách giáo khoa mới thì Python là ngôn ngữ
9


Sáng kiến kinh nghiệm


Bộ môn Tin học

được chỉ định. Đề tài này đã góp một phần trong việc giúp các trường, Thầy cô
giáo và học sinh tiếp cận được với ngôn ngữ lập trình mới, nâng cao chất lượng
giảng dạy và phù hợp với sự tiến bộ của lĩnh vực CNTT.
5.2. Kiến nghị
Đề tài có thể được viết chuyên sâu hơn nhằm cung cấp tài liệu tham khảo
cho các trường THPT trong việc dạy và học bộ môn tin học theo chương trình
giáo dục phổ thông 2018.
Tôi xin chân thành cảm ơn!
Thanh Hóa, ngày 26 tháng 04 năm 2022
Tôi xin cam đoan đây là SKKN của
mình viết, không sao chép nội dung
của người khác
Xác nhận của lãnh đạo nhà trường

Tác giả

Trương Văn Phát

10


Sáng kiến kinh nghiệm

Bộ môn Tin học
TÀI LIỆU THAM KHẢO

[1] Hồ Sĩ Đàm (CB) – Hồ Cẩm Hà (CB) và cộng sự, (2022) Tin học 10 (Bản

mẫu - Cánh Diều), Nhà xuất bản Đại học sư phạm
[2] Phạm Thế Long (TCB) – Đào Kiến Quốc (CB) và cộng sự, (2022) Tin học 10
(Bản mẫu – Kết nối chi thức với cuộc sống), Nhà xuất bản giáo dục Việt
Nam.
[3] Võ Duy Tuấn, (2018) Kỹ thuật lập trình Python cơ bản

11


Sáng kiến kinh nghiệm

Bộ môn Tin học
DANH MỤC

SÁNG KIẾN KINH NGHIỆM ĐÃ ĐƯỢC HỘI ĐỒNG SÁNG KIẾN KINH
NGHIỆM NGÀNH GIÁO DỤC VÀ ĐÀO TẠO HUYỆN, TỈNH VÀ CÁC
CẤP CAO HƠN XẾP LOẠI TỪ C TRỞ LÊN
Họ và tên tác giả: Trương Văn Phát
Chức vụ: Giáo viên
đơn vị công tác:Trường THPT Dân tộc nội trú Tỉnh

TT

1.

Tên đề tài SKKN

Một số phương pháp rèn luyện kỹ
năng lập trình Pascal cho học sinh


2.

lớp 11
Sử dụng bản đồ tư duy trong dạy

3.

học chương trình tin học THPT
Vận dụng kỹ năng tạo lập nhóm

Cấp đánh giá

Kết quả

xếp loại

đánh giá

Năm học

(Ngành GD cấp

xếp loại

đánh giá

huyện/tỉnh;

(A, B,


xếp loại

Tỉnh...)

hoặc C)

Sở GD&ĐT
Thanh Hóa
Sở GD&ĐT
Thanh Hóa

B

2013-2014

B

2014-2015

B

2015-2016

C

2018-2019

C

2019-2020


trong mơ hình trường học mới
VNEN vào dạy học theo định

Sở GD&ĐT

hướng phát triển năng lực học

Thanh Hóa

sinh trong bộ mơn tin học ở
4.

trường THPT
Một số giải pháp nâng cao chất
lượng dạy học tin học 10 ở trường

5.

Sở GD&ĐT
Thanh Hóa

THPT Dân tộc nội trú Tỉnh
Vận dụng mô hình dạy học kết

Sở GD&ĐT

hợp Blended Learning (BL) trong

Thanh Hóa

12


Sáng kiến kinh nghiệm

6.

Bộ môn Tin học

dạy học môn tin học cấp THPT.
Một số kiến thức cơ bản về chuổi
(String) trong C/C++ nhằm giúp
học sinh tiếp cận với ngôn ngữ
lập trình C/C++ khi ơn luyện và

Sở GD&ĐT
Thanh Hóa

B

2020-2021

thi học sinh giỏi
----------------------------------------------------

13




×