Skkn 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 136 0
Skkn 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

Đ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

I MỤC LỤC 1 MỞ ĐẦU 1 1 1 Lí do chọn đề tài 1 1 2 Mục đích nghiên cứu 2 1 3 Đối tượng nghiên cứu 2 1 4 Phương pháp nghiên cứu 2 1 5 Những điểm mới nhất của SKKN 2 2 NỘI DUNG 2 2 1 Cơ sở viết sáng kiến[.]

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 skkn 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 là 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, trong 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 skkn 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 skkn 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 hoàn toà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 là 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, trong 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 đã được đ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 skkn 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 q sâu, khơng cần thiết Ngồ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ử skkn 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ụ 2 : 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ụ 3 : 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 skkn 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ụ : skkn Kết quả: b Phép toán in not in in => Trả giá trị True thuộc , ngược lại trả trị False Ví dụ: Kết quả: skkn c Phép toá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ố] skkn Ví dụ : Kết là : Chú ý : Để đưa tất phần tử danh sách ta thực sau : Kết quả : c Lấy phần tử liên tiếp danh sách Dạng 1 : [a :b] => Trả danh sách gồm phần tử có số từ a đến số b-1 skkn Ví dụ 1: ds=[1,2,3,2] print(‘Chỉ số phần tử là:’) print(ds.index(2)) Kết quả: Ví dụ 2 : 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 skkn 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 skkn 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 skkn 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 là : 16 skkn b Dùng hàm append để nhập phần tử kiểu cho danh sách Kết là : 17 skkn 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 skkn 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 skkn ... 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. .. 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ô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,

Ngày đăng: 02/02/2023, 08:30

Tài liệu cùng người dùng

Tài liệu liên quan