Sáng kiến kinh nghiệm Một số phương pháp phát hiện, bồi dưỡng học sinh giỏi môn Tin học ở trường THPT Nguyễn Xuân Nguyên
MỤC LỤC
A. ĐẶT VẤN ĐỀ 2
I. Lý do chọn đề tài: 2
II. Mục đích nghiên cứu: 3
III. Nhiệm vụ và phạm vi nghiên cứu: 3
1. Nhiệm vụ nghiên cứu: 3
2. Phạm vi nghiên cứu. 3
IV. Phương pháp nghiên cứu: 3
1. Phương pháp tổng hợp: Nghiên cứu giáo trình tâm lý học, giáo dục học, ngôn ngữ học. 3
2. Phương pháp điều tra, khảo sát 3
3. Phương pháp thực nghiệm: giảng dạy để khảo sát đối chứng. 3
B. GIẢI QUYẾT VẤN ĐỀ 4
I. Cơ sở lý luận 4
1. Cơ sở tâm lý học: 4
2. Cơ sở ngôn ngữ: 4
II. Thực trạng của vấn đề nghiên cứu. 5
1. Thực trạng công tác bồi dưỡng học sinh giỏi môn Tin học hiện nay. 5
2. Những thuận lợi và khó khăn: 5
III. Một số biện pháp bồi dưỡng học sinh giỏi môn tin học trường THPT Nguyễn Xuân Nguyên. 8
1. Phát hiện học sinh giỏi môn tin học: 8
2. Xây dựng chương trình bồi dưỡng 9
3. Dạy như thế nào cho đạt hiệu quả? 10
4. Các bước rèn luyện cho học sinh: 10
C. KẾT LUẬN 17
I. Một số kết luận: 17
II. Kiến nghị: 18
o chương trình bồi dưỡng là một việc làm hết sức quan trọng và rất khó khăn nếu như chúng ta không có sự tham khảo, tìm tòi và chọn lọc tốt. Giáo viên cần soạn thảo nội dung bồi dưỡng dẫn dắt học sinh từ cái cơ bản của nội dung chương trình học chính khoá, tiến dần tới chương trình nâng cao (tức là trước hết phải khắc sâu kiến thức cơ bản của nội dung học chính khoá, từ đó vận dụng để mở rộng và nâng cao dần). Cần soạn thảo chương trình từ cơ bản tới nâng cao, từ đơn giản tới phức tạp. Đồng thời cũng phải có ôn tập củng cố. Không nên xây dựng chương trình như sách nâng cao hiện nay vì như thế học sinh khó nắm chắc, dễ nhầm lẫn. Mặt khác trong sách nâng cao có một số bài quá khó đối với học sinh. Một số giờ ôn tập, Giáo viên cần giúp các em tổng hợp các dạng bài, các phương pháp giải theo hệ thống. Vì hầu hết các em chưa tự mình hệ thống đựơc mà đòi hỏi phải có sự giúp đỡ của giáo viên. Điều cần thiết, giáo viên đầu tư nhiều thời gian, tham khảo nhiều tài liệu để đúc rút, soạn thảo cô đọng nội dung chương trình bồi dưỡng. Giáo viên cần hướng cho học sinh làm quen cách giải một bài toán cụ thể: Phân tích kĩ bài toán để tìm INPUT và OUTPUT, xây dựng thuật toán tối ưu và từ đó viết chương trình. Giáo viên viết mẫu chương trình đối với một bài cụ thể và chỉ rõ cho học sinh nên viết như thế nào cho đúng, đủ, đẹp để người đọc nhìn vào hiểu ngay đoạn chương trình đó mình đang làm gì. Và theo tôi nên phân tích nhiều thuật toán, học sinh tự cài đặt Cần lưu ý rằng: Tuỳ thuộc vào thời gian bồi dưỡng, khả năng tiếp thu của học sinh mà lựa chọn mức độ bài khó và từng dạng luyện tập nhiều hay ít. 3. Dạy như thế nào cho đạt hiệu quả? Trước hết cần chọn lọc những phương pháp giải dễ hiểu nhất để hướng dẫn học sinh, không nên máy móc theo các sách giải. Cần vận dụng đổi mới phương pháp giảng dạy phù hợp với nội dung từng bài; phát huy tính tích cực, độc lâp, tự giác của học sinh; tôn trọng và khích lệ những sáng tạo của học sinh. Khuyến khích học sinh học theo hướng tích cực: Tự nghiên cứu, trao đổi, thảo luận để tìm ra cái mới. Những bài hướng dẫn kiến thức mới, giáo viên cần lấy ví dụ và ra bài tập mang tính chất vui chơi để gây hứng thú học tập cho học sinh đồng thời giúp các em ghi nhớ được tốt hơn. Ví dụ: Làm và cho chạy một số ví dụ phần đồ họa. Ra bài toán vui, bài toán là một bài thơ, bài toán lấy tên học sinh, hay đáp số là ngày tháng có ý nghĩa, đáng ghi nhớ ( như các ngày lễ lớn, ngày thi,...). Tuy nhiên, những bài toán như thế, giáo viên cần phải tìm hiểu kỹ, thử và kiểm tra kết quả nhiều lần. Hầu hết các bài toán giáo viên chỉ nên gợi mở để học sinh tìm tòi ra cách giải; không nên giải cho học sinh hoàn toàn hoặc để các em bó tay rồi chữa. Khi chữa bài giáo viên lại phải giải một cách chi tiết (không nên giải tắt) để gúp học sinh hiểu sâu sắc bài toán; đặc biệt là những bài toán khó những bài học sinh sai sót nhiều. Đồng thời uốn nắn những sai sót và chấn chỉnh cách trình bày của học sinh một cách kịp thời. 4. Các bước rèn luyện cho học sinh: 4.1. Rèn luyện kĩ năng xác định bài toán: Để viết được một chương trình chính xác thì bước phân tích đề là rất quan trọng, bước này không thể bỏ qua và nếu bước này làm không kĩ thì có thể sai cả bài toán. Ví dụ : Kiểm tra phân số tối giản * Xác định bài toán: - Input: tử số (x); mẫu số (y) - Output: phân số a/b tối giản hoặc phân số a/b không tối giản. * Ý tưởng: Phân số tối giản là phân số không còn chia hết cho số nào được hết, nghĩa là ƯCLN của tử số và mẫu số bằng 1. -Tìm ƯCLN(x,y) -Kiểm tra: +Nếu ƯCLN(x,y)=1 thì x/y là phân số tối giản +Nếu ƯCLN(x,y)1 thì x/y không là phân số tối giản 4.2. Rèn luyện kĩ năng viết thuật toán: Ta có thể viết thuật toán theo hai cách + Cách 1: Liệt kê + Cách 2: Sơ đồ khối. Ví dụ: Kiểm tra tính nguyên tố của một số nguyên Liệt kê các bước Bước 1: Nhập số nguyên dương N; Bước 2: Nếu N=1 thì thông báo N không là nguyên tố rồi kết thúc. Bước 3: Nếu N<4 thì thông báo N là nguyên tố rồi kết thúc. Bước 4: i <- 2; Bước 5: Nếu i > [ ] thì thông báo N là nguyên tố, kết thúc. Bước 6: Nếu N chia hết cho i thì thông báo N không nguyên tố, kết thúc. Bước 7: i <- i+1, rồi quay lại bước 5. Hoặc khi chúng ta hướng dẫn cho học sinh thuật toán tìm kiếm phần tử có mặt trong dãy tăng cho trước thì có nhiều cách như: Tìm kiếm tuần tự hoặc tìm kiếm nhị phân, và hướng cho học sinh đối với dãy tăng nên sử dụng thuật toán tìm kiếm nhị phân là tốt nhất. * ý tưởng của thuật toán tìm kiếm nhị phân Sử dụng tính chất dãy A đã sắp xếp tăng, ta tìm cách thu hẹp nhanh phạm vi tìm kiếm bằng cách so sánh k với số hạng ở giữa dãy (agiữa), khi đó chỉ xảy ra một trong ba trường hợp: - Nếu agiữa= k => tìm được chỉ số, kết thúc; - Nếu agiữa > k => do dãy A đã được sắp xếp tăng nên việc tìm kiếm thu hẹp chỉ xét từ a1 à agiữa - 1; - Nếu agiữa do dãy A đã được sắp xếp tăng nên việc tìm kiếm thu hẹp chỉ xét từ agiữa + 1 à aN. 4.3. Rèn luyện kĩ năng viết chương trình: Nếu việc phân tích và đưa ra thuật toán khó bao nhiêu thì việc viết chương trình lại càng phải chính xác và khó khăn hơn. Phải viết đúng câu lệnh, cú pháp và có khả năng tư duy tốt thì chương trình mới thi hành được. Chính vì vậy, với tư cách là giáo viên bồi dưỡng học sinh giỏi tôi đã rèn cho học sinh cách viết từng câu lệnh một, từ cách khai báo đến câu lệnh nhập, câu lệnh khai báo,… Bài 1: Viết chương trình tìm UCLN và BCNN của hai số nguyên x, y. Var x, y, P:Integer; Begin Write(‘Nhập vào giá trị của x và y : ‘); Readln(x,y); P:=x*y; While x y do Begin If x > y then x:=x - y Else y := y - x; End; Writeln(‘UCLN la ‘ , x ); If x 0 then Writeln(‘BCNN la ‘ , P div x) Else Writeln(‘Khong co BCNN ‘); Readln; End. Tôi cũng đã yêu cầu học sinh phải xử lý tất cả các bài toán dưới dạng đọc tệp Bài 2: Một ma trận mxn số thực được chứa trong một file văn bản có tên DULIEU.INP gồm: -Dòng đầu tiên chứa hai số m, n -m dòng tiếp theo lần lược chứa m hàng của ma trận. Hãy viết chương trình đọc dữ liệu từ file DULIEU.INP, cho biết các hàng của ma trận có tổng phẩn tử trên hàng đó lớn nhất. Kết quả ghi lên file văn bản có tên DULIEU.OUT, trong đó dòng đầu tiên chứa giá trị lớn nhất của tổng các phần tử trên một hàng, dòng thứ hai chứa chỉ số các hàng đạt giá trị tổng lớn nhất đó. Program filevanban; Const Fi =’D:\ DULIEU.INP’ ; F0 = ‘D:\ DULIEU.OUT’ ; Var F,G:text; S:array[1..100] of real; T:Set of byte; m,n,i,j,x:Byte; Max:Real; Begin assign(F, Fi); Reset(F); Readln(F,m,n); S[i]:=0; For i:= 1 to m do Begin For j:=1 to n do Begin Read(F,x); S[i]:=S[i]+x; end; Readln(F); end; Close(F); T:=[1]; max:=S[1]; For i:=2 to m do If S[i] > max then Begin t:=[i]; max:= S[i]; end else If S[i] = max then T:=t+[i]; Assign(G, F0); Rewrite(G); Writeln(G, max:0:2); For i:= 1 to m do if i in T then write(g, i, #32); Close(G); Readln; End. Bài 3: Cho dãy số gồm n phần tử được lưu trong tệp demngto.inp, hãy đọc dữ liệu và đưa ra số các nguyên tố trong dãy được lưu vào tệp demngto.out. program dem_ngto; const input='demngto.inp'; output='demngto.out'; type mang=array[1..100] of integer; var A:mang; tam:mang; f:text; dem:byte; i,j,k,n:integer; function nguyento( x :integer): boolean; var kt :boolean; i: word; begin kt := true; if X =1 then kt := false else if x < 4 then kt:= true else begin i:=round(sqrt(x)); while (i>1) and (kt) do begin if (x mod i)=0 then kt:=false; dec(i); end; end; nguyento:=kt; end; procedure doc_dl; begin assign(f,input); reset(f); readln(f,n); for i:=1 to n do read(f,A[i]); close(f); end; begin doc_dl; assign(f,output); rewrite(f); j:=0; for i:=1 to n do if nguyento(A[i])=true then begin inc(j); tam[j]:=A[i]; dem:=j; end; for k:=1 to j do write(f,tam[k]:3); close(f); end. Tóm lại: Qua việc bồi dưỡng học sinh giỏi, tôi nhận thấy rằng: Người thầy cần không ngừng học hỏi và tự học hỏi để nâng cao trình độ đúc rút kinh nghiệm, thường xuyên xây dựng, bổ sung chương trình và sáng tạo trong phương pháp giảng dạy, phải đam mê và tâm huyết. Trên đây là một số kinh nghịêm nhỏ của tôi bản thân tôi đã áp dụng và thu được kết quả khả quan. Tuy nhiên, chắc hẳn vẫn chưa phải là tối ưu, xin đưa ra để đồng nghiệp tham khảo, vận dụng và góp thêm ý kiến. C. KẾT LUẬN I. Một số kết luận: Qua nghiên cứu trình bày ở trên chúng tôi khẳng định mục đích nghiên cứu đặt ra đã được hoàn tất. Trong quá trình nghiên cứu chúng tôi xin rút ra một số kết luận sau: - Để bồi dưỡng học sinh giỏi đạt hiệu quả trước hết phải có những giáo viên vững về kiến thức, kỹ năng thực hành và thiết kế tốt. - Thường xuyên học hỏi trau dồi kiến thức, đọc sách báo để ngày càng làm phong phú thêm vốn kiến thức của mình. - Thực sự yêu nghề, tâm huyết với công việc bồi dưỡng học sinh giỏi. - Có phương pháp nghiên cứu bài, soạn bài, ghi chép giáo án một cách khoa học, luôn tìm tòi, tham khảo thêm các đề thi của các năm trước, các tỉnh, các huyện. - Tham khảo nhiều sách báo tài liệu có liên quan, giao lưu học hỏi các bạn đồng nghiệp có nhiều kinh nghiệm, các trường có bề dày thành tích. - Giáo viên phải khơi dậy niềm say mê, hứng thú của học sinh đối với môn tin học, luôn phối hợp với gia đình để tạo điều kiện tốt nhất cho các em tham gia học tập. II. Kiến nghị: - Đối với nhà trường nên tổ chức thi học sinh giỏi môn tin học ở lớp 10, chú trọng hơn công tác khảo sát, lựa chọn học sinh vào lớp bồi dưỡng học sinh giỏi. Phải coi trọng môn Tin học như những môn học khác. - Đối với các cấp cũng nên ra các dạng đề thi phong phú, phù hợp với khả năng và trình độ của học sinh, không nên ra đề quá sức đối với học sinh. XÁC NHẬN CỦA THỦ TRƯỞNG ĐƠN VỊ Thanh Hóa, ngày28 tháng 05 năm 2013 Tôi xin cam đoan đây là SKKN của mình viết, không sao chép nội dung của người khác. (Ký và ghi rõ họ tên) Lê Ích Tâm
File đính kèm:
- Sáng kiến kinh nghiệm Một số phương pháp phát hiện, bồi dưỡng học sinh giỏi môn Tin học ở trường THPT Nguyễn Xuân Nguyên.doc