Sáng kiến Khai thác một số bài toán điển hình để dạy về mảng một chiều trong ngôn ngữ lập trình Python
Là một giáo viên tham gia giảng dạy môn Tin học trong nhiều năm. Tôi thấy hầu hết các em học sinh khá giỏi lớp 11 là nòng cốt cho đội tuyển HSG lớp 12 tham gia đội tuyển thi học sinh giỏi môn Tin học cấp Tỉnh đều phải dành thời gian ôn luyện lại các kiến thức về câu lệnh, thuật toán đã học trong chương trình lớp 10 và 11. Nhưng trên thực tế với các em học sinh đang học lớp 12 với rất nhiều các môn học ở trường phổ thông không có nhiều thời gian để nghiên cứu học hỏi tìm tòi về lí thuyết các câu lệnh để trên cơ sở đó vận dụng tốt vào bài tập thực hành để rèn luyện kĩ năng lập trình. Vì vậy tôi nghĩ mình cần xây dựng một hệ thống bài tập như thế nào để cho học sinh ôn luyện các kiến thức và dễ nhớ dễ hiểu các cấu trúc câu lệnh và ý nghĩa của nó để các em biết tự vận dụng vào các bài tập cơ bản đến nâng cao. Qua tham khảo các tài liệu về phương pháp giảng dạy bộ môn, thuật toán, thuật giải trong tin học, tham khảo ý kiến của các bạn đồng nghiệp, đồng thời tôi cũng nhận các em luôn gặp khó khăn và lúng túng khi giải các bài toán lập trình mức độ khó .Vì vậy tôi đã mạnh dạn viết sáng kiến “Khai thác một số bài toán điển hình để dạy về mảng một chiều trong ngôn ngữ lập trình Python”.
Nghị quyết Hội Nghị Trung ương 8 khóa XI về đổi mới căn bản toàn
diện giáo dục và đào tạo: “Tiếp tục đổi mới mạnh mẽ phương pháp dạy và học theo hướng hiện đại; phát huy tích cực chủ động, sáng tạo và vận dụng kiến thức kĩ năng của người học; khắc phục lối truyền thụ áp đặt một chiều, ghi nhớ máy móc. Tập trung dạy cách học, cách nghĩ, khuyến khích tự học, tạo cơ sở để người học tự cập nhật và đổi mới tri thức phát triển năng lực”.
Chiến lược phát triển giáo dục giai đoạn 2011-2020 ban hành kèm theo quyết định 711/QĐ-TTg ngày 13/6/2012 của Thủ tướng Chính phủ: “Tiếp tục đổi mới phương pháp dạy học và đánh giá kết quả học tập, rèn luyện theo hướng phát huy tính tích cực, tự giác, chủ động, sáng tạo và năng lực tự học của người học”.
Nhận thấy được tầm quan trọng của Tin học, từ năm học 2006-2007 Bộ Giáo dục và Đào tạo đã đưa môn học này vào nhà trường phổ thông để giảng dạy như những môn học phổ thông khác. Môn tin học được đưa vào chương trình THPT là cần thiết và rất quan trọng đối với sự phát triển của xã hội, phát triển nguồn nhân lực có trình độ cao. Một trong những mục tiêu khi đưa tin học vào trường học là nhằm giúp học sinh có khả năng phân tích, tổng hợp, trừu tượng hoá, khái quát vấn đề và phát triển tư duy.
Tóm tắt nội dung tài liệu: Sáng kiến Khai thác một số bài toán điển hình để dạy về mảng một chiều trong ngôn ngữ lập trình Python
g bình cộng các số chẵn ở vị trí lẻ là:",round(s/dem,2))
else:
print('Không có số chẵn ở vị trí lẻ trong dãy số!")
Bài 6.
def nhap_so_nguyen(a,b):
x = a - 1
while x b:
x = int(input(' Nhập số nguyên >=' + str(a) + ' và <= ' + str(b)+ ': '))
print()
return x
def nhap_mang(n):
print("Nhập mảng gồm ',n,' số nguyên: ')
s = []
for i in range(n):
a = int(input(' So thứ '+str(i+1)+ ': '))
s.append(a)
print()
return s
n1 = nhap_so_nguyen(1,3)
n2 = nhap_so_nguyen(3,5)
n3 = nhap_so_nguyen(5,7)
a = nhap_mang(n1)
b = nhap_mang(n2)
c = nhap_mang (n3)
a.sort()
b.sort(reverse = True)
c.sort(reverse = True)
print(a)
print(b).
print(c)
Bài 7.
def nhap_so_nguyen(a,b):
x = a - 1
while x b:
x = int(input( 'Nhập số nguyên >= '+str(a)+ ' và <= ' +str(b)+ ': '))
print()
return x
def nhap_mang(n):
s = []
for i in range(n):
x = float(input('So thứ '+str(i+1)+ ': '))
s.append(x)
print(' -----------------------------------------‘)
m = nhap_so_nguyen(5,50)
a = nhap_mang(m)
b = nhap_mang(m)
c = nhap_mang(m)
d = [ ]
for i in range(len(a)):
d.append(a[i] + b[i] +c[i] )
print()
a.sort(reverse = True)
b.sort(reverse=True)
c.sort(reverse = True)
d.sort()
print(a)
print(b)
print(c)
print(d)
Bài 8.
def nhap_day_so (n):
s = []
for i in range(n):
a = float(input('So thực ‘ +str(i+1)+ ': '))
s.append(a)
return s
def cuctieu_diaphuong (b,x):
if b[0] == x and b[0] < b[1]:
return True
for i in range(1, len(b)-1):
if b[i] < b[i-1] and b[i] < b[i+1] and b[i] == x:
return True
if b[len(b )-1] < b[len (b) -2] and b[len(b) -1]== x:
return True
return False
c = []
n = 2
while n 35:
n = int(input(' Nhập n: '))
print()
b = nhap_day_so(n)
for i in range(len(b)):
if cuctieu diaphuong (b,b[i] ):
c.append([b[i], i])
print()
print(b)
print(c)
Bài 9
def nhap_day_so(n):
s = []
for i in range(n):
a = float(input(' So thực +str(i+1)+ ': '))
s.append(a)
return s
def cucdai_diaphuong(b,x):
if b[0] == x and b[0] > b[1]:
return True
for i in range(1, len(b) -1) :
if b[i] > b[i-1] and b[i] > b[i+1] and b[i] == x:
return True
if b[len(b) -1] > b[len(b) - 2] and b[len (b)-1] == x:
return True
return False
b = []
n = 2
while n 35:
n = int(input(' Nhập n:' ))
print()
a = nhap_day_so(n)
for i in range(len(a)):
if cucdai_diaphuong (a,a[i]):
b.append([a[i]), i])
print()
print(a)
print(b)
Bài 10.
def nhap_so_nguyen(a,b):
x = a -1
while x = b:
x = int(input('Nhập số nguyên > ' + str(a) + ' và < ' + str(b) + ': '))
return x
def nhap_mang(n):
a = []
for i in range(n):
x = float(input(' Nhập số thứ '+ str(i+1)+ ' : '))
a.append(x)
return a
def tim_so_lon_nhat(a):
i =1
while i <= len(a):
if a[i] == max(a):
return a[i],i
i += 1
# Chương trình chính
k = nhap_so_nguyen(5,50)
print()
d = nhap_mang(k+5)
print()
print(d)
print()
a,b = tim_so_lon_nhat(d)
print('Giá trị lớn nhất là: ' ,a)
print(‘Tại vị trí:’ ,b+1)
Bài 11.
def nhap_mang(n):
print("Nhập mảng gồm',n,'số thực:\n")
s = []
for i in range(n):
a = float(input(' Số thứ + str(i+1)+ ': '))
s.append(a)
print()
return s
c = nhap_mang(5)
del c[0]
c.pop()
c.sort(reverse = True)
print(c)
print(Tổng mảng sau khi xóa hai phần tử:',round(sum(c) , 2))
Bài 12
def nhap_mang(n):
print('Nhập mảng gồm ',n, ‘số nguyên:\n’)
s = []
for i in range(n):
a = int(input(' Số thứ '+str(i+1)+ ': ' ))
s.append(a)
print()
return s
m = nhap_mang(9)
del m[ :2]
m.pop()
m.sort()
print(m)
print('Tổng mảng sau khi xóa ba phần tử:',round(sum(m) , -2))
5. Kết quả thực hiện sáng kiến
Trong năm học 2022 - 2023 tôi đã áp dụng SKKN của tôi vào giảng dạy cho các em học sinh giỏi lớp 11. Trong phần lập trình với các bài toán khó tôi đã đưa chuyên đề vào giảng dạy. Tôi nhận thấy sau khi được giáo viên gợi ý giao nhiệm vụ hoàn thành chương trình của các bài toán mà tôi lựa chọn để minh họa cho các bài toán về cấu trúc lặp thì các em có sự tiến bộ về kĩ năng lập trình nâng lên rõ rệt các em tự tin hơn để bước vào các chuyên đề tiếp theo.
Để có kết quả khách quan hơn khi so sánh áp dụng SKKN và không áp dụng SKKN vào việc ôn tập rèn luyện với học sinh khá giỏi. Trong năm học 2022- 2023 tôi đã chia nhóm học sinh giỏi tôi giảng dạy thành 2 nhóm mỗi nhóm 6 em:
Nhóm 1: dạy và hướng dẫn các em làm bài tập theo SKKN.
Nhóm 2: không dạy theo SKKN mà tôi chọn các bài tập về vòng lặp trong sách bài tập tin học lớp 10 và sách giáo viên lớp 10 cho các em ôn tập.
Sau khi kết thúc chuyên đề tôi cho học sinh cả hai nhóm làm bài kiểm tra khảo sát để đánh giá kết quả học tập của các em:
Kết quả bài kiểm tra khảo sát ở mỗi nhóm như sau:
Như vậy qua biểu đồ so sánh giữa hai nhóm học sinh khá giỏi tôi giảng dạy tôi nhận thấy sau khi áp dụng sáng kiến vào việc giảng ở nhóm 1 (Nhóm có áp dụng SK) các em học sinh nắm được kiến thức tốt hơn nhanh hơn, kĩ năng lập trình của các em hơn hẳn nhóm 2. Và tôi nhận thấy việc khai thác các bài toán điển hình mà tôi lựa chọn để minh họa cho hai dạng cấu trúc lặp từ đơn giản đến phức tạp sẽ gây hứng thú hơn gợi mở hơn với các em học sinh từ đó các em tự giác say mê học tập và nghiên cứu theo sự hướng dẫn của giáo viên.
6. Điều kiện để sáng kiến được nhân rộng.
Với những giải pháp và ý tưởng tôi đã trình bày ở trên, theo tôi việc áp dụng sáng kiến trong quá trình giảng dạy là rất thiết thực với giáo viên đang phụ trách giảng dạy, ôn tập cho các em học sinh khá giỏi môn Tin học 11 để chuẩn bị cho cho kì thi học sinh giỏi cấp trường và thi học sinh giỏi cấp tỉnh lớp 12, SKKN của tôi có thể làm tài liệu tham khảo cho giáo viên các trường THPT. Tuy nhiên để sáng kiến được áp dụng rộng rãi, hiệu quả rất cần sự quan tâm của các cấp lãnh đạo ngành, lãnh đạo các trường tới công tác bồi dưỡng giáo viên, động viên, khích lệ học sinh yêu thích học môn tin học.
Với các thầy cô: Vai trò của các thầy (cô) là hết sức quan trọng trọng hoạt động giáo dục, vì vậy giáo viên phải dành nhiều thời gian, công sức, tích cực tìm tòi các tài liệu chuyên môn đồng thời luôn luôn nghiên cứu tìm tòi các phương pháp truyền đạt kiến thức mới mẻ để đem lại hứng thú đối với học sinh.
Với các em học sinh: Cần phải tích cực, chủ động lĩnh hội các kiến thức mới của thầy (cô) truyền đạt, tự học hỏi, sáng tạo trong việc vận dụng các kiến thức vào quá trình học tập. Thái độ học tập quyết định kết quả học tập vì thế các em phải có ý thức nghiêm túc học tập mọi lúc mọi nơi tự giác và chủ động trong mọi hoạt động của mình.
KẾT LUẬN VÀ KHUYẾN NGHỊ
1. Kết luận:
1.1. Đánh giá thực trạng;
Thực tế hiện nay ở các trường phổ thông công tác giảng dạy môn Tin học có nhiều thuận lợi hơn trước kia vì các trường đều được trang bị phòng máy vi tính có kết nối mạng Internet phục vụ cho việc dạy và học, nhưng bên cạnh những thuận lợi cũng có không ít những khó khăn như đó là môn phụ không có trong tổ hợp các môn thi THPT Quốc gia nên nhiều học sinh không hứng thú tham gia học tập nghiên cứu vì các em sợ ảnh hưởng đến kết quả học tập của các môn học khác. Chính vì vậy giáo viên dạy môn Tin học đều phải nhận thức rõ những thuận lợi khó khăn đối với môn học của mình để có những giải pháp nâng cao chất lượng dạy và học môn Tin học trong nhà trường phổ thông
Chính vì thực trạng như vậy nên tôi luôn đầu tư tìm tòi các phương pháp truyền đạt mới vận dụng linh hoạt các kiến thức chuyên môn trong môn học của mình để truyền đạt cho các em học sinh tạo cho các em sự hứng thú yêu thích môn học, tự giác tích cực học tập theo sự gợi ý động viên kích lệ của giáo viên. Chính vì vậy nên năm học nào những lớp tôi giảng dạy đều có các em học sinh yêu thích môn Tin học say mê lập trình hăng hái tham gia học tập ôn luyện để được vào đội tuyển thi học sinh giỏi cấp trường cũng như cấp tỉnh.
1.2. Các giải pháp đã thực hiện
Một trong những biện pháp để nâng cao chất lượng giáo dục học sinh là giáo viên phải tích cực tìm tòi nghiên cứu các phương pháp giảng dạy mới có hiệu quả, nghiên cứu hệ thống kiến thức phù hợp để cung cấp cho học sinh, chính vì lí do đó tôi đã viết SKKN “Khai thác một số bài toán điển hình để dạy về mảng một chiều trong ngôn ngữ lập trình Python” bằng các giải pháp cụ thể sau:
Nghiên cứu dãy bài toán điển hình về vòng lặp trong Tin học mà các em học sinh giỏi đều biết từ đơn giản đến phức tạp, từ dễ đến đến nâng cho giúp học sinh khá giỏi có hứng thú học tâp và nghiên cứu nhằm ôn tập các kiến thức đã học nâng cao khả năng lập trình tiết kiệm thời gian ôn luyện cho các kì thi học sinh giỏi cấp trường, cấp tỉnh....
Dựa trên thuật toán đã biết của các bài toán ví dụ về hai loại vòng lặp trong Tin học, tôi cho học sinh từng bước ôn luyện với dãy bài tập tương tự thông qua đó ôn tập lý thuyết nâng cao khả năng lập trình và tôi có so sánh kết quả sau khi áp dụng SKKN cho các năm học để rút ra kinh nghiệm.
1.3. Kết quả áp dụng các giải pháp:
Khi áp dụng SKKN vào với các nhóm học sinh khá giỏi các em đều tỏ ra rất hứng thú học tập vì hệ thống bài tập được xây dựng từ dễ đến khó có sự logic và đa dạng các kiểu thuật toán phát triển dần từ bài toán đơn giản đã biết đến các bài toán phức tạp hơn từ đó các em vận dụng được hầu hết các kiến thức về cấu trúc câu lệnh và các kiểu dữ liệu đã học để ôn tập được các kiến thức đã học trong chương trình lớp 10, 11 vận dụng vào để ôn tập các chuyên đề phục vụ cho thi học sinh giỏi cấp trường và cấp tỉnh lớp 12.
Từ năm học 2024 - 2025, Sau khi áp dụng sáng kiến vào việc giảng dạy ôn tập và bồi dưỡng học sinh giỏi thì đã rút ngắn được thời gian ôn tập cho các em, chất lượng buổi học, chất lượng đội tuyển đã được nâng lên rõ rệt.
2. Khuyến nghị
Để nâng cao hơn nữa chất lượng giảng dạy môn tin học đại trà, chất lượng bồi dưỡng học sinh giỏi môn tin học tôi xin đưa ra những khuyến nghị sau:
2.1. Đối với các cấp quản lý:
Các cấp quản lí cần quan tâm hơn nữa đầu tư về cơ sở vật chất cho các nhà trường, môn tin học là môn học đặc thù, vừa học lí thuyết kết hợp với học thực hành, do đó điều kiện cơ sở vật chất (chủ yếu là máy tính) ảnh hưởng rất nhiều đến chất lượng dạy và học. Tuy nhiên hiện nay số lượng, chất lượng máy tính tại hầu hết trường còn hạn chế, các máy tính không được thường xuyên nâng cấp bảo trì do đó ảnh hưởng không nhỏ đến chất lượng dạy học.
Giáo viên đóng vai trò rất quan trọng trong quá trình dạy học, phải có thầy cô giỏi tâm huyết với nghề say mê nghiên cứu tìm tòi đưa ra các phương pháp học tập mới tạo sự say mê hứng thú cho học sinh đối với môn học của mình. Nhưng thực tế hiện nay ngành giáo dục nói chung và môn Tin học nói riêng chưa khuyến khích được học sinh giỏi vào học và theo nghề sư phạm do chế độ đãi ngộ còn thấp chưa tương xứng với công sức lao động chính vì vậy rất cần sự quan tâm của các cấp lãnh đạo để có những thay đổi về chính sách, chế độ để góp phần nâng cao đời sống giáo viên.
Thường xuyên mở các lớp bồi dưỡng giáo viên theo chuyên đề bồi dưỡng học sinh giỏi, để giáo viên có điều kiện học tập kinh nghiệm giảng dạy, bổ sung, hoàn thiện kiến thức. Bằng cách thức nào đó, phổ biến rộng rãi các sáng kiến của môn học được công nhận đến toàn thể giáo viên.
2.2. Đối với tổ nhóm chuyên môn:
Tăng cường các hoạt động trong tổ nhóm chuyên môn, tổ chức các buổi sinh hoạt chuyên môn để giáo viên trao đổi kinh nghiệm trong việc giảng dạy.
Tham mưu với lãnh đạo nhà trường để hàng năm mời các báo cáo viên là cán bộ quản lý, giảng viên trường đại học, giáo viên các trường bạn, những người có kinh nghiệm bồi giảng dạy đến nói truyện, truyền đạt thêm kiến thức, kinh nghiệm.
2.3. Đối với giáo viên:
Các thầy (cô) giáo viên đóng vai trò rất quan trọng trong hoạt động giáo dục. Vì vậy các thầy (cô) phải tích cực tìm tòi, nghiên cứu các tài liệu chuyên môn, thường xuyên học hỏi từ thầy cô có kinh nghiệm, các bạn đồng nghiệp, đổi mới phương pháp giảng dạy theo hướng phát huy năng lực học sinh.
Giáo viên phải là người có tâm huyết với nghề có ý thức nghiêm túc với nghề nghiệp của mình, có trình độ chuyên môn vững vàng, biết vận dụng các phương pháp dạy học phù hợp vào bài giảng. Thái độ, sự tâm huyết của thầy cô quyết định sự hứng thú của học sinh đối với môn học, thầy cô phải là người khơi gợi được cảm hứng sáng tạo, cảm hứng học tập với các em học sinh. Chính vì vậy thầy cô phải trang bị cho mình những kiến thức chuyên môn vững vàng kết hợp với lòng tâm huyết của mình để truyền đạt kiến thức cho học sinh đạt kết quả cao nhất.
2.4. Đối với học sinh:
Để có được kết quả cao trong học tập, vai trò của các em học sinh là quan trọng nhất. Thái độ học tập sẽ quyết định kết quả học tập vì vậy các em học sinh phải xây dựng cho mình thái độ học tập nghiêm túc. Học sinh cần phải nắm vững cơ kiến thức cơ bản, tích cực, chủ động lĩnh hội các kiến thức mới của thầy (cô) truyền đạt, tự học hỏi, sáng tạo trong việc vận dụng các kiến thức vào quá trình làm bài.
. Lời kết
Sáng kiến kinh nghiệm của tôi trình bày một giải pháp không phải là mới mẻ nhưng cần thiết với các giáo viên đang trực tiếp giảng dạy ôn tập cho các em học sinh khá giỏi chuẩn bị các kì thi HSG cấp trường hay cấp Tỉnh , trên cơ sở SKKN của tôi giáo viên có thể xây dựng các hệ thống bài tập phát triển từ các bài toán đơn giản quen thuộc cho học sinh của mình giảng dạy nâng cao hiệu quả dạy và học môn học của mình. Trong quá trình viết SKKN không thể tránh khỏi thiếu sót và những điều chưa phù hợp. Rất mong được sự giúp đỡ đóng góp của ban giám khảo, các đồng nghiệp để sáng kiến của tôi được hoàn thiện hơn và công việc giảng dạy của tôi đạt kết quả cao hơn.
TÀI LIỆU THAM KHẢO
Sách giáo khoa tin học lớp 10, 11 _NXB Giáo dục.
Sách bài tập tin học lớp 10, 11_NXB Giáo dục.
Tài liệu bồi dưỡng giáo viên môn Tin học, Dự án PT GDtrH.
Phương pháp dạy học tin học, Trịnh Thanh Hải, NXB Giáo dục.
Phương pháp dạy học đại cương môn Tin học, Nguyễn Bá Kim, Lê Khắc Thành, NXB Đại học sư phạm.
Hồ Sĩ Đàm, Đỗ Đức Đông, Lê Minh Hoàng, Nguyễn Thanh Hùng, 2009, Tài liệu giáo khoa chuyên tin, NXB Giáo dục, quyển 1, quyển 2, quyển 3.
QUY ƯỚC VIẾT TẮT
Cụm từ viết tắt
Ý nghĩa
CNTT
Công nghệ thông tin
THPT
Trung học phổ thông
SKKN
Sáng kiến kinh nghiệm
CTC
Chương trình con
HS
Học sinh
MỤC LỤC
THÔNG TIN CHUNG VỀ SÁNG KIẾN.
TÓM TẮT SÁNG KIẾN
Hoàn cảnh nảy sinh sáng kiến 2
Điều kiện thời gian, đối tướng áp dụng sáng kiến 2
Nội dung của sáng kiến 3
Giá trị tổng quan của sáng kiến 4
Đề xuất kiến nghị để thực hiện áp dụng hoặc mở rộng sáng kiến 4
MÔ TẢ SÁNG KIẾN
1. Hoàn cảnh nảy sinh sáng kiến 5
1.1. Hoàn cảnh, lí do lựa chọn đề tài ..5
1.2. Mục đích của đề tài 6
1.3. Đối tượng nghiên cứu 7
1.4. Câu hỏi nghiên cứu ..7
1.5. Nhiệm vụ nghiên cứu. 7
1.6. Phương pháp nghiên cứu ..8
1.7. Đóng góp của đề tài 8
2. Cở sở lí luận 9
3. Thực trạng bộ môn Tin học tại các trường 9
4. Giải pháp áp dụng SKKN
4.1. Nội dung chính 10
4.2. Tiến trình thực hiện ..13
5. Kết quả thực hiện ..26
6. Điều kiện để sáng kiến được nhân rộng ..28
KẾT LUẬN VÀ KIẾN NGHỊ
1. Kết luận ...... 29
2. Khuyến nghị ...... . 30
TÀI LIỆU THAM KHẢO ...........32
QUY ƯỚC VIẾT TẮT 33
File đính kèm:
sang_kien_khai_thac_mot_so_bai_toan_dien_hinh_de_day_ve_mang.doc

