SỞ GIÁO DỤC ĐÀO TẠO THANH HÓA
TRƯỜNG THPT HẬU LỘC 4
SÁNG KIẾN KINH NGHIỆM
TÊN ĐỀ TÀI
SỬ DỤNG MỘT SỐ PHƯƠNG PHÁP DẠY HỌC TÍCH CỰC
ĐỂ NÂNG CAO HIỆU QUẢ HỌC TẬP
NỘI DUNG CHƯƠNG TRÌNH CON CHO HỌC SINH KHỐI 11
Người thực hiện :
Nguyễn Thị Hòa
Chức vụ:
Giáo viên
SKKN thuộc lĩnh vực : Tin học
THANH HÓA NĂM 2017
MỤC LỤC
Trang
1. MỞ ĐẦU
1.1.
1
Lí
do
chọn
đề
tài
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
2. NỘI DUNG SÁNG KIẾN KINH NGHIỆM
2.1. Cơ sở lí luận của sáng kiến kinh nghiệm
2
2.1.1. Phương pháp dạy học tích cực .................................................. 2
2.1.2. Kiến thức cơ bản về nội dung chương trình con ....................... 3
2.2. Thực trạng vấn đề trước khi áp dụng sáng kiến kinh nghiệm
4
2.3. Các sáng kiến kinh nghiệm hoặc các giải pháp đã sử dụng để
giải
quyết
vấn
đề.
4
2.3.1. Sử dụng phương pháp dạy học phát hiện và giải
quyết vấn đề để xây dựng các khái niệm cơ bản
4
2.3.1.1. Xây dựng khái niệm chương trình con
.............................................................................................................
5
2.3.1.2. Phân loại chương trình con
.............................................................................................................
6
2.3.1.3. Truyền tham số cho chương trình.
.............................................................................................................
7
2.3.1.4. Tính đệ quy của chương trình con
.............................................................................................................
9
2.3.2. Sử dụng phương pháp dạy học trực quan để phân biệt
biến toàn cục và biến cục bộ, tham số biến và tham số giá trị
.................................................................................................
10
.................................................................................................
2.3.2.1. Biến toàn cục và biến cục bộ
.............................................................................................................
11
.............................................................................................................
2.3.2.2.Tham số biến, tham số giá trị
.............................................................................................................
11
2.3.3.Sử dụng phương pháp dạy học hợp tác trong nhóm nhỏ
để rèn luyện củng cố kiến thức cơ bản về chương trình con
..................................................................................................
12
2.3.4.Sử dụng phương pháp dạy học luyện tập và thực hành
để nâng cao kĩ năng sử dụng chương trình con
..................................................................................................
16
2.4. Hiệu quả của sáng kiến kinh nghiệm đối với hoạt động giáo
dục, với bản thân, đồng nghiệp và nhà trường.
18
3. KẾT LUẬN, KIẾN NGHỊ
3.1.
Kết
luận
19
3.2.
Kiến
nghị
19
1. MỞ ĐẦU
1.1. Lí do chọn đề tài
Các phương pháp dạy học truyền thống như thuyết trình, đàm thoại, luyện
tập luôn là những phương pháp quan trọng trong dạy học. Đổi mới phương
pháp dạy học không có nghĩa là loại bỏ các phương pháp dạy học truyền thống
quen thuộc mà cần bắt đầu bằng việc cải tiến để nâng cao hiệu quả và hạn chế
nhược điểm của chúng. Để nâng cao hiệu quả của các phương pháp dạy học
người giáo viên trước hết cần nắm vững những yêu cầu và sử dụng thành thạo
các kỹ thuật dạy học trong việc chuẩn bị cũng như tiến hành bài lên lớp, chẳng
hạn như kỹ thuật mở bài, kỹ thuật trình bày, giải thích trong khi thuyết trình, kỹ
thuật đặt các câu hỏi và xử lý các câu trả lời trong đàm thoại, hay kĩ thuật làm
mẫu trong luyện tập. Bên cạnh các phương pháp dạy học truyền thống cần kết
hợp sử dụng các phương pháp dạy học mới, đặc biệt là những phương pháp và
kỹ thuật dạy học phát huy tính tích cực và sáng tạo của học sinh, khắc phục lối
truyền đạt một chiều, ghi nhớ máy móc. Tập trung dạy cách học, cách nghĩ,
khuyến khích tự học, tạo cơ sở để người học tự cập nhật và đổi mới tri thức, kỹ
năng, phát triển năng lực.
Chương trình tin học lớp 11 là nội dung tương đối khó với đa số học sinh.
Các em được làm quen với nhiều thuật ngữ, cấu trúc dữ liệu, nhiều khái niệm
mang tính trìu tượng, khá mới mẻ và nhiều bài toán thực tế trong cuộc sống mà
có thể dùng ngôn ngữ lập trình để giải quyết vấn dề. Trong đó, một nội dung mà
học sinh thường thấy khó nhất trong quá trình học đó là nội dung về chương
trình con. Đây là nội dung đòi hỏi học sinh cần có độ tư duy cao, có khả năng
trìu tượng hóa và khả năng mở rộng ngôn ngữ lập trình. Tuy nhiên để học sinh
nắm vững được các khái niệm cơ bản về chương trình con và ứng dụng lập trình
giải quyết các bài toán, người giáo viên cần nghiên cứu phương pháp dạy học
phù hợp với từng nội dung, nhằm tạo sự hứng thú và nâng cao hiệu quả học tập.
Do đó, sau nhiều năm giảng dạy môn tin học ở khối 11, qua quá trình đúc
rút kinh nghiệm, tôi mạnh dạn đề xuất sáng kiến kinh nghiệm :“Sử dụng một số
phương pháp dạy học tích cực để nâng cao hiệu quả dạy học nội dung
chương trình con cho học sinh khối 11”.
1.2. Mục đích nghiên cứu
- Nghiên cứu các phương pháp dạy học tích cực có thể sử dụng để nâng cao
hiệu quả dạy học cho nội dung chương trình con.
- Nâng cao kĩ năng viết, sử dụng chương trình con cho học sinh.
- Giúp học sinh biết cách viết một chương trình có cấu trúc để giải một bài
toán trên máy tính.
1
1.3. Đối tượng nghiên cứu
- Các phương pháp dạy học tích cực để nâng cao hiệu quả giảng dạy.
- Một số nội dung cơ bản về chương trình con.
- Tìm hiểu khả năng nhận thức vấn để của từng đối tượng học sinh mỗi lớp
dạy để có phương pháp giảng dạy phù hợp.
1.4. Phương pháp nghiên cứu
- Tìm hiểu bản chất, các bước thực hiện của từng phương pháp dạy học tích
cực để vận dụng vào nội dung cần giảng dạy.
- Xác định có thể sử dụng những phương pháp dạy học tích cực nào vào nội
dung cụ thể của nội dung chương trình con sao cho phù hợp với đối tượng học
sinh giảng dạy.
- Chọn lọc một số bài tập điển hình về nội dung chương trình con để minh
họa, hướng dẫn học sinh luyện tập và thực hành.
- Thu thập thông tin kết quả học tập nội dung chương trình con ở một số lớp
giảng dạy để có sự so sánh, đối chiếu thực nghiệm kết quả thực hiện của đề tài.
2. NỘI DUNG SÁNG KIẾN KINH NGHIỆM
2.1. Cơ sở lí luận của sáng kiến kinh nghiệm.
2.1.1. Phương pháp dạy học tích cực
Phương pháp dạy học tích cực là một thuật ngữ rút gọn, được dùng để chỉ
những phương pháp giáo dục, dạy học theo hướng phát huy tính tích cực, chủ
động, sáng tạo của người học, '"tích cực" trong phương pháp dạy học tích cực
được dùng với nghĩa là hoạt động, chủ động. Phương pháp dạy học tích cực
hướng tới việc hoạt động hoá, tích cực hóa hoạt động nhận thức của người học,
nghĩa là tập trung vào phát huy tính tích cực cửa người học chứ không phải tập
trung vào phát huy tính tích cực của người dạy, tuy nhiên để dạy học theo
phuơng pháp tích cực thì giáo viên phải nỗ lực nhiều so với dạy theo phương
pháp thụ động. Từ dạy và học thụ động sang dạy và học tích cực, giáo viên
không còn đóng vai trò đơn thuần là người truyền đạt kiến thức, giáo viên trở
thành người thiết kế, tổ chức, hướng dẫn các hoạt động độc lập hoặc theo nhóm
nhỏ để học sinh tự lực chiếm lĩnh nội dung học lập, chủ động đạt các mục tiêu
kiến thức, kĩ năng, thái độ theo yêu cầu của chương trình.
[4]
Các phương pháp dạy học tích cực cơ bản đó là:
- Phương pháp dạy học gợi mở - vấn đáp
- Phương pháp dạy học phát hiện và giải quyết vấn đề
- Phương pháp dạy học hợp tác trong nhóm nhỏ
- Phương pháp dạy học trực quan
- Phương pháp dạy học luyện tập và thực hành
- Phương pháp dạy học bằng bản đồ tư duy
- Phương pháp dạy học theo dự án
2
Với mỗi nội dung giảng dạy, giáo viên cần phải biết cách nên lựa chọn
phương pháp dạy học tích cực nào vào việc truyền đạt từng kiến thức cụ thể để
nâng cao hiệu quả dạy học so với phương pháp dạy học thụ động thông thường.
2.1.2. Kiến thức cơ bản về nội dung chương trình con
* Khái niệm:
Chương trình con là một dãy lệnh mô tả một số thao tác nhất định và có
thể được thực hiện từ nhiều vị trí trong chương trình.
[1]
* Phân loại chương trình con :
- Hàm (Function) là chương trình con thực hiện một số thao tác nào đó
và trả về một giá trị qua tên của nó.
Ví dụ: Sin(x), abs(x), …
- Thủ tục (Procedure) là chương trình con thực hiện một số thao tác nào
đó nhưng không trả về một giá trị nào qua tên của nó.
Ví dụ: Delete, Readln, …
[1]
* Cấu trúc của thủ tục:
Procedure <tên thủ tục>[<danh sách tham số>];
[<Phần khai báo>]
Begin
[<Dãy các lệnh>]
End;
[1]
* Cấu trúc của hàm:
Function <tên hàm>[<danh sách tham số>]:<kiểu dữ liệu>;
[<Phần khai báo>]
Begin
[<Dãy các lệnh>]
<Tên hàm>:=<biểu thức>;
End;
* Biến toàn cục và biến cục bộ:
- Biến toàn cục: các biến được khai báo trong chương trình chính được
gọi là biến toàn cục. Các biến này có thể được dùng ở mọi nơi trong chương
trình.
- Biến cục bộ: Các biến được khai báo trong một chương trình con được
gọi là các biến cục bộ và nó chỉ có tác dụng trong phạm vi chương trình con đó.
Khi chương trình con kết thúc thì các biến này cũng mất tác dụng theo.
* Tham số biến, tham số giá trị
- Tham số biến (Tham biến) : tham số hình thức trong phần tiêu đề của
chương trình con sẽ được đặt sau từ khóa Var. Với tham biến, các tham số thực
sự sẽ phải là biến chứ không được là giá trị. Các tham số thực sự là các tham
biến có thể được thay đổi trong chương trình con và khi ra khỏi chương trình
con nó vẫn giữ các giá trị đã thay đổi đó.
3
- Tham số giá trị (Tham trị): Khi khai báo các tham số mà không có từ
khóa Var trong một nhóm tham số hình thức thì các tham số của nhóm này là
các tham số giá trị (tham trị). Chương trình con có thể thay đổi giá trị của các
tham trị này ở bên trong chương trình con bằng các phép gán. Song trong mọi
trường hợp điều đó không làm thay đổi giá trị của tham số thực.
2.2. Thực trạng vấn đề trước khi áp dụng sáng kiến kinh nghiệm
Trên cơ sở nhiều năm được phân công giảng dạy khối lớp 11, trường
THPT Hậu Lộc 4, tôi đã lưu lại kết quả học tập và sự tiến bộ của học sinh ở mỗi
năm học ở một số lớp để có sự đối chiếu và rút kinh nghiệm.
Bảng số liệu kết quả đạt được khi sử dụng kiến thức liên quan tới chương
trình con để lập trình giải một số bài toán của học sinh lớp 11 năm học 2015 - 2016
khi chưa thực hiện đề tài:
STT
1
2
3
Lớp
11A3
11A7
11A8
Sĩ số
44
42
48
Đạt yêu cầu Không đạt yêu cầu
56%
44%
68.5%
31.5%
78%
22%
* Ưu điểm:
+ Đa số học sinh bước đầu hiểu được ý nghĩa, tầm quan trọng của việc sử
dụng chương trình con khi lập trình giải các bài toán.
+ Các em học sinh nắm được cấu trúc cơ bản của thủ tục và hàm.
* Nhược điểm:
+ Một số học sinh còn chưa biết cách sử dụng chương trình con trong
Pascal phù hợp với từng bài toán cụ thể.
+ Một số học sinh khi giải bài toán chưa phân biệt được nên sử dụng hàm
hay thủ tục để cài đặt.
+ Nhiều em học sinh còn nhầm lẫn khi sử dụng biến cục bộ, biến toàn
cục, không biết khi nào nên dùng tham số trị và khi nào nên dùng tham số biến.
2.3. Các sáng kiến kinh nghiệm hoặc các giải pháp đã sử dụng để giải quyết
vấn đề
2.3.1. Sử dụng phương pháp dạy học phát hiện và giải quyết vấn đề để xây
dựng các khái niệm cơ bản:
Dạy học phát hiện và giải quyết vấn đề là quan điểm dạy học nhằm phát
triển năng lực tư duy, khả năng nhận biết và giải quyết vấn đề. Quá trình học
được đặt trong một tình huống có vấn đề, chứa đựng mâu thuẫn nhận thức.
Thông qua việc giải quyết vấn đề, học sinh lĩnh hội tri thức, kỹ năng và phương
pháp nhận thức. Dạy học giải quyết vấn đề là con đường cơ bản để phát huy tính
tích cực nhận thức của học sinh, có thể áp dụng trong nhiều hình thức dạy học
với mức độ tự lực khác nhau của học sinh.
4
Việc xuất phát từ thực tiễn không những có tác dụng gợi động cơ mà còn
góp phần hình thành thế giới quan duy vật biện chứng. Vì vậy, chúng ta cần khai
thác triệt để mọi khả năng để gợi động cơ xuất phát từ thực tế. Tuy nhiên, để gợi
động cơ xuất phát từ thực tế cần chú ý các điều kiện sau:
- Vấn đề đặt ra phải đảm bảo tính chân thực.
- Việc nêu vấn đề không đòi hỏi quá nhiều tri thức bổ xung.
- Con đường từ lúc nêu vấn đề cho tới khi giải quyết vấn đề càng ngắn
càng tốt.
Thông thường khi bắt đầu một nội dung lớn, chẳng hạn một phân môn
hay một chương ta nên cố gắng xuất phát từ việc gợi động cơ từ nhu cầu thực tế.
2.3.1.1. Xây dựng khái niệm chương trình con
Bước 1: Phát hiện vấn đề từ một tình huống gợi vấn đề
Để xây dựng khái niệm chương trình con giáo viên có thể đưa ra hai bài
toán như sau để học sinh nhận ra tình huống có vấn đề :
Bài toán 1: Vẽ 3 hình chữ nhật bằng các kí hiệu dấu “*” như sau:
**********
*
*
*
*
**********
Bài toán 2: Xét bài toán tính tổng bốn lũy thừa:
Tluythua = an + bm + cp + dq
[1]
Bước 2: Tìm cách giải quyết vấn đề
Với bài toán 1 để vẽ được 3 hình chữ nhật như vậy ta cần viết 3 lần đoạn
câu lệnh:
Writeln (‘* * * * * * * * * *’);
Writeln (‘*
*’);
Writeln (‘*
*’);
Writeln (‘* * * * * * * * * *’);
Với bài toán 2 có thể chia ra thành 4 bài toán con tính an, bm, cp, dq mà
cách tính các bài toán con là hoàn toàn như nhau. giáo viên có thể cho học sinh
lên viết chương trình của bài toán 2 theo cách thông thường mà học sinh đã biết
do đó phải dùng đến 4 đoạn lệnh chương trình như sau:
Luy_thua_1:=1.0;
For i:=1 to n do Luy_thua_1:= Luy_thua_1 * a;
Luy_thua_2:=1.0;
For i:=1 to m do Luy_thua_2:= Luy_thua_2 * b;
Luy_thua_3:=1.0;
For i:=1 to p do Luy_thua_3:= Luy_thua_3 * c;
Luy_thua_4:=1.0;
For i:=1 to q do Luy_thua_4:= Luy_thua_4 * d;
5
Bước 3: Trình bày giải pháp
Với bài toán 1 học sinh có thể tự đặt ra câu hỏi: Có thể viết một chương
trình vẽ hình chữ nhật đại diện sau đó viết một chương trình chính sử dụng 3 lần
gọi đến chương trình vẽ hình chữ nhật đại diện mà đã được xây dựng trước đó.
Với bài toán 2 giáo viên đặt ra câu hỏi cho học sinh : Trong chương trình
có những khối lệnh nào được viết tương tự nhau? Cách viết như vậy có nhược
điểm gì? Có thể có phương pháp nào để chương trình được ngắn ngọn hay
không?
Bước 4: Nghiên cứu sâu giải pháp để xây dựng khái niệm chương trình con
Từ hai bài toán thực tế ở trên giáo viên có thể đưa yêu cầu cần phải xây
dựng chương trình con nhằm các mục đích cơ bản như sau:
- Tránh lặp đi lặp lại những đoạn chương trình dùng nhiều lần. Điều này
vừa gây mất thời gian cho người lập trình vừa làm cho chương trình dài dòng,
mất thẩm mĩ.
- Dễ kiểm tra, dễ điều khiển từng phần của chương trình.
Từ kết luận trên giáo viên đưa ra khái niệm chương trình con.
2.3.1.2. Phân loại chương trình con
Bước 1: Phát hiện vấn đề từ một tình huống gợi vấn đề
Câu hỏi đặt ra : So sánh yêu cầu xây dựng chương trình con của bài toán 1 và
bài toán 2, từ đó so sánh các loại chương trình con ?
Bước 2: Tìm cách giải quyết vấn đề
Xem xét yêu cầu của bài toán 1 và bài toán 2 để xác định việc xây dựng
chương trình con nhằm mục đích gì. Bài toán nào sử dụng chương trình con để
làm một việc gì đó mà không cần kết quả trả về, bài toán nào sử dụng chương
trình con để trả về một kết quả nào đó.
Bước 3. Trình bày giải pháp
* So sánh yêu cầu xây dựng chương trình con của bài toán 1 và bài toán 2
Bài toán 1
Bài toán 2
Hiển thị minh họa ra hình chữ
Xây dựng chương trình con để tính
nhật có cấu trúc như yêu cầu và giá trị của một lũy thừa do đó chương
không trả về giá trị nào qua tên của trình con này phải trả về một giá trị
nó.
nhất định thông qua tên của chương
trình con đó.
* Từ việc so sánh trên, giáo viên có thể đưa ra hai khái niệm cơ bản là thủ
tục và hàm. Học sinh tìm hiểu về cấu trúc của hàm và thủ tục, sau đó so sánh
điểm giống nhau và khác nhau giữa cấu trúc của Hàm và Thủ tục.
Giáo viên hướng dẫn học sinh giải quyết vấn đề bằng việc kẻ bảng như sau:
6
Cấu trúc của thủ tục
Bắt đầu bằng từ khóa:
Procedure
Không có <kiểu dữ liệu> trả về
của thủ tục
Trong thân thủ tục không có
lệnh gán giá trị cho tên thủ tục
Thủ tục không trả lại kết quả
Cấu trúc của hàm
Bắt đầu bằng từ khóa: Function
Có <kiểu dữ liệu> trả về của
hàm
Trong thân hàm có lệnh gán giá
trị cho tên hàm
<Tên hàm>:=<Biểu thức>;
Hàm trả lại cho một giá trị kết
thông qua tên của nó nên không
quả thông qua tên của hàm nên
thể viết trong các biểu thức
nó được sử dụng trong một biểu
thức.
Bước 4: Nghiên cứu sâu giải pháp
Trong một chương trình chính thủ tục và hàm được sử dụng như thế nào?
Để giải quyết vấn đề 2, giáo viên có thể minh họa cách viết và sử dụng thủ tục
và hàm trong một chương trình chính như sau:
Program Ten_chuong_trinh_chinh;
(* Khai báo biến toàn cục *) ;
Procedure Ten_thu_tuc ( Khai báo các tham số hình thức ) ;
(* Khai báo biến cục bộ của thủ tục *) ;
Begin
(* Thân chương trình con của thủ tục *)
End ;
Function Ten_ham (khai báo các tham số hình thức ):<kieu_du_lieu> ;
(* Khai báo biến cục bộ của hàm *) ;
Begin
(* Thân chương trình con của hàm *)
End ;
BEGIN
... (* Thân chương trình chính có thể sử dụng hàm và thủ tục *)
END ;
2.3.1.3. Truyền tham số cho chương trình con
Bước 1: Phát hiện vấn đề từ một tình huống gợi vấn đề
Câu hỏi đặt ra : Trong bài toán 1 và bài toán 2 đưa ra ở trên chương
trình con ở bài toán nào cần có tham số hình thức? Hãy viết chương trình cho
bài toán 1 và bài toán 2 có sử dụng chương trình con?
Bước 2: Tìm cách giải quyết vấn đề
7
Bài toán 1: Vẽ 3 hình chữ nhật bằng các kí hiệu dấu “*” :
**********
*
*
*
*
**********
Chương trình con được khai báo mà không cần dùng tham số nào vì số
lượng các kí hiệu “*” của chiều dài và chiều rộng hình chữ nhật là cố định.
Bài toán 2: Xét bài toán tính tổng bốn lũy thừa:
Tluythua = an + bm + cp + dq
Cách tính các giá trị an, bm, cp, dq là hoàn toàn như nhau, tuy nhiên các hệ
số và số mũ là khác nhau, do đó cần xây dựng chương trình con có tham số hình
thức. Việc truyền tham số cho chương trình con là một cơ cấu thay thế tương
ứng, nó cho phép một quá trình được lặp đi lặp lại nhiều lần với các "toán hạng"
khác nhau.
Bước 3. Trình bày giải pháp
* Chương trình cài đặt cho bài toán 1
Program Bai_toan_1;
Procedure Ve_HCN;
Begin
Writeln ('* * * * * * * * * *');
Writeln ('*
*');
Writeln ('*
*');
Writeln ('* * * * * * * * * *');
End;
BEGIN
Ve_HCN
Writeln; Writeln;
Ve_HCN
Writeln; Writeln;
Ve_HCN;
Writeln; Writeln;
Readln
END.
* Chương trình cài đặt cho bài toán 2
Program Bai_toan_2;
Uses Crt;
Var a,b,c,d, Tluythua: real;
n,m,p,q: integer;;
Function luy_thua(x,y:integer): real;
Var i:integer; kq:real;
8
Begin
kq:=1;
For i:=1 to y do kq:=kq*x;
luy_thua:=kq;
End;
BEGIN
Clrscr;
Write(‘Nhap cac he so a, b, c, d : ‘); readln(a,b,c,d);
Write(‘Nhap cac so mu n, m ,p ,q : ‘); readln(n, m ,p, q);
Tluythua:= luy_thua(a,n)+ luy_thua(b,m)+ luy_thua(c,p)+
luy_thua(d,q);
Writeln(‘Ket qua la: ‘, Tluythua:10:2);
Readln;
END.
Bước 4: Nghiên cứu sâu giải pháp
Vấn đề đặt ra: Các tham số khi tham gia vào chương trình con thì sau khi
kết thúc chương trình con giá trị sẽ như thế nào?
Để giải quyết vấn đề này thì giáo viên sẽ sử dụng phương pháp dạy học
trực quan nêu ở phần sau của đề tài.
2.3.1.4. Tính đệ quy của chương trình con
Bước 1: Phát hiện vấn đề từ một tình huống gợi vấn đề
Bài toán 3: Viết chương trình nhập vào 4 số a, b, c, d. Đưa ra giá trị nhỏ nhất và
lớn nhất trong 4 số đó.
Tình huống có vấn đề : Học sinh có thể xây dựng được hàm tim Min, hoặc
Max để tìm giá trị nhỏ nhất và lớn nhất của hai số, vậy làm thế nào để sử dụng 2
hàm đó để tìm Min, Max cho 4 số.
Bước 2: Tìm cách giải quyết vấn đề
Giáo viên có thể đưa ra thông tin cần thiết cho học sinh là :
Trong hàm và thủ tục có thể có lời gọi của chính nó. Tính chất này được gọi là
tính đệ qui.
Bước 3: Trình bày giải pháp
* Chương trình cài đặt cho bài toán 3 :
Program Bai_toan_3;
Uses Crt;
Var a,b,c,d: integer;
Function Min(x,y:integer):integer;
Begin
if a
Else Min:=b;
9
End;
Function Max(x,y:integer):integer;
Begin
if a>b then Max:=a
Else Max:=b;
End;
BEGIN
Clrscr;
Writeln(‘Nhap cac so a, b, c, d : ‘); readln(a,b,c,d);
Writeln(‘Gia tri nho nhat trong 4 so la Min(Min(a,b), Min(c,d)));
Writeln(‘Gia tri lớn nhat trong 4 so la Max(Max(a,b), Max(c,d)));
Readln;
END.
Bước 4: Nghiên cứu sâu giải pháp
Giáo viên yêu cầu học sinh tìm hiểu chương trình sau in ra file
giaithua.out có nội dung gì? Vì sao?
const fo='giaithua.out';
var n: byte;
function giai_thua(n:byte): qword;
begin
if n=0 then giai_thua:=1
else giai_thua:= n* giai_thua (n-1);
writeln(n);
end;
BEGIN
assign(output, fo); rewrite(output);
writeln(giai_thua (5));
close(input); close(output);
END.
* Kết luận: Trong quá trình xây dựng hàm hoặc thủ tục, cũng có thể gọi đệ
quy đến chính tên hàm hoặc thủ tục đó.
2.3.2.Sử dụng phương pháp dạy học trực quan để phân biệt biến toàn cục và
biến cục bộ, tham số biến, tham số giá trị
Dạy học trực quan (hay còn gọi là trình bày trực quan) là phương pháp
dạy học sử dụng những phương tiện trực quan, phương tiện kĩ thuật dạy học
trước, trong và sau khi nắm tài liệu mới, khi ôn tập, củng cổ, hệ thống hoá và
kiểm tra tri thức, kĩ năng, kĩ xảo.
[ 4]
Trong quá trình học lập trình, dạy học trực quan là vô cùng quan trọng.
Trực quan là một trong những nguyên tắc cơ bản của lí luận dạy học, đặc biệt
đối với môn Tin học nhằm tạo cho học sinh hình thành các khái niệm trên cơ sở
trực tiếp quan sát chương trình cài đặt và từ đó hiểu sâu sắc hơn về khái niệm,
10
đối tượng cần nghiên cứu.
2.3.2.1. Biến toàn cục và biến cục bộ:
Bước 1: Giáo viên yêu cầu học sinh nghiên cứu chương trình sau và cài đặt
trên máy tính
Program Tam_Tac_Dung ;
Var I : Integer ;
(* Biến I toàn cục *)
Procedure Cuc_bo ;
Var I : Integer ; (* Biến I cục bộ *)
Begin
I := I +2 ;
Writeln (I) ;
End ;
BEGIN
I :=5 ;
Writeln(I) ;
Cuc_bo ;
Writeln(I) ;
END.
Bước 2: Chạy thử và quan sát kết quả chương trình
Kết quả chương trình :
5
(* giá trị của I toàn cục *)
7
(* giá trị của I cục bộ *)
5
(* giá trị của I toàn cục *)
Bước 3: Giải thích chương trình
Tên biến I được dùng cho cả biến toàn cục và biến cục bộ. Đầu tiên biến I
toàn cục nhận giá trị bằng 5. Sau đó thủ tục Cuc_bo được gọi, vì thủ tục này
cũng có biến là I (biến cục bộ) nên biến I toàn cục được xem như tạm bị treo
không dùng đến. Biến cục bộ lấy giá trị bằng 7. Sau khi kết thúc chương trình
con, biến I cục bộ bị mất và biến I toàn cục lại được khôi phục lại tác dụng. Tất
nhiên nó vẫn giữ giá trị bằng 5 là giá trị có được trước khi gọi thủ tục Cuc_bo .
Bước 4: Kết luận
Khi cài đặt cần phải xác định rõ biến nào là biến toàn cục và biến nào là
biến cục bộ, đồng thời phải kiểm soát được sự thay đổi giá trị của các biến này.
2.3.2.2.Tham số biến, tham số giá trị
Bước 1: Giáo viên yêu cầu học sinh nghiên cứu chương trình sau và cài
đặt chương trình trên máy tính
Program Tham_so ;
Var A, B : Integer ;
Procedure Thidu_Thamso (X : Integer ; Var Y : Integer) ;
Begin
X := X + 1 ;
Y := Y + 1 ;
Writeln (X : 6, Y : 6) ;
11
End ;
BEGIN
A := 0 ;
B := 3 ;
Thidu_Thamso (A, B) ;
Writeln (A : 6, B : 6) ;
END.
Bước 2: Chạy thử và quan sát kết quả chương trình.
Kết quả cho ra :
14
04
Bước 3: Giải thích chương trình
Trong thí dụ trên, thủ tục Thidu_Thamso có hai loại tham số : tham trị
X và tham biến Y. Trước khi gọi thủ tục này với hai tham số thực sự là A và B
tương ứng thì A = 0 và B = 3. Trong thủ tục ta có hai lệnh làm thay đổi giá trị
của A và B bằng cách tăng thêm 1. Lệnh Writeln (X, Y) cho ra kết quả là 1 và 4
tương ứng.
Tuy nhiên sau khi ra khỏi chương trình con vì A chỉ là tham trị nên A vẫn
giữ nguyên giá trị trước khi gọi thủ tục, tức A = 0, giá trị của B đã bị thay đổi
trong chương trình con vì B là tham biến, B = 4.
Bước 4: Kết luận
Khi cài đặt cần chú ý tham số nào sử dụng với vai trò tham biến và tham
số nào sử dụng với vai trò tham trị, lưu ý có sử dụng từ khóa Var trước biến đó
hay không và kiểm soát được sự thay đổi giá trị của biến đó trước và sau khi ra
khỏi chương trình con.
2.3.3.Sử dụng phương pháp dạy học hợp tác trong nhóm nhỏ để rèn luyện
củng cố kiến thức cơ bản về chương trình con:
Năng lực hợp tác được xem là một trong những năng lực quan trọng của
con người trong xã hội hiện nay, chính vì vậy phát triển năng lực hợp tác từ
trong trường học đã trở thành một xu thế giáo dục trên toàn thế giới. Dạy học
hợp tác trong nhóm nhỏ chính là sự phản ánh thực tiễn của xu thế đó.
Phương pháp dạy học hợp tác trong nhóm nhỏ còn được gọi bằng một số
tên khác như “Phương pháp thảo luận nhóm" hoặc “phương pháp dạy học hợp
tác". Đây là một phương pháp dạy học mà học sinh được phân chia thành từng
nhóm nhỏ riêng biệt, chịu trách nhiệm về một mục tiêu duy nhất, các hoạt động
cá nhân riêng biệt được tổ chức lại, liên kết hữu cơ với nhau nhằm thực hiện
một mục tiêu chung.
[ 4]
Phương pháp thảo luận nhóm được sử dụng nhằm giúp cho mọi học sinh
tham gia một cách chủ động vào quá trình học tập, tạo cơ hội cho các em có thể
chia sẻ kiến thức, kinh nghiệm, ý kiến để giải quyết các vấn đề có liên quan đến
12
nội dung bài học; tạo cơ hội cho các em được giao lưu, học hỏi lẫn nhau; cùng
nhau hợp tác giải quyết những nhiệm vụ chung, biết lắng nghe có phê phán ý
kiến của bạn; từ đó, giúp học sinh dễ hoà nhâp vào cộng đồng nhóm, tạo cho
các em sự tự tin, hứng thú trong học tập và sinh hoạt.
[ 4]
Để học sinh nắm chắc các khái niệm cơ bản của nội dung chương trình
con, giáo viên có thể tổ chức hoạt động hợp tác trong nhóm nhỏ như sau:
Bước 1: Làm việc chung cả lớp
Giáo viên giới thiệu chủ đề thảo luận hoặc nêu vấn đề, xác định nhiệm vụ
nhận thức:
- Điền các thông tin cơ bản vào các phiếu học tập.
- Chia học sinh thành các nhóm, mỗi nhóm từ 4 - 5 học sinh. Phân công
nhiệm vụ (một nửa số nhóm làm phiếu số 1, một nửa số nhóm còn lại làm phiếu
số 2).
Bưóc 2: Làm việc theo nhóm
- Phân công trong nhóm, từng cá nhân làm việc độc lập.
- Trao đổi ý kiến, thảo luận trong nhóm.
- Cử đại diện trình bày kết quả làm việc của nhóm.
* Phiếu học tập số 1: Hoàn thành nội dung sau:
PROGRAM VD_thambien1;
Tên chương trình chính:
Uses crt;
Var a, b : integer;
Procedure Hoan_doi (var x,y:integer);
var TG :integer;
begin
TG:=x;
x:=y;
y:=TG;
end;
……………………………
BEGIN
……………………………
write('nhap vao hai so a, b:');
readln(a, b);
writeln(a:6, b:6);
Hoan_doi(a,b);
writeln(a:6, b:6);
readln
END.
Tên thủ tục:…………………
Các biến toàn cục:
……………………………
Các biến cục bộ:
……………………………
Tham số hình thức:
Tham số thực sự:
……………………………
Câu lệnh thể hiện lời gọi thủ tục:
……………………………
Nếu nhập a=5; b=10 thì kết quả của
chương trình là gì: ……………….
13
* Phiếu học tập số 2: Hoàn thành nội dung sau:
PROGRAM rutgon_phanso;
Tên chương trình chính:
Var tuso, mauso, a:integer;
……………………………
function UCLN(x,y:integer):integer;
Tên hàm:…………………
var sodu:integer;
begin
Các biến toàn cục:
while y<>0 do
……………………………
begin
Các biến cục bộ:
sodu:=x mod y;
x:=y;
……………………………
y:=sodu;
Tham số hình thức:
end;
……………………………
UCLN:= x;
end;
Tham số thực sự:
BEGIN
write('nhap tu so, mau so:');
readln(tuso,mauso);
a:=UCLN(tuso,mauso);
if a>1 then
begin
tuso:=tuso div a;
maso:= maso div a;
end;
writeln(tuso:5,maso:5);
readln
……………………………
Câu lệnh thể hiện lời gọi hàm:
……………………………
Nếu nhập tuso=7; mauso=28 thì
kết quả của chương trình là gì:
……………….
END.
Bước 3: Thảo luận, tổng kết trước toàn lớp
- Đại diện từng nhóm trình bày kết quả thảo luận của nhóm.
- Các nhóm khác quan sát, lắng nghe, chất vấn, bình luận và bổ sung ý kiến.
- Giáo viên tổng kết và nhận xét vấn đề
Kết quả mong đợi đạt được:
* Phiếu học tập số 1: Hoàn thành nội dung như sau:
PROGRAM VD_thambien1;
Uses crt;
Var a, b : integer;
Procedure Hoan_doi (var x,y:integer);
var TG :integer;
begin
Tên chương trình chính
VD_thambien1
Tên thủ tục:
Hoan_doi
Các biến toàn cục:
a, b
Các biến cục bộ:
TG
14
TG:=x;
x:=y;
y:=TG;
end;
Tham số hình thức:
x, y
Tham số thực sự:
a, b
Câu lệnh thể hiện lời gọi thủ tục:
Hoan_doi(a,b)
BEGIN
write('nhap vao hai so a, b:');
readln(a, b);
writeln(a:6, b:6);
Hoan_doi(a,b);
writeln(a:6, b:6);
readln
Nếu nhập a=5; b=10 thì kết quả
của chương trình là :
5 10
10 5
END.
* Phiếu học tập số 2: Hoàn thành nội dung như sau:
PROGRAM rutgon_phanso;
Var tuso , mauso, a : integer;
function UCLN(x,y:integer):integer;
var sodu:integer;
begin
while y<>0 do
begin
sodu:=x mod y;
x:=y;
y:=sodu;
end;
UCLN:= x;
end;
BEGIN
write('nhap tu so, mau so:');
readln(tuso,mauso);
a:=UCLN(tuso,mauso);
if a>1 then
begin
tuso:=tuso div a;
maso:= maso div a;
end;
writeln(tuso:5,maso:5);
readln
Tên chương trình chính:
rutgon_phanso
Tên hàm: UCLN
Các biến toàn cục:
tuso,mauso,a:integer;
Các biến cục bộ: sodu:integer
Tham số hình thức: x,y:integer
Tham số thực sự: tuso,mauso
Câu lệnh thể hiện lời gọi hàm:
a:=UCLN(tuso,mauso);
Nếu nhập tuso=7; mauso=28 thì
kết quả của chương trình là : 1 4
END.
15
2.3.4.Sử dụng phương pháp dạy học luyện tập và thực hành để nâng cao kĩ
năng sử dụng chương trình con
Luyện tập và thực hành nhằm củng cố, bổ sung, làm vững chắc thêm các
kiến thức lí thuyết. Trong luyện tập, người ta nhấn mạnh tới việc lặp lại với mục
đích học thuộc những "đoạn thông tin đã học và làm cho việc sử dụng kĩ năng
được thực hiện một cách tự động, thành thục. Trong thực hành, người ta không
chỉ nhấn mạnh vào việc học thuộc mà còn nhằm áp dụng hay sử dụng một cách
thông minh các tri thức để thực hiện các nhiệm vụ khác nhau, vì thế giáo viên
cũng cần lưu ý cho học sinh thực hành phát triển các kĩ năng.
[ 4]
- Giáo viên đưa ra các bài tập đòi hỏi học sinh phải sử dụng nhiều kiến
thức, các bài tập càng đa dạng thì học sinh càng có cơ hội rèn luyện kĩ năng, vận
dụng các kiến thức khác nhau để giải quyết nhiệm vụ đặt ra.
- Học sinh cỏ thể luyện tập, thực hành những bài tập có trong sách giáo
khoa hoặc sách bài tập hoặc các bài tập tham khảo khác nhằm phát triển kĩ năng
giải quyết vấn đề và rèn luyện tư duy.
* Một số bài tập lập trình có sử dụng chương trình con giáo viên có thể
hướng dẫn để học sinh tự cài đặt trong các tiết thực hành:
Bài tập 1: Hãy mô tả hàm SUMDIGIT(n) trả về giá trị là tổng các chữ số của
n, trong đó n là số nguyên không âm thuộc kiểu longint.
Lập trình nhập từ bàn phím các số nguyên dương không vượt qua 2*10 9,
với mỗi số dùng hàm mô tả ở trên, đưa ra tổng các chữ số của nó ra màn hình.
Chương trình kết thúc khi nhập vào sô âm hoặc số 0.
[ 2]
* Chương trình cài đặt:
Program bai_6_12_sachBT;
Var n:longint;
Function SUMDIGIT(n:longint): integer;
Var s:longint;
Begin
s:=0;
While n>0 do
Begin
s:=s+ n mod 10; n:=n div 10;
End;
BEGIN
N:=1;
While n>0 do
Begin
Write(‘ n= ‘); readln(n);
If n>0 then writeln(‘Tong cac chu so la: ‘, SUMDIGIT(n));
End;
END.
16
Bài tập 2: Viết chương trình nhập vào một dãy N số nguyên (n<=1000). Hãy
đếm xem trong dãy có bao nhiêu số nguyên tố?
* Chương trình cài đặt:
Program Dem_nguyen_to;
Var a: array [1..1000] of integer;
i,n, dem: integer;
Function KiemtraSNT( x : Integer ) : Boolean;
Var ok: Boolean;
i : Integer;
Begin
ok := True;
For i := 2 to Trunc(Sqrt(x)) do
If ( x mod i = 0 ) then
Begin ok:=false; Break; End;
KiemtraSNT:= ok;
End;
BEGIN
Write (‘nhap n=’); readln(n);
For i:=1 to n do
Begin
Write (‘a[‘,i,’]=’);
Readln (a[i]); End;
For i:=1 to n do Write (a[i]:5); writeln;
Dem:=0;
For i:=1 to n do If KiemtraSNT( A[i]) then dem := dem + 1;
Writeln(‘ Day so co ‘, dem ,’ so nguyen to’);
Readln
END.
Bài tập 3: Viết chương trình thực hiện lần lượt các công việc sau:
- Lập thủ tục nhập ba số thực a , b , c từ bàn phím .
- Lập thủ tục kiểm tra xem ba số trên có lập thành ba cạnh của tam giác
hay không ? Nếu 3 số thỏa mãn lập thành ba cạnh của tam giác viết hàm
tính diện tích của tam giác .
* Chương trình cài đặt:
Program Tam_Giac;
Uses crt;
Var a,b,c : real;
Procedure NhapABC (Var a, b, c : real);
Begin
Write( 'Nhap a:' ); Readln( a );
Write( 'Nhap b:' ); Readln( b );
Write( 'Nhap c:' ); Readln( c );
End;
17
Function Dientich( a, b, c: real ) : Real;
Var dt, p : Real;
Begin
p := (a+b+c)/2;
dt := sqrt(p* (p-a)*(p-b)*(p-c));
Dientich := dt;
End;
Function KiemTra ( a, b, c: real): Bolean;
Begin
If ((a>0) and (b>0) and (c>0) and (a+b>c) and (b+c>a) and
(a+c>b)) Then KiemTra:=true
Else KiemTra:=false;
End;
BEGIN
NhapABC(a,b,c);
If KiemTra (a,b,c) = True then Writeln(' Ba so tren tao thanh tam giac
co dien tich la ', Dientich(a,b,c) )
Else
Writeln('Ba so tren khong tao thanh tam giac');
Readln ;
END.
2.4. Hiệu quả của sáng kiến kinh nghiệm đối với hoạt động giáo dục, với
bản thân, đồng nghiệp và nhà trường.
Trong năm học 2016-2017 tôi đã ứng dụng đề tài nghiên cứu của mình đối
với một số lớp khối 11 ở trường THPT Hậu Lộc 4 và đã tổng hợp số liệu về kết
quả đạt được của học sinh về kĩ năng sử dụng chương trình con khi cài đặt giải
một số bài toán như sau:
STT
1
2
3
Lớp
11A3
11A7
11A8
Sĩ số
40
45
48
Đạt yêu cầu
83 %
89.5 %
92 %
Không đạt yêu cầu
17 %
10.5 %
8%
+ Đa số các em học sinh nắm được cấu trúc cơ bản của thủ tục và hàm.
+ Các em đã biết cách ứng dụng linh hoạt sử dụng chương trình con trong
Pascal phù hợp với từng bài toán cụ thể, phân biệt rõ khi nào nên sử dụng hàm
hay thủ tục để cài đặt, kiểm soát tốt sự thay đổi của biến cục bộ, biến toàn cục,
tham số trị và tham số biến trong chương trình.
Như vậy, việc sử dụng các phương pháp dạy học tích cực giúp học sinh
có tiến bộ rõ rệt khi viết các chương trình có sử dụng chương trình con. Đồng
thời nâng cao việc yêu thích môn tin học đối với một bộ phận học sinh, trong đó
có một số em có khả năng tìm hiểu sâu hơn về các dạng bài toán lập trình phức
tạp, cần phải xây dựng chương trình có cấu trúc mà việc sử dụng hàm và thủ tục
làm cho chương trình trở nên đơn giản, dễ hiểu, dễ bổ sung, chỉnh sửa.
18
3. KẾT LUẬN, KIẾN NGHỊ
3.1. Kết luận
Đối với đa số học sinh nội dung về chương trình con là khá phức tạp, để
học sinh hiểu rõ bản chất, biết cách ứng dụng để xây dựng chương trình con
phù hợp với từng bài toán là rất khó, đòi hỏi các em phải có kiến thức nhất định
về mặt toán học, đồng thời phải biết vận dụng phù hợp với cách xây chương
trình con cụ thể của ngôn ngữ lập trình mới có thể lập trình cài đặt bài toán đó
một cách khoa học, rõ ràng. Do đó, để dạy tốt được nội dung này người giáo
viên cần phải sử dụng các phương pháp dạy học tích cực thì mới nâng cao hiệu
quả giảng dạy.
Với mỗi nội dung cần truyền đạt cho học sinh đòi hỏi người giáo viên cần
phải đầu tư suy nghĩ lựa chọn phương pháp dạy học nào là phù hợp nhất,
phương pháp nào làm cho học sinh thấy hứng thú nhất và tạo động lực, động cơ
cao nhất để các em chiếm lĩnh tri thức.
Với đối tượng học sinh khá giỏi thì việc hiểu rõ bản chất, vai trò của việc
xây dựng chương trình con sẽ giúp các em xây dựng những chương trình phức
tạp một cách khoa học, rõ ràng, là cơ sở cho việc nghiên cứu chuyên sâu.
3.2. Kiến nghị
Sau khi thực hiện đề tài này, tôi xin mạnh dạn đưa ra một số đề xuất như
sau :
- Để học sinh thực sự hiểu rõ về nội dung chương trình con thì cần tăng
cường hơn nữa thời lượng trong phân phối chương trình để học sinh rèn luyện
các dạng bài tập về chương trình con giúp học sinh nắm chắc cấu trúc, cách sử
dụng chương trình con trong một số bài tập cụ thể.
- Sở giáo dục và đào tạo cần thường xuyên mở các lớp học chuyên đề về
đổi mới và nâng cao hiệu quả các phương pháp dạy học để mỗi giáo viên có cơ
hội được chia sẻ các kinh nghiệm, các phương pháp dạy học hiệu quả cho đồng
nghiệp.
Trên đây là một số kinh nghiệm của tôi qua nhiều năm liền dạy ở khối lớp
11, trường THPT Hậu Lộc 4, cũng như tham khảo qua nhiều nguồn thông tin,
tư liệu khác nhau, rất mong được sự đóng góp của các đồng nghiệp nhằm giúp
đề tài của tôi được hoàn thiện thêm.
19
XÁC NHẬN CỦA THỦ
Thanh Hóa, ngày 20 tháng 5 năm 2017
TRƯỞNG ĐƠN VỊ
Tôi xin cam đoan đây là sáng kiến kinh
nghiệm của mình viết, không sao chép
nội dung của người khác.
Người viết SKKN
Nguyễn Thị Hòa
20
DANH MỤC TÀI LIỆU THAM KHẢO
1. Tin học 11, Hồ Sĩ Đàm (chủ biên)- Hồ Cẩm Hà – Trần Đỗ Hùng –
Nguyễn Đức Nghĩa – Nguyễn Thanh Tùng – Ngô Ánh Tuyết, Nhà xuất bản
Giáo dục, 2009.
2. Bài tập Tin học 11, Hồ Sĩ Đàm Nguyễn Thanh Tùng, Nhà xuất bản Giáo
dục, 2008.
3. Sách giáo viên Tin học 11, Hồ Sĩ Đàm (chủ biên)- Hồ Cẩm Hà – Trần Đỗ
Hùng – Nguyễn Đức Nghĩa – Nguyễn Thanh Tùng – Ngô Ánh Tuyết, Nhà
xuất bản Giáo dục, 2009.
4. Module THPT 18 Phương pháp dạy học tích cực, Trần Đình Châu –
Đặng Thu Thùy – Phan Thị Luyến.
(violet.vn/dlh_forever/present/show/entry_id/10757890)
DANH MỤC
CÁC ĐỀ TÀI SÁNG KIẾN KINH NGHIỆM ĐÃ ĐƯỢC HỘI ĐỒNG
ĐÁNH GIÁ XẾP LOẠI CẤP PHÒNG GD&ĐT, CẤP SỞ GD&ĐT VÀ CÁC
CẤP CAO HƠN XẾP LOẠI TỪ C TRỞ LÊN
Họ và tên tác giả:
Nguyễn Thị Hòa
Chức vụ và đơn vị công tác: Giáo viên Tin học - Trường THPT Hậu Lộc 4
TT
1.
Tên đề tài SKKN
Rèn luyện kĩ năng sử dụng
cấu trúc lặp trong Pascal để
giải một số bài toán truy hồi
Kết quả
Cấp đánh
đánh giá
giá xếp loại
xếp loại
(Phòng, Sở,
(A, B,
Tỉnh...)
hoặc C)
Sở giáo dục
và đào tạo
Thanh Hóa
B
Năm học
đánh giá xếp
loại
2012 - 2013
cho học sinh lớp 11
21