Một số giải giáp nhằm nâng cao chất lượng dạy học lập trình Pascal đối với môn Tin học 8
I. Phần mở đầu:
1. Lý do chọn đề tài.
Tin học ở cấp THCS là môn học tự chọn với thời lượng 2 tiết/tuần từ lớp 6
đến lớp 9. Là môn học mới đưa vào trường phổ thông và có những đặc thù riêng
như liên quan chặt chẽ với sử dụng máy tính. Đặc trưng của môn Tin học là kiến
thức đi đôi với thực hành, đặc biệt phần thực hành còn chiếm thời lượng nhiều
hơn phần lí thuyết. 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.
Qua thực tế trong ba năm giảng dạy môn Tin học 8 ở trường THCS Lương
Thế Vinh – Krông Ana – ĐắkLắk, bản thân tôi nhận thấy rằng nhiều học sinh còn
yếu về khả năng tiếp nhận kiến thức về mặt thuật toán. Thậm chí còn có một số
học sinh không thích lập trình mà chỉ thực hiện gõ các bài tập chứ không tìm hiểu
thuật toán. Do vậy kiến thức, kỷ năng lập trình cơ bản của học sinh còn yếu.
Trong quá trình giảng dạy bản thân luôn suy nghĩ làm thế nào để các em
tiếp cận một cách tốt nhất, dễ hiểu nhất các thuật toán, áp dụng những cấu trúc
lệnh có sẵn để vận dụng giải quyết các bài toán cơ bản. Chính vì thế tôi luôn chú
trọng đến việc phân tích các dạng bài toán theo các cấu trúc câu lệnh để học sinh
đều có thể tự mình tìm ra các thuật toán viết thành những chương trình thực hành
trên máy.
Với những suy nghĩ, băn khoăn trăn trở đó, bản thân tôi đã mạnh dạn lựa
chọn đề tài: “Một số giải pháp để nâng cao chất lượng dạy học lập trình Pascal
đối với môn Tin học 8” để có thể giúp các em biến những bài toán đơn giản
thành những chương trình chạy được trong máy tính. Hình thành trong các em
ước mơ trở thành những lập trình viên giỏi để phục vụ cho xã hội sau này.
2. Mục tiêu, nhiệm vụ của đề tài.
Dạy học lập trình Pascal trong môn tin học 8 là phải tìm ra những phương
- Phương pháp điều tra.
- Phương pháp tổng kết kinh nghiệm giáo dục.
+ Tham khảo những kinh nghiệm của đồng nghiệp đi trước.
+ Tham khảo kinh nghiệm của các trường bạn.
- Phương pháp nghiên cứu các sản phẩm hoạt động.
- Phương pháp lấy ý kiến chuyên gia.
- Phương pháp khảo nghiệm, thử nghiệm.
+ Thử áp dụng các giải pháp vào quá trình giảng dạy Tin học ở lớp 8a4,
8a5 trường THCS Lương Thế Vinh.
II. Phần nội dung
1. Cơ sở lý luận:
Theo Nghị quyết số 29-NQ/TW Hội nghị Trung ương 8 khóa XI về đổi
mới căn bản, toàn diện giáo dục và đào tạo và Nghị quyết số 44/NQ-CP ban hành
Chương trình hành động của Chính phủ thực hiện Nghị quyết số 29/NQ-TƯ ngày
04 tháng 11 năm 2013 Hội nghị lần thứ tám Ban Chấp hành Trung ương khóa XI:
- Đẩy mạnh ứng dụng công nghệ thông tin và truyền thông trong dạy và
học.
GV: Trần Thị Tứ - Trường THCS Lương Thế Vinh – Krông Ana – ĐắkLắk
Một số giải giáp nhằm nâng cao chất lượng dạy học lập trình Pascal đối với môn Tin học 8
- Phát huy vai trò của công nghệ thông tin và các thành tựu khoa học công nghệ hiện đại trong quản lý nhà nước về giáo dục, đào tạo.
- Từng bước hiện đại hóa cơ sở vật chất kỹ thuật, đặc biệt là hạ tầng công
nghệ thông tin.
Ngôn ngữ lập trình Pascal chính là sử dụng ngôn ngữ lập trình để giải
quyết các bài toán. Chính vì vậy kiến thức về toán học là hết sức quan trọng,
muốn lập trình được thì yêu cầu học sinh phải nắm kiến thức về Toán học khi đó
GV: Trần Thị Tứ - Trường THCS Lương Thế Vinh – Krông Ana – ĐắkLắk
Một số giải giáp nhằm nâng cao chất lượng dạy học lập trình Pascal đối với môn Tin học 8
Từ thực trạng trên tôi xin đưa ra một số giải pháp nhằm nâng cao chất
lượng dạy học lập trình Pascal đối với môn Tin hoc 8:
Đối với giáo viên:
- Cần phải nắm vững các phương pháp dạy học Tin học nhằm phát huy tính
tích cực, chủ động của học sinh trong học tập. Để nâng cao chất lượng dạy học
môn Tin học, giáo viên phải tiếp cận nội dung bài và lựa chọn các phương pháp,
xây dựng hệ thống câu hỏi logic, phù hợp với ba đối tượng: giỏi, trung bình, yếu.
Từ đó dẫn dắt học sinh tự khám phá kiến thức, không thụ động ghi nhận kiến
thức mà giáo viên cung cấp, phải có sự phối hợp giữa hoạt động dạy và hoạt động
học trên cơ sở lấy học sinh làm trung tâm.
- Để tạo hứng thú học tập và hoạt động tích cực chủ động của học sinh,
giáo viên phải phối hợp nhuần nhuyễn các phương pháp dạy học. Giáo viên phải
tích hợp các môn học khác nhau trong mỗi tiết dạy.
- Tùy theo từng dạng bài mà giáo viên sử dụng phương pháp dạy học và
lập kế hoạch, chuẩn bị nội dung dạy học cho phù hợp. Sau đây là một số giải
pháp:
Tìm hiểu các từ khóa.
Trong mỗi bài học việc tìm hiểu nghĩa các từ khóa rất quan trọng, phải làm
cho các em hiểu được ý nghĩa của các từ khóa trước khi yêu cầu các em vận dụng
nó vào công việc viết chương trình hay cấu trúc lệnh. Vì mỗi cấu trúc lệnh của
Pascal đều có nghĩa của nó. Nếu công việc này nếu chúng ta cho học sinh hiểu
được thì xem như chúng ta đã đạt được 30% mục tiêu bài học.
Ví dụ:
- Write nghĩa là viết, ở đây chúng ta có thể nói rõ cho học sinh biết viết ra
ngữ lập trình đó là:
+ Các từ để viết thành lệnh trong chương trình;
VD: Program, var, Begin.. end, Writeln…
+ Các ký hiệu được viết theo quy tắc: Quy định về viết các từ và thứ tự của
nó.
VD: Từ nào viết trước, từ nào viết sau, các từ được ngăn cách nhau bởi dấu
cách hoặc nhiều dấu cách, cuối một số lệnh phải có dấu “;”…..
VD: Khai báo tên chương trình phải dùng từ khóa: Program; bắt đầu
chương trình dùng từ khóa Begin và kết thúc chương trình phải là từ khóa end….
Nếu viết sai quy tắc máy sẽ báo lỗi.
Trong phần này giáo viên cần nhấn mạnh các quy tắc khi viết lệnh cho
chương trình.
Hoạt động 2: Cấu trúc chung của chương trình.
Để viết được chương trình thì bắt buộc học sinh phải nắm được cấu trúc
chung của một chương trình. Giáo viên phải nêu rõ 2 phần của chương trình:
+ Phần khai báo thường gồm các câu lệnh dùng để khai báo tên chương
trình (Program); khai báo hàm thư viện (uses crt); khai báo biến (var); khai báo
hằng (Const)…Phần khai báo có thể có hoặc không. Giáo viên nhấn mạnh cho
học sinh hiểu hơn: Nếu có phần khai báo thì nó phải được đặt trước phần thân
chương trình.
+ Phân thân của chương trình gồm các câu lệnh mà máy tính cần thực hiện
(Đây là phần bắt buộc phải có): Bằng từ khóa Begin…End. Từ khóa Begin để
GV: Trần Thị Tứ - Trường THCS Lương Thế Vinh – Krông Ana – ĐắkLắk
Một số giải giáp nhằm nâng cao chất lượng dạy học lập trình Pascal đối với môn Tin học 8
cho biết điểm bắt đầu và từ khóa end để cho biết điểm kết thúc của một chương
trình.
+ Đối với bài toán nhập xuất họ và tên học sinh thì biến hoten phải khai
báo kiểu dữ liệu string.
+ Đối với bài toán “Kiểm tra N là số chẵn hay lẻ ” thì biến N phải khai báo
kiểu Integer;
Khi khai báo kiểu dữ liệu thì giáo viên cần nhắc học sinh chú ý đến phạm
vi sử dụng của các kiểu dữ liệu. Khai báo đúng kiểu dữ liệu có nghĩa là phần nào
các em đã biết nắm bắt được yêu cầu của bài lập trình.
Hoạt động 2: Lệnh nhập xuất của chương trình.
GV: Trần Thị Tứ - Trường THCS Lương Thế Vinh – Krông Ana – ĐắkLắk
Một số giải giáp nhằm nâng cao chất lượng dạy học lập trình Pascal đối với môn Tin học 8
Đối với hoạt động này giáo viên cần làm rõ cho học sinh hiểu được quá trình
trao đổi dữ liệu giữa con người và máy tính thì phải cần đến lệnh nhập xuất dữ liệu.
+ Lệnh nhập: Là lệnh đưa dữ liệu vào cho chương trình được thực hiện:
Readln(giá trị dữ liệu cần nhập);
VD: Nhập vào một số nguyên N từ bàn phím. Viết chương trình kiểm tra
xem N là số chẵn hay số lẽ?
Đối với bài toán này thì yêu cầu phải nhập số nguyên N bằng lệnh:
Readln(N);
+ Lệnh xuất: Là lệnh đưa kết quả ra màn hình được thực hiện: Writeln(giá
trị cần xuất);
VD: Muốn đưa kết quả S ra màn hình: Writeln(S);
Trong hoạt động này giáo viên cần nhấn mạnh vai trò của việc nhập xuất
dữ liệu khi viết chương trình.
* Bài 4. Sử dụng biến trong chương trình
Để dạy bài này và giúp học sinh hiểu được công cụ biến trong chương
trình, biết cách sử dụng áp dụng biến vào từng bài toán cụ thể thì giáo viên phải
Ví dụ: x là biến được khai báo kiểu dữ liệu số nguyên
Vậy x= a/b là sai bởi vì biểu thức a/b có kiểu dữ liệu phải là số thực.
* Bài 5. Từ bài toán đến chương trình
Đây là bài học rất quan trọng trong chương trình lập trình Pascal bởi vì bài
học này sẽ giúp các em tìm ra đựơc con đường lập trình từ một bài toán cụ thể
đến với chưong trình máy tính. Để học sinh hiểu được nội dung bài học này có
nghĩa là giáo viên đã thành công một nửa trong quá trình giúp các em giải toán
bằng ngôn ngữ lập trình. Để giải quyết một bài toán thì việc học sinh xác định
được bài toán là bước vô cùng quan trọng, đó chính là bước đầu học sinh biết
được bài toán cho gì và cần làm công việc gì?
Hoạt động 1: Quá trình giải bài toán trên máy tính.
Đối với hoạt động này thì giáo viên phải hình thành cho học sinh biết quá
trình từ một bài toán cụ thể để viết thành chương trình gồm những bước đó là:
+ Xác định bài toán
+ Mô tả thuật toán
+ Viết chương trình
Ví dụ: Tìm số lớn nhất trong 4 số a,b,c,d. In ra màn hình số lớn nhất?
Ta cần xác định cho bài toán:
+ Thông tin vào: Bốn số a,b,c,d
+ Thông tin ra: Số lớn nhất Max.
+ Mô tả thuật toán:
* Giả sử số lớn nhất là a: Max:=a;
* So sánh Max với số b. Nếu Max
6
8
B1: Giả sử Max:= HS1;
B2: So sánh Max với HS2, Nếu Max
Hoạt động: ĐÚNG
Chương trình sẽ kiểm tra điều kiện, nếu điều kiện đúng thì
thực hiện câu lệnh 1, ngược lại thực hiện câu lệnh 2;
Sơ đồ hoạt động:
Câu lệnh 1
Câu lệnh 2
GV: Trần Thị Tứ - Trường THCS Lương Thế Vinh – Krông Ana – ĐắkLắk
Một số giải giáp nhằm nâng cao chất lượng dạy học lập trình Pascal đối với môn Tin học 8
Ngoài cấu trúc dạng thiếu và dạng đủ, giáo viên có thể đưa ra tình huống
sau để giới thiệu câu lệnh điều kiện dạng ghép để nâng cao, bồi dưỡng cho học
sinh giỏi.
Viết câu lệnh điều kiện để xét học lực của học sinh theo yêu cầu sau:
8 ≤ dtb ≤ 10 thì học lực Giỏi
6.5 ≤ dtb < 8 thì học lực Khá
5 ≤ dtb < 6.5 thì học lực TB
3.5 ≤ dtb < 5 thì học lực Yếu
0 ≤ dtb < 3.5 thì học lực Kém
Để cho học sinh dễ hiểu và dể viết cấu trúc lệnh ta có thể dùng trục số để
biểu diễn như sau:
Hướng dẫn cho học sinh cách xét điều kiện từ trên xuống:
Cầu trúc lệnh bằng ngôn ngữ Pascal:
GV: Trần Thị Tứ - Trường THCS Lương Thế Vinh – Krông Ana – ĐắkLắk
Ở hoạt động này để cho học sinh biết được cấu trúc câu lệnh lặp với số lần
biết trước thì giáo viên giới thiệu cấu trúc lệnh lặp ở hai dạng tiến và dạng lùi: Cú
pháp, hoạt động của máy tính khi gặp lệnh lặp với số lần biết trước.
*Dạng tiến:
Cú pháp: For <Biến đếm: = Giá trị đầu> to <Giá trị cuối> do <Câu lệnh>;
GV: Trần Thị Tứ - Trường THCS Lương Thế Vinh – Krông Ana – ĐắkLắk
Một số giải giáp nhằm nâng cao chất lượng dạy học lập trình Pascal đối với môn Tin học 8
Chú ý : For, to, do là các từ khóa.
Biến đếm là biến kiểu nguyên;
Giá trị đầu, giá trị cuối: là các giá trị nguyên. Giá trị đầu phải
nhỏ hơn hoặc bằng giá trị cuối.
Số lần lặp= giá trị cuối – giá trị đầu + 1.
Hoạt động: Chương trình sẽ thực hiện, biến đếm sẽ nhận giá trị đầu và sau
mỗi vòng lặp biến đếm tự động tăng lên 1 đơn vị cho đến khi bằng giá trị cuối thì
kết thúc.
Dạng tiến
Sơ đồ:
Biến đếm:= Min
Biến đếm
* Bài 8: “Câu lệnh lặp chưa biết trước số vòng lặp”.
Để dạy bài này và giúp học sinh giải quyết những bài toán có liên quan sử
dụng câu lệnh lặp với số lần chưa biết trước thì giáo viên phải hướng dẫn học
sinh qua các hoạt động sau:
Hoạt động 1: Hoạt động lặp với số lần lặp chưa biết trước .
Trong hoạt động này giáo viên đưa ra một số ví dụ có hoạt động lặp chưa
biết trước số lần lặp trong thực tế cuộc sống hằng ngày:
- Gọi điện thoại cho bạn đến khi nào bạn cầm máy thì dừng gọi điện.
- Học bài đến khi nào thuộc thì dừng việc học bài.
- ……
Cho học sinh nêu một vài ví dụ trong thực tế.
Trong hoạt động này giáo viên yêu cầu cho học sinh chỉ rõ đâu là điều kiện
để dừng hoạt động và số lần thực hiện hoạt động phụ thuộc vào điều kiện. Qua
GV: Trần Thị Tứ - Trường THCS Lương Thế Vinh – Krông Ana – ĐắkLắk
Một số giải giáp nhằm nâng cao chất lượng dạy học lập trình Pascal đối với môn Tin học 8
những ví dụ trên giáo viên cũng cần chỉ cho học sinh biết hoạt động này là hoạt
động lặp có số lần chưa biết trước.
Qua những ví dụ giáo viên nói rõ thêm cho học sinh những hoạt động trên
có thể lặp lại vô số lần (không dừng) nếu điều kiện đúng.
Hoạt động 2: Cấu trúc lệnh lặp với số lần chưa biết trước.
Ở hoạt động này để cho học sinh dễ nhận biết cấu trúc lặp với số lần chưa
biết trước thì giáo viên giới thiệu cho học sinh cách viết các từ Trong khi, thì
làm việc bằng ngôn ngữ Pascal sau đó giới thiệu: Cú pháp, hoạt động và sơ đồ
hoạt động:
Cú pháp:
GV: Trần Thị Tứ - Trường THCS Lương Thế Vinh – Krông Ana – ĐắkLắk
Một số giải giáp nhằm nâng cao chất lượng dạy học lập trình Pascal đối với môn Tin học 8
Lệnh For
Lệnh While
Biểu thức điều kiện có
giá trị sai
Điều kiện kết thúc Biến đếm > Giá trị cuối
Đúng bằng Giá trị cuối – giá trị
đầu +1
Số vòng lặp
Chưa xác định
- Các bài toán có sử dụng vòng lặp For ... to ... do đều có thể thay thế bằng
vòng lặp while ... do (Những bài toán viết bằng lệnh For..to.. có thể viết bằng
lệnh While..do, điều ngược lại chưa chắc đúng).
Ví dụ: Câu lệnh tính tổng S = 1 + 2 + 3 + ... + n
Lệnh For
Lệnh While
S:=0;
S:=0; i:=1;
Pascal
Điều kiện
Số nguyên a chẵn (lẻ)
a mod 2 = 0
Số nguyên a là bội của b (b ước
a mod b = 0
của a)
Ba số a,b,c là độ dài 3 cạnh tam (a + b > c) and (a + c > b) and (b +
giác
c> a)
Ba số a,b,c là độ dài 3 cạnh tam (a*a + b*b = c*c) or (a*a + c*c =
giác vuông
b*b) or (b*b + c*c = a*a)
+ Viết được thuật toán theo ngôn ngữ tự nhiên (Tiếng Việt).
+ Từ thuật toán ngôn ngữ tự nhiên dịch sang ngôn ngữ Pascal, ở thao tác
này giáo viên hướng dẫn cho học sinh chuyển theo nghĩa các từ khóa và các ký
hiệu Pascal.
Ví dụ 1: Nhập vào một số nguyên N từ bàn phím. Viết chương trình kiểm
tra xem N là số chẵn hay số lẽ?
+ GV hướng dẫn và yêu cầu học sinh nêu thuật toán.
Thuật toán (theo ngữ tự nhiên)
1. Nhập số nguyên n.
Mã hóa giải thuật
Realln(n);
2. Kiểm tra nếu n chia hết cho 2 thì n If n mod 2 = 0 then Write(n,'so chan')
End.
+ Giáo viên đưa chương trình vào Turbo Pascal hướng dẫn học sinh dịch
và sữa lỗi.
+ Chạy chương trình và kiểm chứng kết quả.
Ví dụ 2:
Viết chương trình giải phương trình bậc nhất ax + b = 0, với a, b là các số
thực nhập vào từ bàn phím.
Giải thuật(theo ngữ tự nhiên)
Nhập a,b
Mã hóa giải thuật
Readln(a); Readln(b);
Kiểm tra a với 2 trường hợp
+ Nếu a khác 0 thì x = -b/a
If a 0 then Write('x = ', -b/a:8:2)
+ Nếu a bằng 0 thì kiểm tra b. Nếu b else If b = 0 then Write ('PT VSN')
bằng 0 thì phương trình có vô số else Write('PT VN');
nghiệm, ngược lại phương trình vô
nghiệm
+ Yêu cầu HS dựa vào cấu trúc của một chương trình Pascal hoàn thành
chương trình.
Program Phuong_trinh;
Uses
crt;
1. Nhập số nguyên n;
2. S:=S+i; i:=i+1;
3. Nếu i
Realln(N);
2. Kiểm tra điều kiện:
While N
+ Nếu S
hiện được hoạt động này ngoài việc hướng dẫn học sinh cách dịch thì cần cung
cấp cho học sinh cách nhận biết và phát hiện những lỗi chương trình cơ bản của
Pascal.
Sau đây là một số lỗi thường gặp của Pascal trong quá trình lập trình:
STT
Thông báo lỗi
Dịch nghĩa
1
Out of memory
Thiếu bộ nhớ
2
Identifier expected
Thiếu chỉ định
3
Unknown identifier
Không hiểu chỉ định
4
Quá nhiều file lồng nhau
9
Unexpected end of file
Không tìm thấy kết thúc file
10
Type identifier expected
Không tìm thấy định nghĩa kiểu
11
Too many open files
Quá nhiều file được mở
12
Invalid file name
Tên file không hợp lệ
13
File not found
Sai kiểu
19
Integer constant expected
Không tìm thấy hằng số nguyên
20
Constant expected
Phải là hằng số
21
Integer or real constant expected
Phải là số nguyên hoặc là số thực
22
BEGIN expected
Phải là BEGIN
23
END expected
Thiếu OF
29
THEN expected
Thiếu từ khoá THEN
30
Invalid file type
Kiểu file không hợp lệ
GV: Trần Thị Tứ - Trường THCS Lương Thế Vinh – Krông Ana – ĐắkLắk
Một số giải giáp nhằm nâng cao chất lượng dạy học lập trình Pascal đối với môn Tin học 8
31
Division by zero
Lỗi chia cho 0
32
";" expected
Phải là dấu "="
38
":=" expected
Phải là dấu ":="
39
"[" or "(." Expected
Phải là dấu "[" hoặc "(."
40
"]" or ".)" expected
Phải là dấu "]" hoặc ".)"
41
"." expected
Phải là dấu "."
42
".." expected
GV: Trần Thị Tứ - Trường THCS Lương Thế Vinh – Krông Ana – ĐắkLắk
Một số giải giáp nhằm nâng cao chất lượng dạy học lập trình Pascal đối với môn Tin học 8
+ Khi kiểm tra kết quả bài toán kiểm tra một số có phải nguyên tô hay
không ta phải kiểm tra nhiều trường hợp: 0; 1; hợp số; số nguyên tố; những số
nguyên > 32000, > 65000,...
Đối với học sinh:
- Giáo viên phải giúp đỡ, hướng dẫn và tác động để học sinh hiểu được
môn tin học nó cũng rất cần thiết trong học tập và cuộc sống.
- Học sinh phải nghiên cứu kĩ sách giáo khoa để nắm vững kiến thức trong
quá trình học tập. Ngoài ra, học sinh phải biết chọn lọc những quyển sách hoặc
mạng internet để đọc, tham khảo giúp em học tốt môn Tin học.
- Học sinh phải tích cực chủ động học tập và thực hiện các yêu cầu chuẩn
bị ở nhà trước khi đến lớp. Trong quá trình học tập, các em phải tư duy theo gợi
dẫn của giáo viên, phải chủ động quan sát vấn đề, hiện tượng, phối hợp giải
quyết, khám phá ra nội dung bài học, thực hành vận dụng. Các em phải nắm vững
kiến thức của các môn Toán, Tiếng Anh để hỗ trợ các em trong quá trình làm bài
tập.
- Học sinh phải phải thực hành nhiều hơn. Thực hành là thước đo đánh giá
tiếp nhận và vận dụng kiến thức. Hành thông thường là áp dụng bài tập trên lớp
và ở nhà.
c. Mối quan hệ giữa các giải pháp, biện pháp.
Các biện pháp trên hỗ trợ nhau trong quá trình thực hiện sáng kiến. Muốn
đạt được kết quả tốt trong phương pháp dạy học nhằm nâng cao chất lượng trong
dạy học Pascal thì trước hết giáo viên phải soạn bài chu đáo, đầy đủ, chuẩn xác
nội dung kiến thức từ đó giúp học sinh biết cách tìm hiểu các từ khóa, cú pháp
của các câu lệnh để vận dụng vào làm bài tập; học sinh phải chủ động và chuẩn bị