Luận văn Bước chuyển từ lời giải toán học sang lời giải tin học của một bài toán

Trên cơ sở phân tích và so sánh mối quan hệ thể đối với thuật toán trong dạy học Toán học phổ thông (giai đoạn 1990 – 2000) và trong dạy học Tin học phổ thông (giai đoạn 2006 đến nay), chúng tôi nhận thấy rằng: - Khi thuật toán được đưa vào lồng ghép trong Toán học thì thể chế dạy học Toán học phổ thông quan tâm đến xây dựng thuật toán cho các bài toán đã có sẵn lời giải toán học. - Khi thuật toán được dạy tách rời trong môn học Tin học, thể chế dạy học Toán phổ thông hiện hành không có trách nhiệm hình thành ở HS các kĩ năng thuật toán mặc dù có cơ hội, mà điều đó được trao cho thể chế dạy học Tin học (Giả thuyết H2). - Trong cả hai thể chế dạy học Toán học phổ thông (giai đoạn 1990 -2000) và thể chế dạy học Tin học phổ thông (giai đoạn hiện nay), yếu tố công cụ tính toán không được chú trọng. - Quá trình xây dựng chuyển đổi từ lời giải toán học sang lời giải tin học dưới dạng thuật toán không được SGK tin học 10 hiện nay làm rõ. Từ đó, chúng tôi xây dựng một thực nghiệm ở chương 4, thực nghiệm tạo bước chuyển từ lời giải toán học sang lời giải tin học của một bài toán trên phần mềm Algobox và quan sát các ứng xử của HS khi làm việc với phép gán (hoán đổi giá trị hai biến).

pdf107 trang | Chia sẻ: builinh123 | Lượt xem: 922 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Luận văn Bước chuyển từ lời giải toán học sang lời giải tin học của một bài toán, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
uy nhiên quá trình thực hiện phép gán này không được [M] giới thiệu. Vì vậy chúng tôi tiến hành thực nghiệm này nhằm mục đích: - Quan sát những ứng xử của học sinh khi làm việc với phép gán hai biến (hoán đổi giá trị hai biến) và những khó khăn của HS khi xây dựng thuật toán cho bài toán “mới” và những ảnh hưởng từ yếu tố công cụ (MT) đến quá trình xây dựng thuật toán. - Xây dựng tình huống gắn với phần mềm Algobox nhằm tạo bước chuyển từ lời giải toán học sang lời giải tin học của một bài toán. 4.2. Giới thiệu thực nghiệm 4.2.1. Hình thức thực nghiệm: - Đối tượng: Chúng tôi tiến hành thực nghiệm trên HS lớp 11 trường THPT Trần Phú khi đã học xong §10 Cấu trúc lặp (Tin học 11). - Hình thức thực nghiệm: HS làm bài viết trong 35 phút giải bài toán 1 và bài toán 2 trên giấy. Sau đó, GV hướng dẫn HS xây dựng thuật toán giải bài toán 2 với 2 biến a và b. Quan sát ứng xử của HS trong quá trình xây dựng thuật toán, đặc biệt đối với phép gán thời gian 55 phút). 4.2.2. Bài toán thực nghiệm Bài toán 1: Cho dãy số sau: 1, 1, 2, 3, 5, 8, , 144, 233, 377, 610, a) Viết tiếp 5 số hạng tiếp theo của dãy số vào dấu ba chấm sau số “8”. b) Tìm công thức tính số hạng tổng quát của dãy số theo các số hạng trước đó. c) Tính tổng 10 số hạng đầu tiên của dãy số. 67 d) Tính tổng 30 số hạng đầu tiên của dãy số. Bài toán 2: Viết thuật toán tìm n số hạng đầu tiên của dãy số cho ở bài toán 1 và tính tổng của n số hạng đó. (n là số tự nhiên lớn hơn 2).  Chúng tôi lựa chọn bài toán tính các số hạng và tổng của dãy số fibonaci vì nhũng lý do sau: - Bài toán tính tổng là bài toán quen thuộc trong tin học (đặc biệt trong §10 Cấu trúc lặp – Tin học 11). Tuy nhiên các ví dụ và bài toán được giới thiệu tính tổng các dãy số có công thức tổng quát. - Dãy số Fibonaci là dãy số được cho bởi công thức truy hồi hai biến. Từ các số hạng của dãy số, HS có thể tìm được công thức truy hồi của dãy số nhưng lại khó tìm được công thức tổng quát của dãy số. Mặt khác công thức truy hồi của dãy số được giới thiệu trong SGK Toán 11 (ban cơ bản), công thức tổng quát của dãy số chỉ được giới thiệu trong SGK Toán 11 (ban nâng cao). - Khi số lượng số hạng của dãy là 10 việc tìm số hạng và tính tổng là đơn giản, nhưng khi tăng đến 30 số hạng thì HS gặp khó khăn trong việc tính số hạng cũng như tính tổng. Từ đó nảy sinh nhu cầu sử dụng MT vào giải quyết bài toán. 4.2.3. Dàn dựng kịch bản Buổi thứ nhất: Giới thiệu phần mềm Algobox - Giới thiệu các câu lệnh, khai báo và cách viết chương trình trên Algobox. + Lệnh nhập dữ liệu cho biến. + Lệnh gán giá trị biểu thức cho biến. + Lệnh in ra giá trị của biến, in ra một thông báo. + Các câu lệnh vòng lặp: for, while, if. - Thực hiện viết một vài chương trình đơn giản. + Tính tổng a và b. - Cho HS chạy thuật toán Euclide và thuật toán giải phương trình bậc hai đã được cài đặt sẵn trên Algobox. Xem phụ lục GIỚI THIỆU PHẦN MỀM ALGOBOX Buổi thứ 2: tiến hành thực nghiệm • Phần chuẩn bị: phiếu bài tập, giấy nháp, giấy làm bài, cài đặt phần mềm Algobox trên máy tính, máy ghi âm. 68 • GV chia lớp thành các nhóm nhỏ, mỗi nhóm gồm 2 học sinh và phát giấy nháp cho từng cá nhân, giấy làm bài cho mỗi nhóm. • GV nêu vấn đề dẫn nhập vào bài toán 1. • Pha 1 (làm việc trên giấy – theo nhóm ): GV phát cho mỗi nhóm phiếu bài toán 1 và yêu cầu mỗi nhóm thảo luận và đưa ra câu trả lời trong thời gian 20 phút. GV quan sát các nhóm làm việc. Sau thời gian 20 phút GV thu các phiếu bài làm của các nhóm và xem qua cách giải của các nhóm rồi thể chế hóa kết quả của bài toán. • Pha 2 (làm việc trên giấy – theo nhóm): GV phát phiếu bài toán 2 và yêu cầu các nhóm thảo luận và trình bày thuật toán lên giấy thành hai bản, một bản GV thu lại và một bản học sinh giữ lại để cài đặt thuật toán lên MT trong pha tiếp theo. Sau 15 phút, GV thu lại phiếu bài làm của HS. • Pha 3: Pha thể chế. GV dẫn dắt HS xây dựng thuật toán cho bài toán 2 bằng cách sử dụng hai biến a và b thay vì dùng biến un. Hoạt động 1 (làm việc theo nhóm – trên giấy): Viết thuật toán giải bài toán 2 với hai biến a và b. Mỗi nhóm làm và viết trên 2 phiếu bài làm. Sau thời gian 15 phút, GV thu 1 phiếu bài làm của các nhóm. Phiếu còn lại các nhóm giữ cho hoạt động sau. Hoạt động 2: (làm việc theo nhóm – trên MT) cài đặt thuật toán vừa xây dựng trên MT. GV yêu cầu HS trong quá trình cài đặt thuật toán, nếu có chỉnh sửa thì sử dụng bút đỏ hay bút khác màu. Sau 15 phút, GV thu file thuật toán trên máy tính. Hoạt động 3: pha thể chế. Sau khi thu bài, GV gọi một nhóm trình bày thuật toán đã chỉnh sửa trên giấy lên bảng và mở file mà nhóm đã cài đặt thuật toán cho lớp theo dõi và chạy thử thuật toán với n=10, nếu kết quả tổng S đúng thì GV thể chế lại thuật toán chính xác. Nếu chưa đúng, cả lớp cùng thảo luận chỉnh sửa thuật toán trên máy. Cuối cùng, các nhóm HS tiến hành chạy thuật toán với các giá trị n lần lượt là 10, 20, 30, 69 4.3. Phân tích tiên nghiệm 4.3.1. Biến tình huống và biến didactic • Biến V1: Biến phương thức làm việc (biến tình huống liên quan đến môi trường làm việc). - Làm việc theo nhóm: các HS trao đổi ý kiến với nhau từ đó đi đến thống nhất lời giải cho bài toán. • Biến V2: Biến công cụ làm việc Có các giá trị: - Môi trường giấy bút truyền thống: hạn chế việc kiểm tra tính chính xác của các thuật toán được xây dựng trong pha 2. - Môi trường MTCT - Môi trường MT (máy vi tính): tao điều kiện kiểm tra tính chính xác và hoàn thiện các thuật toán được xây dựng. • Biến V3 (biến didactic): Số lượng các số hạng cần tính của dãy số. - Bài toán 1: số lượng số hạng cần tính là 10, 30 việc tính toán có thể thực hiện bằng tay. - Bài toán 2: Số lượng số hạng cần tính số n bất kì, cản trở việc tính toán bằng tay, nếu sử dụng MTCT thì cũng phải thực hiện khá nhiều thao tác, ưu tiên việc tính toán bằng cách xây dựng thuật toán cài đặt trên máy tính hay nói cách khác tạo nhu cầu sử dụng MT để giải quyết bài toán. • Biến V4 (biến didactic): Dãy số được cho bằng công thức truy hồi hay tổng quát. - Dãy số được cho bằng công thức truy hồi (khó hoặc không đưa về được công thức tổng quát) cản trở chiến lược tính số hạng bằng công thức tổng quát, ưu tiến chiến lược tính bằng công thức truy hồi hai biến StđtgT, StđT. - Ngoài ra, còn có biến: V41: dãy số cho bằng công thức truy hồi là hàm hai biến hay một biến. + Nếu là hàm một biến: chỉ cần tính số hạng thứ n thông qua số hạng thứ n-1 và in ra kết quả. + Nếu là hàm hai biến, sau khi tính số hạng thứ n phải thực hiện hoán đổi giá trị các biến để số hạng thứ n+1 của dãy này trở thành số hạng thứ n của dãy số mới, số hạng thứ n trở thành số hạng thứ n-1 của dãy số mới. 70 4.3.2. Các chiến lược có thể Bài toán 1: Stay: - Kiểm tra quy luật: 1+1=2, 1+2=3, 2+3=5, , 144+273=417 417+273=610, → Số hạng đứng sau bằng tổng hai số hạng đứng trước. 5 số hạng cần tìm là: 13, 21, 34, 55, 89 c. Trong câu này, các số hạng của dãy đã được liệt kê ở trên, nên để tính tổng của 10 số hạng đó, HS chỉ cần sử dụng chiến lược sau để tính tổng: Stay: S = 1 + 1 + 2 + 3 + 5 + 8 + 13 + 21 + 34 + 55 + 89 = 143 - Ở câu d), HS gặp khó khăn với việc tìm và tính tổng 30 số hạng đầu tiên của dãy. Điều đó gợi lên ở HS một suy nghĩ: “Liệu có cách nào để có thể tính tổng này nhanh hơn và đơn giản hơn không?” Bài toán 2: • STtq:(chiến lược công thức số hạng tổng quát) - Bước 1: Nhập n; - Bước 2: 1i ← ; 0S ← - Bước 3: Nếu i n> thì in ra S và kết thúc; - Bước 4: 1 1 1 1 5 1 5 2 25 i i iu + +    + − = −          ; in ra ui; - Bước 5: iS S u← + ; - Bước 6: 1i i← + rồi quay lại bước 3. • STđq: (chiến lược in ra n số hạng đầu tiên và tổng của nó thông qua đệ quy) - Bước 1: Nhập n; - Bước 2: 1 21; 1u u← ← ; In ra u1 và u2; 71 - Bước 3: 3i ← ; 1 2S u u← + ; - Bước 4: Nếu i n> thì in ra S rồi kết thúc; - Bước 4: 1 2i i iu u u− −← + ; iS S u← + ; - Bước 5: In ra ui; - Bước 6: 1i i← + rồi quay lại bước 3. • STtđtg: (Chiến lược tính số hạng và tổng của n số hạng đầu tiên của dãy nhờ vào công thức truy hồi và thuật toán tráo đổi bằng biến trung gian). Bước 1: nhập vào n; {n phải lớn hơn 2} Bước 2: 1; 1a b← ← ; Bước 3: In ra số hạng thứ nhất và thứ hai; Bước 4: 3i ← ; S a b← + Bước 5: Nếu i n> thì in ra S và kết thúc; Bước 6: m a b← + ; a b← ; b m← ; S S b← + ; In ra b; Bước 7: 1i i← + và quay lại bước 5 • STtđ: (Chiến lược tính số hạng và tổng của n số hạng đầu tiên của dãy nhờ vào công thức truy hồi và thuật toán tráo đổi bằng biến trung gian). Bước 1: nhập vào n; {n phải lớn hơn 2} Bước 2: 1; 1a b← ← ; Bước 3: In ra số hạng thứ nhất và thứ hai; Bước 4: 3i ← ; S a b← + Bước 5: Nếu i n> thì in ra S và kết thúc; Bước 6: b a b← + ; a b a← − ; S S b← + ; In ra b; Bước 7: 1i i← + và quay lại bước 5. 72 4.3.3. Phân tích kịch bản Thực nghiệm được chia thành 3 pha với mục đích: - Pha 1: HS giải một bài toán toán học đơn thuần trên môi trường giấy bút truyến thống, bài toán về dãy số mà HS vừa được học trong chương trình toán học. Thực nghiệm được tiến hành trên học sinh lớp 11 chương trình cơ bản, dãy số Fibonaci được giới thiệu trong bài dãy số (chỉ giới thiệu công thức truy hồi mà không giới thiệu công thức tổng quát). Chúng tôi lựa chọn dãy số Fibonaci vì công thức truy hồi của dãy số này tuy phức tạp nhưng HS dễ phát hiện ra công thức từ dãy các số hạng. Hơn nữa, từ công thức truy hồi HS khó tìm được công thức tổng quát của dãy số. Dãy số cho bằng công thức truy hồi nói chung, dãy số Fibonaci nói riêng liên quan đến tư tưởng đệ quy trong tin học. Thông qua bài toán này, HS tiếp xúc với phương pháp giải quyết vấn đề mới, đó là quy các vấn đề cần giải quyết về các trường hợp đơn giản hơn. Nhưng ở đây chúng tôi không chú trọng bài toán đệ qui, mà chúng tôi quan tâm đến việc HS làm việc với các bài toán tìm số hạng của một dãy số bằng công thức truy hồi với số biến là 2. Nếu như dãy số được cho bằng công thức tổng quát thì để tìm số hạng thứ n của dãy số, HS chỉ cần thay giá trị n vào công thức tổng quát của dãy số là tìm được số hạng đó. Việc lựa chọn dãy số cho bằng công thức truy hồi, để tính được số hạng thứ n của dãy số HS cần phải quay lại tính các số hạng thứ n-1 và n-2 của dãy số, giá trị n càng lớn thì HS cần phải tính toán rất nhiều số hạng trước đó mới có thể có được kết quả. Như vậy nếu tính toán bằng tay hoặc có sự hỗ trợ của máy tính không có phím nhớ hay chức năng lập trình thì quá trình tính toán cũng mất rất nhiều thời gian. Từ đó, nảy sinh nhu cầu sự dụng MT để lập trình giải bài toán trên. - Pha 2: ở pha này, GV yêu cầu HS viết thuật toán trên giấy để tìm các số hạng của dãy và tính tổng các số hạng đó. Ở bài toán này, nếu viết thuật toán dựa trên công thức tổng quát (chiến lược StqT) thì mỗi lần tính số hạng un thì phải thực hiện lặp lại lệnh tính toán trên một biểu thức tổng quát và sẽ tốn khá nhiều thời gian cho việc tính các số hạng. Hơn nữa, ở cuối pha 1, HS đã tìm được công thức truy hồi của dãy số. Từ công thức truy hồi này HS muốn tìm công thức tổng quát của dãy số là rất khó. Tuy nhiên, để chặn không cho chiến lược StqT này xuất hiện, GV 73 yêu cầu HS trong các câu lệnh, biểu thức trong thuật toán không được dùng phép toán “lấy căn bậc hai một số không âm”. Nếu như HS xây dựng thuật toán đệ quy để tìm số hạng tổng quát un thì về mặt lý thuyết thời gian thực hiện thuật toán sẽ rất lâu không chỉ tính số hạng thứ n của dãy số mà là tìm và tính tổng n số hạng đầu tiên của dãy số. Mỗi lần tính giá trị số hạng un, lại phải quay về tính toán lại tất cả các số hạng trước đó. Tuy nhiên chiến lược SđqT vẫn có thể xuất hiện ở pha 2 này, vì ở pha này HS viết thuật toán trên giấy. Nếu dùng chiến lược công thức truy hồi, tại mỗi bước tính un thì ta đã có hai số hạng liền kề trước đó (đặt hai biến đó là a và b), ta chỉ việc cộng hai giá trị đó lại là có được giá trị un. Tuy nhiên, với việc sử dụng hai biến a và b, sau mỗi lệnh tính số hạng tiếp theo bằng hai số hạng trước đó, giá trị của hai biến a và b đã thay đổi. Chúng tôi muốn qua thực nghiệm này quan sát ứng xử của HS khi làm việc với hai biến a và b (khi mà trong nội dung tin học 10 và 11 HS chưa bao giờ làm việc với hai biến trong một thuật toán), vì theo chúng tôi HS có thể có những ứng xử sau: + HS không nhận thấy sự cần thiết của việc hoán đổi giá trị các biến a, b sau mỗi lần tính số hạng un của dãy số. Hay nói cách khác, HS không nhận thấy sự thay đổi giá trị các biến a và b sau mỗi lần tính b. + HS có thể nhận thấy sự cần thiết của việc hoán đổi giá trị các biến, nhưng việc thay đổi giá trị các biến bằng lệnh: b a b← + thì không đạt kết quả như mong muốn (tức là sai về thuật toán hoán đổi giá trị hai biến), điều này có thể vì HS chưa được biết đến thuật toán hoán đổi giá trị của hai biến (được giới thiệu trong sách bài tập Tin học 10). Ở đây, HS chưa phải làm việc ngay với MT mà ở hoạt động này chúng tôi muốn xem xét “HS chuyển từ lời giải toán học trong bài toán 1 sang lời giải tin học dưới dạng thuật toán như thế nào?” khi làm việc trên môi trường giấy bút truyền thống. Liệu rằng khi không có sự xuất hiện của công cụ tính toán là MT thì thuật toán mà HS xây dựng đã thực sự chính xác hay chưa?, HS có cơ hội để kiểm chứng thuật toán mình xây dựng hay không? Cũng thông qua hoạt động này, chúng tôi muốn xem xét phản hồi của HS trước một yêu cầu viết thuật toán giải một bài toán chưa được giới thiệu thuật toán tương tự trong tin học 10 và 11. Pha 3: Theo dự đoán của chúng tôi, ở pha 2, HS chưa xây dựng được thuật toán để giải bài toán 2 nên trong pha 3 này chúng tôi thực hiện các hoạt động hướng dẫn HS xây dựng và cài đặt thuật toán trên MT . 74 Ở bài toán 2 này chúng tôi muốn quan sát những ứng xử của HS khi làm việc với bài toán dãy số cho bởi công thức truy hồi hai biến và câu lệnh gán (lệnh gán trung gian hay lệnh hoán đổi giá trị hai biến). Vấn đề này chúng tôi đã có phân tích trong chương 3 của luận văn này. Trong đó lệnh gán đã được giới thiệu trong cả Tin học lớp 10 và lớp 11, bài toán hoán đổi giá trị của hai biến a và b chưa được giới thiệu trong nội dung tin học lớp 10 và lớp 11 (tính đến thời điểm thực nghiệm, HS chỉ vừa học xong §10 Cấu trúc lặp). Đối với dãy số Fibonaci, sau khi tính xong một số hạng của dãy, thì số hạng đó được xem là số hạng thứ n của dãy số mới, còn số hạng thứ n của dãy số cũ trở thành số hạng thứ n-1 của dãy số mới. Cứ như thế, sau mỗi lần tính một số hạng nào đó, cần phải thực hiên thao tác hoán đổi giá trị số hạng thứ n và n-1. Sau đó, thay vì dùng các biến un, un-1, un-2 ta sử dụng hai biến a, b cho hai số hạng trước số hạng cần tính. Ở pha này, trong hoạt động 1: Khi viết thuật toán sử dụng hai biến a và b, sau mỗi bước tính số hạng thứ n cần phải thay đổi lại giá trị của các biến a và b. Chúng tôi sẽ quan sát xem các nhóm HS xử lí như thế nào với tình huống này. Ở hoạt động 2: chúng tôi yêu cầu HS cài đặt thuật toán trên phần mềm Algobox mà HS đã được giới thiệu và làm quen trong buổi thứ nhất. Chúng tôi xin nói thêm về lý do lựa chọn phần mềm Alogobox: - Trong chương trình Tin học 11, HS được học về ngôn ngữ lập trình Pascal và cài đặt các chương trình đã học trên Turbo Pascal. Tuy nhiên qua tìm hiểu HS và GV giảng dạy Tin học 11, HS thường không cài đặt được chương trình trong Turbo Pascal, hoặc khi cài đặt chương trình thường báo lỗi, và chủ yếu là các lỗi cú pháp. - Phần mềm Algobox được xây dựng trên cơ sở chương trình của Turbo Pascal, trong đó tích hợp sẵn các câu lệnh trong lập trình Pascal vì vậy sẽ khắc phục được nhược điểm về sai cú pháp khi cài đặt chương trình. Trong thực nghiệm này chúng tôi không chú trong đến các lỗi sai về cú pháp mà quan tâm đến các sai lầm trong thuật toán. - Trong quá trình thực hiện chương trình, phần mềm sẽ thông báo lỗi trong các câu lệnh (nếu có) để người cài đặt có thể chỉnh sửa lỗi. Người dùng cũng có thể quan sát các bước thực hiện chương trình. - Tuy nhiên một trở ngại khi làm việc với phần mềm Algobox là phần mềm sử dụng ngôn ngữ tiếng Pháp. Hoạt động 3: GV thể chế lại thuật toán chính xác, trong đó GV sẽ giải thích rõ cho HS thấy tại sao phải thay đổi giá trị các biến sau mỗi lần tính số hạng thứ n. 75 4.4 Phân tích hậu nghiệm • Pha 1 và pha 2 Toàn bộ thực nghiệm này chúng tôi tiến hành trên 45 HS lớp 11B10, trường THPT Trần Phú, Quận Tân Phú. HS được chia thành 20 nhóm, mỗi nhóm 2 – 3 học sinh. Bài toán 1: Bảng 4.1: Bảng thống kê kết quả nhận được trong bài toán 1 của các nhóm HS Bài toán Đúng Sai 1a) 20 0 1b) 9 11 1c) 20 0 1d) 12 8 1a) Tất cả các nhóm đều trả lời chính xác 5 số hạng tiếp theo sau số “8”: 13, 21, 34, 55, 89. 1b) Có 9 nhóm đưa ra được công thức truy hồi của dãy số. 11 nhóm không tìm được công thức tổng quát. Đối với 1b), tại thời điểm chúng tôi tiến hành làm thực nghiệm, HS vẫn chưa học về Dãy số, nên các công thức dãy số được đưa ra vẫn chưa đầy đủ cho tất cả các trường hợp n của dãy số. - Nhóm 3 76 - Nhóm 1 - Nhóm 2: Đối với 1c, 1d yêu cầu tính tổng 10 và 30 số hạng. Ở câu 1c) tính tổng 10 số hạng, tất cả các nhóm HS đều cho kết quả đúng. Tuy nhiên khi tính tổng ở câu 1d), có 12 nhóm trả lời đúng, 8 nhóm còn lại tính sai tổng S. Như vậy, đối với bài toán tính tổng các số hạng, khi số lượng số hạng nhỏ (10 số hạng) thì HS dễ dàng tính được tổng S, nhưng khi tính tổng của 30 số hạng thì HS nhận thấy việc tính tổng S bằng “thủ công” (có sự hỗ trợ của MTCT) gặp rất nhiều khó khăn. Lúc này chỉ 12 trên tổng số 20 nhóm tính đúng giá trị tổng S. Bài làm của một số nhóm HS: - Nhóm 1: chỉ tính được S10, S30 chưa tính . - Nhóm 3 Qua pha này, thông qua việc tìm các số hạng của dãy trong câu 1 và tìm công thức truy hồi của dãy số, HS nảy sinh nhu cầu sử dụng công cụ tính toán nào để tính tổng này nhanh hơn và cho kết quả chính xác. Hơn nữa đối với việc tìm số hạng tiếp theo của dãy số, lời giải toán học được sử dụng là: số hạng tiếp theo là tổng của hai số hạng trước đó. Trong pha 2 và 77 pha 3, chúng tôi mong muốn HS sử dụng lời giải toán học này để xây dựng thuật toán cho bài toán 2. Bài toán 2: • Pha 2 (làm việc trên giấy) Kết quả thu được sau pha 2: không có nhóm nào xây dựng được thuật toán đúng cho bài toán, trong đó có những nhóm xây dựng thuật toán dựa trên công thức truy hồi (kĩ thuật đệ quy), một số nhóm khác không có câu trả lời. Ở bài toán 1, câu b các nhóm HS đã biết đến công thức truy hồi của dãy số. Vì vậy, trong pha 2, HS xây dựng thuật toán cho bài toán 2 dựa trên công thức truy hồi của dãy số. Chúng tôi thông kê bài làm các nhóm theo các chiến lược như sau: Bảng 4.2: Bảng thống kê bài làm các nhóm theo chiến lược trong bài toán 2 – pha 2. Chiến lược StqT STđq STtđtg STtđ Không viết được thuật toán Số lượng 0 11 0 0 9 Tỷ lệ % 0 55% 0 0 45% Một số bài làm của các nhóm: - Nhóm 1: thuật toán tuy không chính xác nhưng được xây dựng theo chiến lược SđqT - Nhóm 17: 78 - Nhóm 10: không xây dựng được thuật toán. Tại thời điểm tiến hành thực nghiệm này, HS lớp 11 vừa kết thúc §10 Cấu trúc lặp, bài toán này chưa từng được giới thiệu trong Tin học, kết quả thực nghiệm không có nhóm nào xây dựng đúng thuật toán giải bài toán 2. Điều này đúng với dự đoán ban đầu của chúng tôi. • Pha 3: Hoạt động 1: Sau khi kết thúc pha 2, không có nhóm HS nào xây dựng được thuật toán chính xác cho bài toán 2. Mục đích thực nghiệm không hướng đến chiến lược đệ qui mà muốn quan sát ứng xử của HS khi làm việc với phép gán (hoán đổi giá trị hai biến) nên trong hoạt động 1 của pha 3 này, GV hướng dẫn HS xây dựng thuật toán cho bài toán 2 với việc sử dụng hai biến a và b: GV: Hướng dẫn HS sử dụng hai biến a và b để xây dựng thuật toán Xét các số hạng: 1, 1, 2, 3, 5, 8 Đầu tiên ta xem a là 1, b cũng là 1 thì số hạng thứ 3 là a + b = 2. 79 Tiếp tục xem số hạng thứ 2 là a, số hạng thứ 3 là b, số hạng tiếp theo là a + b = 3 Cứ như vậy, ta tính được số hạng tiếp theo của dãy từ hai số hạng liền kề trước của nó là a và b. Bây giờ các nhóm viết thuật toán tìm n số hạng và tính tổng sử dụng hai biến a và b thay vì các biến un. Xem thêm ở phụ lục 3 đoạn từ đầu đến đoạn 20 Hơn nữa, việc sử dụng hai biến a và b xuất phát từ lời giải toán học được HS sử dụng trong bài toán 1a: HS1 (vui mừng): lúc nãy mình cũng làm như cô nói kìa. Trong pha 1, nhóm HS này viết công thức dãy số: Đặt x là số cần tính Đặt y là số hiện có Đặt z là số liền trước của số hiện có x y z= + HS2: Ờ, giờ viết thuật toán đi kìa. Từ các phiếu bài làm thu được cho thấy, các nhóm HS đều viết được lệnh gán b a b← + , các nhóm HS thực hiện theo chiến lước StđT (tức là tính vào tráo đổi các giá trị biến a và b, nhưng không hoàn toàn chính xác như trong các chiến lược mà chúng tôi đã phân tích. Một số phiếu bài làm của các nhóm HS: - Nhóm 2: Nhóm 5 - Nhóm 19: (phần viết mực đỏ là phần chỉnh sửa sau khi cài đặt thuật toán trên phần mềm Algobox ở hoạt động 2. 80 - Trong 20 nhóm HS, chiến lược StđtgT chỉ được một nhóm sử dụng là nhóm 7. Khi tiến hành viết thuật toán trên giấy, HS ít có cơ hội kiểm tra lại thuật toán mình viết đã chính xác chưa.Trong thuật toán, vì a và b là các biến được gán giá trị từ đầu, nên rất nhiều nhóm HS không in ra màn hình hai số này mà chỉ in ra giá tri trong các vòng lặp hay có nhóm không in ra giá trị trong vòng lặp. HS1: rồi, vậy là xong. À, còn in ra các số hạng nữa mà. HS1: In giá trị b. Thế là xong rồi đúng không? HS2: chưa phải tính tổng nữa mà. Việc gán tổng a+b cho biến b làm thay đổi giá trị biến nên khi thực hiện tiếp lệnh gán a b← thì lúc này giá trị hai biến a và b đã thay đổi và số hạng tiếp theo không chính xác nữa. Chiến lược SđqT và Stq không xuất hiện trong pha này nữa. Chiến lược SđqT thất bại trong pha 2, nên pha này HS không còn sử dụng chiến lược này và HS cũng không tìm được công thức tổng quát của dãy số nên chiến lược Stq cũng không xuất hiện. Thống kê kết quả trong các phiếu bài làm cho thấy có 4 chiến lược xuất hiện: ST (không thay đổi giá trị biến a). Nghĩa là chỉ thực hiện lệnh gán b a b← + để tính giá trị số hạng tiếp theo rồi tính tổng S, 81 Shđt (hoán đổi trước). Nghĩa là sử dụng lệnh gán a b← để làm thay đổi giá trị của biến a sau lệnh gán b a b← + Shđs (hoán đổi sau). Nghĩa là sử dụng lệnh gán a b← và b a b← + để tính số hạng tiếp theo. Bảng 4.3: Bảng thống kê bài làm các nhóm theo chiến lược trong hoạt động 1. Như vậy, trong hoạt động này, khi đã được GV giới thiệu cách xây dựng thuật toán cho bài toán với việc sử dụng hai biến a và b nhưng gấn như tất cả các nhóm HS vẫn không xây dựng được thuật toán chính xác cho bài toán. Và chúng tôi kiểm chúng được hai ứng xử có thể xuất hiện ở các nhóm HS mà chúng tôi đề cập trong phần phân tích kịch bản: + HS không nhận thấy sự cần thiết của việc hoán đổi giá trị các biến a, b sau mỗi lần tính số hạng un của dãy số. Hay nói cách khác, HS không nhận thấy sự thay đổi giá trị các biến a và b sau mỗi lần tính b. + HS có thể nhận thấy sự cần thiết của việc hoán đổi giá trị các biến, nhưng việc thay đổi giá trị các biến bằng lệnh: b a b← + thì không đạt kết quả như mong muốn (tức là sai về thuật toán hoán đổi giá trị hai biến). Kết thúc hoạt động 1, các nhóm HS chưa có điều kiện kiểm tra tính đúng đắn của các thuật toán mà mỗi nhóm đưa ra khi làm việc trên môi trường giấy, bút truyền thống. Hoạt động 2: Số lượng Tỉ lệ ST (không thay đổi giá trị biến a) 4 20% Shđt (hoán đổi trước) 6 30% Shđs (hoán đổi sau) 7 35% Stđtg (hoán đổi trung gian) 1 5% Không có câu trả lời 2 10% 82 Trong hoạt động 2 này, HS thực hiện cài đặt thuật toán trên máy tính, qua đó có cơ hội để mỗi nhóm HS tự mình kiểm chứng lại thuật toán được xây dựng ở hoạt động 1 đã chính xác chưa. Ở pha này, hầu hết các nhóm đều nhận ra thiếu các bước in ra các số hạng của dãy và chỉnh sửa. HS1: Sao lại là 2, ở bài tập 1 mình tính tổng 10 số hạng của dãy này là l43. HS2: Vậy là sai rồi. Phải sửa lại các bước. HS1: Sửa gì? Thuật toán hay trên phần mềm. HS2: Cả hai. HS1: Sửa trên máy trước đi. HS2: Dãy số có hai số hạng đầu tiên là 1, 1 mà kết quả lại không có hai số hạng này của dãy. HS1: vậy giờ sao? HS2 (ngập ngừng): mình có in ra b rồi mà, sao lại không có hai số hạng đầu? HS1: Ah, đó chỉ là in ra b từ số hạng thứ 3 thôi. Hai số hạng đầu chưa in ra mà. vậy thì sau phép gán 1 cho a và b thêm vào lệnh in ra giá trị hai biến đó đi. HS2: Để thêm vào. Mà thêm vào đâu? HS1: ngay sau khi gán 1 cho a và b đó. Xem thêm ở phụ lục đoạn từ 54 đến 64. Tuy nhiên, việc chỉnh sửa trong các bước tính số hạng tiếp theo và tính tổng S vẫn chưa được hoàn thiện. Sau hoạt động này chỉ có thêm hai nhóm chỉnh sửa thuật toán theo chiến lược như nhóm 7 và cho kết quả đúng. Kết quả này có sự ảnh hưởng một phần của phần mềm mà chúng tôi lựa chọn cho thực nghiệm này, phần mềm bằng tiếng Pháp, HS lớp thực nghiệm lại không hiểu tiếng Pháp: HS1: Sao phần mềm này không có bản tiếng Anh hay tiếng Việt ? HS2: Có bản hướng dẫn cách viết chương trình, khai báo và các câu lệnh rồi mà. HS1: Nhưng mà không nhớ được. HS2: thì nhìn vào bản hướng dẫn mà làm. HS1: Làm đi, không là không kịp Một số thuật toán được các nhóm cài đặt trên máy tính như sau: - Nhóm 2: thuật toán sau khi cài đặt trên MT chỉnh sửa bằng bút màu xanh. 83 Sau khi chạy thử thuật toán, kết quả chỉ hiển thị một số hạng của dãy, nhóm chỉnh sửa thuật toán bằng cách thêm vào vòng lặp để tính các số hạng, tuy nhiên vẫn không có thay đổi nào về lệnh gán sau lệnh tính b. HS1: Ờ, có. Thử xem chạy đúng chưa? HS2 chạy thử thuật toán cũng với n=10, lúc này kết quả chỉ có thêm hai số hạng 1, 1 là có tất cả 3 số hạng và tổng S là 2. HS1: Sao vẫn chưa đúng? Quay lại sửa thuật toán. HS1: À, như thế này thì mới chỉ tính được số hạng thứ 3 thôi. Đúng rồi. Phải dùng for để in ra các số hạng thứ nhất đến n chứ. HS2: Thêm vòng lặp vào đâu? HS1: trước câu lệnh tính b và S. HS1: mở thêm dòng mới trước câu lệnh gán giá trị cho b. HS1: chọn câu lệnh Pour de A (tương ứng câu lệnh for trong Pascal), cho n chạy từ 1 đến Xem thêm ở phụ lục 3 đoạn từ 53 đến 60 84 - Nhóm 19: thuật toán trên giấy và sau khi cài đặt trên MT (chỉnh sửa bằng bút đỏ) - Nhóm 7 85 - Nhóm 6: 86 Bảng 4.4: Bảng thống kê bài làm HS trong hoạt động 2 theo các chiến lược Số lượng Tỉ lệ S T (không thay đổi giá trị biến a) 4 20% S hđt (hoán đổi trước) 6 30% S hđs (hoán đổi sau) 5 25% S tđtg (hoán đổi trung gian) 3 15% Không có câu trả lời 2 10% Kết thúc hoạt động 2, phần lớn các nhóm kiểm chứng được thuật toán xây dựng ban đầu chưa chính xác, tuy nhiên chỉ có 3 nhóm chỉnh sửa thuật toán chính xác. Qua đây, một lần nữa khẳng định các ứng xử của HS khi đứng trước bài toán tính giá trị các số hạng và sau mỗi bước cần có theo tác hoán đổi giá trị các biến như chúng tôi đã dự đoán ở phân tích tiên nghiệm. Hoạt động 3: Trong hoạt động này, GV cùng học sinh trao đổi để tìm chỉnh sửa thuật toán chính xác. GV mở file thuật toán trên Algobox của nhóm 5, các nhóm tham gia thảo luận: HS1 (nhóm 2): Vòng lặp for, i bắt đầu từ 3 không phải là 1 Phải gán i bằng 3 chứ, vì ta bắt đầu tính từ số hạng thứ 3 mà. Số hạng thứ nhất và thứ 2 đã có. Cả lớp: đúng rồi. HS3 (nhóm 6): Ban đầu S phải được gán bằng tổng a+b. GV nhận xét: ý kiến bạn HS3 đúng. HS4 (nhóm 19): Sau lệnh gán ;b a b← + phải có thêm lệnh gán a b← . HS5 (nhóm 6): không phải. Trước lệnh gán ;b a b← + là lệnh gán b a← để sau khi tính b giá trị hai biến là hai số cuối và gần cuối của dãy số mới. HS6 (nhóm 7): Trước hết gán giá trị tổng a+b cho biến c, sau đó gán giá trị biến b cho a và cuối cùng gán giá trị biến c cho b. GV cài đặt thuật toán và chạy thuật toán theo cả ba trường hợp đưa ra của ba bạn HS. Kết quả: cách làm của bạn HS 3 đúng. GV giải thích tại sao lại cần phải sử dụng thêm biến c để tính giá trị biến b và hoán đổi giá trị cho biến a và thể chế lại thuật toán trên giấy và chương trình chính xác trên MT. Xem thêm ở phụ lục 3 đoạn từ 97 đến 101 87 Cuối cùng, GV cho các nhóm HS chạy thuật toán với các giá trị n lần lượt là 10, 20, 30, Như vậy từ lời giải toán học được HS sử dụng trong bài toán 1a, GV thông qua pha 3 với 3 hoạt động, dần dần chuyển lời giải toán học sang lời giải tin học dưới dạng thuật toán (chương trình trên Algobox) qua các bước: - Bài toán 1a, tính số hạng tiếp theo của dãy số bằng tổng hai số hạng trước đó. - Đầu pha 3, GV yêu cầu HS sử dụng hai biến a và b thay cho các biến un. - Cài đặt thuật toán trên phần mềm Algobox để kiểm tra tính đúng đắn của các thuật toán được xây dựng ở hoạt động 1. - Hoạt động 3, pha 3 thể chế lại thuật toán chính xác cho bài toán. Kết luận chương 4 Trong kết luận chương 3 chúng tôi dự đoán rằng: HS gặp khó khăn khi đứng trước yêu cầu viết thuật toán giải bài toán mà trước đó thuật toán tương tự chư được giới thiệu. Thực nghiệm ở chương này cho phép chúng tôi khẳng định lại điều đó. Tuy nhiên trong khuôn khổ luận văn này, chúng tôi vẫn chưa thể chỉ ra các sai lầm và khó khăn của HS khi chuyển từ lời giải toán học sang lời giải tin học của một bài toán. Thực nghiệm trong pha 3 đã giúp chúng tôi quan sát được các ứng xử của HS khi xây dựng thuật toán với hai biến a và b (trên giấy và trên MT). Qua đó cho thấy sự tác động không nhỏ của công cụ tính toán đối với quá trình xây dựng thuật toán (môi trường phản hồi). Thực nghiệm chưa thực sự thành công theo sự mong đợi của chúng tôi, tuy nhiên phần nào đã tạo bước chuyển từ lời giải toán học sang lời giải tin học của một bài toán. 88 KẾT LUẬN Luận văn của chúng tôi đã thực hiện được những công việc chính sau: Trong chương 1, chúng tôi tiến hành nghiên cứu về thuật toán và các phương pháp giải quyết vấn đề - bài toán và rút ra những kết luận sau: - Việc giải quyết vấn đề - bài toán dựa trên hai phương pháp chủ yếu là phương pháp trực tiếp và gián tiếp. Phương pháp trực tiếp được sử dụng khi xác định được lời giải qua các công thức, hệ thức, định luật hay qua các bước căn bản để có được lời giải. Lúc này việc giải quyết vấn đề trên máy tính chỉ là sự chuyển đổi lời giải từ ngôn ngữ thông thường sang thuật toán rồi từ đó chuyển sang ngôn ngữ lập trình một ngôn ngữ lập trình nào đó. Khi không xác định được lời giải qua các công thức, định luật, thì sử dụng phương pháp gián tiếp thông qua các nguyên lý của ba phương pháp cơ bản là thử sai, Heuritic và trí tuệ nhân tạo. Trên cơ sở phân tích và so sánh mối quan hệ thể đối với thuật toán trong dạy học Toán học phổ thông (giai đoạn 1990 – 2000) và trong dạy học Tin học phổ thông (giai đoạn 2006 đến nay), chúng tôi nhận thấy rằng: - Khi thuật toán được đưa vào lồng ghép trong Toán học thì thể chế dạy học Toán học phổ thông quan tâm đến xây dựng thuật toán cho các bài toán đã có sẵn lời giải toán học. - Khi thuật toán được dạy tách rời trong môn học Tin học, thể chế dạy học Toán phổ thông hiện hành không có trách nhiệm hình thành ở HS các kĩ năng thuật toán mặc dù có cơ hội, mà điều đó được trao cho thể chế dạy học Tin học (Giả thuyết H2). - Trong cả hai thể chế dạy học Toán học phổ thông (giai đoạn 1990 -2000) và thể chế dạy học Tin học phổ thông (giai đoạn hiện nay), yếu tố công cụ tính toán không được chú trọng. - Quá trình xây dựng chuyển đổi từ lời giải toán học sang lời giải tin học dưới dạng thuật toán không được SGK tin học 10 hiện nay làm rõ. Từ đó, chúng tôi xây dựng một thực nghiệm ở chương 4, thực nghiệm tạo bước chuyển từ lời giải toán học sang lời giải tin học của một bài toán trên phần mềm Algobox và quan sát các ứng xử của HS khi làm việc với phép gán (hoán đổi giá trị hai biến). • Hạn chế của đề tài và hướng mở của luận văn Đề tài vẫn chưa tìm hiểu được các sai lầm mà HS thường gặp khi chuyển từ lời giải toán học sang lời giải tin học của một bài toán và xây dựng thực nghiệm để kiểm chứng điều 89 đó. Ngoài ra, trong thể chế dạy học toán học PT giai đoạn hiện nay, các bài toán toán học nào được viết dưới dạng thuật toán để đưa vào tin học vẫn chưa được đề cập trong luận văn. Từ đó chúng tôi nhận thấy có thể có một số hướng nghiên cứu sau: - Nghiên cứu các sai lầm hường gặp của HS khi chuyển từ lời giải toán học sang lời giải tin học của một bài toán. - Nghiên cứu các bài toán nào trong chương trình phổ thông có thể chuyển sang thuật toán và cài đặt trên MT. 90 TÀI LIỆU THAM KHẢO Tiếng Việt 1. Phan Đức Chính (Tổng chủ biên) (2012), Toán 6, tập 1, Nxb Giáo dục. 2. Hồ Sĩ Đàm (Chủ biên) (2006), Tin học 10, Nxb Giáo dục. 3. Hồ Sĩ Đàm (Chủ biên) (2006), Sách giáo viên Tin học 10, Nxb Giáo dục. 4. Hồ Sĩ Đàm (Chủ biên) (2007), Tin học 11, Nxb Giáo dục. 5. Hồ Sĩ Đàm (Chủ biên) (2007), Sách giáo viên Tin học 11, Nxb Giáo dục. 6. Trần Văn Hạo (1998), Đại số 10, Nxb Giáo dục. 7. Trần Văn Hạo (1998), Bài tập Đại số 10, Nxb Giáo dục. 8. Hoàng Kiếm, Giải một bài toán trên máy tính như thế nào?, Nxb Giáo dục. 9. Quách Tất Kiên (Chủ biên) (2006), Hướng dẫn thực hiên chuẩn kiến thức, kĩ năng môn Tin học Trung học phổ thông, Nxb Giáo dục. Song ngữ Pháp – Việt 10. Annie Bessot, Claude Comiti (Đại học Joseph Fourrier – Grenoble I), Lê Thị Hoài Châu, Lê Văn Tiến (Đại Học Sư Phạm TP. Hồ Chí Minh) (2009), Những vấn đề cơ bản của Didactic Toán, Nxb Đại học quốc gia Tp.Hồ Chí Minh. 11. Nguyễn Chí Thành (2005), “Une étude didactique de l’introduction des éléments informatiques au lycée”, Luận án Tiến sĩ, Đại học Grenoble I, Pháp. 91 PHỤ LỤC PHỤ LỤC 1 I. GIỚI THIỆU CHUNG VỀ PHẦN MỀM ALGOBOX - Mở file mới: Nouveau - Thêm dòng mới: Nouvelle ligne - Chỉnh sửa dòng: Modifier Ligne - Xóa dòng: - Chạy thử thuật toán: II. CÁC BƯỚC VIẾT MỘT CHƯƠNG TRÌNH TRÊN ALGOBOX 1. Khai báo biến mới Ở phần VARIABLE, nhấp vào Xuất hiện hộp thoại: - Ở phần Nom de la variable nhập tên biến 92 - Ở phần Type de variable khai báo kiểu biến, bao gồm các kiểu: NOMBRE (Kiểu số), LISTE (kiểu danh sách), CHAINE (kiểu chuỗi). Ví dụ: khai báo biến x kiểu số như sau: 2. Phần thuật toán - Lấy giá trị (nhập giá trị) cho biến: - Lệnh gán giá trị cho biến: Ví dụ: thực hiện lệnh gán 1x x← + - In ra giá trị của biến: để in ra giá trị của biến ta kích chọn vào hộp thoại: và chọn biến cần in ra giá trị. Ví dụ: in ra giá trị biến x - In ra một thông báo:  Các lệnh liên quan đến vòng lặp và rẽ nhánh  - Lệnh rẽ nhánh: SI ALORS (tương ứng là lệnh: If then ;) + Để kiểm tra xem x bằng 2 không thì điều kiện phải viết là x==2 + Để kiểm tra x khác 2 thì điều kiện phải viết là x!=2 + Để kiểm tra x nhỏ hơn 2 thì điều kiện phải viết là x<2 + Để kiểm tra x nhỏ hơn hoặc bằng 2 thì điều kiện phải viết là x<=2 + Để kiểm tra x lớn hơn 2 thì điều kiện phải viết là x>2 + Để kiểm tra x lớn hơn hoặc bằng 2 thì điều kiện phải viết là x>=2 93 + Có thể kết hợp các điều kiện bằng lệnh ET (and) và OU (or). - Vòng lặp: (1) Lặp với số lần biết trước: POUR ALLANT_DE A DEBUT_POUR . FIN_POUR Ví dụ: Tương ứng, trong ngôn ngữ lập trình Pascal là : FOR TO DO Begin End. (2) Lặp với số lần chưa biết trước: TANT_QUE FAIRE DEBUT TANT_QUE FIN TANT_QUE Ví dụ: Tương ứng trong ngôn ngữ lập trình Pascal là vòng lặp While. 3. Kiểm tra thuật toán (chạy thử thuật toán) Để kiểm tra (chạy thử) thuật toán nhấp vào rồi chọn III. MỘT VÀI VÍ DỤ Ví dụ 1: Viết chương trình tính tổng hai số a và b • Ngôn ngữ thông thường: 94 - Lấy hai số tự nhiên khác 0: a và b - Tổng S=a+b • Thuật toán: - Biến: a, b, S - Dữ liệu vào: + Nhập vào giá trị cho a + Nhập vào giá trị cho b - Gán giá trị S cho a+b - In ra giá trị S • Lập trình với Algobox - Khai báo biến: a EST_DU_TYPE NOMBRE b EST_DU_TYPE NOMBRE S EST_DU_TYPE NOMBRE - Thuật toán: + LIRE a + LIRE b + S SPREND_LA_VALEUR a+b + AFFICHER S • Chạy thử thuật toán Ví dụ 2: chạy thuật toán Euclide đã được cài đặt trên máy tính. Ví dụ 3: chạy thuật toán giải phương trình bậc hai đã được cài đặt trên máy tính. 95 PHỤ LỤC 2 PHIẾU THỰC NGHIỆM SỐ 1 Nhóm: ........................................................................................................................ Tên học sinh: ............................................................................................................. Bài toán 1: Cho dãy số sau: 1, 1, 2, 3, 5, 8, , 144, 233, 377, 610, e) Viết tiếp 5 số hạng tiếp theo của dãy số vào dấu ba chấm sau số “8”. f) Tìm công thức tính số hạng tổng quát của dãy số theo các số hạng trước đó. g) Tính tổng 10 số hạng đầu tiên của dãy số. h) Tính tổng 30 số hạng đầu tiên của dãy số. Bài làm: .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... 96 PHIẾU THỰC NGHIỆM SỐ 2 Nhóm: ........................................................................................................................... Tên học sinh: ................................................................................................................ Bài toán 2: Viết thuật toán tìm n số hạng đầu tiên của dãy số cho ở bài toán 1 và tính tổng của n số hạng đó. (n là số tự nhiên lớn hơn 2). Bài làm: ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... 97 PHỤ LỤC 3 BIÊN BẢN NHÓM 2 – PHA 3 Hoạt động 1 GV: Hướng dẫn HS sử dụng hai biến a và b để xây dựng thuật toán Xét các số hạng: 1, 1, 2, 3, 5, 8 Đầu tiên ta xem a là 1, b cũng là 1 thì số hạng thứ 3 là a + b = 2. Tiếp tục xem số hạng thứ 2 là a, số hạng thứ 3 là b, số hạng tiếp theo là a + b = 3 Cứ như vậy, ta tính được số hạng tiếp theo của dãy từ hai số hạng liền kề trước của nó là a và b. Bây giờ các nhóm viết thuật toán tìm n số hạng và tính tổng sử dụng hai biến a và b thay vì các biến un. 1. HS1 (vui mừng): lúc nãy mình cũng làm như cô nói kìa. Trong pha 1, nhóm HS này viết công thức dãy số: Đặt x là số cần tính Đặt y là số hiện có Đặt z là số liền trước của số hiện có x y z= + 2. HS2: Ờ, giờ viết thuật toán đi kìa. 3. HS1: Đầu tiên nhập n. 4. HS2: n phải lớn hơn 2 đó. 5. HS1: Đâu, sao phải lớn hơn 2? 6. HS2: Trong đề bài đó. 7. HS1: Vậy giờ phải làm sao. 8. HS1: Thôi kệ nó đi, làm tiếp thôi. 9. HS2: rồi giờ nhập a và b. 10. HS1: sai rồi, gán a bằng 1, b bằng 1 chứ. 11. HS1: rồi đến tính số hạng tiếp theo này. HS này viết ra giấy: 12. HS1: giờ tính số hạng tiếp theo. 13. HS2: tính sao? 14. HS1: đặt biến c đi. 1; 1a b← ← c a b← + 98 HS này viết 15. HS2: rồi giờ tính số hạng tiếp theo sao? 16. HS1: thì là b+c. Nhưng mà rồi gán cho biến gì, đặt thêm biến d à. 17. HS2: vậy thì phải đặt thêm bao nhiêu biến? giờ có biết cần tính bao nhiêu số hạng đâu? 18. HS1: ừ (buồn rầu). 19. HS1: À, hay là gán a + b cho b luôn, b trở thành số hạng cuối luôn. 20. HS2: Là sao? 21. HS1 (giảng giải cho HS 2 hiểu): thì như cô nói đó, sau khi tính số hạng tiếp theo thì xem số đó là b luôn, số hạng trước đó là a. 22. HS2: à, hiểu rồi. Mày viết vào đi. 23. HS1: học sinh này viết vào giấy 24. HS1: rồi, vậy là xong. À, còn in ra các số hạng nữa mà. 25. HS1: In giá trị b. Thế là xong rồi đúng không? 26. HS2: chưa phải tính tổng nữa mà. GV nhắc lớp: 5phút nữa thu phiếu bài làm. Các nhóm nhớ trình bày vào trong 2 phiếu bài làm. 27. HS2: thêm vào phần đầu gán S bằng 0 28. HS1: thêm vào đâu, chỗ phép gán a và b cho 1 hả 29. HS2: ừ. Rồi sau khi tính b thì cộng thêm b vào S HS này viết thêm vào bài: Rồi vậy là xong. 30. HS2: à, phải viết vào hai phiếu làm bài. Để tao viết. HS này viết lại vào phiếu bài làm thứ hai. GV :Các nhóm nộp bài. GV thu một phiếu bài làm của HS, yêu cầu HS giữ một phiếu còn lại. Hoạt động 2: GV: Bây giờ các em cài đặt thuật toán đã viết lên MT, các em lưu file với tên nhóm và tên của mình trên ổ đĩa G. Ví dụ: Nhom1-nga-thuy 31. HS1: Sao phần mềm này không có bản tiếng Anh hay tiếng Việt ? 32. HS2: Có bản hướng dẫn cách viết chương trình, khai báo và các câu lệnh rồi mà. 33. HS1: Nhưng mà không nhớ được. b a b← + b a b← + S S b← + 99 34. HS2: thì nhìn vào bản hướng dẫn mà làm. 35. HS1: Làm đi, không là không kịp 36. HS1: Đầu tiên khai báo biến đi. 37. HS2: Ok, biến n trước, rồi a, b 38. HS2: Kiểu số hết nha. 39. HS1: Thêm S nữa chứ. 40. HS2: ừ. 41. HS1: Rồi giờ làm gì. 42. HS2: thêm dòng mới đi. 43. HS1: ở đâu? 44. HS2: Nút có hình dấu enter kìa. 45. HS1: ừ. 46. HS2: nhập giá trị cho n. 47. HS2: bây giờ gán 1 cho a và b. HS viết lệnh gán cho hai giá trị a và b trên phần mềm Algobox. 48. HS1: Gán giá trị cho S nữa. 0S ← 49. HS2: Rồi, bây giờ tính b và S. 50. HS1: In ra b và S. 51. HS2: chạy thử thuật toán xem đúng chưa. 52. HS1: nhập n bằng 10 thôi. 53. HS2: để xem kết quả nha. MT chạy thuật toán và cho kết quả số hạng là 2, tổng S là 2. 54. HS1: Sao lại là 2, ở bài tập 1 mình tính tổng 10 số hạng của dãy này là l43. 55. HS2: Vậy là sai rồi. Phải sửa lại các bước. 56. HS1: Sửa gì? Thuật toán hay trên phần mềm. 57. HS2: Cả hai. 58. HS1: Sửa trên máy trước đi. 59. HS2: Dãy số có hai số hạng đầu tiên là 1, 1 mà kết quả lại không có hai số hạng này của dãy. 60. HS1: vậy giờ sao? 61. HS2 (ngập ngừng): mình có in ra b rồi mà, sao lại không có hai số hạng đầu? 100 62. HS1: Ah, đó chỉ là in ra b từ số hạng thứ 3 thôi. Hai số hạng đầu chưa in ra mà. vậy thì sau phép gán 1 cho a và b thêm vào lệnh in ra giá trị hai biến đó đi. 63. HS2: Để thêm vào. Mà thêm vào đâu? 64. HS1: ngay sau khi gán 1 cho a và b đó. 65. HS2: Ah, được rồi. in ra xong có xuống dòng mới không? 66. HS1: Ở đâu? 67. HS2: thêm dấu x vào ô trống bên phải hộp chứa lệnh in ra này nè. 68. HS1: Ờ, có. Thử xem chạy đúng chưa? HS2 chạy thử thuật toán cũng với n=10, lúc này kết quả chỉ có thêm hai số hạng 1, 1 là có tất cả 3 số hạng và tổng S là 2. 69. HS1: Sao vẫn chưa đúng? Quay lại sửa thuật toán. 70. HS1: À, như thế này thì mới chỉ tính được số hạng thứ 3 thôi. Đúng rồi. Phải dùng for để in ra các số hạng thứ nhất đến n chứ. 71. HS2: Thêm vòng lặp vào đâu? 72. HS1: trước câu lệnh tính b và S. 73. HS1: mở thêm dòng mới trước câu lệnh gán giá trị cho b. 74. HS1: chọn câu lệnh Pour de A (tương ứng câu lệnh for trong Pascal), cho n chạy từ 1 đến 75. HS2: cho i chạy từ 1 đến n chứ? 76. HS1: chưa có biến i. 77. HS2: xóa câu lệnh đó đi, khai báo thêm biến i rồi mới làm tiếp. HS1 xóa câu lệnh, quay lại khai báo thêm biến trong phần khai báo thêm biến i 78. HS2: Thêm dòng mới trước câu lệnh gán b và S. HS2 chọn lại câu lệnh Pour de A, nhập vào biến i từ 1 đến n. 79. HS1: chúng ta phải tính từ số hạng thứ 3 mà, số hạng thứ nhất và thứ 2 là 1 rồi. 80. HS2: Vậy cho i chạy từ 3. HS2 chọn vào câu lệnh và chỉnh sửa biến i chạy từ 3 đến n 81. HS2: Vậy giờ làm gì trong câu lệnh Pour này? 82. HS1: đưa hai câu lệnh tính b và S vào trong vòng lặp Pour HS2 viết thêm hai câu lệnh gán b và S vào trong vòng lặp. 83. HS2: Sao không cắt rồi dán hai câu lệnh đó vào trong vòng lặp luôn? 84. HS1: làm thế nào? 101 85. HS2: Thì chọn câu lệnh rồi nhấn phím Ctrl+X để cắt đi, rồi Ctrl +V để dán vào. HS2 cười và nói “giỏi quá ta”, cả hai HS cùng cười. GV nhắc các nhóm HS, các em còn 7phút nữa. 86. HS1: Ok, giờ sửa vào trong giấy nha. 87. HS2: cứ sửa đi. 88. HS1: nhưng làm sao thêm vào vòng lặp for đây? Đây là thuật toán mà. 89. HS1: à, gán i bằng 3 trước. 90. HS2: ở đâu? 91. HS1: trước khi tính b và S. 92. HS 1: Nếu i>n thì in ra tổng S và kết thúc. 93. HS1: nếu không lớn hơn n thì tính b và tổng S. HS1 sửa thuật toán trên giấy. Bước 1: Nhập n; Bước 2: 1; 1; 0a b S← ← ← ; Bước 3: in ra giá trị a và b Bước 4: 3i ← ; Bước 5: nếu i N> thì in ra S và kết thúc. Bước 6: ;b a b S S b← + ← + ; Bước 7: 1i i← + rồi quay lại bước 5 94. HS1: Xong chưa, chạy thử lại thuật toán xem đúng chưa Kết quả chạy thuật toán không đúng với tổng và các số hạng đã tính ở bài tập 1. GV nhắc các nhóm nộp bài. 95. HS2: Sao vẫn chưa đúng? 96. HS1: Thôi nộp bài đi. GV thu file bài làm trên máy và phiếu bài làm có chỉnh sửa của các nhóm HS cùng giấy nháp. Hoạt động 3: Kết thúc hoạt động 2, GV mở flie algobox của nhóm 5, cả lớp theo dõi cùng thảo luận. 97. HS1 (nhóm 2): Vòng lặp for, i bắt đầu từ 3 không phải là 1 Phải gán i bằng 3 chứ, vì ta bắt đầu tính từ số hạng thứ 3 mà. Số hạng thứ nhất và thứ 2 đã có. Cả lớp: đúng rồi. 98. HS3 (nhóm 6): Ban đầu S phải được gán bằng tổng a+b. 102 GV nhận xét: ý kiến bạn HS3 đúng. 99. HS4 (nhóm 19): Sau lệnh gán ;b a b← + phải có thêm lệnh gán a b← . 100. HS5 (nhóm 6): không phải. Trước lệnh gán ;b a b← + là lệnh gánb a← để sau khi tính b giá trị hai biến là hai số cuối và gần cuối của dãy số mới. 101. HS6 (nhóm 7): Trước hết gán giá trị tổng a+b cho biến c, sau đó gán giá trị biến b cho a và cuối cùng gán giá trị biến c cho b. GV cài đặt thuật toán và chạy thuật toán theo cả ba trường hợp đưa ra của ba bạn HS. Kết quả: cách làm của bạn HS 3 đúng. GV giải thích tại sao lại cần phải sử dụng thêm biến c để tính giá trị biến b và hoán đổi giá trị cho biến a. Cuối cùng GV thể chế lại thuật toán trên giấy và chương trình chính xác trên M 103 PHỤ LỤC 4 MỘT SỐ PHIẾU BÀI LÀM CỦA HỌC SINH Ở PHA 1 – Bài toán 2 104 PHỤ LỤC 5 MỘT SỐ ĐOẠN CHƯƠNG TRÌNH TRÊN ALGOBOX CỦA HỌC SINH - PHA 3 105

Các file đính kèm theo tài liệu này:

  • pdflv_buoc_chuyen_tu_loi_giai_toan_hoc_sang_loi_giai_tin_hoc_cua_mot_bai_toan_0963.pdf