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

(SKKN 2022) Dạy học ngôn ngữ lập trình Python Phần cấu trúc danh sách trong chương trình Tin học 11

28 30 0

Đ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

Định dạng
Số trang 28
Dung lượng 888 KB

Nội dung

MỤC LỤC MỞ ĐẦU 1.1 Lí chọn đề tài 1.2 Mục đích nghiên cứu 1.3 Đối tượng nghiên cứu 1.4 Phương pháp nghiên cứu 1.5 Những điểm SKKN 2 NỘI DUNG 2.1 Cơ sở viết sáng kiến kinh nghiệm 2.1.1 Cơ sở lý luận 2.1.2 Cơ sở thực tiễn 2.2 Thực trạng việc dạy học ngơn ngữ lập trình phần cấu trúc mảng chương trình tin học 11 2.3 Các sáng kiến kinh nghiệm sử dụng để giải vấn đề 2.3.1.Các khái niệm kiểu danh sách(List) 2.3.2 Các phép toán danh sách 2.3.3 Các thao tác danh sách (list) 2.3.4 Thao tác nhập xuất liệu cho danh sách 17 2.3.5 Một số ví dụ 19 2.3.6 Một số tập luyện tập 22 2.4 Hiệu sáng kiến kinh nghiệm hoạt động giáo dục 24 KẾT LUẬN, KIẾN NGHỊ 25 Tài liệu tham khảo 26 Danh mục SKKN hội đồng SKKN ngành giáo dục đào tạo huyện, tỉnh cấp cao xếp loại từ C trở lên 27 MỞ ĐẦU 1.1 Lý chọn đề tài Trải qua 15 năm Bộ Giáo dục Đào tạo đưa môn Tin học trở thành môn học bắt buộc cho khối THPT, thu kết khả quan, song cịn nhiều bất cập làm mơn học chưa đáp ứng yêu cầu mà Bộ Giáo dục Đào tạo đề Đặc biệt, nay, CNTT ngành phát triển nhanh mạnh mẽ, chương trình mơn Tin học THPT trở lên lạc hậu, khơng cịn phù hợp nội dung công nghệ Do đổi mới, cải tiến chương trình mơn Tin học việc làm cần thiết Cụ thể chương trình Tin học 11 dạy lập trình ngơn ngữ lập trình bậc cao, sử dụng ngơn ngữ lập trình Pascal để viết chương trình minh hoạ Tuy nhiên ngơn ngữ q cũ, khơng có tính thực tiễn, nặng lý thuyết, số nội dung vượt chuẩn kiến thức kỹ năng, khơng phù hợp với trình độ nhận thức tâm lý lứa tuổi học sinh Trong thực tế có nhiều ngơn ngữ lập trình bậc cao C/C ++, Python…, với ưu điểm trội như: Cú pháp đơn giản, tốc độ xử lý nhanh, chế độ tương tác cho phép người lập trình thử nghiệm tương tác sửa lỗi đoạn mã, biên dịch chạy hầu hết tảng nay, …,được nhiều người dùng để phát triển website ứng dụng khác nhau, ngồi chúng cịn ngơn ngữ lựa chọn để giảng dạy trường học Mảng phần tất ngơn ngữ lập trình, tập hợp phần tử kiểu liệu Không giống mảng, danh sách (list) NNLT Python lưu trữ phần tử với kiểu liệu làm thứ mà mảng làm Chúng ta lưu trữ số nguyên, số thập phân, chuỗi danh sách Vì thế, làm việc với danh sách linh hoạt Tuy nhiên, Python khơng có cấu trúc liệu mảng gốc Vì vậy, sử dụng danh sách thay cho mảng Xuất phát từ lý lựa chọn đề tài nghiên cứu “Dạy học ngôn ngữ lập trình Python -phần cấu trúc danh sách chương trình tin học 11” Mục đích dùng cấu trúc danh sách ngơn ngữ lập trình Python thay cho cấu trúc mảng ngôn ngữ lập Pascal chương trình tin học 11 Hi vọng đề tài bổ sung thêm tài liệu cho học sinh giáo viên trường THPT tham khảo, góp phần nâng cao hiệu dạy - học mơn Tin học 11 1.2 Mục đích nghiên cứu - Thông qua đề tài cung cấp kiến thức cấu trúc danh sách ngôn ngữ lập trình Python - Chuyển nội dung phần cấu trúc mảng ngơn ngữ lập trình Pascal chương trình sách giáo khoa Tin học 11 tại, thành cấu trúc danh sách ngơn ngữ lập trình Python theo hướng dẫn điều chỉnh nội dung dạy học môn Tin học bậc THCS THPT từ năm học 2020-2021 mà Bộ GD-ĐT ban hành - Giới thiệu dạng tập câu hỏi ôn tập nội dung cấu trúc danh sách ngơn ngữ lập trình Python 1.3 Đối tượng nghiên cứu - Tổng quan có chọn lọc kiến thức cấu trúc danh sách ngơn ngữ lập trình Python để giảng dạy - Xây dựng hệ thống câu hỏi tập gắn phù hợp với trình độ Tin học 11 nhằm phục vụ kiểm tra - đánh giá học sinh 1.4 Phương pháp nghiên cứu - Phương pháp nghiên cứu lý luận nhằm thu thập thông tin lý luận để xây dựng sở lý luận đề tài - Phương pháp nghiên cứu thực tiễn nhằm thu thập thông tin để xây dựng nội dung đề tài: phương pháp nghiên cứu sản phẩm hoạt động, lấy ý kiến chuyên gia,… 1.5 Những điểm sáng kiến kinh nghiệm - Cung cấp kiến thức cấu trúc danh sách ngơn ngữ lập trình Python phù hợp với lực trình độ học sinh khối 11 - Hình thành câu hỏi trắc nghiệm mức độ khác để gây hứng thú học tập cho học sinh 2 NỘI DUNG 2.1 Cơ sở viết sáng kiến kinh nghiệm 2.1.1 Cơ sở lý luận Python ngơn ngữ lập trình hướng đối tượng cấp cao mạnh mẽ, tạo Guido van Rossum Hiện lên ngơn ngữ lập trình nhập mơn tốt cho người lần đầu tiếp xúc với ngôn ngữ lập trình Python hồn tồn tạo kiểu động sử dụng chế cấp phát nhớ tự động Python có cấu trúc liệu cấp cao mạnh mẽ cách tiếp cận đơn giản hiệu lập trình hướng đối tượng Cú pháp lệnh Python điểm cộng vơ lớn rõ ràng, dễ hiểu cách gõ linh động làm cho nhanh chóng trở thành ngơn ngữ lý tưởng để viết script (kịch bản) phát triển ứng dụng nhiều lĩnh vực, hầu hết tảng Mảng phần tất ngôn ngữ lập trình, tập hợp phần tử kiểu liệu Tuy nhiên, Python, khơng có cấu trúc liệu mảng gốc, có cấu trúc liệu phức hợp như: Danh sách (List), Tập hợp (Set), Tuple hay từ điển (Dictionary) Đây kiểu liệu phức hợp tập hợp nhiều liệu Nó có ý nghĩa lớn ngơn ngữ lập trình nói chung Python nói riêng Bởi cung cấp khả làm việc tập liệu không liệu đơn lẻ Danh sách Python kiểu liệu tuần tự, cho phép lưu trữ nhiều kiểu liệu khác nó, truy xuất đến phần tử bên thơng qua vị trí phần tử danh sách Vì coi mảng Pascal có nhiều điểm tương đồng với danh sách Python 2.1.2 Cơ sở thực tiễn Cơ sở thực tiễn để viết đề tài việc chuyển dạy học ngơn ngữ lập trình Pascal sang dạy học ngơn ngữ lập trình Python chương trình tin học 11 Theo hướng dẫn điều chỉnh nội dung dạy học môn Tin học bậc THCS THPT từ năm học 2020-2021 mà Bộ GD-ĐT ban hành, chương trình lớp 11 với nội dung giảng dạy chủ yếu liên quan đến ngôn ngữ lập trình Pascal điều chỉnh Việc điều chỉnh tập trung vào thay đổi nội dung vượt chuẩn kiến thức kỹ (KTKN), không ảnh hưởng nhiều đến mục đích mơn học Lập trình Ngơn ngữ lập trình bậc cao, xác định chương trình Tin học 11 năm 2006 Ngơn ngữ lập trình tùy chọn sử dụng để thể ví dụ minh họa công cụ ngôn ngữ để học sinh thực hành viết chương trình đơn giản.Trên tinh thần loại bỏ Pascal khỏi chương trình Tin học 11, Các sở giáo dục lựa chọn giảng dạy ngơn ngữ lập trình có tính cập nhật, đại, dạy trường phổ thông nhiều nước Python, C, C++… 2.2 Thực trạng việc dạy học ngôn ngữ lập trình phần cấu trúc mảng chương trình tin học 11 - Những năm học trước dạy học cấu trúc mảng ngơn ngữ lập trình Pascal, biết Pascal chọn sử dụng để dạy ngơn ngữ lập trình cho học sinh phổ thơng 30 năm trước khơng có đối thủ mặt diễn tả thuật toán cách sáng Tuy nhiên, 15 năm nay, Pascal ưu mặt có số nhược điểm gây khó khăn cho em học sinh so với số ngôn ngữ khác - SGK Tin học 11 trình bày yếu tố đặc trưng riêng Pascal sâu, không cần thiết Ngoài số nội dung Pascal gây tải cho dạy học, nặng lí thuyết vượt chuẩn kiến thức kỹ năng, số nội dung khơng phù hợp với trình độ nhận thức tâm sinh lý lứa tuổi học sinh 2.3 Các sáng kiến kinh nghiệm sử dụng để giải vấn đề 2.3.1.Các khái niệm kiểu danh sách(List) - Danh sách (List) Python tập hợp phần tử, mà phần tử có kiểu liệu giống khác - Khai báo danh sách sau: =[phần tử 0, phần tử 1, phần tử n-1] Trong phần tử danh sách liệt kê cặp dấu ngoặc vuông [] phân cách dấu phảy Ví dụ 1: ds1=[] #Danh sách rỗng ds2=[1,2,3] #Danh sách số nguyên gồm phần tử ds3=[1,”xin chào”, 4.5] #Danh sách hỗn hợp gồm phần tử ds4=[“Nhớ”,“Hà Nội”,“Hoa sữa”] #Danh sách chuỗi kí tự, gồm phần tử ds5=[“Máy tính”, [1,2],[“a”]] #Danh sách hỗn hợp gồm phần tử Để truy cập tới phần tử danh sách, ta dùng cú pháp sau: [chỉ số phần tử đó] Trong phần tử danh sách đánh số 0,1,2 từ trái qua phải -1,-2,-3, từ phải qua trái Ví dụ : ds=[‘P’,’Y’,’T ',’H’,’O’,’N’] Phần tử P Y T H O N Chỉ số -6 -5 -4 -3 -2 -1 Chỉ âm số ds[1]=’Y’ ;ds[-3]=’H’ Ví dụ : Kết Chú ý : Nếu truy cập vào số khơng tồn taijtrong danh sách trình thông dịch báo lỗi IndexError :list index out of range 2.3.2 Các phép toán danh sách a Nối (ghép) danh sách lặp danh sách * Nối (ghép) danh sách : ký hiệu dấu + ++…….+ Kết trả danh sách gồm , , …, phần tử ghép liên tiếp Ví dụ : list1=[1,2,3,4] list2=[2,3,4,5] list3= list1+ list2 print(list3) => kết trả [1,2,3,4,2,3,4,5] * Phép lặp danh sách : Ký hiệu dấu * *số lần lặp Hoặc số lần lặp* => kết trả số số lần lặp Ví dụ : Kết quả: b Phép tốn in not in in => Trả giá trị True thuộc , ngược lại trả trị False Ví dụ: Kết quả: c Phép tốn Min, Max danh sách max() => Trả kết phần tử lớn min() => Trả kết phần tử nhỏ Ví dụ: Kết quả: 2.3.3 Các thao tác danh sách (list) a Lấy số lượng phần tử danh sách: len() => Trả số lượng phần tử có Ví dụ ds=[1,2,3,4,5] print(len(ds)) => b Truy cập tới phần danh sách [chỉ số] => Truy cập tới phần tử có [chỉ số] Ví dụ : Kết : Chú ý : Để đưa tất phần tử danh sách ta thực sau : Kết : c Lấy phần tử liên tiếp danh sách Dạng : [a :b] => Trả danh sách gồm phần tử có số từ a đến số b-1 Ví dụ 1: ds=[1,2,3,2] print(‘Chỉ số phần tử là:’) print(ds.index(2)) Kết quả: Ví dụ : Kết quả: Từ ví dụ ta thấy x khơng thuộc chương trình báo lỗi sửa chương trình sau : g Hàm copy() .copy() =>trả 13 Ví dụ: ds=[1,2,3,2,9,8,10] ds1=ds.copy() print(ds1) => ds1=[1,2,3,2,9,8,10] h Hàm count() .count(x) =>trả số lần xuất phần tử x ds=[1,4,3,4,9,8,10] print(ds.count(4)) => i Thủ tục insert() .insert(n,x) =>Đây thủ tục để thêm phần tử x vào vị trí n Ví dụ: ds=[1,2,3,2,9,8,10] ds.insert(4,7) print(ds) => ds=[1,2,3,2,7,9,8,10] k Hàm sort() .sort() =>thực xếp phần tử tăng dần Ví dụ: ds=[1,2,3,2,9,8,10] ds.sort() print(ds) => ds=[1,2,2,3,8,9,10] 14 l Hàm reverse() reverse() =>thực đảo ngược vị trí xuất phần tử Ví dụ: ds=[1,2,3,2,9,8,10] ds reverse() print(ds) => ds=[10,8,9,2,3,2,1] m Hàm remove() remove(x) =>thực xóa phần tử x xuất Ví dụ: ds=[1,2,3,2,9,8,10] ds remove(2) print(ds) => ds=[1,3,2,9,8,10] n Hàm del del [chỉ số] =>thực xóa phần tử có [chỉ số] Ví dụ 1: Ví dụ 2: ds=[1,2,3,2,9,8,10] ds=[1,2,3,2,9,8,10] del ds[2] del ds[1 :3] print(ds) print(ds) => ds=[1,2,2,9,8,10] => ds=[1,9,8,10] o Hàm pos() pos(x) =>thực xóa phần tử có số x 15 Ví dụ: ds=[1,2,3,2,9,8,10] ds pos(2) print(ds) => ds=[1,2,2,9,8,10] 2.3.4 Thao tác nhập xuất liệu cho danh sách a Thao tác nhập liệu từ bàn phím cho phần tử kiểu danh sách =[() for in Trong đó:  split() dùng để cắt chuỗi  , ) đặt theo quy tắc đặt tên biến  kiểu int float Với cách nhập liệu từ bàn phím cho danh sách phần tử ngăn cách dấu cách, kết thúc nhập enter Ví dụ : Kết : 16 b Dùng hàm append để nhập phần tử kiểu cho danh sách Kết : 17 c Dùng phép toán ghép danh sách để tạo danh sách phần tử kiểu d Đưa danh sách hình for i in ds : print(i) 2.3.5 Một số ví dụ Ví dụ Tìm phần tử lớn dãy số nguyên Input: Số nguyên dương N (N  250) dãy N số nguyên dương a1, a1 , , an, số không vượt 500 Output: Chỉ số giá trị phần tử lớn dãy số cho (nếu có nhiều phần tử lớn cần đưa số chúng) 18 Kết Ví dụ Sắp xếp dãy số nguyên thuật toán tráo đổi Input: Số nguyên dương N (N  250) dãy N số nguyên dương a1, a1 , , an, số không vượt 500 Output: Dãy số A xếp thành dãy khơng giảm 19 Kết : Ví dụ Tìm kiếm nhị phân Input: Dãy A dãy tăng gồm N (N  250) số nguyên dương a1, a1 , , an, số nguyên k Output: Chỉ số i mà = k thông báo "Khong tim thay" khơng có số hạng dãy A có giá trị k Để giải tốn này, sử dụng thuật tốn tìm kiếm nhị phân trình bày sách giáo khoa Tin học 10 20 Kết : 21 2.3.6 Một số tập luyện tập a Các câu hỏi trắc nghiệm Câu :Kiểu liệu danh sách ? A Là tập hợp phần tử kiểu liệu nhiều kiểu liệu B Là phần không câng thiết tất ngôn ngữ lập trình C Là tên cho biến, hàm NNLT Python D Là đoạn lệnh dùng để lặp lại khối lệnh điều kiện kiểm tra Câu :Kết đầu đoạn lệnh ? ds=[1,5,9,int(”0 ”)] print(sum(ds)) A 16 B 15 C.63 D A,B,C sai Câu : Kết đầu đoạn lệnh ? ds=[‘a’,’aa’,’aaa’,’b’,’bb’,’bbb’] print(ds[ :-1]) A [a,aa,aaa,b,bb] B [‘a’,’aa’,’aaa’,’b’,’bb’] C [‘a’,’aa’,’aaa’,’b’,’bb’,’bbb’] D Báo lỗi Câu : Đoạn lệnh sau làm nhiệm vụ ? a=[] for x in range(10) : a.append(int(input())) A Nhập liệu từ bàn phím cho mảng a có 10 phần tử số nguyên B Nhập liệu từ bàn phím cho mảng a có 10 phần tử số thực C Nhập liệu từ bàn phím cho mảng a có 10 phần tử xâu D Khơng có đáp án Câu : Cách khai báo biến mảng sau đây, cách sai : A ds=[1,2,3] B ds=[x for x in range(3)] C ds=[int(x) for x in input().split()] D ds=list(3) Câu : Kết đầu đoạn lệnh ? ds=[”Bơi ”,”Võ ”, ”Bóng chuyền ”, ”Cầu lông ”, ”Xe đạp ” ] x=len(ds) print(”Độ dài danh sách ds ”,x) A B C D 22 Câu : Kết đầu đoạn lệnh ? ds=[”Bơi ”,”Võ ”, ”Bóng chuyền ”, ”Cầu lơng ”, ”Xe đạp ” ] ds.pop(4) for x in ds : print(x) A Bơi B Bơi C Bơi D A,B,C sai Võ Võ Võ Bóng chuyền Bóng chuyền Bóng chuyền Cầu lông Cầu lông Xe đạp Câu : Trong NNLT Python xếp phần tử danh sách theo thứ tự tăng dần sử dụng phương thức : A clear() B pop() C sort() D remove() Câu 9: Trong NNLT Python, phương thức dùng để thêm phần tử vào cuối danh sách : A append() B insert() C copy() D.pop() Câu 10: Trong NNLT Python, hàm dùng để trả độ dài danh sách : A len() B.long() C.Len() D.count() Câu 11: Trong NNLT Python, để xố tất phần tử có danh sách sử dụng phương thức : A clear() B pop() C sort() D remove() Câu 12 : Cho khai báo danh sách sau : a=list(”3456789 ” Để in giá trị phần tử thứ danh hình ta viết : A print(a[2]) B print(a[1]) C print(a(2)) D print(a(1)) b Bài tập thực hành Nhập vào dãy n số nguyên a Đọc hình thông tin sau : Tổng phần tử dãy Số lượng số hạng dương tổng số hạng dương Trung bình cộng dãy Trung bình cộng phần tử dương List Trung bình cộng phần tử âm List Số hạng âm lớn dãy số Số hạng dương nhỏ dãy số Số lượng số hạng dương liên tiếp có tổng lớn Đoạn có số hạng dương liên tiếp có tổng lớn (nếu có nhiều đoạn thoả mãn đọc hình : số đoạn thoả mãn đoạn đó) Số lượng phần tử giá trị X (nguyên) cho trước Số lượng phần tử >= giá trị X (nguyên) cho trước 10 Chèn số nguyên m (m nhập vào từ bàn phím) vào vị trí k 23 2.4 Hiệu sáng kiến kinh nghiệm hoạt động giáo dục Trên sở nghiên cứu hồn thành biện pháp, tơi tiến hành áp dụng biện pháp trường THPT chuyên Lam Sơn, kết thu cụ thể sau: - Góp phần đổi nội dung, phương pháp hình thức tổ chức dạy học môn Tin học, tạo tương tác đa chiều: GV – HS, HS – HS - Thông qua việc quan sát, nhận thấy em học sinh say mê hứng thú học tập - Phát huy phẩm chất lực tư duy, tìm tịi, sáng tạo học sinh 24 KẾT LUẬN VÀ ĐỀ NGHỊ Sau thời gian học tập nghiên cứu tơi hồn thành SKKN “Dạy học ngơn ngữ lập trình Python -phần cấu trúc danh sách chương trình tin học 11” Nội dung SKKN nhằm mục đích cung cấp kiến thức cấu trúc danh sách ngôn ngữ lập trình Python, chuyển nội dung phần cấu trúc mảng ngơn ngữ lập trình Pascal chương trình sách giáo khoa Tin học 11 tại, thành cấu trúc danh sách ngơn ngữ lập trình Python Đồng thời đưa dạng tập câu hỏi ôn tập nội dung cấu trúc danh sách ngơn ngữ lập trình Python Tuy nhiên, thời lượng học tập lớp ít, tài liệu học tập khơng có nhiều nên việc triển khai dạy học lập trình ứng dụng thực tế tốn nâng cao cịn hạn chế Trong thời gian tới tơi cố gắng hồn thiện chương trình tốt hơn, để tiếp tục tiến hành giảng dạy cho khóa học Tôi xin chân thành cảm ơn XÁC NHẬN CỦA THỦ TRƯỞNG ĐƠN VỊ Thanh Hóa, ngày tháng năm 2022 Tôi xin cam đoan SKKN không sao chép nội dung người khác Nguyễn Thị Huyền 25 Tài liệu tham khảo Python Võ Duy Tuấn Đồ án tốt nghiệp: “Tìm hiểu ngơn ngữ lâp trình Python, viết chương trình thử nghiệm dự báo biến động giá chứng khoán” SV Lê Gia Tiến trường Đại học quản lý cơng nghệ Hải Phịng 26 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ọ tên tác giả: Nguyễn Thị Huyền Chức vụ đơn vị công tác: Giáo viên trường trung học phổ thông chuyên Lam Sơn TT Tên đề tài SKKN Cấp đánh giá xếp loại (ngành GD cấp huyện/tỉnh;Tỉnh ) Kết đánh giá xếp loại (A,B, C) Năm học đánh giá xếp loại Một số giải pháp nâng cao chất lượng dạy học hệ điều hành thuộc chương II-Tin học 10 Hội đồng KHGD ngành B 2011-2012 Sử dụng phương pháp qui hoạch động bồi dưỡng HSG cấp Tỉnh môn Tin học Hội đồng KHGD ngành B 2015-2016 Thuật tốn Tìm Kiếm nhị phân bồi dưỡng học sinh giỏi cấp Tỉnh môn Tin học Hội đồng KHGD ngành B 2017-2018 27 ... ngữ lập trình Python -phần cấu trúc danh sách chương trình tin học 11? ?? Mục đích dùng cấu trúc danh sách ngôn ngữ lập trình Python thay cho cấu trúc mảng ngơn ngữ lập Pascal chương trình tin học. .. cấu trúc danh sách ngơn ngữ lập trình Python - Chuyển nội dung phần cấu trúc mảng ngơn ngữ lập trình Pascal chương trình sách giáo khoa Tin học 11 tại, thành cấu trúc danh sách ngôn ngữ lập trình. .. thức cấu trúc danh sách ngơn ngữ lập trình Python, chuyển nội dung phần cấu trúc mảng ngơn ngữ lập trình Pascal chương trình sách giáo khoa Tin học 11 tại, thành cấu trúc danh sách ngôn ngữ lập trình

Ngày đăng: 05/06/2022, 10:05

HÌNH ẢNH LIÊN QUAN

d. Đưa danh sách ra màn hình - (SKKN 2022) Dạy học ngôn ngữ lập trình Python Phần cấu trúc danh sách trong chương trình Tin học 11
d. Đưa danh sách ra màn hình (Trang 19)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w