Giải quyết vấn đề này, với mỗi kiểu cấu trúc, giáo viên ngoài việc cungcấp cho các em các kiến thức cơ bản về lý thuyết của kiểu cấu trúc đó cần dànhnhiều thời gian để phân tích các ví d
Trang 11 MỞ ĐẦU 1.1 Lí do chọn đề tài
Hiện nay, Tin học là bộ môn bắt buộc trong chương trình THPT, tuy làmôn học bắt buộc nhưng không là một trong những môn thi tốt nghiệp trung họcphổ thông quốc gia nên nhìn chung thái độ của học sinh (trừ học sinh các lớpchuyên Tin của các trường chuyên) đối với môn học này chưa thật sự tốt Mặtkhác, chương trình Tin học nói chung và chương trình Tin học 11 nói riêngtương đối khô khan và khó hiểu Với Tin học lớp 11 học sinh bước đầu làmquen với việc lập trình sử dụng ngôn ngữ Pascal nên đại đa số các em đều cảmthấy rất khó hiểu, thấy trừu tượng Các em tỏ ra rất lúng túng khi phải học nhiềukiểu dữ liệu và lúc lập trình phải suy nghĩ sử dụng thuật toán nào cấu trúc nào,kiểu nào cho hợp lí Bản thân tôi là giáo viên giảng dạy bộ môn Tin học, tôinhận thấy trong việc giảng dạy cho học sinh, ngoài việc giúp học sinh lĩnh hộinhững kiến thức cơ bản Người giáo viên còn phải biết kích thích tính tích cực,
sự sáng tạo say mê học hỏi của học sinh Bởi vì, khi có sự đam mê, các em tựnhiên sẽ học tập một cách tự giác, tích cực, chủ động để đạt được mục tiêu đặt
ra
Tạo đam mê học tập cho học sinh không phải là việc làm đơn giản, khôngchỉ đơn giản là việc giáo viên phải nêu rõ mục tiêu cho mỗi tiết học mà còn thểhiện trong cách giáo viên gợi động cơ cho các em và đặc biệt là phải đầu tư thiết
kế bài giảng cho mỗi tiết học thật chi tiết, thật lôi cuốn Các cách thiết kế bàigiảng hiện nay nhằm mục đích áp dụng phương pháp hiện đại để bồi dưỡng chohọc sinh năng lực ham muốn học hỏi, tư duy sáng tạo, năng lực tự giải quyết vấn
đề, rèn luyện và phát triển năng lực tự học, sáng tạo, nghiên cứu, nghĩ và làmviệc một cách tự chủ Trong quá trình học lập trình, để lập trình cho một bàitoán cụ thể, một trong những điều quan trọng nhất là học sinh phải xác định cácbiến sử dụng trong chương trình và kiểu dữ liệu tương ứng của các biến đó saocho hợp lí và chính xác Trong quá trình giảng dạy bài Cấu trúc lặp - Tin học 11tôi nhận thấy các em học sinh tỏ ra khá lúng túng khi xác định cấu trúc lặp đểgiải các bài toán lập trình
Giải quyết vấn đề này, với mỗi kiểu cấu trúc, giáo viên ngoài việc cungcấp cho các em các kiến thức cơ bản về lý thuyết của kiểu cấu trúc đó cần dànhnhiều thời gian để phân tích các ví dụ, các bài tập cơ bản có trong sách giáokhoa Ngoài ra, giáo viên nên chú ý chuẩn bị sẵn hệ thống các ví dụ, các bài tập
cụ thể, cơ bản khác nhưng phù hợp với trình độ của học sinh lớp mình dạy Để
từ việc tìm hiểu về các ví dụ đó học sinh không những củng cố về lý thuyết màcòn hiểu sâu sắc hơn kiểu dữ liệu tương ứng Xuất phát từ tinh thần đó cũng như
từ thực tế trình độ của học sinh các lớp 11 trường THPT Thọ Xuân 4 mà tôi
đang giảng dạy, tôi chọn đề tài: "Sử dụng kỹ thuật mảnh ghép trong bài dạy Cấu trúc lặp tiết 1- tin học 11 nhằm phát huy tính tích cực của học sinh", với
mong muốn từ việc tìm cấu trúc giải cho các bài tập và thực hiện chúng trực tiếptrên máy tính các em học sinh sẽ cảm thấy thích thú và hiểu sâu kiến thức hơn
Trang 21.2 Mục đích của đề tài
Mục đích của đề tài này là cung cấp một cách tiếp cận mới trong việc giảiquyết các bài toán lặp một cách tối ưu, đồng thời đưa ra các ví dụ để học sinh
có thể làm quen, hình thành các kĩ năng trong việc tiếp cận và giải các bài toán
có sử dụng cấu trúc lặp và nâng cao hơn là thuật toán truy hồi
1.3 Đối tượng nghiên cứu.
- Các bài toán liên quan đến lặp, cấu trúc lặp, được nghiên cứu ở nhiềutài liệu và các đề thi qua các năm được giải quyết bằng cách sử dụng kỹ thuật
“mảnh ghép”
- Học sinh lớp 11 trường THPT 4 Thọ Xuân
1.4 Phương pháp nghiên cứu
Sáng kiến kinh nghiệm đang trình bày của tôi dựa theo các luận cứ khoahọc hướng đối tượng, vận dụng linh hoạt các phương pháp: quan sát, thuyếttrình, vấn đáp, điều tra cơ bản, kiểm thử, phân tích kết quả thực nghiệm sưphạm,v.v… phù hợp với bài học và môn học thuộc lĩnh vực cấu trúc dữ liệu.Tham khảo các bài tập tin học, bài tập Tin học nâng cao, tài liệu ôn luyệnhọc sinh giỏi và một số đề thi học sinh giỏi môn Tin học
Hướng dẫn cho học sinh làm quen và hình thành kĩ năng để giải một số bàitoán cụ thể
Kiểm tra, đánh giá kết quả của học sinh trong quá trình triển khai đề tài để
từ đó có những điều chỉnh, bổ sung hợp lí
Trang 32 NỘI DUNG CỦA SÁNG KIẾN KINH NGHIỆM 2.1 Cơ sở lí luận của sáng kiến kinh nghiệm
Từ thực trạng trên, với tâm huyết của một giáo viên giảng dạy, lại có điềukiện tham gia buổi tập huấn “Đổi mới phương pháp dạy học theo hướng pháttriển năng lực học sinh” của sở giáo dục – đào tạo tổ chức, tôi mạnh dạn sử dụngnhiều phương pháp dạy học trong các học phần mình giảng dạy như phươngpháp thảo luận nhóm, phương pháp dạy học dự án, phương pháp hướng dẫn sinhviên tự học, tự nghiên cứu, Xêmina …và gần đây nhất tôi sử dụng Kỹ thuật cácmảnh ghép trong dạy học Tôi nhận thấy khi sử dụng kỹ thuật này thì tiết dạyhọc tăng thêm tính hứng thú, bản thân người học tự giác động não, không tiếpthu kiến thức một cách thụ động
Kỹ thuật các mảnh ghép là kĩ thuật dạy học mang tính hợp tác, kết hợp
giữa cá nhân, nhóm và liên kết giữa các nhóm nhằm giải quyết một nhiệm vụphức hợp, kích thích sự tham gia tích cực cũng như nâng cao vai trò của cá nhântrong quá trình hợp tác
Mục tiêu:
- Giải quyết một nhiệm vụ phức hợp
- Kích thích sự tham gia tích cực của HS trong hoạt động nhóm
- Nâng cao vai trò của cá nhân trong quá trình hợp tác
- Tăng cường tính độc lập, trách nhiệm học tập của mỗi cá nhân
Tác dụng đối với HS:
- HS hiểu rõ nội dung kiến thức
- HS được phát huy kĩ năng trình bày, giao tiếp hợp tác, giải quyết vấnđề
- Nâng cao tinh thần trách nhiệm với bản thân và các bạn khác
Hạn chế của kỹ thuật mảnh ghép
- Giáo viên phải đầu tư nhiều thời gian
- Học sinh phải có thói quen tự học và học tập tự giác thì mới đạt hiệuquả cao
- Hiệu quả không cao nếu tổ chức nhóm chỉ là hình thức
- Nếu số lượng học sinh nhiều hiệu quả không cao
Cách tiến hành:
Giai đoạn 1: “Nhóm chuyên sâu”
- Lớp học được chia thành các nhóm (khoảng 3-6 học sinh) Mỗi nhómđược giao nhiệm vụ tìm hiểu/ nghiên cứu sâu một phần nội dung học tập khácnhau nhưng có liên quan chặt chẽ với nhau Các nhóm này gọi là “nhóm chuyênsâu”
- Các nhóm nhận nhiệm vụ và nghiên cứu, thảo luận, đảm bảo mỗi thànhviên trong nhóm đều nắm vững và có khả năng trình bày lại được các nội dungtrong nhiệm vụ được giao cho các bạn ở nhóm khác Mỗi học sinh trở thành
“chuyên sâu” của lĩnh vực tìm hiểu trong nhóm mới ở giai đoạn tiếp theo
Giai đoạn 2: “Nhóm mảnh ghép”
- Sau khi hoàn thành giai đoạn 1, mỗi học sinh từ các nhóm “chuyên sâu”khác nhau tập hợp lại thành các nhóm mới, gọi là “nhóm mảnh ghép” Lúc này,
Trang 4mỗi học sinh “chuyên sâu” trở thành những “mảnh ghép” trong “nhóm mảnhghép” Các học sinh phải lắp ghép các mảng kiến thức thành một bức tranh tổngthể.
- Từng học sinh từ các nhóm “chuyên sâu” trong nhóm “mảnh ghép” lầnlượt trình bày lại nội dung tìm hiểu của nhóm mình Đảm bảo tất cả các thànhviên trong nhóm “mảnh ghép” nắm bắt được toàn bộ nội dung đã được tìm hiểu
từ nhóm “chuyên sâu”
- Sau đó nhiệm vụ mới được giao cho các nhóm “mảnh ghép” Nhiệm vụnày mang tính khái quát, tổng hợp lại toàn bộ nội dung đã được tìm hiểu từ cácnhóm “chuyên sâu” Bằng cách này, học sinh có thể nhận thấy những phần vừathực hiện không chỉ để giải trí hoặc trò chơi đơn thuần mà thực sự là những nộidung học tập quan trọng
Theo Dạy và học tích cực – Một số phương pháp và kĩ thuật dạy học –Nhà
xuất bản ĐHSP
Một số lưu ý khi thực hiện phương pháp các mảnh ghép.
- Nhiệm vụ của các “nhóm chuyên sâu” phải có sự liên quan, gắn kết vớinhau
- Nhiệm vụ phải hết sức cụ thể, dễ hiểu và vừa sức học sinh
- Trong khi các nhóm “chuyên sâu” làm việc giáo viên cần quan sát, hỗtrợ kịp thời để đảm bảo thời gian quy định và các học sinh đều có thể trình bàylại được kết quả nghiên cứu, thảo luận của nhóm
- Thành lập nhóm “mảnh ghép” phải có đủ thành viên của các nhóm
“chuyên sâu”
- Khi các “nhóm mảnh ghép” hoạt động, giáo viên cần quan sát, hỗ trợ kịpthời để đảm bảo các thành viên nắm được đầy đủ các nội dung từ nhóm “chuyênsâu”
- Nhiệm vụ mới được giao cho “nhóm mảnh ghép” phải mang tính kháiquát, tổng hợp các nội dung kiến thức đã nắm được từ các nhóm “chuyên sâu”
Trang 5- Đảm bảo những thông tin từ các mảnh ghép lại với nhau có thể hiểuđược bức tranh toàn cảnh của một vấn đề và là cơ sở để giải quyết một nhiệm vụphức hợp ở vòng 2.
- Số lượng mảnh ghép không nên quá lớn để đảm bảo các thành viên cóthể truyền đạt lại kiến thức cho nhau
- Để đảm bảo hiệu quả của nhóm, các thành viên trong nhóm cần được phân công các nhiệm vụ như sau:
1 Trưởng nhóm: Phân công nhiệm vụ
5 Liên lạc với các nhóm khác Liên hệ với các nhóm khác
6 Liên lạc với giáo viên Liên lạc với giáo viên để xin trợ giúp
2.2 Thực trạng dạy và học ở trường THPT
Hiện nay tin học đã được đưa vào môn chính trong các trường THPT đãđược đa số các em học sinh rất hào hứng vì các em sẽ được thực hành trên máytính Tuy nhiên nội dung các bài học của tin học lại rất khô khan, kiến thức trừutượng, khó hiểu mà các em lại không có thời gian để học môn học này vì khôngphải là môn thi THPT Quốc gia Sách giáo khoa tin học cung cấp cho các emkiến thức về lập trình , dữ liệu, thuật toán, ngôn ngữ lập trình bậc cao khiến các
em rất bỡ ngỡ và khó so với đa số các em
Cấu trúc lặp là cấu trúc thường được sử dụng để giải các bài toán trongPascal và nó là tiền đề cho các bài toán truy hồi Nhưng thực tế sau khi các emhọc xong phần này thì nhiều chưa xác định được cấu trúc lặp như thế nào, vàkhông phân biệt được cấu trúc lặp với số lần biết trước hay lặp với số lần chưabiết trước Vì vậy tôi chọn bài cấu trúc lặp để nghiên cứu phương pháp dạy phùhợp với các em mà lại nâng cao hiệu quả trong giảng dạy và học tập để các em
có kiến thức trong lập trình giải quyết các bài toán ở mức độ khó hơn
Kết quả kiểm tra của 2 lớp 11 năm học 2018-2019 khi chưa áp dụngsáng kiến kinh nghiệm
Khi chưa thực hiện SKKN thì:
Mức điểm trung bình, khá là 50,1
2.3 Các giải pháp giải quyết vấn đề.
2.3.1 Mục tiêu của bài học
- Học sinh hiểu nhu cầu của cấu trúc lặp trong biểu diễn thuật toán
- Học sinh biết cấu trúc lặp với số lần biết trước for trong ngôn ngữlập trình pascal
- Học sinh biết sử dụng đúng 2 dạng lệnh lặp For- do
Trang 62.3.2 Tiến trình bài dạy
Tùy vào số học sinh của từng lớp chúng ta có cách chia nhóm phù hợp.Việc tạo nhóm chuyên sâu và giao nhiệm vụ sẽ được tiến hành vào cuối bài 9
Giai đoạn 1: “Nhóm chuyên sâu”:
Nhiệm vụ của giáo viên phải nghiên cứu tình hình cụ thể của học sinh đểchia nhóm cho phù hợp giáo viên phải đưa ra các nhiệm vụ phù hợp với cácnhóm học sinh, giám sát giúp đỡ học sinh trong quá trình học sinh nghiên cứutìm hiểu nội dung của từng nhóm Định hướng cho học sinh các ví dụ các thuậttoán phù hợp Thay vì dạy trên lớp giáo viên cần phải có nhiều thời gian quantâm và giám học sinh trong quá trình thảo luận nhóm
Lớp học sẽ được chia làm 6 nhóm chuyên sâu, mỗi nhóm 6 học sinh, mỗihọc sinh được đánh số từ 1-6 Các thành viên trong nhóm được giao nhiệm vụ
cụ thể:
Trưởng nhóm: Phân công nhiệm vụ cho các thành viên trong nhóm
Thư kí: Ghi chép kết quả
Liên lạc với giáo viên để xin trợ giúp
- Nhóm 1: Bài toán lặp và phân dạng lặp với số lần biết trước và lặp với
số lần chưa biết trước
- Nhóm 1: Lặp với số lần biết trước và cấu trúc cách hoạt động củacâu lệnh FOR-DO dạng tiến
- Nhóm 2: Lặp với số lần biết trước và cấu trúc hoạt động của câu lệnhROR-Do dạng lùi
- Nhóm 3: Viết thuật toán giải bài toán tính tổng s:=1/a+1/(a+1)+ +1/(a+100) theo cấu trúc lặp tiến
- Nhóm 4: Viết thuật toán giải bài toán tính tổng s:=1/a+1/(a+1)+ +1/(a+100) theo cấu trúc lặp lùi
- Nhóm 5: Viết thuật toán giải bài toán tính tổng s= 1+2+3+4+ + 100theo cấu trúc lặp tiến
- Nhóm 6: Viết thuật toán giải bài toán tính tổng s:=1 +2+3+4+ +100theo cấu trúc lặp lùi
Các nhóm nhận nhiệm vụ, nhóm trưởng phân công nhiệm vụ và tiến hànhnghiên cứu, thảo luận ở nhà Đảm bảo mỗi thành viên trong nhóm đều nắmvững và có khả năng trình bày lại được nội dun g trong nhiệm vụ được giao chocác bạn ở nhóm khác Thư kí chịu trách nhiệm ghi chép Nếu có thắc mắc họcsinh liên lạc với giáo viên để được giúp đỡ
Nhóm 1: Học sinh trình bày các bài toán lặp và phân dạng lặp lên giấy A0
Ví dụ 1: Thực hiện việc dùng ca múc nước đổ vào thùng: được phân làm
trường hợp: một là thực hiện múc 10 ca nước đổ vào thùng hoặc là thực hiện đổnước vào thùng đến khi nào đầy thì dừng lại
Giống nhau: ở thao tác lặp đổ nước vào thùng
Khác nhau: số lần lặp
Ví dụ 2: Thực hiện việc chạy thể dục : hoặc là chạy 10 vòng quanh sân thì
dừng lại hoặc là chạy quanh sân khi nào mệt thì dừng lại
Giống nhau: ở thao tác lặp chạy vòng quanh sân
Khác nhau: số lần lặp
Trang 7Ví dụ 3: Thực hiện việc tính s:= 1+2+3+ + 100 và thực hiện tính
s:=1+1/2+ 1/3+ + 1/n đến khi nào 1/n< 0.001 thì dừng lại cả hai bài toán đềuthực hiện công việc lặp cộng vào tổng ban đầu giá trị n với n= 1,2,3,4…
Giống nhau: ở thao tác lặp cộng vào tổng một giá trị n
Khác nhau: số lần lặp
Lặp được chia làm 2 loại : lặp với số lần biết trước và lặp với số lần chưabiết trước
Nhóm 2: Cấu trúc lặp dạng tiến
FOR <biến đếm>:= <giá trị đầu > TO <giá trị cuối> DO <câu lệnh>;
Ví dụ: For i:=1 to 50 do s:=s+i
Biến đếm là biến đơn, thường là biến có kiểu nguyên cùng kiểu dữ liệuvới giá trị đầu và giá trị cuối
Hoạt động của câu lệnh For – do :giá trị đầu đầu và giá trị cuối là các biểuthức có cùng kiểu với biến đếm, giá trị đầu <= giá trị cuối Nếu giá trị đâu > giátrị cuối thì vòng lặp không được thực hiện
Sau mỗi lệnh lặp giá trị của biến đếm sẽ tự dộng tăng từ giá trị đầu đếngiá trị cuối, không cần tác động lên biến đếm
Nhóm 3:
FOR <biến đếm>:= <giá trị cuối > DOWNTO <giá trị đầu> DO <câu lệnh>;
Vd: For i:=50 down to 1 do s:=s+I;
Hoạt động của câu lệnh For – do : Giá trị đầu đầu và giá trị cuối là cácbiểu thức có cùng kiểu với biến đếm, giá trị đầu <= giá trị cuối Nếu giá trị đâu >giá trị cuối thì vòng lặp không được thực hiện
Sau mỗi lệnh lặp giá trị của biến đếm sẽ tự động giảm dần từ giá trị cuốiđến giá trị đầu, không cần tác động lên biến đếm
Biến đếm:= <gía trị đầu>
Biến đếm<=gía trị cuối
Câu lệnh lặp Biến đếm :=biến đếm + 1
Đ
S
Trang 8Nhóm 5: Thuật toán
B1: S:=1/a; n:=101;
B2: N:=n-1;
B3: Nếu n< 1 thì sang b5B4: S:=s+1/(a+n); rồi quay lại b2B5: Đưa ra s rồi kết thúc
Nhóm 6: Thuật toán
B1: S:=1; n:=0;
B2: N:=n+1;
B3: Nếu n> 100 thì sang b5B4: S:=s+n; rồi quay lại b2B5: Đưa ra s rồi kết thúc
Nhóm 7: Thuật toán
B1: S:=1; n:=101;
B2: N:=n-1;
B3: Nếu n<1 thì sang b5B4: S:=s+n; rồi quay lại b2B5: Đưa ra s rồi kết thúc
Biến đếm:= gtrị cuối
Biến đếm>=gtrị đầu
Câu lệnh lặp Biến đếm :=biến đếm - 1
Đ
S
Trang 9Nhóm “chuyên sâu” đang cùng nhau thảo luận
Trang 10Hình ảnh các nhóm “chuyên sâu” đang trình bày kết quả
Trang 11Giáo viên kết luận lại nội dung của hoạt động
FOR <biến đếm>:= <giá trị đầu > TO <giá trị cuối> DO <câu lệnh>;
Vd: For I:=1 to 10 do s:=s+I;
Ở dạng lặp tiến: Biến đếm tự động tăng dần từ giá trị đầu đến giá trị cuối
Ở dạnh lặp lùi: Biến đếm tự động giảm dần từ giá trị cuối đến giá trị đầu
Giai đoạn 2: “ Nhóm mảnh ghép”
- Sau khi hoàn thành giai đoạn 1, ở tiết học trên lớp 7 học sinh mang số1ở 7 nhóm khác nhau tập hợp lại thành các nhóm mới, gọi là “nhóm mảnhghép1” Tương tự như vậy chúng ta có 6 nhóm mảnh ghép Mỗi nhóm có 7thành viên Lúc này, mỗi học sinhchuyên sâu” trở thành những “mảnh ghép”trong “nhóm mảnh ghép” Các học sinh phải lắp ghép các mảng kiến thức thànhmột bức tranh tổng thể Mỗi nhóm cử nhóm trưởng, thư ký, các thành viên khác
chịu trách nhiệm đặt và trả lời câu hỏi phản hồi
- Từng học sinh từ các nhóm “chuyên sâu” trong nhóm “mảnh ghép” lầnlượt trình bày lại nội dung tìm hiểu của nhóm mình Đảm bảo tất cả các thànhviên trong nhóm “mảnh ghép” nắm bắt được toàn bộ nội dung đã được tìm hiểu
từ nhóm “chuyên sâu” Giáo viên giao nhiệm vụ mới cho 6 nhóm “mảnh ghép”Nhóm 1: Viết chương trình tính tổng s:=1+2+3+ +n sử dụng cấu trúc lặp tiếnNhóm 2: Viết chương trình tính tổng s:=1+2+3+ +n sử dụng cấu trúc lặp lùiNhóm 3: Viết chương trình tính tổng s:=1+1/2+1/3+ +1/n sử dụng cấu trúclặp tiến
Nhóm 4: Viết chương trình tính tổng s:=1+1/2+1/3+ +1/n sử dụng cấu trúclặp lùi
Lặp
Lặp với số lần biết trước
Lặp với số lần chưa biết trước