Với những lý do nêu trên, tôi chọn đề tài nghiên cứu "Phát huy tính tích cực của học sinh trong tiết dạy - học bài Cấu trúc lặp Tin học 11" với mong muốn giúp học sinh chủ động khai thác
Trang 1PHẦN 1 ĐẶT VẤN ĐỀ
Tin học là một môn học mới nhưng đã khẳng định được vai trò và vị trí quan trọng của mình Cùng với tất cả các bộ môn khác, bộ môn Tin học cũng đã
và đang được quan tâm, điều chỉnh thông qua việc đổi mới phương pháp giảng dạy Thực tế cho thấy cần phải có những công trình nghiên cứu về phương pháp dạy bộ môn Tin học với từng phần kiến thức cụ thể nhằm xây dựng những giải pháp tối ưu trong việc dạy học Tin học
Như chúng ta biết, chương trình sách giáo khoa Tin học 11 trang bị cho học sinh một số kiến thức cơ bản về lập trình và ngôn ngữ lập trình bậc cao Bên cạnh đó rèn luyện cho các em kĩ năng giải được một số bài toán đơn giản trên máy tính bằng cách vận dụng được các kiến thức về thuật toán, cấu trúc dữ liệu, ngôn ngữ lập trình cụ thể thực tế cho thấy học sinh gặp rất nhiều khó khăn trong việc học Tin học, đặc biệt là phần tin học khối lớp 11 Một trong những nội dung mà học sinh hay gặp vướng mắc đó là sự lựa chọn cấu trúc lặp trong
khi xây dựng chương trình giải một bài toán.
Do vậy việc nghiên cứu, áp dụng phương pháp mới vào dạy - học để nâng cao chất lượng là hết sức quan trọng và cần thiết Với những lý do nêu trên, tôi
chọn đề tài nghiên cứu "Phát huy tính tích cực của học sinh trong tiết dạy - học bài Cấu trúc lặp Tin học 11" với mong muốn giúp học sinh chủ động khai thác những kiến thức cơ bản một cách chắc chắn và sâu sắc Từ đó áp dụng được linh hoạt vào giải quyết các dạng bài tập thường gặp
PHẦN 2 GIẢI QUYẾT VẤN ĐỀ
A CƠ SỞ LÍ LUẬN
Việc phát huy tính tích cực học tập của học sinh không phải là vấn đề mới, nó đã được nghiên cứu ở nhiều bộ môn khác nhau, tuy nhiên do mỗi môn học đều có những đặc thù riêng nên cũng cần những phương pháp áp dụng riêng
Thực tế việc giảng dạy sử dụng các phương pháp giáo dục truyền thống chưa đáp ứng đầy đủ được mục tiêu dạy học Trong khi khoa học công nghệ ngày càng phát triển thì việc chiếm lĩnh tri thức mới đòi hỏi người học cần phải giữ vai trò chủ động Nhưng phần lớn học sinh còn rất thụ động, do khả năng nhận thức của các em còn nhiều hạn chế Vì thế, việc phát huy tính tích cực trong quá trình nghiên cứu và lĩnh hội tri thức là vấn đề cực kỳ quan trọng Giải quyết được vấn đề này có thể nói là giải quyết được vấn đề lớn của ngành giáo dục nói chung và công tác giáo dục của trường nói riêng
Trang 2B THỰC TRẠNG
Chương trình sách giáo khoa tin học lớp 11 bao gồm 53 tiết, trong đó phần cấu trúc lặp được phân phối 3 tiết lý thuyết Tuy thời lượng chương trình dành cho cấu trúc lặp không nhiều nhưng đây là một trong những mảng kiến thức quan trọng mà học sinh cần phải tiếp cận và phải hiểu sâu sắc thì mới có thể lựa chọn và sử dụng thành thạo trong lập trình giải một bài toán trên máy tính Trong những năm gần đây, Bộ GD&ĐT đã, đang đẩy mạnh phong trào đổi mới phương pháp giảng dạy, nâng cao chất lượng dạy và học Phong trào này đã mang lại nhiều thành tựu đáng kể, gần như thổi một làn gió mới vào quá trình dạy - học ở nước ta Song bên cạnh đó vẫn tồn tại nhiều vấn đề cần quan tâm
Đó là: việc thực hiện phong trào đôi khi là hình thức; một bộ phận giáo viên lại quá lạm dụng việc đổi mới phương pháp giảng dạy, dạy học bằng các phần mềm trình chiếu hay nói cách khác là áp dụng phương pháp dạy học chưa phù hợp với thực tế nên không những không nâng cao được chất lượng giảng dạy mà đôi khi còn không đạt được mục tiêu dạy học đặc biệt, hầu hết giáo viên đều chú trọng đổi mới phương pháp giảng dạy ở phần kiến thức trọng tâm mà quên đi những phần kiến thức khác
Từ thực trạng trên, để công việc hiệu quả hơn, trong chuyên đề này tôi xin trình bày tiết học về Cấu trúc lặp, cụ thể là cấu trúc lặp với số lần biết trước và câu lệnh for – do (Tiết 12 – Phân phối chương trình Tin học 11) để báo cáo
trong chuyên đề này Trong bài giảng tôi sẽ thực hiện theo mô hình "dạy học tích cực, lấy người học làm trung tâm" giúp học sinh thực sự được đặt vào các
tình huống, vấn đề và có nhu cầu giải quyết, từ đó tư duy tìm cách giải quyết Trong quá trình thực hiện tôi cố gắng trình bày khá chi tiết với kỹ thuật gợi động
cơ hoạt động cho học sinh, kích thích hứng thú học tập và định hướng một cách hữu hiệu hoạt động học tập của học sinh Với cách thức như vậy, tôi tin rằng học sinh có thể dễ dàng nắm được các kiến thức từ đó phân tích, tổng hợp, trừu tượng hoá, khái quát hoá để hình thành và phát triển phương pháp cũng như kỹ năng lập trình
C GIẢI PHÁP VÀ TỔ CHỨC THỰC HIỆN
Trên cơ sở cung cấp các đơn vị kiến thức cần đạt cho học sinh giáo viên cần khéo léo đưa ra các câu hỏi ví dụ để học sinh liên hệ với thực tế từ đó gợi động
cơ để các em tư duy bài học Trong chuyên đề này, tôi không trình bày sâu kiến thức hay bài tập về cấu trúc lặp for - do mà xây dựng bài giảng cho tiết dạy chú trọng đến việc phát huy tính tích cực của học sinh Mỗi hoạt động là một hệ thống các tình huống, vấn đề bao gồm 3 nhóm: nhóm vấn đề định hướng cho học sinh tự mình tìm ra kiến thức mới; nhóm vấn đề có tính ứng dụng, thực hành, ôn tập, rèn luyện kỹ năng; nhóm vấn đề tương đối phức tạp, cần vận dụng tổng hợp, linh hoạt sáng tạo nhiều kiến thức tổng hợp Bài dạy giúp học sinh hiểu về khái niệm lặp, lặp với số lần biết trước và câu lệnh for – do
Trang 3Trong bài dạy, tôi sử dụng những tình huống, ví dụ, câu hỏi rèn luyện kỹ năng liên hệ thực tế và vận dụng để rút ra kiến thức bài học Trong quá trình giảng dạy tôi cũng chú trọng đến việc ứng dụng công nghề thông tin, kết hợp linh hoạt phương pháp giảng dạy để nhằm đạt được chất lượng tốt nhất có thể
I MỤC TIÊU:
1 Kiến thức:
- Hiểu nhu cầu của cấu trúc lặp trong biểu diễn thuật toán
- Hiểu cấu trúc lặp với số lần biết trước và câu lệnh For - Do
2 Kỹ năng:
Biết vận dụng được cấu trúc lặp và câu lệnh For - Do vào từng trường hợp cụ thể
II CHUẨN BỊ:
1 Giáo viên:
- Giáo viên chuẩn bị nội dung kiến thức liên quan đến bài học, môn học (giáo án)
- Giáo viên chuẩn bị phiếu có ghi các tình huống, ví dụ giúp học sinh phát hiện vấn đề để cung cấp đến từng học sinh; chuẩn bị máy tính có cài sẵn các chương trình, ví dụ cần thiết cho bài học, máy chiếu đa năng
2 Học sinh:
- Học sinh chuẩn bị các kiến thức cũ đã học liên quan, cần sử dụng để hỗ trợ cho việc lĩnh hội kiến thức mới
- Học sinh chuẩn bị giấy bút, sách vở
III TỔ CHỨC DẠY HỌC:
1 Hoạt động 1: Xét ví dụ để gợi động cơ tìm hiểu ý nghĩa của cấu trúc lặp
Giáo viên đưa ra một bài toán ví dụ tình huống đặt học sinh vào tình huống có vấn đề buộc các em phải tư duy
Nội dung Hoạt động của Thầy Hoạt động của
Trò
Xét 2 bài toán với a>2, a
nguyên cho trước
Bài toán 1: Tính tổng:
100
1
2
1 1
1
1
+ + + +
+ +
+
=
a a
a
a
S
Bài toán 2: Tính tổng
N a a
a
a
S
+ + + +
+ +
+
2
1 1
1
1
0001
,
0
1 <
+N
a
GV chiếu hai bài toán ví
dụ lên bảng:
? Nghiên cứu để tìm ra cách tính tổng ở cả 2 bài toán?
Với Bài toán 1:
GV có thể gợi ý phương pháp: Ta xem như S là một cái thùng, số hạng như một
Trang 4Cách tính tổng Bài toán 1:
- Gán S bằng giá trị 1/a
- Tiếp theo mỗi lần cộng thêm
vào S là 1
a N+ với N=1, 2,
3,
- Việc cộng thêm dừng lại khi
N=100
⇒ Thao tác lặp với số lần biết
trước
cái ca có dung tích khác nhau, khi đó việc tính tổng trên tương tự việc đổ các
ca nước vào thùng S
?Có bao nhiêu lần đổ nước vào thùng?
?Mỗi lần một lượng là bao nhiêu? lần thứ i đổ bao nhiêu?
? Mô tả trong chương trình cần phải viết bao nhiêu lệnh?
Qua ví dụ gợi ý nêu trên
em hãy cho biết cách giải bài toán 1?
GV: Nhấn mạnh thêm
rằng việc cộng thêm mỗi lần vào tổng S một giá trị
là 1
a N+ được lặp đi lặp lại
100 lần Nói cách khác đây
chính là Thao tác lặp với
số lần biết trước (Cụ thể
trong trường hợp này là lặp 100 lần)
Với Bài toán 2:
? Điểm khác biệt của bài toán này so với bài toán 1?
? Việc lặp được thực hiện bao nhiêu lần?
?Giới hạn lặp là gì?
Trả lời:
Có 100 lần đổ nước
Trả lời:
- Lần 1 đổ
1
1 +
lần 2 đổ
2
1 +
a ;
- Lần thứ i đổ
1
a i+
Trả lời:
Phải viết 100 lệnh
Thảo luận:
- Ban đầu gán S bằng giá trị 1/a
- Tiếp theo mỗi lần cộng thêm vào
S là 1
a N+ với
N=1, 2, 3,
- Việc cộng thêm dừng lại khi N=100
Trang 5Cách tính tổng Bài toán 2:
- Gán S bằng giá trị 1/a
- Tiếp theo mỗi lần cũng cộng
thêm vào S một giá trị là
1
a N+ với N=1, 2, 3
- Việc cộng thêm dừng lại khi
1
a N+ < 0,0001
⇒ Thao tác lặp với số lần
chưa biết trước.
- Trong lập trình, có những
thao tác phải lặp đi lặp lại
một số lần, khi đó ta gọi là
cấu trúc lặp
- Lặp thường có 2 loại:
+ Lặp với số lần biết trước
+ Lặp với số lần không biết
trước
?Nêu cách tính cụ thể cho bài toán 2?
Tóm lại:
Trong trường hợp này việc cộng thêm mỗi lần vào tổng S giá trị là 1
a N+
được lặp đi lặp lại chưa biết bao nhiêu lần mà chỉ biết việc cộng lặp dừng lại khi 1
a N+ < 0,0001
Nói cách khác đây chính là
Thao tác lặp với số lần chưa biết trước.
?Qua hai ví dụ trên em hãy cho biết trong lập trình lặp
là gì và các dạng lặp?
GV Chuẩn hoá nội dung câu trả lời rồi trình chiếu lên màn hình
- Trong lập trình, có những thao tác phải lặp đi lặp lại một số lần, khi đó
ta gọi là cấu trúc lặp
- Lặp thường có 2 loại:
+ Lặp với số lần biết trước
+ Lặp với số lần không biết trước
?Để thực hiện tính tổng S
ta phải sử dụng câu lệnh nào?
GV: Nêu vấn đề: Ta mới
Trả lời:
Bài toán 1 cho giới hạn N
Với bài toán này việc lặp chưa xác định được số lần
- Giới hạn lặp cho đến khi điều kiện
1
a N+ < 0,0001
được thoã mãn
Thảo luận:
- Gán S bằng giá trị 1/a
- Tiếp theo mỗi lần cũng cộng thêm vào S một giá trị là 1
a N+ với
N=1, 2, 3
- Việc cộng thêm dừng lại khi
1
a N+ < 0,0001
Thảo luận Phát biểu
Trang 6chỉ học câu lệnh IF – THEN Và đưa ra tình huống giải 2 bài toán như sau: (Trình chiếu trên màn hình)
Cách giải bài toán 1 bằng các lệnh IF –THEN sau:
S:=1/a;
If n=1 Then S:=S+1/
(a+1);
If n=2 Then S:=S+1/
(a+2);
If n=3 Then S:=S+1/
(a+3);
Cách giải bài toán 2 bằng các lệnh IF –THEN sau:
S:=1/a;
If (1/(a+1)>0,0001) Then S:=S+1/(a+1);
If (1/(a+2)>0,0001) Then S:=S+1/(a+2);
If (1/(a+3)>0,0001) Then S:=S+1/(a+3);
….
?Nhận xét cách giải trên?
?Vậy giải pháp sử dụng
câu lệnh If – Then vào để
thực hiện tính tổng trong
Nhận xét:
- Theo như cách giải trên, thì việc cộng thêm ở bài toán 2 chỉ dừng khi
N
a+
1
< 0,0001
- Với bài toán 1, N=100 thì việc thực hiện câu lệnh lặp lên đến 100 lần nhưng điều
Trang 7trường hợp này có hợp lí không?
Đúng thế Để giải 2 bài toán trên thì không thể dùng cấu trúc IF – THEN
mà phải sử dụng một cấu trúc khác, ngôn ngữ Pascal
sẽ cung cấp cho ta một số câu lệnh lặp để mô tả các cấu trúc lặp trên
kiện để kiểm tra không biết phải thực hiện như thế nào?
- Cả 2 cách giải trên đều quá dài
Trả lời
Không thể được
2 Hoạt động 2: Xây dựng thuật toán Bài toán 1 để gợi động cơ tìm hiểu cấu trúc lặp for – do dạng tiến và dạng lùi
Nội dung Hoạt động của Thầy Hoạt động của Trò
Thuật toán 1a: (Lặp
tiến)
B1: N ¬ 0; S¬
a
1
;
B2: N ¬ N + 1;
B3: Nếu N >100 thì
chuyển đến bước 5
B4: S ¬ S+
N
a+
1
quay
lại bước 2
B5: Đưa S ra màn hình
rồi kết thúc
?Em hãy dựa vào cách làm nêu trên thảo luận viết thuật toán giải bài toán 1?
100
1
3
1 2
1 1
1 1
+ + + +
+ +
+ + +
=
a a
a a a S
?Gọi HS lên trình bày thuật toán
Gọi học sinh khác lên nhận xét đánh giá?
Chuẩn hoá lại thuật toán cho học sinh (Chiếu trên máy chiếu)
GV Gợi động cơ cho lặp lùi
Thảo luận theo nhóm để viết thuật toán:
HS trình bày thuật toán mà nhóm vừa thảo luận
Nhận xét, đánh giá kết quả của nhóm khác
Ban đầu Cộng lần 1 Cộng lần 2
Cộng lần 100
Cộng lần 3
Trang 8Thuật toán 1b: (Lặp lùi)
B1: N ¬ 101;S¬
a
1
;
B2: N ¬ N - 1;
B3: Nếu N < 1 thì chuyển
đến bước 5
B4: S ¬ S+
N
a+
1
quay
lại bước 2
B5: Đưa S ra màn hình
rồi kết thúc
Thay vì:
Ban đầu S ¬ 1/a, N ¬ 0 Cộng lần thứ 1 là
1
1 +
a
Cộng lần thứ 2 là
2
1 +
a
Cộng lần thứ 3 là
3
1 +
a
Cộng lần thứ 100 là
100
1 +
a
→ Dạng lặp tiến
GV: Để lặp 100 lần việc cộng vào S giá trị 1/(a+N) thì ngoài cách trên còn có cách nào khác không?
→ Đây chính là Dạng lặp lùi
?Các em xây dựng thuật toán theo cách này?
Chuẩn hóa lại thuật toán và trình chiếu
GV: Qua Thuật toán 1a và
Thuật toán 1b ta thấy cũng để
tính tổng S nhưng có 2 cách tính lặp là cộng lặp tiến và cộng lặp lùi Để minh họa cho 2 cách lặp trên ngôn ngữ lập trình Pascal có hai câu lệnh thể hiện là câu lệnh lặp
For – do dạng tiến và dạng
lùi
Trả lời
Ban đầu S ¬ 1/a;
N ¬ 101 Cộng lần 1 là
100
1 +
a
Cộng lần 2 là
99
1 +
a
Cộng lần 3 là
98
1 +
a
Cộng lần cuối là
1
1 +
a
HS Viết thuật toán
Trang 93 Hoạt động 3: Tìm hiểu câu lệnh for – do
Nội dung Hoạt động của Thầy Hoạt động của Trò
* Dạng tiến:
For <biến đếm>:= <giá
trị đầu>to <giá trị cuối>
do <lệnh cần lặp>;
- Trong đó:
+ Biến đếm: là biến đơn và
thường có kiểu nguyên
+ Giá trị đầu và giá trị
cuối: là các biểu thức cùng
kiểu với biến đếm
+ Giá trị đầu ≤ Giá trị cuối
* Nếu giá trị đầu > giá trị
cuối thì vòng lặp không thể
thực hiện được
- Hoạt động của câu lệnh
dạng tiến: Câu lệnh sau từ
khóa DO được thực hiện
tuần tự với biến đếm lần
lượt nhận các giá trị liên
tiếp tăng từ giá trị đầu đến
giá trị cuối
Sơ đồ khối
Yêu cầu học sinh nghiên cứu SGK và cho biết cấu trúc chung của câu lệnh FOR – DO dạng tiến?
GV Giải thích:
<Biến đếm>: là biến đơn
và thường có kiểu nguyên
GV: Ý nghĩa của <giá trị
đầu> <giá trị cuối>, kiểu dữ liệu của chúng?
? Trong Thuật toán 1a <giá
trị đầu>, <giá trị cuối> là bao nhiêu?
? Lệnh cần lặp trong thuật toán 1a là gì?
? Khi có nhiều lệnh khác nhau cần lặp lại ta viết như thế nào?
? Em có nhận xét gì về <giá trị đầu> và <giá trị cuối> ?
? Nghiên cứu SGK em hãy cho biết sự hoạt động của
HS nghiên cứu, trả lời câu hỏi
Trả lời
- Giá trị đầu và giá trị cuối dùng để làm giới hạn cho biến đếm
- Hai giá trị này phải cùng kiểu với biến đếm
Trả lời
Giá trị đầu là 1, giá trị cuối là 100
Trả lời
Lệnh cần lặp là:
S ¬ S+
N
a+ 1
Trả lời
Ta phải sử dụng câu lệnh ghép (Begin… end;)
Trả lời
Giá trị đầu ≤ giá trị cuối
Trả lời câu hỏi
Biến đếm:=G.trị
đầu
Lệnh lặp
Biến đếm<=Gt
Cuối
S
Đ
Trang 10* Dạng lùi:
For <biến đếm>:= <giá
trị cuối>downto <giá trị
đầui> do <lệnh cần lặp>;
Hoạt động của câu lệnh
lùi: Câu lệnh sau từ khóa
DO được thực hiện tuần tự
với biến đếm lần lượt nhận
các giá trị liên tiếp giảm từ
giá trị cuối đến giá trị đầu
Sơ đồ khối
câu lệnh for – do dạng tiến?
GV chuẩn hóa lại câu trả lời và trình chiếu trên bảng
sự thực hiện của máy:
Câu lệnh sau từ khóa DO được thực hiện tuần tự với biến đếm lần lượt nhận các giá trị liên tiếp tăng từ giá trị đầu đến giá trị cuối.
GV Giới thiệu (trên máy chiếu) cho HS hoạt động của câu lệnh bằng sơ đồ khối
Tương tự với câu lệnh dạng tiến các em cho biết cấu trúc của cẩu lệnh For – do dạng lùi
GV: Tương tự câu lệnh dạng tiến
<biến đếm> cũng thường
có kiểu nguyên
<Giá trị đầu>,< giá trị cuối> là biểu thức cùng
kiểu với biến đếm GV: ?Trong trường hợp này
em hãy so sánh <giá trị đầu> và <giá trị cuối>
GV: ?Em cho biết sự hoạt động của câu lệnh?
GV Giới thiệu (trên máy chiếu) cho HS hoạt động của câu lệnh bằng sơ đồ khối
HS: giá trị cuối ≥
giá trị đầu
HS Trả lời:
+Dạng lùi: Câu
lệnh sau từ khóa
DO được thực hiện tuần tự với biến đếm lần lượt nhận các giá trị liên tiếp giảm từ giá trị cuối đến giá trị đầu
Biến đếm:=G.trị
cuối
Lệnh lặp
Biến đếm>=Gt đầu
S
Đ