Phát triển kỹ năng và tư duy lập trình cấu trúc câu lệnh rẽ nhánh thông qua hệ thống bài tập

22 5 0
Phát triển kỹ năng và tư duy lập trình cấu trúc câu lệnh rẽ nhánh thông qua hệ thống bài tậ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

SỞ GIÁO DỤC VÀ ĐÀO TẠO THANH HOÁ TRƯỜNG THPT CHU VĂN AN SÁNG KIẾN KINH NGHIỆM PHÁT TRIỂN KỸ NĂNG VÀ TƯ DUY LẬP TRÌNH CẤU TRÚC CÂU LỆNH RẼ NHÁNH THÔNG QUA HỆ THỐNG BÀI TẬP Người thực hiện: Nguyễn Thị Hằng Chức vụ: Giáo viên SKKN thuộc lĩnh mực : Tin học THANH HOÁ NĂM 2021 MỤC LỤC A ĐẶT VẤN ĐỀ I Lý chọn đề tài Là người giáo viên, bước lên bục giảng, chắn có trăn trở tơi, là: truyền đạt đầy đủ kiến thức cho học sinh mình, cho học sinh cảm thấy học thật hữu ích, đem lại hứng thú, say mê học tập cho em Mỗi giáo viên phải có lịng yêu nghề, kiến thức, kỹ phương pháp giảng dạy Tình yêu nghề phải xác định từ bước chân vào đường sư phạm, tình u ngày vun đắp thêm theo năm tháng, qua lớp lớp hệ học sinh Kiến thức rộng lớn vơ cùng, giáo viên phải học tập suốt đời, phải học thêm sách vở, đồng nghiệp, internet Kỹ luyện theo năm tháng, người có phương pháp, cách truyền đạt, cho học sinh hiểu vận dụng để làm Kỹ kiến thức dần trở thành kinh nghiệm giảng dạy riêng người Luôn trăn trở với hệ học trị, mong muốn mang lại tốt đẹp em, xây dựng đề tài: "Phát triển kỹ tư lập trình cấu trúc câu lệnh rẽ nhánh thơng qua hệ thống tập", mong nhận nhiều đóng góp phản hồi để đề tài ngày hồn thiện Mơn tin học mơn có đặc thù riêng, mơn liên quan nhiều đến sở vật chất: máy tính, máy chiếu, trường đáp ứng đầy đủ Vì để gây hứng thú cho em học tin, lý thuyết lớp giáo viên phải cố gắng nhiều, từ đến cách thức bố trí tiết học, để em nắm vững kiến thức, dẫn đến thực hành hiệu Mặt khác, với nội dung chương trình lớp 11, lần em làm quen với ngơn ngữ lập trình, lần biết máy tính giải tốn nào, nên em cịn nhiều bỡ ngỡ Ngồi việc phải tìm hiểu cấu trúc ngơn ngữ, nhớ câu lệnh, mà em cịn phải có tư tốn học, điều gây phần khó khăn em có lực học mơn tốn yếu Chính lý này, suy nghĩ, rút kinh nghiệm từ năm dạy trước, dạy lập trình cho em, hướng em tới đơn giản, dễ hiểu, gần gũi quen thuộc để em nắm vững kiến thức, lập trình giải tốn, để tiết học lập trình khơng cịn trừu tượng, căng thẳng em, thay vào cụ thể, rõ ràng II Mục đích nghiên cứu Với chủ trương giáo dục: lấy học sinh làm trung tâm, người thầy đóng vai trò dẫn dắt học sinh, hướng dẫn em, theo phương châm tôi, phải dạy cho học sinh phải hiểu làm Muốn học sinh hiểu được, giáo viên phải nghiên cứu cách giảng dạy, truyền đạt đúng, đủ kiến thức, phải dễ hiểu nhất, cụ thể Giáo viên phải thật tận tâm, nhiệt huyết với dạy truyền cảm hứng học tập cho em, tránh mệt mỏi, buồn ngủ, nhàm chán tiết học Khi học sinh hiểu, nắm vững kiến thức học, để học sinh làm tập, thực hành giáo viên phải có hệ thống tập cụ thể, từ dễ đến khó, từ đơn giản đến phức tạp, để nâng dần khả tư em, để em lấy dễ áp dụng làm khó Học sinh thường hay suy nghĩ theo tư lối mòn, thụ động việc giải tốn, giáo viên cần phải kích thích mày mị tìm hiểu, sáng tạo em, dẫn dắt, hướng dẫn em tìm hướng giải khơng giải cụ thể cho em Khi nghiên cứu đề tài này, mục đích tơi đưa hệ thống tập cụ thể, cách thức dạy, để học sinh dễ hiểu nhất, nắm vững kiến thức làm Học sinh khơng cịn cảm thấy mơn tin khó hiểu, trừu tượng ngơn ngữ cấu trúc lập trình Khi em làm số bài, thực hành chạy chương trình, em u thích hứng thú mơn học III Đối tượng phạm vi nghiên cứu Đối tượng nghiên cứu - Nghiên cứu nội dung kiến thức chương tình Tin học phổ thơng, cụ thể tin học 11 - Nghiên cứu tài liệu liên quan đến thuật tốn ngơn ngữ lập trình Pascal - Nghiên cứu tâm sinh lý học sinh THPT - Nghiên cứu kỹ năng, phương pháp dạy học, đổi theo hướng tích cực, lấy học sinh làm trung tâm Phạm vi nghiên cứu Trong phạm vi đề tài này, xin đưa số kinh nghiệm phương pháp dạy học nội dung cấu trúc rẽ nhánh (bài 9- sgk tin học 11) thông qua hệ thống tập cụ thể IV Nhiệm vụ nghiên cứu Để đạt mục đích nghiên cứu đề ra, cần phải thực nhiệm vụ sau: - Nghiên cứu sở lý luận dạy học - Nghiên cứu sở thực tiễn, thực trạng dạy học trường THPT - Nghiên cứu phương pháp truyền đạt, cách thức bố trí giảng để tạo hứng thú cho học sinh, tạo cho em say mê lập trình - Xây dựng hệ thống tập đa dạng, phù hợp với lực học sinh V Phương pháp nghiên cứu Nghiên cứu lý thuyết - Nghiên cứu tài liệu ngơn ngữ lập trình Pascal, tài liệu phương dạy học toán học, tư toán học, tài liệu giáo dục học, tâm lý học - Nghiên cứu công văn hướng dẫn Bộ Giáo dục Đào tạo, Sở Giáo dục Đào tạo vấn đề đưa Tin học vào chương trình THPT vấn đề yêu cầu chất lượng giáo dục Thực nghiệm sư phạm - Thơng qua q trình dạy, nắm bắt khả tâm lý học sinh học môn Tin học - Thông qua việc trao đổi với giáo viên đồng nghiệp để hiểu rõ lực học, khả tiếp thu lớp để có thay đổi, điều chỉnh cách dạy phù hợp đối tượng - Kiểm chứng thông qua việc tiến hành giảng dạy đối tượng: lớp thực nghiệm lớp đối chứng để so sánh kết Lớp đối chứng theo phương pháp cũ, giáo viện dạy lý thuyết, có hướng dẫn vài tập ví dụ Lớp thực nghiệm áp dung phương pháp mới, lấy học sinh làm trung tâm, giáo viên dẫn dắt, gợi động cơ, hướng dẫn học sinh giải vấn đề, thực nghiệm đề tài nghiên cứu Cụ thể sau: Lớp đối chứng Lớp thực nghiệm Lớp 11B1 Lớp 11B3 Lớp 11B2 Lớp 11B5 Số lượng 40 hs 42 hs 40 hs 41 hs Giỏi hs 12.5% hs 7.1% hs 10% hs 7.3% Khá 19 hs 47.5% 12 hs 28.6% 20 hs 50% 10 hs 24.4% Trung bình 14 hs 35% 21 hs 50% 13 hs 32.5% 22 hs 53.7% Yếu hs 5% hs 14.3% hs 7.5% hs 14.6% Kết nghiên cứu kiểm chứng thơng qua q trình dạy thực nghiệm, so sánh kiểm tra lớp có lực học, khả tiếp thu ngang So sánh lớp 11B1 11B2, so sánh lớp 11B3 11B5 B GIẢI QUYẾT VẤN ĐỀ I Cơ sở lý luận * Một số khái niệm lập trình Tin học 11 với nội dung hướng học sinh làm quen với khái niệm lập trình ngơn ngữ lập trình, cụ thể ngơn ngữ lập trình Pascal Để em giải tốn cụ thể Q trình giải tốn thực cơng việc: tìm hiểu tốn, xác định thuật tốn, viết chương trình Cụ thể, đưa toán, giáo viên hướng học sinh thực bước sau: Bước 1: giống toán học, học sinh phải xác định tốn, tìm Input Output - Input: thơng tin có - Output: Các thơng tin cần tìm từ Input Bước 2: Xác định thuật toán Thuật toán để giải toán dãy hữu hạn thao tác xếp theo trình tự xác định cho sau thực dãy thao tác ấy, từ Input tốn, ta nhận Output cần tìm Bước 3: Viết chương trình (lập trình) Trước viết chương trình phải hiểu ngơn ngữ lập trình gì? Lập trình làm cơng việc gì? Ngơn ngữ lập trình hệ thống kí hiệu tn theo quy ước ngữ pháp ngữ nghĩa, dùng để xây dựng chương trình cho máy tính + Ngữ pháp: Quy ước quan hệ ký hiệu Ví dụ ngơn ngữ Pascal: ký hiệu Begin, end phải thành cặp, sau từ khóa if biểu thức điều kiện, sau từ khóa then + Ngữ nghĩa: Quy ước ý nghĩa kí hiệu Ví dụ ngôn ngữ Pascal: dấu + biểu thị cho phép cộng, dấu - biểu thị cho dấu trừ …Phát biểu if … then … có nghĩa “nếu … làm …” Lập trình sử dụng cấu trúc liệu câu lệnh ngơn ngữ lập trình cụ thể để mô tả liệu diễn đạt thao tác thuật toán II Cơ sở thực tiễn Một số thuận lợi khó khăn thực nghiên cứu đề tài: * Thuận lợi: - Môn tin học môn nên học sinh hứng thú với mơn học, u thích thực hành - Nhà trường quan tâm, tạo điều kiện sở vật chất, phòng máy thực hành, máy chiếu, thư viện sách có nhiều tài liệu, sách tham khảo tin học - Đội ngũ giáo viên tin học trẻ, đào tạo theo chuyên ngành, có nhiều tâm huyết, thường xuyên trao đổi chuyên môn, học hỏi kinh nghiệm góp ý, bổ sung cho - Một số học sinh u thích mơn học tự nhiên, đam mê lập trình, nên em tỏ hứng thú chăm tiết học lý thuyết, nhiệt tình say sưa thực hành, điều mang lại niềm vui động viên lớn cho giáo viên * Khó khăn: - Vì mơn tự nhiên, liên quan nhiều đến tốn học, nên số em có kiến thức yếu bên tự nhiên tỏ ngại học, không tập trung cao - Một số học sinh có tư tưởng môn tin học môn phụ, không thi đại học, khơng thi tốt nghiệp nên em có suy nghĩ học đối phó, khơng trọng - Do phần lớn học sinh nơng thơn, gia đình em chưa có máy tính, nên khả tự thực hành, ơn nhà khó - Cơ sở vật chất nhà trường nhiều hạn chế cho việc dạy học theo phương pháp III Biện pháp tổ chức thực Hướng dẫn lý thuyết Khi dạy lý thuyết cấu trúc rẽ nhánh, giáo viên phải làm sáng rõ rẽ nhánh gì, thơng qua ví dụ cụ thể từ thực tiễn sống toán học Vd1: Nếu mai trời mưa đường trơn Vd2: Nếu em học chăm em điểm cao, khơng em bị điểm Vd3: Nếu n>0 n số dương Vd4: Nếu a>b giá trị lớn a, khơng giá trị lớn b Giáo viên rõ cho học sinh thấy Vd1 Vd3 cách diễn đạt rẽ nhánh dạng thiếu: Nếu Ở Vd2 Vd4 rẽ nhánh dạng đủ: Nếu khơng ( nói : Nếu , ngược lại ) Để diễn đạt câu lệnh có dạng rẽ nhánh trên, ngơn ngữ lập trình Pascal sử dụng dạng cấu trúc rẽ nhánh If- then a) Dạng thiếu: If then ; Điều kiện Đúng Câu lệnh Sai + Hoạt động: Nếu biểu thức điều kiện câu lệnh thực hiện, điều kiện sai câu lệnh bị bỏ qua Vd1: Nếu n>0 n số dương => If n> then write (' n la so duong '); Vd2: Nếu tam giác có kích thước cạnh a=b=c tam giác => if (a=b) and (b=c) then write(' la tam giac deu'); b) Dạng đủ: if < điều kiện> then < câu lệnh 1> else < câu lệnh 2>; Câu lệnh Sai Điều kiện Đúng Câu lệnh + Hoạt động: Nếu biểu thức điều kiện câu lệnh thực hiện, điều kiện sai câu lệnh thực vd1: if a>b then Max:=a else Max:=b; vd2: Nếu a chia hết cho a số chẵn, khơng a số lẻ => if a mod 2= then write ('a la so chan') else write( ' a la so le '); Hệ thống tập rẽ nhánh Vì nội dung chương trình dạy lập trình có cấu trúc, thuộc 9: Cấu trúc rẽ nhánh, học sinh bỡ ngỡ viết chương trình, chưa có thời gian để thực hành nhiều Mặt khác, kiến thức rẽ nhánh áp dụng nhiều tập thực tiễn, tập chương sau, tơi muốn đưa hệ thống tập để học sinh nắm thật vững kiến thức, thực hành thành thạo tập, hình thành cho kỹ giải tập có liên quan cấu trúc rẽ nhánh Hệ thống tập mà đưa từ tập đơn giản để học sinh nắm vững kiến thức rẽ nhánh nào, làm để chuyển từ ngơn ngữ tốn học sang câu lệnh lập trình? Những toán gắn liền với thực tế, hay gặp tốn học, để em có kiến thức yếu mơn tốn hiểu rõ chất tốn học, hiểu rõ máy tính giải tốn tốn học thơng qua chương trình Qua trình dạy học khảo sát năm trước, nhận thấy nhiều em cịn mơ hồ, lập trình gì, để làm gì, có ứng dụng sống, có thiết thực khơng Nhiều em khơng hiểu rõ chất, ứng dụng môn học, em cảm thấy khơng cần thiết, khơng có niềm đam mê thật sự, dẫn đến tinh thần học rời rạc, khơng tâm Khi dạy lập trình, tơi thường nhấn mạnh vào ý nghĩa ứng dụng thực tế mơn học, ứng dụng giải toán mà em biết, học, gắn liền với sống Từ đem lại hứng khởi cho mơn học, ý thức học tập em nâng cao Khi đưa toán, việc yêu cầu HS xác định tốn, cụ thể xác định Input Output, cơng việc em thành thạo chương trình lớp 10, nên việc xác định khơng gặp khó khăn Tiếp theo giáo viên hướng dẫn toán để em xác định nội dung rẽ nhánh tốn: "Nếu điều kiện xảy thực gì, ngược lại điều kiện khơng xảy thực gì?" Khi hiểu nội dung rẽ nhánh toán, giáo viên yêu cầu em chuyển sang ngơn ngữ lập trình Pascal, tốn đầu em cịn gặp khó khăn, sau thực số bài, em quen dần với cách chuyển từ nội dung rẽ nhánh sang câu lệnh rẽ nhánh, thành thạo với câu lệnh học Giáo viên hướng dẫn kỹ tập đầu để em hiểu rõ nội dung sau từ khóa Else với câu lệnh If nào? để em phân biệt rẽ nhánh Đồng thời giáo viên phải ý cách trình bày viết câu lệnh, hướng dẫn em cách viết câu lệnh, cách trình bày chương tình cho khoa học, dễ nhìn dễ hiểu Mặt khác, trình dạy học năm trước, tơi thấy nhìn chung học đến câu lệnh ghép em mơ hồ, thường em nên đặt cặp từ khóa begin end, đoạn lệnh lại có cặp từ khóa Begin End Do đó, dạy nội dung cấu trúc rẽ nhánh, đưa số tập có nội dung câu lệnh ghép, q trình dạy, tơi hướng dẫn cụ thể cho em nội dung Sau biết chuyển từ nội dung rẽ nhánh sang câu lệnh có nghĩa học sinh nắm cấu trúc rẽ nhánh tốn, nắm vững cấu trúc chương trình, câu lệnh Pascal em viết chương trình hồn chỉnh Bài tốn 1: Nhập vào số nguyên a, b Tìm giá trị lớn số (Max) * HS Xác định toán: + Input: số nguyên a,b + Output: Giá trị Max (a, b) Với toán này, giáo viên hướng dẫn học sinh làm theo cách để làm sáng tỏ câu lệnh rẽ nhánh dạng thiếu dạng đủ: a) Rẽ nhánh dạng thiếu: * GV yêu cầu HS đưa ý tưởng toán * GV hướng dẫn: việc tìm giá trị lớn số thực tế đơn giản, máy tính giải nào? Đầu tiên ta có gán giá trị Max nhận giá trị a b Sau đem so sánh giá trị Max với giá trị lại, Max nhỏ giá trị cịn lại Max thay đổi nhận giá trị đó, ngược lại Max giữ nguyên giá trị ban đầu, khơng cần phải thực cơng việc * HS xác định nội dung (ND) rẽ nhánh: Đầu tiên gán Max nhận giá trị a: Max:=a; Nếu Maxb then Max:=a else Max:=b; Writeln( 'gia tri lon nhat la:', Max); Readln; End * GV kiểm tra lại chương trình, nhắc lại ý nghĩa câu lệnh Từ tốn 1, giáo viên vận dụng để học sinh xây dựng toán tương tự: Tìm giá trị nhỏ số a, b (Min) Có thể cần yêu cầu học sinh lên viết câu lệnh rẽ nhánh, không cần viết chương trình Bài tốn 2: Phát triển tốn Tìm giá trị lớn số nguyên a, b, c * Xác định toán: + Input: số nguyên a, b, c +Output: Max (a,b,c) * GV yêu cầu HS đưa ý tưởng toán * GV Hướng dẫn: Muốn tìm giá trị lớn số trước hết phải tìm giá trị lớn cặp số, sau lấy kết lớn so sánh với số cịn lại Với tốn này, giáo viên hướng em tới dạng toán mà chương trình có nhiều lệnh rẽ nhánh, để em làm quen, hiểu rõ cấu trúc * HS Xác định ND rẽ nhánh: Nếu a>b Max:=a else Max:=b; Nếu Maxb then Max:=a else Max:=b; If Maxb then Max:=a else Max:=b; If Max0, sau câu lệnh Else có nhiều câu lệnh (cụ thể: câu lệnh Write in kết quả, câu lệnh tính x1, x2) nên câu lệnh phải đặt cặp từ khóa Begin end * HS xác định câu lệnh rẽ nhánh: If Delta

Ngày đăng: 18/05/2021, 20:21

Từ khóa liên quan

Mục lục

  • Người thực hiện: Nguyễn Thị Hằng

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

Tài liệu liên quan