MỤC LỤC
I. MỞ ĐẦU:...................................................................................................1
1.1.
Lý do chọn đề tài:................................................................................1
1.2.
Mục đích nghiên cứu:.........................................................................1
1.3.
Đối tượng nghiên cứu:........................................................................2
1.4.
Phương pháp nghiên cứu:..................................................................2
1.5.
Giới hạn phạm vi nghiên cứu:...........................................................2
II. NỘI DUNG SÁNG KIẾN KINH NGHIỆM:..........................................4
2.1. Cơ sở lý luận của vấn đề:.........................................................................4
2.2. Thực trạng của vấn đề:............................................................................4
2.3. Các biện pháp đã tiến hành giải quyết vấn đề:......................................5
2.3.1. Các yêu cầu cơ bản của giáo viên:........................................................5
2.3.2. Các yêu cầu cơ bản của học sinh:.........................................................5
2.3.3. Biện pháp tiến hành:..............................................................................5
2.4. Hiệu quả của SKKN:..............................................................................18
2.4.1. Kết quả đạt được:..................................................................................18
nghiệm về “kỹ năng lập trình pascal cho học sinh lớp 11”. Giúp các em hiểu,
yêu thích lập trình và học lập trình trong sự hứng thú, phấn khởi.
1.3. Đối tượng nghiên cứu:
Trong chương trình lớp 11, các em làm quen với lập trình. Ngôn ngữ lập
trình dường như rất xa lạ vì đây là kiến thức đầu tiên trong lập trình mà các em
được học.
Qua giảng dạy môn Tin học ở trường THPT Đông Sơn 2, bản thân tôi nhận
thấy rằng nhiều học sinh lớp 11 thấy môn lập trình Pascal khó, khô khan và cực
kỳ phức tạp. Mới đầu các em cũng rất sợ vì 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, đưa ra thuật toán mà có thể
cho kết quả sai. Tâm lý một số em đều cho rằng môn Tin học không phải là môn
học chính. Do đó không cần phải để tâm đến.
1.4. Phương pháp nghiên cứu:
Vận dụng linh hoạt, sáng tạo các phương pháp dạy học theo cách phát
huy yếu tố tích cực và những ưu điểm của phương pháp dạy học truyền thống
cùng phương pháp dạy học hiện đại nhằm tăng cường tính tích cực của học sinh
trong tiếp nhận kiến thức, hình thành kỹ năng sử dụng máy tính, sử dụng thành
thạo phần mềm Turbo Pascal để phục vụ cho học tập và bước đầu vận dụng vào
cuộc sống. Từ đó, tôi luôn tạo điều kiện tối ưu để học sinh bồi dưỡng kỹ năng tự
học. Vận dụng linh hoạt, sáng tạo các hình thức tổ chức học tập kết hợp giữa học
tập cá thể với học tập hợp tác; giữa hình thức học cá nhân với hình thức học theo
nhóm.
1.5. Giới hạn phạm vi nghiên cứu:
Nhằm giới hạn phạm vi nghiên cứu theo như mục tiêu đã đề ra, đề tài tập
trung xem xét, phân tích, đánh giá các yếu tố nằm trong phạm vi sau:
Địa điểm nghiên cứu: Trường THPT Đông Sơn 2, huyện Đông Sơn, tỉnh
Thanh Hóa.
Hoạt động được nghiên cứu: tập trung nghiên cứu tình hình hoạt động
trong kiến thức lập trình ở chương trình tin học lớp 11.
môn tin học cần được thực hiện trong hoạt động và bằng hoạt động tự giác, tích
cực, chủ động và sáng tạo của học sinh. Khi cần dạy một nội dung tin học cho
học sinh, người giáo viên phải biết phân tích nội dung đó liên quan đến những
hoạt động nào. Và một số hoạt động trong đó lại được phân tích thành những
hoạt động thành phần. Rồi căn cứ vào mục tiêu tiết học, trình độ học sinh, trang
thiết bị hiện có mà lựa chọn cho học sinh tập luyện và thực hiện một số những
hoạt động tiềm tàng trong nội dung cần dạy. Để học sinh có ý thức về ý nghĩa
của những hoạt động, cần tạo động cơ học tập cho học sinh, để học sinh học
bằng sự hứng thú thực sự, nó được nảy sinh từ việc ý thức sâu sắc ý nghĩa nội
dung bài học, học bằng tất cả tính tích cực, độc lập và trách nhiệm cao nhất của
học sinh.
Để thưc hiện được các mục đích trên cần phải đặt học sinh vào tình huống
có vấn đề để hướng đích cho học sinh. Phải tập luyện cho học sinh những hoạt
động ăn khớp với tri thức phương pháp. Phải phân bậc hoạt động để tuần tự
nâng cao yêu cầu khi tình huống dạy học cho phép hoặc hạ thấp yêu cầu khi học
sinh gặp khó khăn. Hệ thống bài tập được phân bậc để học sinh luyện tập tại lớp
hoặc làm ở nhà.
2.2. Thực trạng của vấn đề:
Ngôn ngữ lập trình Turbo Pascal do nhà bác học Niklaus Wirth sáng lập
vào những năm 70 của thế kỷ XX. Đây là ngôn ngữ có cú pháp sảng sủa, dễ hiểu
và thường được dạy trong nhà trường và dành cho những người mới học lập
trình. Chính vì thế Pascal thường được gọi là "Ngôn ngữ lập trình của học
đường". Hai môi trường lập trình trên ngôn ngữ này đang được sử dụng phổ
biến hiện nay ở Việt Nam là Turbo Pascal và Free Pascal.
Lập trình Turbo Pascal là một ngôn ngữ lập trình có cú pháp chặt chẽ,
đơn giản và dễ hiểu, ngôn ngữ lập trình Pascal đang được giảng dạy cho học
sinh lớp 11. Turbo Pascal là ngôn ngữ cơ sở để giới thiệu cho học sinh làm quen
với kỹ thuật xây dựng chương trình. Quan điểm của tác giả viết ngôn ngữ lập
ngôn ngữ lập trình Pascal là một phần mềm có cấu trúc phức tạp, ngôn ngữ lập
trình bằng tiếng anh. Mặt khác để thực hiện được một chương trình thì các em
phải có một kiến thức toán học nhất định.
2.3. Các biện pháp đã tiến hành giải quyết vấn đề:
2.3.1. Các yêu cầu cơ bản của giáo viên:
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 (theo sự
đổi mới: kết hợp giữa “ôn cũ giảng mới”, trong tiết dạy cần kết hợp phương
pháp dạy “vừa lý thuyết, vừa thực hành”...) 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ác dạng bài tập lập trình phù hợp với ba đối tượng: giỏi- khá, trung bình,
yếu- kém. 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 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. Để kích thích 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, phù hợp các phương pháp dạy học đồng thời giáo viên phải tác động
cho học sinh thấy được môn tin học là cần thiết cho bản thân các em sau này.
2.3.2. Các yêu cầu cơ bản của học sinh:
Học sinh phải xác định được sách giáo khoa là phương tiện chủ yếu để
học sinh học tập. Bên cạnh đó, học sinh phải biết chọn lọc những tài liệu tham
khảo phù hợp để học tốt môn tin học. Học sinh phải tích cực chủ động học tập,
thực hiện các yêu cầu của giáo viên và chuẩn bị chu đáo ở nhà trước khi đến lớp.
Trong quá trình học tập, các em phải tư duy theo sự hướng dẫn gợi mở 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 đạt hiệu quả cao.
Học thì phải hành. Thực hành là thước đo đánh giá tiếp nhận và vận
dụng kiến thức. Thực hành thông thường là áp dụng bài tập trên lớp và ở nhà. Vì
vậy học sinh phải biết kết hợp lý thuyết với thực hành một cách thành thạo.
IF.., CASE..., FOR..., REPEAT..., WHILE...
+ Các lệnh xuất nhập dữ liệu:
Lệnh xuất dữ liệu:
Để xuất dữ liệu ra màn hình, ta sử dụng ba dạng sau:
(1) WRITE( [, ,...]);
(2) WRITELN( [, ,...]);
(3) WRITELN;
Nhập dữ liệu:
Để nhập dữ liệu từ bàn phím vào các biến có kiểu dữ liệu chuẩn (trừ các
biến kiểu BOOLEAN), ta sử dụng cú pháp sau đây:
READLN(<biến 1>, <biến 2>,...,<biến n>);
- Từ khóa: Là các từ riêng của Pascal, có ngữ nghĩa đã được xác định,
không được dùng nó vào các việc khác hoặc đặt tên mới trùng với các từ khóa:
Array, Begin, Const, Div, Do, Else, For, If, Mod, Program, String, Then, To, Var,
While…
+ Từ khóa chung: PROGRAM, BEGIN, END
+ Từ khóa để khai báo như biến, hằng, mảng, xâu kí tự: VAR, CONST, ARRAY,
STRING
+ Từ khóa của lệnh lựa chọn: câu điều kiện
IF … THEN … ELSE
+ Từ khóa của lệnh lặp với số lần biết trước:
FOR … TO … DO (đi từ giá trị nhỏ đến giá trị lớn)
FOR … DOWNTO … DO (đi từ giá trị lớn đến giá trị nhỏ)
+ Từ khóa của lệnh lặp với số lần chưa biết trước:
WHILE … TO
+ Từ khóa phép tính:
DIV: Chia lấy phần nguyên
MOD: Chia lấy phần dư
+ Lệnh dịch chương trình: ALT + F9
+ Lệnh chạy chương trình: CTRL +F9
ngôn ngữ lập trình mà các em đã học (Cụ thể là dùng ngôn ngữ lập trình Turbo
Pascal để viết chương trình).
c. Phân tích chi tiết nội dung cần viết chương trình:
* Xác định bài toán:
- Khái niệm bài toán: Bài toán là một công việc hay một nhiệm vụ cần phải giải
quyết.
+ Biễu diễn vấn đề bài toán: A → B
Trong đó: A: Giả thiết, điều kiện ban đầu.
B: Kết luận, mục tiêu cần đạt.
+ Giải quyết vấn đề bài toán:
Từ A dùng một số hữu hạn, các bước suy luận có lý hoặc hành động
thích hợp để đạt được B
Trong Tin học: A là đầu vào, B là đầu ra.
- Quá trình giải bài toán trên máy tính: Bài toán trên máy cũng mang
đầy đủ các tính chất của bài toán tổng quát trên, nhưng nó lại được diễn đạt theo
một các khác.
+ A : là đưa thông tin vào – thông tin trước khi xử lý (Input )
+ B: là đưa thông tin ra – kết quả sau khi xử lý (Output)
+ : là chương trình tạo từ các câu lệnh cơ bản của máy tính cho phép xử lý từ
A đến B.
- Xác định bài toán: Là xác định rõ 2 thành phần Input và Output và mối quan
hệ giữa chúng để có thể lựa chọn thuật toán và ngôn ngữ lập trình thích hợp.
Ví dụ: Giải phương trình bậc nhất dạng tổng quát bx + c =0(SGK)
Các bước xác định cho bài toán:
+ Input
: Các số b và c
+ Mang tính phổ dụng: dễ hiểu, dễ cài đặt và mở rộng cho các bài toán khác.
Ví dụ: Bài toán giải phương trình bậc nhất 1 ẩn ax+b=0
Bước 1: Nhập a, b.
Bước 2: Nếu a = 0 thì
Bước 2.1 . Nếu b = 0 thì phương trình vô số nghiệm.
Bước 2.2. Nếu b ≠ 0 thì phương trình vô nghiệm
Bước 3. Nếu a ≠ 0 thì phương trình có nghiệm x= - b/a.
Bước 4. Đưa ra giá trị nghiệm x.
Bước 5. Kết thúc.
- Lưu đồ - sơ đồ khối
+ Lưu đồ hay sơ đồ khối là một công cụ trực quan để diễn đạt các thuật toán.
Biểu diễn thuật toán bằng lưu đồ sẽ giúp người đọc theo dõi được sự phân cấp
các trường hợp và quá trình xử lý của thuật toán. Phương pháp lưu đồ thường
được dùng trong những thuật toán có tính rắc rối, khó theo dõi được quá trình xử
lý.
+ Ðể biểu diễn thuật toán theo sơ đồ khối, ta phải phân biệt hai loại thao tác.
Một thao tác là thao tác chọn lựa dựa theo một điều kiện nào đó.
Các thao tác không thuộc loại chọn lựa được xếp vào loại hành động.
+ Ưu điểm
Trực quan, dễ hiểu, dễ thiết kế.
Cung cấp toàn cảnh, tổng quan về thuật toán.
+ Nhược điểm
Cồng kềnh, đặc biệt đối với bài toán phức tạp
Dễ hiểu, dễ diễn đạt.
+ Cùng với việc sử dụng các biến, trong thuật toán rất thường gặp một phát biểu
hành động đặt (hay gán) một giá trị cho một biến.
Ví dụ: hành động tăng biến i lên 1 đơn vị có thể được viết như sau: i := i + 1
+ Các cấu thường được sử dụng trong mã giả dựa theo ngôn ngữ lập trình
PASCAL gồm:
Cấu trúc chọn:
if (điều kiện) then (hành động)
if (điều kiện) then (hành động) else (hành động)
Cấu trúc lặp:
while (điều kiện) do (hành động)
for (biến đếm) := (giá trị đầu) to (giá trị cuối) do (hành động)
* Viết chương trình:
- Viết chương trình là dùng ngôn ngữ lập trình cụ thể nào để diễn tả thuật toán, cấu
trúc dữ liệu thành câu lệnh để máy tính có thể thực hiện được và giải quyết đúng
bài toán mà người viết chương trình mong muốn. Và đây cũng là một trong những
bước then chốt của người lập trình.
- Sau khi đã có thuật toán ta phải lập trình để thực hiện thuật toán đó. Muốn lập
trình đạt hiệu quả cao, cần phải có kỹ thuật lập trình tốt. Kỹ thuật lập trình tốt thể
hiện ở kỹ năng viết chương trình, khả năng gỡ rối và thao tác nhanh.
- Lập trình tốt không chỉ nắm vững ngôn ngữ lập trình là đủ, mà phải biết cách viết
chương trình một cách uyển chuyển, khôn khéo và phát triển dần dần để chuyển
các ý tưởng ra thành chương trình hoàn chỉnh.
- Cấu trúc chung của một chương trình Pascal
+ Phần khai báo :
Cú pháp Const <tên hằng> = <giá trị>;
Ví dụ :
Const chiphi = 1000 ;
Khai báo Biến: Là đại lượng mà giá trị của nó có thể thay đổi trong quá
trình thực hiện chương trình.
Biến được khai báo với từ khóa Var
Biến là tên của một vùng bộ nhớ lưu trữ dữ liệu.
Biến được xuất trong chương trình thông qua tên biến.
Biến là cấu trúc ghi nhớ dữ liệu, vì vậy phải quy định theo 1 kiểu dữ liệu
nào đó. Ví dụ: Real, Integer, byte,…
Cú pháp Var < danh sách biến > : < kiểu dữ liệu> ;
Trong đó : Danh sách biến là một hay nhiều tên biến, các tên biến được
viết cách nhau bởi dấu phẩy (,). Kiểu dữ liệu thường là một trong các kiểu dữ
liệu chuẩn hay kiểu dữ liệu do người lập trình định nghĩa.
Ví dụ :
Var x , y : integer ; A: Array[1..50] of real;
- Phần thân chương trình:
+ Phần thân chương trình là phần đặc biệt quan trọng và bắt buộc phải có, phần này
luôn nằm giữa 2 từ khoá là begin và end. Ở giữa là lệnh mà các chương trình chính
cần thực hiện. Đề bài yêu cầu viết chương trình thực hiện công việc gì thì ở phần
thân phải có các câu lệnh dùng để thực hiện công việc đó. Sau từ khóa end là dấu
chấm (.) để báo kết thúc chương trình. Các lệnh sau dấu chấm đều không có ý
nghĩa.
ra màn hình theo hàng ngang( con trỏ
không xuống hàng).
Viết giá trị trong các biến x1, x2,...,
xn theo hàng dọc( mỗi lần viết giá trị
x có xuống hàng).
Xuống hàng.
Viết ra giá trị của biến thực R vào n
chỗ, chỉ lấp m số thập phân.
Lưu ý :
+ Dấu chấm phẩy (;): dùng để ngăn cách các câu lệnh của Pascal và không thể
thiếu được trong quá trình viết các câu lệnh.
+ Lời chú thích: Lời chú thích dùng để chú giải cho người sử dụng chương trình
nhớ nhằm trao đổi thông tin giữa người với người. Lời chú thích nằm giữa ký
hiệu:{ }, hoặc (* *)
Ví dụ :
PROGRAM Tinh_tien; {Dòng tiêu đề, khai báo tên chương trình }
USES Crt;
{Khai báo sử dụng thư viện Crt }
VAR soluong : integer ;
{Khai báo biến }
Dongia,thanhtien:real;
Thongbao:string;
CONST phi =5000;
{Khai báo hằng}
BEGIN
{ Thân chương trình chính }
Clrscr ;
Đóng file đang soạn thảo.
Alt + F5
Xem kết quả chạy chương trình.
F8
Chạy từng câu lệnh một trong chương trình.
Alt + X
Thoát khỏi Turbo Pascal.
Alt + F9
Biên dịch chương trình
Ctrl + F9
Chạy chương trình
Alt +
10
F10
Vào hệ thống Menu của Pascal.
- Chạy thử
Chạy thử và tìm lỗi và công việc học sinh cần phải làm khi viết xong chương
trình để kiểm tra chương trình của mình. Chương trình là do con người viết ra,
cho nên khó có thể tránh khỏi sự nhầm lẫn. Một chương trình viết xong chưa
chắc đã chạy được ngay trên máy tính để cho ra kết quả mong muốn. Kỹ năng
tìm lỗi, sửa lỗi, điều chỉnh lại chương trình cũng là một kỹ năng quan trọng của
người lập trình. Kỹ năng này có được bằng kinh nghiệm tìm và sửa lỗi của chính
mình.
Các loại lỗi cơ bản thường gặp khi lập trình:
+ Lỗi cú pháp: Lỗi này hay gặp nhất nhưng lại dễ sửa nhất, chỉ cần nắm vững
ngôn ngữ lập trình là đủ.
Tính trong sáng: Chương trình viết ra phải dễ đọc dễ hiểu, để sau một
thời gian dài, khi đọc lại còn hiểu mình làm cái gì? Để nếu có điều kiện thì còn
có thể sửa sai cải tiến hay biến đổi để được chương trình giải quyết bài toán
khác. Tính trong sáng của chương trình phụ thuộc rất nhiều vào công cụ lập
trình và phong cách lập trình.
Tính hữu hiệu: Chương trình phải chạy nhanh và ít tốn bộ nhớ, tức là
tiết kiệm được cả về không gian và thời gian. Để có một chương trình
hữu hiệu, cần phải có giải thuật tốt và những tiểu xảo khi lập trình. Tuy nhiên,
việc áp dụng quá nhiều tiểu xảo có thể khiến chương trình trở nên rối rắm, khó
hiểu khi sửa đổi. Tiêu chuẩn hữu hiệu nên dừng lại ở mức chấp nhận được,
không quan trọng bằng ba tiêu chuẩn trên. Bởi phần cứng phát triển rất nhanh,
yêu cầu hữu hiệu không cần phải đặt ra quá nặng.
Ví dụ: Giải phương trình bậc nhất 1 ẩn ax + b = 0
Chạy chương trình
2.4. Hiệu quả của SKKN:
2.4.1. Kết quả đạt được:
Khi tôi sử dụng kinh nghiệm này vào dạy học bộ môn tin học ở trường,
tôi thấy bước đầu đã có những kết quả khả quan, học sinh hiểu bài nhanh hơn,
sâu hơn, nhớ được lâu hơn. Đa số học sinh khá, giỏi đã biết sử dụng các bước
lập trình để viết ra một chương trình từ đơn giản đến phức tạp, tổng hợp kiến
thức môn học qua đây hình thành cho các em có được phương pháp học, kỹ
năng viết chương trình trong môn Tin học.
Nhờ sự liên kết từ bộ môn Toán học với cách diễn đạt riêng của từng em,
đã giúp các em liên tưởng, liên kết các kiến thức đã học trong môn toán vào môn
Tin học để mở rộng tư duy, rèn luyện kỹ năng viết chương trình.
bình, yếu, kém giảm xuống đáng kể. Cụ thể tôi đã tiến hành khảo sát chất lượng
học sinh sau khi áp dụng đề tài trên và thu được kết quả như sau:
Điểm
Năm 2015 – 2016
(Chưa áp dụng
SKKN)
Số em
Tỷ lệ %
Giỏi
7
20%
28,6%
Khá
10
31,4%
Trung bình 11
20%
Yếu
7
2.4.2. Bài học kinh nghiệm:
Năm 2016 – 2017
(Sau khi áp dụng
Nhiều
SKKN)
hơn
Tìm thuật toán: Phương pháp giải bài toán.
Viết chương trình: Hoàn thành một chương trình bằng ngôn ngữ lập
trình.
III.
KẾT LUẬN, KIẾN NGHỊ :
3.1. Kết luận.
Đối với phương pháp dạy học không ngừng nâng cao hiệu quả chất lượng,
phát huy năng lực trí tuệ của học sinh là việc làm có tính thường xuyên của tất
cả các giáo viên. Sử dụng các phương pháp dạy học tích cực như: vấn đáp gợi
mở, thuyết trình, đặc biệt là cần thực hành cụ thể trên máy vi tính …, góp phần
tích cực trong đổi mới phương pháp dạy học nói chung và dạy môn Tin học nói
riêng.
Với chương trình lập trình Pascal đây là chương trình học khá mới mẻ, các
bài toán đưa ra để xây dựng một chương trình có nhiều phức tạp, bởi có nhiều
bài hay đã được đưa vào để giải trong chương trình lớp 11. Cho nên giáo viên
cần phải nắm chắc các phương pháp để truyền đạt thì mới đạt hiệu quả cao.
Đồng thời cũng phối hợp chương trình toán đã học đến những phần nào để từ đó
đưa các ví dụ, bài tập để học sinh có thể nắm chắc lý thuyết cũng như thực hành
trên máy vi tính, Từ đó, các em rút ra được ưu điểm của việc viết chương trình
so với cách tính tay.
3.2. Kiến nghị.
Thực hiện đề tài này, bản thân tôi đã có nhiều cố gắng trong việc nghiên
cứu, tham khảo chuẩn kiến thức, sách giáo khoa, sách giáo viên, các tài liệu có
liên quan, cũng như thực hiện các tiết dạy. Chính vì vậy kết quả giảng dạy bộ
Cấp đánh giá xếp loại
TT
1.
Tên đề tài SKKN
(Ngành GD cấp
huyện/tỉnh; Tỉnh...)
Kết quả
đánh giá
xếp loại
(A, B,
hoặc C)
Năm
học
đánh giá
xếp loại
Phương pháp giúp học sinh lớp 11
hiểu, phân biệt được lặp với số lần
biết trước và chưa biết trước với
Sở GD & ĐT
Tỉnh Thanh Hóa.
câu lệnh For – Do và While - Do