Cong ty Cong Nghe Tin hoc Nha truong http://www.vnschool.net
Xung quanh vấn đề thực hành trong giảng dạy lập trình cho học sinh PTTH
19/10/2006

Thực trạng không hiếm hiện naylà giờ thực hành, giáo viên (GV) sau khi khởi động máy tính lại phải đợi học sinh (HS) gõ văn bản chương trình mất rất nhiều thời gian, sau đó hướng dẫn sửa lỗi được 1, 2 nhóm là hết giờ. Trong khi đó các nhóm khác, HS không biết phải làm gì, không biết khắc phục lỗi như thế nào, thậm chí còn không biết là mình có sai hay không? Đa số học sinh không tự sửa được lỗi, nếu HS có hỏi, GV cũng không đủ thời gian sửa lỗi cho tất cả các máy. Đặc biệt học sinh gặp khó khăn trong các trường hợp mà bài tập thực hành chưa có chương trình cụ thể mà mới được giáo viên mô tả giải thuật và lúng túng không biết viết các lệnh nhằm giao tiếp giữa người và máy được dễ dàng.

Một số HS không thể thực hành được nhiệm vụ của giờ thực hành nên chán nản, gây mất trật tự hoặc quay sang thực hiện các thao tác ngoài nội dung bài học, do đó, các giờ thực hành thường không đạt được mục đích, yêu cầu đã đề ra.

Để nâng cao chất lượng dạy học thì một trong các biện pháp là phải thực hiện hiệu quả các giờ thực hành trên phòng máy. Cụ thể trong giảng dạy, chúng tôi tiến hành các biện pháp sau:

* Nhanh chóng giúp HS qua khỏi các bỡ ngỡ ban đầu khi tiếp xúc với công việc soạn thảo, soát lỗi và thực hiện một chương trình. Trong hai tiết thực hành đầu tiên, GV chuẩn bị nạp sẵn vàp máy một số chương trình đơn giản chỉ sử dụng các lệnh gán, tính toán, đổi chỗ, ... Sau khi giới thiệu cho HS các thủ tục vào ra, cách soạn thảo chương trình, cách soát lỗi, thực hiện chương trình,... với phần mềm TP Pascal, GV cho HS gọi cá chương tình có sẵn và yêu cầu HS thực hiện hai công việc:

- Từ văn bản chương trình trên màn hình yêu cầu HS xác định phần tựa, phần khai báo, phần thân chương trình. Chỉ rõ ý nghĩa của từng câu lệnh. Qua đó, HS hiểu rõ hơn về cấu trúc của một chương.

- Thực hiện chương trình với các dữ liệu đầu vào thay đổi và yêu cầu HS có nhận xét về mối "quan hệ" kết quả thực hiện chương trình (Output) với dữ liệu mà các em nhập từ bàn phím (Input). Qua đó khắc sâu cho HS thấy được một chương trình để giải quyết một lớp các bài toán tương tự.

* Đối với các bài tập mẫu đã chữa trên lớp thì GV chuẩn bị sẵn chương trình (để hạn chế thời gian HS dành cho gõ văn bản). Trong chương trình cài một số lỗi thường gặp (các lỗi 11, 20, 35, 37, và từ 85 đến 95,...), sau đó là một lỗi ở mức độ khó hơn (các lỗi 21, 41, 42, 74, 135,...). GV yêu cầu HS đối chiếu với bảng thông báo các lỗi trong TP Pascal treo trong phòng máy để xác định lỗi đó là lỗi nào? Nguyên nhân dẫn đến lỗi đó là do dòng lẹnh thứ bao nhiêu trong văn bản chương trình, cách khắc phục? Và ghi các thông tin đó vào vở bài tập.

Các biện pháp này rất có hiệu quả. Bên cạnh việc tránh cho HS không biết phải làm từ đâu, phải làm như thế nào trong các giờ thực hành đầu tiên. GV cho HS làm quen với việc thực hiện một giải thuật cụ thể trên máy. Mặt khác, GV còn chuẩn bị các bảng mô tả giải thuật mà HS đang thực hiện và yêu cầu HS đối chiếu từng bước của giải thuật với các câu lệnh thực hiện các bước đó tên máy tính. Như vậy HS có thể "vào guồng" ngay từ những tiết thực hành đầu tiên.

* Trong các giờ thực hành tiếp theo, chúng tôi tiến hành các hoạt động theo nhóm. Nhóm ở đây là các HS cùng sử dụng một chiếc máy tính, các em cùng chuẩn bị bài tập ở nhà, cùng tiến hành soạn thảo chương tình và thực hiện chương trình đó. Có nhiều tiêu chí trong nhóm học tập, song chúng tôi phân chia nhóm chủ yếu theo địa bàn (vì một trong những đặc điểm của HS miền núi là địa bàn cư trú rộng). Để tránh hiện tược trong cả giờ thực hành chỉ có một hoặc hai HS thực sự làm việc còn các HS khác chỉ quan sát thì trong mỗi giờ thực hành, phân công công việc chi tiết thành 2 hoặc 3 phần (vì số máy tính có hạn nên một nhóm thực hành thường có 2 đến 3 HS) và tuỳ nhận thức của HS mà yêu cầu cụ thể với mỗi thành viên của nhóm phải hoàn thành công việc nào trong các công việc trên. Trong đánh giá, GV dựa trên kết quả của từng công việc của tưng HS và kết quả chung của các thành viên trong nhóm.

+ Đối với các bài tập GV giao cho, HS tự xác định thuật giải và lập trình thì có thể HS chỉ cần thấy chương trình không còn lỗi cú pháp là cho rằng đã hoàn thành nhiệm vụ mà không hề hoặc không xác định kết quả có đúng hay không? Do đó, GV chuẩn bị một bộ dữ liệu tối thiểu đủ để Test tất cả các khả năng có thể có. Ví dụ khi ra bài tập: Lập trình giải bất phương trình bậc nhất một ẩn: ax + b > 0 thì bộ dữ liệu test có thể là ({a = 2, b = 3, {a = 2, b = 4}, {a = 0, b = 1}, {a = 0, b = 0}). Có như vậy HS sẽ tự mình kiểm tra được tính đúng đắn của chương trình.

* Sau mỗi giờ thực hành, vào tiết học tiếp theo, GV dành ra ít phút nhận xét về giờ thực hành, các lỗi mà HS thường gặp trong giờ thực hành đó. Có khen, chê rõ ràng, đặc biệt phân tích đánh giá, so sánh giữa các chương trình của các em. Ví dụ, khi lập trình giải phương trình bậc 2, HS có hai thuật giải như sau:

a. Khai báo biến và gán giá trị chio delta (delta = sqr(b) - 4*a*c) b. Viết biểu thức: "sqr(b) - 4*ac" trong biểu thức điều kiện câu lệnh IF...THEN hoặc trong các biểu thức tính nghiệm. GV chỉ rõ các phép toán mà mỗi chương trình phải thực hiện và HS tự nhận xét về mặt hình thức chương tình a sử dụng nhiều câu lệnh và nhiều biến hơn nhưng lại tối ưu hơn chương trình b, vì máy phải tính thức delta có một lần. Qua đó, HS ý thức được rằng không những chỉ dừng ở mức độ giải quyết bài toán mà phải tiến đến tìm những thuât toán "tối ưu".

* Trong giờ thực hành, tuỳ thuộc nhận thức của học sinh mà hoạt động giữa thầy và trò trong giờ thực hành được chia thành nhiều cấp độ.

Cấp độ 1: Đối với nhóm HS yếu, các em chỉ gõ lại các chương trình có sẵn một cách máy móc. Biện pháp đối với nhóm HS này là GV phân tích, giúp học sinh hiểu các câu lệnh trong chương trình, cùng HS sửa các lỗi nếu có và giúp HS thực hiện chương trình của GV đưa ra.

Cấp độ 2: Đối với nhóm HS khá, trung bình, GV phân tích yêu cầu bài tập, HS tự viết chương trình và chạy thử dưới sự kiểm soát và hướng dẫn chặt chẽ của GV. Cấp độ 3: Đối với HS giỏi, HS phải độc lập trong giờ thực hành, GV chỉ gợi ý, bổ sung các yêu cầu mới, để HS phát huy được tính sáng tạo hoặc phân tích bài toán, giúp HS có thể làm mịn chương trình và đánh giá thuật toán, chẳng hạn số byte bộ nhớ phải sử dụng, số phép toán phải thực hiện...

Lời kết: Qua thực tế đã khẳng định giờ thực hành không chỉ đơn thuần là HS gõ chương trình có sẵn hoặc chỉ là mã hoá một thuật giải đã có. Muốn để giờ thược hành có hiệu quả, HS phải chuẩn bị bài tập ở nhà, viết chương trình trên giấy, chuẩn bị bộ test kiểm tra kết quả,... trước khi tiến hành thực hành tại phòng máy. Việc làm bài tập có tác dụng rất quan trọng về mặt rèn luyện tư duy giải thuật lẫn kỹ năng lập trình cho HS.

Để nâng cao chất lượng dạy và học ngôn ngữ lập trình Pascal, đòi hỏi trong quá trình giảng dạy, giáo viên phải biết kết hợp cân đối, hài hoà giữa truyền thụ lý thuyết, làm bài tập trên lớp với việc chuẩn bị bài tập ở nhà của HS và thực hành ở pòng máy. Chất lượng học tập của học sinh phụ thuộc một cách tổng thể vào chất lượng của các giai đoạn đó.

Trên đây là một vài biện pháp mà chúng tôi đã áp dụng trong các giờ thực hành với ngôn ngữ lập trình Pascal cho đối tượng HS miền núi. Các biện pháp này chưa phải tối ưu cho các đối tượng khác, song cũng xin trình bày để mong muốn được trao đổi kinh nghiệm với các bạn đồng nghiệp.
URL của bài viết này::http://www.vnschool.net/modules.php?name=News&file=article&sid=514
© Cong ty Cong Nghe Tin hoc Nha truong contact: sales@schoolnet.vn