Tin Tức Chung

PHƯƠNG PHÁP HỌC GIỎI MÔN LẬP TRÌNH PASCAL DÀNH CHO HỌC SINH PHỔ THÔNG

 
 
Picture of Lê Quang
PHƯƠNG PHÁP HỌC GIỎI MÔN LẬP TRÌNH PASCAL DÀNH CHO HỌC SINH PHỔ THÔNG
by Lê Quang - Wednesday, 31 October 2018, 11:42 AM
 

PHƯƠNG PHÁP HỌC GIỎI MÔN LẬP TRÌNH PASCAL DÀNH CHO HỌC SINH PHỔ THÔNG

Phương pháp học giỏi môn tin học Lập trình Pascal dành cho học sinh phổ thông

Ngày nay bộ môn lập trình tin học Pascal được bộ giáo dục đưa vào thành môn học chính thức trong chương trình tin học THCS, và THPT. Nhận thấy nhiều em học sinh, thậm chí là sinh viên đang học ở các trường ĐH luôn cảm thấy khó khăn trong việc học lập trình Pascal. Trung tâm gia sư Bảng Vàng dành bài viết này để tìm hiểu xem bộ môn này có đến nỗi quá “khó nhằn” không nhé.

Vì sao môn Pascal lại khó

Theo thói quen của nhiều em học sinh, học môn tin là học những thao tác sử dụng như cách sử dụng internet, sử dụng hệ điều hành window, chương trình soạn thảo văn bản MS Word, chương trình soạn thảo trình diễn MS PowerPoint … Đây là những phần học không cần đòi hỏi tư duy, mà chỉ cần học kĩ và nhớ thao tác, thực hành nhiều lần thì sẽ thành  thạo.

Nhưng khi học bộ môn lập trình Passal chương trình lớp 8 ở THCS và lớp 11 THPT thì hầu như các em bị “choáng” vì bộ môn rất “mới”, và cách học cũng “mới”. Học những thao tác và thực hành nhiều không còn tác dụng, học thuộc bài cũng không còn ổn nữa. Lúc này các em cần phải học cách tư duy logic, tìm thuật toán, và viết những dòng lệnh máy tính chính xác đến từng đấu chấm, dấu phẩy.

Với tâm lí thông thường các em học sinh coi tin học là môn phụ không quan trọng nên nhiều em chủ quan không dành đủ thời gian để học nên không hiểu bài và dần bị mất căn bản. Đây cũng là lí do mà nhiều em bị điểm kém, thậm chí là thi lại, học lại bộ môn tin học mặc dù có thể các em học rất giỏi các môn học khác.

Tại sao lại học Pascal

Pascal là một ngôn ngữ lập trình cấp cao do Niklaus Wirth, giáo sư điện toán trường đại học Kỹ thuật Zurich (Thụy sĩ) thiết kế và công bố vào năm 1971 và đặt tên là Pascal để tưởng niệm nhà Toán học và Triết học nổi tiếng Blaise Pascal. Đây là một ngôn ngữ lập trình có cấu trúc đơn giản, rõ ràng, cấu trúc chặt chẽ, dễ viết, dễ hiểu cũng như dễ sửa chữa, cải tiến.  Do đó Pascal được nhiều quốc gia trong đó có Việt Nam đưa vào chương trình giảng dạy tin học ở các trường phổ thông và đại học như một môn học cơ sở, đại cương.

Ở trường phổ thông chúng ta không chú trọng học chuyên sâu về ngôn ngữ lập trình để tạo ra các phần mềm máy tính mà tập trung rèn luyện kĩ năng tư duy logic, tư duy hệ thống và sáng tạo không chỉ để giải quyết những vấn đề trong tin học mà đây còn là những kĩ năng vô cùng quan trọng để giải quyết nhiều vấn đề trong cuộc sống.

Học Pascal giúp cho ta hiểu được cách làm việc của máy tính, cách giao tiếp để ra lệnh cho máy tính làm việc theo sự điều khiển của con người thông qua ngôn ngữ lập trình. Các em có thể tạo ra các chương trình thú vị bằng cách sử dụng các câu lệnh Pascal. Cũng giống như những môn học khác như toán học, vật lý, hóa học … khi các em đã thực sự hiểu và yêu thích bộ môn tin học các em sẽ tìm thấy nhiều niềm vui, sự đam mê khi tìm hiểu và khám phá những điều mới mẻ nhưng đầy hấp dẫn trong bộ môn tưởng chừng như khô khan này.

Đừng sợ cú pháp các câu lệnh

Một số cú pháp và cấu trúc cần học và nhớ, nếu cần thêm có thể tham khảo ở các tài liệu, nhưng chỉ cần chừng này từ khóa thôi là đủ để viết hầu hết các bài tập pascal rồi.

Một số hàm thường dùng:

ClrScr: lệnh xóa màn hình;

Write, Writeln: ghi ra màn hình

Read, readln: đọc giá trị vào biến

Các phép toán thường dùng:

Phép cộng (+); Phép trừ (-); Phép nhân (*); phép chia (/);

Phép chia lấy phần nguyên (div); phép chia lấy phần dư(mod); Phép gán (:=),

Các phép toán: phép so sánh (=, <, >) và các phép toán logic: AND, OR, XOR, NOT.

Một số kiểu dữ liệu thường dùng: Interger, real, string, char, array, Boolean …

Các câu lệnh sử dụng thường xuyên

+ Lệnh ghép :    BEGIN .. END

+ Lệnh chọn  :    IF .. THEN .. ELSE

CASE .. OF .

+ Lệnh lặp     :    FOR .. TO .. DO

REPEAT .. UNTIL

WHILE .. DO

Chúng ta thấy rằng cũng không có quá nhiều cấu trúc và cú pháp cần phải nhớ đúng không nào.

Gặp những lỗi về cú pháp thì rất dễ sửa, chương trình biên dịch Pascal sẽ báo cho ta chính xác lỗi gì? ở đâu? khi chúng ta chạy chương trình. Cho nên các em không nên tập trung nhiều vào cú pháp ngôn ngữ lập trình mà tập trung nhiều vào tìm thuật toán, tức là tìm tuần tự các bước để giải bài toán. Vì khi chúng ta đã tìm ra được thuật toán rồi thì việc chuyển nó thành chương trình máy tính sẽ không còn gì khó khăn nữa.

TẠO SỰ YÊU THÍCH KHI HỌC NGÔN NGỮ LẬP TRÌNH PASCAL

Lập trình là môn học hướng dẫn học sinh cách giải các bài toán bằng cách viết chương trình trên máy tính. Đây là môn học mới đối với học sinh nên phần đông các em không nắm bắt được kiến thức để vận dụng vào giải bài tập.

Về chương trình dạy lập trình Pascal ở trường phổ thông Ngôn ngữ lập trình đang giảng dạy trong các nhà trường phổ thông như Pascal đang gây khó khăn cho các học sinh mới bắt đầu tìm hiểu học lập trình. Pascal được chọn sử dụng để dạy ngôn ngữ lập trình cho học sinh phổ thông vì 30 năm trước nó không có đối thủ về mặt diễn tả thuật toán một cách trong sáng. Tuy nhiên, hơn 10 năm nay, Pascal mất ưu thế về mọi mặt và có một số nhược điểm so với một số ngôn ngữ khác như:

– Giao diện chương trình không thân thiện, dễ gây sự nhàm chán cho học sinh.

– Về mặt cú pháp nó chỉ dễ đọc đối với những học sinh các nước nói tiếng Anh. – Không có tính thực tiễn, nên không gây hứng thú cho học sinh, tạo sự yêu thích và kỹ năng lập trình cho học sinh .

Về chương trình Pascal hiện tại của học sinh lớp 11:

– Áp dụng công thức toán học quá nhiều. Học sinh phải có kiến thức tốt về toán học thì mới giải được các bài tập trong sách giáo khoa.

– Đa phần các bài tập liên quan đến tính toán hoặc thuần về toán học, không gắn liền với thực tiễn. Ngôn ngữ lập trình Pascal đòi hỏi sự tư duy rất cao, tuy nhiên mức độ tư duy của các em còn hạn chế và không đồng đều trong một lớp học. Không kích thích tư duy sáng tạo của học sinh. Học sinh chỉ cố gắng hoàn thành một cách bị động các bài tập giáo viên cho. Từ đó học sinh sẽ dễ chán và chỉ học để đối phó với môn học này.

– Học sinh chưa hiểu được lập trình để làm gì ngoài việc tính toán với các con số.

– Học sinh sẽ tự hỏi lập trình Pascal có ứng dụng như thế nào trong thực tế. Học sinh sẽ rất khó hình dung được các ứng dụng mà lập trình có thể làm được trong thực tế nếu chỉ căn cứ vào lý thuyết thuần túy do giáo viên truyền đạt.

– Học sinh khó kiểm tra bài làm của mình sau khi lập trình là đúng hay là sai. Có thể trên lý thuyết là đúng nhưng thực tế có thể sẽ có những trường hợp thiếu chính xác, thường sẽ có một khoảng sai số nhất định nào đó.

Qua một thời gian giảng dạy ở trường, tôi nhận thấy khi học Pascal học sinh thường không thích thú với môn học này vì nhiều lý do như khó hiểu, tiếp thu chậm, đòi hỏi tư duy nhiều, … nên việc viết được một chương trình chạy được trên máy tính đối với các em rất khó khăn. Do đó để học tốt đòi hỏi học sinh phải có hứng thú. Cốt lõi của việc đổi mới phương pháp dạy học là giúp học sinh yêu thích, hứng thú với môn học, hướng tới việc học tập chủ động, chống lại thói quen học tập thụ động. Để khắc phục điều này thì chúng ta phải khắc phục được các trường hợp sau:

* Trường hợp 1: Học sinh chúng ta vừa đọc xong đề bài là kêu khó, không chịu tìm hiểu xem đề bài yêu cầu gì. Những vấn đề này các em đã được học việc xác định bài toán ở lớp 10 rồi. Sau khi đọc đề bài xong giáo viên hướng dẫn các em xác định rõ bài toán (xác định thành phần Input và Output của bài toán). Từ Inphut và Output của bài toán giáo viên yêu cầu HS gạch ra giấy chỉ ra từng bước để giải quyết bài toán rồi từ đó đưa ra các thuật toán, từng bước tinh chỉnh thuật toán tìm được thuật toán đúng đắn nhất cuối cùng là viết chương trình hoàn chỉnh.

VD: Khi yêu cầu HS viết chương trình tính và in ra diện tích và chu vi của hình chữ nhật có cạnh a,b là 2 số nguyên dương được nhập từ bàn phím. Đây là một bài tập dễ nhưng có nhiều HS vẫn không biết bắt đầu giải bài tập từ đâu.

– Để giải bài này GV yêu cầu HS xác định input và output của bài toán.

Input: 2 số nguyên dương a,b

Output: Diện tích và chu vi của hình chữ nhật

– GV yêu cấu HS gạch ra các công việc cần làm để giải quyết bài tập này ?

Các công việc cần làm để giải quyết bài tập này :

+ Nhập a,b

+ Tính diện tích hình chữ nhật

+ Tính chu vi hình chữ nhật

+ In ra diện tích hình chữ nhật

+ In ra chu vi hình chữ nhật

– Gv gợi ý yêu vầu HS nêu công thức tính diện tích và chu vi hình chữ nhật?

Diện tích S = a*b

Chu vi   Cv = (a+b)*2

– Với những phân tích có được ở trên GV yêu cầu hãy sữ dụng những câu lệnh của NNLT Pascal để giải quyết các công việc đặt ra của bài tập và sau đó là hoàn thành chương trình.

* Trường hợp 2: Hầu như các em học sinh khi thực hành lập trình đều đùn đẩy cho nhau vì sợ mình sẽ không biết gõ gì vào máy tính. Khuyến khích các em cứ mạnh dạn, một lần sai, hai lần sai,… rồi từ từ các em sẽ gõ đúng câu lệnh. Lúc đầu giám sát quá trình làm việc của các em, sửa các lỗi sai, về sau để các em tự làm việc chỉ sửa lỗi khi các em gặp khó khăn thực sự, không giải quyết được bắt buộc cần có hướng dẫn của giáo viên. Khi các em tự gõ chương trình các em mới thực sự hiểu chương trình đó hoạt động thế nào chứ không thể nhìn mà hiểu được.

– Trường hợp 3: Khi thực hành các em chỉ gõ cho xong nội dung của bài thực hành chứ không thực sự tìm hiểu xem tại sao lại có câu lệnh đó, tại sao phải dùng cấu trúc điều khiển này mà không dùng cấu trúc điều khiển kia, tới câu lệnh này thì kết quả sẽ như thế nào, … Chính vì vậy mà các em không hiểu bài và không thể tự sửa lỗi nếu gõ sai. Hướng dẫn các em cách chạy chương trình từng bước và cách quan sát giá trị các tham số cần thiết.

– Trường hợp 4: Học sinh thường rất lười không chịu học bài. Các em phải học bài thì mới làm bài được, đó là lẽ đương nhiên. Tất cả các bài lý thuyết chính là cái mà chúng ta cần để thực hành, vì vậy phải nắm thật tốt lý thuyết ví dụ như các thủ tục read hay readln, write hay writeln dùng để làm gì? tại sao phải sử dụng các thủ tục đó, không có nó có được không,…, cấu trúc rẽ nhánh thì có mấy dạng, khi nào dùng dạng thiếu, khi nào dùng dạng đủ, khi nào dùng cấu trúc lặp với số lần chưa biết trước, khi nào dùng cấu trúc lặp với số lần biết trước… Thực ra để học tốt lập trình thông qua ngôn ngữ lập trình Pascal không phải là quá khó vì pascal là ngôn ngữ học đường thông dụng nhất, nó rất gần với tư duy tự nhiên vì vậy chỉ cần các em chịu khó học lý thuyết sau đó làm bài tập là có thể đạt được điểm cao. Ngoài các nguyên nhân khách quan, quan trọng nhất vẫn là nguyên nhân chủ quan từ phía học sinh đó là khó tạo sự yêu thích, đam mê từ môn học này mà không đam mê thì rất khó học Pascal một cách tốt nhất, dễ dẫn đến tình trạng học cho qua ngày, học đối phó.

Để có thể giúp tạo sự yêu thích bộ môn, từ đó học sinh sẽ học hiệu quả hơn môn lập trình Pascal: phương pháp truyền đạt, hệ thống bài tập, hình thành kỹ năng lập trình.

  1. Phương pháp truyền đạt: Khi truyền đạt, giảng dạy Pascal trên lớp do đặc thù môn học này đòi hỏi mức độ tư duy nhất định ở học sinh, các em khó tư duy nên giáo viên khi truyền đạt kiến thức mới cũng như khi tìm thuật toán, cần đưa ra các vấn đề liên quan đến cuộc sống giúp các em dễ hình dung được vấn đề cũng như công việc các em phải giải quyết. Ví dụ: Khi giảng bài câu lệnh lặp, để học sinh phân biệt được thế nào là lệnh lặp với số lần lặp biết trước, thế nào là lệnh lặp với số lần lặp không biết trước, giáo viên có thể ví dụ như sau: “Thầy thể dục yêu cầu các em chạy vòng quanh sân trường 5 vòng đó là số lần lặp biết trước, còn nếu thầy yêu cầu các em chạy vòng quanh sân trường đến khi nào mệt thì nghỉ thì thầy sẽ không biết trước học sinh sẽ chạy bao nhiêu lần”. Và khi đó giáo viên sẽ yêu cầu học sinh đưa thêm nhiều ví dụ về công việc hằng ngày của các em mà có lặp đi lặp lại rồi yêu cầu các em phân tích đó là công việc, hoạt động có biết trước số lần lặp không”. Thời gian đầu giáo viên đưa ra các ví dụ gắn liền với thực tế, để các em tìm cách giải quyết tốt nhất vấn đề đó trong cuộc sống cũng vừa là giúp các em biết cách xử lý các tình huống có thể gặp trong cuộc sống sau này. Không gì thú vị bằng trong giờ học tự mình ra đề bài sau đó tự mình giải được bài tập đó. Do đó, ngoài những bài tập do giáo viên đưa ra, nên lồng vào các tiết thực hành, làm bài tập, cho các em tự ra đề rồi giải, một khi các em có thể tự ra đề là các em đã hiểu rất rõ về câu lệnh đã học và cũng đã nắm được hướng giải quyết bài toán đó nên khi giải sẽ rất nhanh và được giáo viên khích lệ kịp thời sẽ khiến các em rất phấn chấn, mong muốn giải ra được nhiều bài tập hơn nữa.
  2. Hệ thống bài tập: Vấn đề quan trọng và quyết định đến việc tạo hứng thú cho học sinh là hệ thống bài tập. Hệ thống bài tập cần gần gũi, phù hợp kiến thức, nội dung phong phú đa dạng, ngôn từ tạo sự yêu thích và kỹ năng lập trình cho học sinh dễ hiểu,… Bài tập hay sẽ giúp các em hiểu rõ bài học hơn, biết áp dụng các kiến thức đã học để giải bài tập, từ đó nâng dần mức độ tư duy ở học sinh. Hệ thống bài tập bao gồm các dạng bài tập từ dễ đến khó, từ cơ bản đến nâng cao phù hợp với từng đối tượng học sinh. Với tất cả các bài tập, hướng dẫn các em đọc thật kĩ đề bài, xác định đúng bài toán, tìm thuật toán,sau đó giáo viên có thể phân tích, trình bày thêm, sửa những thiếu sót, hướng dẫn một cách tường minh, mạch lạc, để từ đó học sinh hiểu, hình thành các bước giải và hoàn thành bài toán trong thời gian nhanh nhất. Cho các em tự viết chương trình theo thuật toán đã đưa ra, sau khi viết chương trình xong cho các em thử với nhiều bộ test khác nhau, như vậy các em sẽ hiểu rõ hoạt động của chương trình hơn. Ngoài ra, còn một ý nữa đó là mỗi khi dịch chương trình mà còn có lỗi đừng hỏi thầy, cô ngay mà hãy tự tìm hiểu xem đó là lỗi gì và thử khắc phục, sau một vài lần như vậy các em sẽ không thấy sợ các dòng đỏ báo lỗi nữa.
  3. Hình thành kỹ năng lập trình: Điều cốt yếu khiến một con người trở thành chuyên gia trong lĩnh vực này chính là lòng đam mê. Lòng đam mê khiến chúng ta luôn tìm tòi học hỏi, vì vậy mà chúng ta mới có được kiến thức sâu về lập trình và trở thành chuyên gia lập trình. Lòng đam mê cũng sẽ giúp chúng ta khám phá ra được cách sử dụng thành thạo máy tính. Học lập trình thì điều cốt yếu là học: – Lập thuật toán để giải quyết vấn đề (nhập dữ liệu; xử lý dữ liệu; Kết xuất dữ liệu – kết quả, Lưu trữ dữ liệu). – Sử dụng ngôn ngữ lập trình để viết lệnh cho máy tính thực thi. – Kiểm tra kết quả. Bởi vậy ngoài thời gian học trên lớp, nghe giảng lý thuyết về thuật toán, kỹ thuật lập trình… thì để hình thành kỹ năng lập trình học sinh phải tự học và rèn luyện là chính. Những lúc không có máy tính thì có thể học lập trình trên giấy. Giáo viên cần hướng dẫn các em cách lập trình trên giấy và chạy thử chương trình trên giấy bằng tay. Bước đầu cho học sinh lập thuật toán trên giấy, sau đó viết chương trình trên giấy, tự mình hoặc nhờ giáo viên thực thi tập lệnh đã viết ra để kiểm tra kết quả. Cách học này tuy vất vả tốn nhiều công sức nhưng cũng rèn luyện cho các em cách tư duy giải quyết vấn đề kỹ càng, trọn vẹn trong các mối tương quan, rèn luyện được tính cẩn trọng, tỉ mỉ, nếu làm được việc này thì chương trình sẽ chính xác, rất ít khi bị lỗi khi chạy thật trên máy và áp dụng vào thực tiễn. Ngày nay máy tính đã rất phổ biến nên người học lập trình có thể sử dụng luôn máy tính để viết, dịch, debug và chạy thử chương trình trên máy vi tính sẽ thuận tiện hơn

Trong quá trình giảng dạy bộ môn Tin học, đặc biệt khi dạy lập trình Pascal, môn học mà đòi hỏi phải tư duy sáng tạo nhiều thì cần phải có một phương pháp dạy học phù hợp nhằm đạt hiệu quả cao. Vì vậy việc áp dụng các phương pháp để tạo sự hứng thú, yêu thích môn học, làm cho học sinh có thể nắm được nội dung bài học ngay tại lớp, nắm bắt kiến thức một cách logic và có hệ thống là điều cần thiết. Từ đó giúp cho học sinh phát triển trí tuệ, rèn luyện khả năng lao động sáng tạo, tham gia giờ học tích cực và đặc biệt là yêu thích, hứng thú hơn trong việc tiếp cận với lập trình Pascal, môn học “khô khan” nhất trong các môn học.

                                                                                                                                                            Sưu tầm

(Edited by Lê Quang Điện - original submission Thứ năm, 11 Tháng mười 2018, 10:10 AM)