1. Trang chủ
  2. » Trung học cơ sở - phổ thông

Sáng kiến kinh nghiệm tin học 8 :"Một số vấn đề góp phần nâng cao chất lượng dạy lập trình trong tin học 8"

9 9K 250

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 9
Dung lượng 122 KB

Nội dung

Nhận thấy vai trò của môn tin học nói chung và lập trình nói riêng đối với học sinh THCS và khó khăn trong việc dạy và học lập trình nên tôi đã chọn đề tài : “MỘT SỐ VẤN ĐỀ GÓP PHẦN NÂNG CAO CHẤT LƯỢNG DẠY LẬP TRÌNH TRONG TIN HỌC 8” để bàn luận và nghiên cứu

Trang 1

A PHẦN MỞ ĐẦU

I LÝ DO CHỌN ĐỀ TÀI

Tin học là môn tự chọn bắt buộc dành cho các đối tượng học sinh THCS, được dạy cho cả bốn lớp 6, 7, 8 và 9 với thời lượng mỗi tuần hai tiết Môn Tin học đã được đưa vào dạy ở cấp Tiểu học, nhưng dưới hình thức tự chọn không bắt buộc Vì vậy nội dung môn Tin học ở cấp THCS được xây dựng trên giả thiết là môn học mới

Môn Tin học ở trường phổ thông trang bị cho học sinh những hiểu biết cơ bản về công nghệ thông tin và vai trò của nó trong xã hội hiện đại Môn học này giúp học sinh bước đầu làm quen với phương pháp giải quyết vấn đề theo quy trình công nghệ và kỹ năng sử dụng máy tính phục vụ học tập và cuộc sống Tin học có ý nghĩa to lớn đối với sự phát triển trí tuệ, tư duy thuật toán, góp phần hính thành học vấn phổ thông cho học sinh

Với tu duy của một em học sinh THCS thì lập trình là một môn rất trừu tượng, và khó tiếp thu Trong quá trình dạy tôi nhận thấy ở các em học sinh Mới đầu các em cũng rất sợ khi thấy giải một bài toán ở ngoài thì đơn giản và chỉ trong vòng vài giây có thể nhẩm ra kết quả Còn ở trong lập trình cũng bài toán đó mà phải làm đến hàng chục phút mà lại có thể cho kết quả sai

Nhận thấy vai trò của môn tin học nói chung và lập trình nói riêng đối với học sinh

THCS và khó khăn trong việc dạy và học lập trình nên tôi đã chọn đề tài : “MỘT SỐ VẤN ĐỀ GÓP PHẦN NÂNG CAO CHẤT LƯỢNG DẠY LẬP TRÌNH TRONG TIN HỌC 8” để bàn luận và nghiên cứu

II MỤC ĐÍCH VÀ PHƯƠNG PHÁP NGHIÊN CỨU

Tìm ra những phương pháp, các bước giải bài toán bằng lập trình trên máy vi tính trong chương trình môn Tin học 8 phù hợp nhất với học sinh

Trên cơ sở nghiên cứu tính tích cực của học sinh trong giờ học môn Tin học 8, đề xuất một số ý kiến nhằm nâng cao chất lượng dạy và học lập trình

III GIỚI HẠN ĐỀ TÀI

Khối 8 trường THCS Nguyễn Trãi – Phòng GD&ĐT huyện Long Điền

IV CÁC GIẢ THUYẾT NGHIÊN CỨU

V CƠ SỞ LÝ LUẬN , CƠ SỞ THỰC TIỂN:

- Qua hai năm giảng dạy chương trình tin học lớp 8, tôi nhận thấy rằng kĩ năng lập trình trên máy tính của các em còn yếu

- Khi giải lập trình bài toán trên máy học sinh chỉ quan tâm đến công thức để tính toán ra kết quả bài toán mà quên các bước xác định thông tin vào, thông tin ra và xây dựng thuật toán

- Khi chạy chương trình thì học sinh chưa nhận biết được kết quả chương trình đúng hay sai

- Học sinh không biết sửa các lỗi cơ bản và không phát hiện được lỗi thuật toán

B PHẦN NỘI DUNG

I THỰC TRẠNG VÀ NHỮNG MÂU THUẨN( thuận lợi – khó khăn)

1) Thực trạng:

 Cơ sở vật chất của nhà trường tương đối tốt, đảm bảo cho các tiết thực hành về lập trình

 Được sự quan tâm, giúp đỡ tận tình của Ban Gíam Hiệu và tổ chức đoàn thể trong nhà trường Sự ủng hộ nhiệt tình của các đồng nghiệp đã giúp cho quá trình nghiên cứu của tôi thuận lợi hơn

 Hầu hết học sinh đều có Sách giáo khoa Sách giáo khoa rõ, đẹp có đầy đủ kênh hình

và biểu mẫu

Trang 2

 Mỗi lớp đếu có số học sinh ham học, tích cực phát biểu xây dựng bài trong giờ học

là nguồn động viên lớn trong quá trình giảng dạy của tôi

2) Những mâu thuẩn:

 Tư duy của học sinh lớp 8 còn quá thấp để học lập trình

 Kiến thức toán học của các em chưa đủ để đáp ứng giải bài toàn bằng lập trình

 Có những lớp sức học của học sinh không điều cũng là một khó khăn đối với giáo viên khi truyền đạt

 Ngôn ngữ lập trình khô khan làm các em ít có hứng thú

II CÁC BIỆN PHÁP GIẢI QUYẾT VẤN ĐỀ

1 các phương pháp tạo hứng thú , tích cực , chủ động cho học sinh :

Cho học sinh thực hiện và luyện tập những hoạt động và hoạt động thành phần tương thích với nội dung và mục tiêu dạy học:

a) Phát hiện những hoạt động tương thích với nội dung

Ví dụ: Dạy khái niệm chương trình con, có thể phát hiện những hoạt động tương thích như:

trình con

Procedure

khi nào dùng Procedure

 Hoạt động lật ngược vấn đề khi dạy truyền tham biến, tham trị

chương trình

b) Phân tách hoạt động thành những thành phần

Ví dụ: Khi dạy câu lệnh:

FOR biến_điều_khiển := giá_trị_đầu TO giá_trị_cuối DO câu_lệnh

Giáo viên yêu cầu học sinh phân tách câu lệnh này thành những câu lệnh thành phần diễn ra theo trình tự như sau:

- B1: Kiểm tra điều kiện nếu giá_trị_đầu > giá_trị_cuối thì kết thúc lệnh For

- B2: Gán biến_điều_khiển := giá_trị_đầu.

- B3: Thực hiện câu_lệnh.

- B4: Kiểm tra điều kiện thoát: nếu biến_điều_khiển = giá_trị_cuối thì kết thúc lệnh For.

- B5: Tăng giá trị của biến_điều_khiển lên 1 Quay lên B3.

Sau khi phân tách câu lệnh For học sinh sẽ nắm rõ hơn quá trình thực hiện câu lệnh

=> tránh nhiều sai sót khi viết chương trình

Gợi động cơ cho các hoạt động học tập:

a) Hướng tới sự tiện lợi, hợp lí hoá công việc

Ví dụ: Khi tạo tình huống cho khởi tạo từ 2 mảng trở lên và yêu cầu thực hiện phép toán cộng,

trừ giữa 2 mảng giáo viên có thể hướng dẫn học sinh xây dựng các chương trình con để tính tổng và hiệu của 2 ma trận cho tiện lợi hơn, không mất thời gian

b) Chính xác hoá 1 khái niệm

Ví dụ: Khái niệm biến toàn cục, biến địa phương, tham biến, tham trị; khi dạy chưa thể làm rõ

mối quan hệ của chúng Tuy nhiên, khi ứng dụng chương trình con để giải quyết các bài tập về mảng ta có điều kiện làm việc này

c) Hướng tới sự hoàn chỉnh và hệ thống

Ví dụ: Giáo viên có thể giới thiệu sơ đồ tất cả các kiểu dữ liệu trong Pascal trước khi định nghĩa

khái niệm các kiểu dữ liệu chuẩn

d) Lật ngược vấn đề: Sau khi giải quyết một vấn đề, một câu hỏi rất tự nhiên thường được đặt

ra là vần đề ngược lại được giải quyết như thế nào

Trang 3

Ví dụ: - Nhập 3 số a,b,c kiểm tra xem 3 số đó có thể là độ dài của các cạnh một tam

giác hay không Từ đó ta có thể chuyển nó sang dạng là các cạnh đó thoã mãn tam giác cân, đều hay là tính diện tích của tam giác đó

e) Qui lạ về quen

Ví dụ: Khi dạy bài tính tổng S = 1 + 2 + 3 + …+ n giáo viên cho học sinh tương tự giải bài tập

viết chương trình tính tổng S = 12 + 22 + 32 +… + n2

2 Các bước giúp các em tiếp cận lập trình hiệu quả:

Đưa ra phương pháp tổng quát để giải một bài toán bằng máy vi tính dựa trên ngôn ngữ pascal Gồm các bước:

1 Xác định bài toán

2 Xây dựng thuật toán

3 Viết chương trình

4 Chạy thử, kiểm tra ,sửa đổi chương trình

Phân tích, giảng dạy xâu từng phần Đặc biệt giáo viên cần chú ý các phần sau :

2.1 viết chương trình : có thể sử dụng phương pháp sau để giúp học sinh.

* Phương pháp tinh chế từng bước

Một chương trình bắt đầu được viết bằng lời tự nhiên (tiếng Việt) thể hiện sự phân tích tổng thể của người lập trình được thể hiện

Ở từng bước sau các câu lệnh được phân tích chi tiết hơn, bằng những lời khác nhau tương ứng với sự phân tích công việc thành các việc nhỏ chi tiết hơn dễ hiểu và chính xác hơn Song ngôn ngữ lập trình pascal người lập trình có thể đưa ra phương pháp tinh chỉnh từng bước là thể hiện tư duy giải quyết vấn đề bài toán từ trên xuống trong đó các bước là hướng về ngôn ngữ lập trình làm sao cho bài toán đưa ra được phương pháp lập trình tối ưu, sáng sủa

* Ví dụ : Tìm tất cả các số nguyên tố trong các số nguyên N được nhập vào từ bàn

phím

Tinh chế lần 1 (sử dụng ngôn ngữ tựa tư nhiên)

- Lấy 2 tập

NT= [ ] (để chứa các số nguyên tố tìm được)

S = [2, N] (tập các số cần xét )

- Tìm số đầu tiên trong S đưa vào NT

- Loại bỏ khỏi S các bội số của số nguyên tố vừa tìm được

- Số đầu tiên còn lại của S là số nguyên tố Tiếp tục quá trình cho đến khi S=[]

- Xuất NT

Tinh chế lần 2

Bắt đầu

NT: = [ ]

S = [2, N]

Repeat

Tìm số đầu tiên trong S

NT:= NT+ [S0]

Loại khỏi S các bội số của S0

Until S=[ ];

Xuất NT;

Kết thúc;

Trang 4

Tinh chế lấn 3 ( chương trình hoàn chỉnh)

Program nguyen_to;

Const

N=100;

Type

nguyen=1 N;

var

NT, S:set of nguyen;

S0,I:integer;

begin

NT:=[]; S:=[2 N];S0:=2;

repeat

while not (S0 in S) do

S0:=S0+1; NT:=NT+[S0];I:=S0;

While I<=N do

Begin

s:=S-[i];I:=I+S0;

End;

until S=[];

for I:= 1 to n do

If I in Nt then Write(I:4);

readln

end

Tinh chế lần 4.

Rõ ràng cấu trúc dữ liệu tập hợp “Set of nguyen” tuy dễ hiểu nhưng rất cồng kềnh và làm máy chạy chậm chạp, ta có thể dùng mảng Boolean linh hoạt hơn như sau:

Program nguyen_to;

Const

N=100;

var

a:array[1 N] of boolean;

i,j:integer;

begin

a[1]:=false;

for i:=2 to N do a[i]:=true;

for i:= 2 to N div 2 do

for j:= 2 to N div i do

a[i*j]:=false;

for i:= 1 to N do

if a[i] then

write(i:3);

readln

end

Tinh chế lần 5

Trong ngôn ngữ pascal nếu dùng mảng boolean thì ta bị giới hạn N<10000 Để có thể chạy với số lớn hơn ta không dùng mảng , tập hợp mà dùng như sau:

Trang 5

Program nguyen_to;

uses crt;

var

i,j,k,n:integer;

begin

repeat

write('nhap n=');readln(n);

until n>= 2;

for i:= 2 to n do

begin

k:=0;

for j:= 2 to trunc(sqrt(i)) do

if i mod j=0 then k:= 1;

if k=0 then write(i:3);

end;

readln

end

Như vậy Là kỹ năng lập trình, người lập trình có thể tinh chỉnh chương trình từng bước làm sao đưa ra một phương án tối ưu cho người xem dễ tiếp thu và đạt được tốc độ tính toán cao nhất cũng như chiếm bộ nhớ của máy tính càng ít càng tốt

2.2 Chạy Thử, thay đổi, kiểm tra chư ơng trình :

a Chạy thử:

Một chương trình đã viết xong chưa chắc đã chạy được trên máy vi tính, và học sinh thường không biết các lỗi cú pháp Giáo viên cần cho học sinh tự tìm hiểu và làm quen với các lỗi cú pháp

Chương trình đã chạy được chưa chắc cho kết quả đúng Học sinh thường chủ quan ở vấn

đề này, nếu chương trình chạy được là các em cho rằng chương trình đã đúng Phải tập cho học sinh làm quen vơi việc chạy thử và kiểm tra lỗi thuật toán cho chương trình

Ví du 1: Tìm số lớn nhất trong 3 số a,b,c nguyên dương được nhập vào từ bàn phím.

Lần 1:

Trang 6

a,b,c:integer;

begin

clrscr;

write('nhap 3 so=');readln(a,b,c);

if a<b then a:=b

else if a<c then a:=c;

write('so lon nhat la ',a);

readln

End

ới chương trình này cũng chạy được song đáp số có lúc đúng, có lúc sai tuỳ thuộc vào lúc nhập giá trị a,b,c {nếu ta nhập thứ tự a=5,b=7,c=9 Thì sẽ cho ta kết quả số lớn nhất là 7 Vậy thì sai hoàn toàn}

Do đó giáo viên cần giúp học sinh biết cách tìm lỗi thuật toán , sữa lỗi, điều chỉnh viết lại chương trình cũng là giúp hình thành kỹ năng lập trình quan trọng cho học sinh Vậy với ví dụ trên để kết quả luôn đúng thì ta có thể viết lại chương trình

Lần 2: Program tim_so;

uses crt;

var

a,b,c,t:integer;

begin

clrscr;

write('nhap 3 so=');readln(a,b,c);

t:=a;

if t<b then t:=b;

if t<c then t:=c;

write('so lon nhat la ',t);

readln

End

Nếu nhập:

2.2Kiểm tra:

Trang 7

rất là khó khăn Trong quá trình chạy thử một chương trình ta cần lưu ý:

- Nếu khởi đầu bằng bộ chương trình (test) nhỏ nhưng các giá trị đặc biệt (đây

là dễ bị lỗi nhất)

- Làm nhiều các bộ test nhưng phải đa dạng tránh lặp đi lặp lại các bộ test tương tự

- Nên kết thúc bằng các bộ test có kích thước lớn để kiểm tra tính chịu đựng của chương trình

2.3 Thay đổi chương trình:

Một chương trình đã viết xong, đã chạy thử tốt , giải quyết đúng bài toán mà ta mong muốn nhưng chưa có nghĩa là quá trình lập trình đã xong Mà người lập trình muốn nó ở đây ta có thể sửa đổi nó theo một hướng khác mà nó có thể đáp ứng được một yêu cầu mới Như phần tinh chế một chương trình là rất quan trọng cho việc sửa chữa chương trình cũ sang chương trình mới

III HIỆU QUẢ ÁP DỤNG

Sau khi áp dung các phương pháp trên cho học sinh các lớp khảo sát, tôi thu được kết quả tỉ lệ đạt như sau :

Tỉ lệ học sinh nắm được ngôn ngữ lập trình đã tăng khi áp dụng các phương pháp trên

C KẾT LUẬN

I Ý NGHĨA CỦA ĐỀ TÀI ĐỐI VỚI CÔNG TÁC :

Tóm lại lập trình là chương trình học khá mới mẻ đối với học sinh đặc biệt là học sinh lớp 8

Các bài toán đưa ra để xây dựng một chương trình chưa có gì lạ phức tạp Bởi

có nhiều bài hay thì học sinh lớp 8 chưa học đến Cho nên giáo viên cần phải nắm chắc các phương pháp để truyền đạt, lựa chọn các bài hay lồng ghép vào các tiết học

để tạo thêm sự hứng thú cho học sinh

Các phương pháp trên phần nào giúp học sinh tiếp cận vơi lập trình một cách

dễ dàng hơn, và cũng tạo cho học sinh hứng thú hơn với môn tin học

II BÀI HỌC KINH NGHIỆM VÀ HƯỚNG PHÁT TRIỂN

III ĐỀ XUẤT , KIẾN NGHỊ

- Tôi mong ước rằng trong tương lai, phòng máy vi tính sẽ được mở rộng, đảm bảo số lượng máy tính tạo điều kiện cho các em học sinh được thực hành nhiều hơn

Vì có như vậy chất lượng dạy và học của giáo viên và học sinh mỗi ngày đạt chất lượng cao hơn

Trang 8

đã cho kết quả khả quan Nhưng trong quá trình thực hiện bài viết này sẽ không tránh khỏi những thiếu sót Rất mong nhận được sự góp ý bổ ích của các thầy cô giáo và các bạn đồng nghiệp để bài viết được hoàn thiện hơn

Ngày đăng: 07/10/2014, 12:41

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w