Qua tìm hiểu, tôi nhận thấy ở một số thành phố lớn trong cả nước có trang thiết bị đảm bảo cho việc dạy và học đã áp dụng một số phương pháp hay để khơi gợi hứng thú học tin đối với các
Trang 1SỞ GIÁO DỤC VÀ ĐÀO TẠO ĐỒNG NAI
Đơn vị: TRƯỜNG THPT XUÂN LỘC
Mã số:
(Do HĐKH Sở GD&ĐT ghi)
SÁNG KIẾN KINH NGHIỆM TẠO HỨNG THÚ CHO HỌC SINH KHI HỌC BÀI “KIỂU MẢNG”
Người thực hiện: NGUYỄN TRI KHÁNH
Lĩnh vực nghiên cứu:
Quản lý giáo dục
Phương pháp dạy học bộ môn: Tin học
(Ghi rõ tên bộ môn)
Phương pháp giáo dục Lĩnh vực khác:
(Ghi rõ tên lĩnh vực)
Có đính kèm: Các sản phẩm không thể hiện trong bản in SKKN
Mô hình Đĩa CD (DVD) Phim ảnh Hiện vật khác
(các phim, ảnh, sản phẩm phần mềm)
Năm học: 2014-2015
Trang 2SƠ LƯỢC LÝ LỊCH KHOA HỌC 3
I LÝ DO CHỌN ĐỀ TÀI 4
1 Tính cấp thiết của đề tài 4
2 Điểm mới của đề tài 5
II THỰC TRẠNG TRƯỚC KHI CHỌN ĐỀ TÀI 5
1.Thuận lợi 5
2 Khó khăn 5
3 Số liệu thống kê 5
II Cơ sở lí luận và thực tiễn 5
1 Cơ sở lí luận 5
2 Cơ sở thực tiễn .6
IV TỔ CHỨC THỰC HIỆN CÁC GIẢI PHÁP 6
V HIỆU QUẢ CỦA ĐỀ TÀI 15
VI ĐỀ XUẤT, KHUYẾN NGHỊ KHẢ NĂNG ÁP DỤNG 16
VII TÀI LIỆU THAM KHẢO 16
VIII PHỤ LỤC 18
Danh mục các từ viết tắt trong SKKN 18
NGƯỜI THỰC HIỆN 18
(Ký tên và ghi rõ họ tên) 18
Nguyễn Tri Khánh 18
Trang 3SƠ LƯỢC LÝ LỊCH KHOA HỌC
I THÔNG TIN CHUNG VỀ CÁ NHÂN
1 Họ và tên: Nguyễn Tri Khánh
2 Ngày tháng năm sinh: 07/07/1985
4 Địa chỉ: 265/5 Hồng Thập Tự, Phường Xuân Trung, tx Long Khánh, Đồng Nai
5 Điện thoại: 061.3871115 (CQ)/ (NR); ĐTDĐ: 01658779611
8 Nhiệm vụ được giao (quản lý, đoàn thể, công việc hành chính, công việc chuyên môn,
giảng dạy môn, lớp, chủ nhiệm lớp,…): Giảng dạy Tin học ở các lớp 10B11 →
10B14; 11C5, 11C9, 11C11 → 11C14; quản lí phòng máy; phòng chiếu.
9 Đơn vị công tác: Trường THPT Xuân Lộc
II TRÌNH ĐỘ ĐÀO TẠO
- Học vị (hoặc trình độ chuyên môn, nghiệp vụ) cao nhất: Đại Học
- Năm nhận bằng: 2009
- Chuyên ngành đào tạo: Sư Phạm Tin học
III.KINH NGHIỆM KHOA HỌC
- Lĩnh vực chuyên môn có kinh nghiệm: Tin học
- Số năm có kinh nghiệm: 6 năm
- Các sáng kiến kinh nghiệm đã có trong 5 năm gần đây:
Trang 4TẠO HỨNG THÚ CHO HỌC SINH KHI HỌC
BÀI “KIỂU MẢNG”
I LÝ DO CHỌN ĐỀ TÀI
1 Tính cấp thiết của đề tài
Trong công cuộc đổi mới đất nước, bên cạnh các lĩnh vực góp một lượng GDP[1] đáng
kể cho sự phát triển kinh tế nước nhà như công nghiệp, nông nghiệp-lâm-ngư nghiệp và thương mại-dịch vụ CNTT[2] được xem là lĩnh vực song hành, hỗ trợ cho các lĩnh vực khác trong quá trình quản lí, điều hành, sản xuất và tạo ra các sản phẩm phục vụ cho nhu cầu tiêu dùng trong nước và xuất khẩu Điều đó, cho thấy Đảng và Nhà nước ta luôn coi trọng và đã
có những chính sách thỏa đáng để phát triển lĩnh vực CNTT Hiện nay, Việt Nam cũng đã
tổ chức nhiều cuộc thi cấp quốc gia, đó là sân chơi nhằm mục đích khơi gợi lòng yêu thích
và đam mê CNTT trong mọi tầng lớp công dân Việt Nam trong và ngoài nước như:
Olympic Tin học Sinh Viên Việt Nam, Lập trình ứng dụng Di động Hackathon 2014,…qua
các cuộc thi, chúng ta đã thu được rất nhiều ứng dụng (sản phẩm) phục vụ cho hầu hết các lĩnh vực trong đời sống như: Giáo dục, Giao thông công cộng, Y tế,…Không những thế, Việt Nam đã tổ chức hội nghị thượng đỉnh cấp cao về CNTT (VietNam ICT Submit) để học hỏi, trau dồi thêm kinh nghiệm của bè bạn quốc tế trong việc nâng cao năng lực quản lí và đáp ứng ngày càng sâu rộng của CNTT đối với các lĩnh vực khác Tại hội nghị VietNam ICT Submit vào năm 2013, Thủ tướng Nguyễn Tấn Dũng đã có bải phát biểu đề cập đến
năng lực cạnh tranh của lĩnh vực trong CNTT trong điều kiện thực tế, đó là cần: “Tập trung
vào các vấn đề xây dựng hạ tầng thông tin quốc gia, nâng cao năng lực cạnh tranh của nền kinh tế, cải cách thể chế, đẩy mạnh cải cách giáo dục đào tạo - đây là những vấn đề đang được Chính phủ đặc biệt quan tâm giải quyết”[3]
Trong quá trình dạy học môn Tin học 11, tôi nhận thấy môn học này mang tính tư duy
“trừu tượng” khá cao, nên khi học sinh học thường không hứng thú Từ đó, các em không theo kịp chương trình, chỉ học môn này để đối phó với các kì kiểm tra Khi cần vận dụng vào bài tập thực tế thì các em gặp nhiều lúng túng
Qua tìm hiểu, tôi nhận thấy ở một số thành phố lớn trong cả nước có trang thiết bị đảm bảo cho việc dạy và học đã áp dụng một số phương pháp hay để khơi gợi hứng thú học tin
đối với các em như: “Cùng học Pascal qua chơi Robot” (Tp.HCM), “Alice 2014-Ai cũng lập trình được” (do tập đoàn truyền thông đa phương tiện FPT khởi xướng) trên phạm vị
toàn quốc Nhưng tại đơn vị tôi đang công tác, là một trường thuộc khu vực miền núi, HS[4]
chưa được trang bị đầy đủ máy vi tính để phục vụ cho việc thực hành các bài tập trên lớp
Do đó, Giáo viên luôn không ngừng tìm ra những phương pháp để tăng hiệu quả tiếp thu kiến thức và tạo thêm sự hứng thú của các em khi tiếp cận môn học này
1[] GDP: Gross Domestic Product (Tổng sản phẩm nội địa)
2[] CNTT: Công Nghệ Thông Tin;
3[] “Tập trung vào … giải quyết”: Trích bài phát biểu của Thủ Tướng Nguyễn Tấn Dũng tại hội nghị Viet Nam ICT Submit
2013
Trang 5Sau đây, tôi xin trình bày đề tài: TẠO HỨNG THÚ CHO HỌC SINH KHI HỌC BÀI “KIỂU MẢNG”.
2 Điểm mới của đề tài
Điểm mới của đề tài của tôi, đó là tôi đã tạo ra mối liên hệ giữa bài toán thực tế là tìm
vị trí lưu trữ kho gạo có khối lượng xác định ở mỗi kho với việc lưu trữ dữ liệu thực tế trên
“Kiểu mảng” theo chỉ số của phần tử Từ cách liên hệ này, HSsẽ thấy tin học là lĩnh vực không xa lạ với thực tế cuộc sống, mà chỉ là cách thực hiện những gì cuộc sống đời thường lên trên máy tính mà thôi Từ đó, HS sẽ hứng thú hơn khi học bài kiểu mảng, những áp
dụng thú vị của kiểu mảng vào Bài 12 Kiểu Xâu và những bài khác trong chương trình
của môn học Khi đã thích thú với môn học, các em tìm ra sẽ tìm cách học môn Tin tốt hơn như hỏi bạn bè trong lớp, tìm kiếm các cách giải hay trên Internet về bài tập tôi đưa ra, tham gia các diễn đàn để tăng thêm vốn kiến thức lập trình, để làm hành trang cho định hướng nghề nghiệp của mình sau khi rời ghế nhà trường
II THỰC TRẠNG TRƯỚC KHI CHỌN ĐỀ TÀI
1.Thuận lợi
Đa số học sinh chăm ngoan, học lực tương đối khá nên việc tiếp cận với bộ môn lập trình trừu tượng như môn Tin học 11 không phải là quá khó đối với các em
2 Khó khăn
Học sinh không dành nhiều thời gian đầu tư cho môn Tin học Các em xem đây là môn phụ, giáo viên thường cho “điểm dễ”, do đó các em thường có xu hướng chủ quan
“học cho có”, dành thời gian để củng cố kiến thức các môn chính cho các kỳ thi quan trọng của các em trong năm
3 Số liệu thống kê
Trong quá trình giảng dạy môn Tin học 11, trước khi thực hiện SKKN[1], tôi đã quan sát các lớp tôi từng dạy có đến 80% các em cảm thấy môn Tin khá trừu tượng và khó tiếp thu, 20% còn lại các em đã đầu tư thời gian vào học tập vì cảm nhận môn Tin có những điểm thú vị mà mình cần tìm tòi và hiểu biết thêm về nó
Hai lớp tôi lấy ý kiến, mức độ quan tâm của môn Tin học 11, có đến 90% các em nhận thấy môn Tin học 11 là môn học khó; 10% HS còn lại nhận thấy môn Tin học 11 có nhiều điểm hay cần dành nhiều thời gian cho nâng cao tư duy để có thể tích lũy thêm kiến thức cho định hướng công việc trong tương lai của các em
II Cơ sở lí luận và thực tiễn
1 Cơ sở lí luận
Khi viết SKKN này, tôi đã tìm hiểu qua các SKKN của nhiều giáo viên trong cả nước
và nhận thấy SKKN của giáo viên Hoàng Lê Phong – Trường THPT Tống Duy Tân – Vĩnh Lộc (Thanh Hóa), điểm hạn chế của phương pháp này HS còn thụ động khi tiếp cận kiến
1[] SKKN: Sáng kiến kinh nghiệm
Trang 6thức, HS có thể chưa nắm được lợi ích của Kiểu mảng trong việc lưu trữ các giá trị Từ đó,
dẫn đến các em sẽ khó nhớ nội dung đã học trong tiết 1 và khi cần vận dụng kiến thức vào giải quyết các bài toán cụ thể thì HS sẽ gặp nhiều lúng túng
2 Cơ sở thực tiễn
Khi dạy bài Kiểu Mảng, tôi nhận thấy các em cảm thấy khó hình dung, một số vấn đề các em thường thắc mắc như : phần tử sao lại có chỉ số (biến chỉ định vị trí phần tử), khi
khai báo biến mảng lại có nhiều thành phần, khi truy cập biến mảng lại có chỉ số đi kèm,
Từ đó, HS cảm thấy khó nắm bắt những vấn đề đã học trong tiết 1 bài kiểu mảng, trong tiết bài tập tiếp theo các em áp dụng kiến thức đã học trong tiết học trước, để xây dựng chương trình trên giấy Những bài tập này, không phải HS nào cũng có thể làm được, khi
các em chưa hiểu rõ nội dung đã học ở Tiết 1 – Kiểu Mảng Đến khi thực hành thực sự
trên máy ở tiết học tiếp theo, các em gặp rất nhiều lúng túng trong việc triển khai báo biến, nhập mảng và thực hiện các thao tác trên mảng
Từ những khó khăn đó, tôi đã tìm ra cách thức đơn giản hơn để nắm bắt nội dung bài
Kiểu Mảng, đó là cần tạo sự liên hệ giữa việc lưu trữ phần tử mảng có chỉ số với công
việc lưu trữ kho gạo mà mỗi kho có chỉ số Khi đã nắm vấn đề, tôi sẽ các em cho làm các
ví dụ liên quan đến kho gạo Từ những ví dụ này, các em sẽ dễ dàng vận dụng nó khi xây dựng thuật toán và viết chương trình cho các bài tập thuộc kiểu dữ liệu mảng
Đây là giải pháp thay thế hoàn toàn giải pháp đã có của giáo viên Hoàng Lê Phong – Trường THPT Tống Duy Tân – Vĩnh Lộc, Thanh Hóa
IV TỔ CHỨC THỰC HIỆN CÁC GIẢI PHÁP
(*) Hoạt động 1: Tìm hiểu khái niệm Mảng một chiều
Đầu tiết học, tôi chiếu hình ảnh của các kho gạo, mỗi kho chứa đựng một lượng gạo xác định Tôi đưa ra câu hỏi: “Em hãy tính tổng số gạo các kho nhỏ hơn 40 tấn trong các kho đã cho?” HS của tôi dễ dàng tính được tổng các kho gạo nhỏ hơn 40 tấn” nhưng khi tôi hỏi“ các em dựa vào đâu để tìm được câu trả lời cho câu hỏi đặt ra”
F HS trả lờ i : Ta sẽ tìm lần lượt các kho nhỏ hơn 40 và cộng chúng lại với nhau
Hình 1 Hình ảnh mô tả số lượng gạo của từng kho
Trang 7Tôi đưa ra nhận xét: “Với cách làm nêu trên, các em phải tiến hành cân để biết khối lượng gạo sẽ có ở mỗi kho Đó là cách làm mất rất nhiều thời gian và công sức nếu các kho lưu trữ một lượng gạo lớn” Sau đó, tôi chia lớp thành 4 nhóm học tập, mỗi nhóm từ 6 đến
9 học sinh, các nhóm sẽ thảo luận và ghi vào bảng trong, các vấn đề cần thảo luận về kho gạo Tôi cho các em thời gian thảo luận là 6 phút, khi hết thời gian tôi cho các em tìm ra những điểm hạn chế trong câu trả lời của nhóm khác để tăng thêm điểm đánh giá nhóm
1
Em tính tổng các kho gạo nhỏ hơn
40 trong các kho đã có như thế
nào?
Ta đánh số thứ tự lần lượt từ trái qua phải, cộng dồn các kho nhỏ hơn 40
tấn
2
Em hãy cho biết có bao nhiêu kho
hàng chứa gạo trên màn hình…… ,
để lưu trữ các kho em dùng bao
nhiêu biến………
Số kho gạo là 5, ta sử dụng 5 biến để lưu trữ các kho hàng
3 Kiểu dữ liệu nào em chọn để lưu trữ gạo từng kho Kiểu nguyên.
4 Kiểu dữ liệu số gạo trong mỗi kho có điểm gì đặc biệt? Số gạo trong kho có kiểu dữ liệu giống nhau (cùng kiểu).
Hình 2 Bảng hoạt động nhóm tìm hiểu khái niệm Mảng một chiều
Trong ví dụ đã cho, ta dễ dàng tìm được tổng các kho gạo nhỏ hơn 40 tấn khi các kho
được đánh số thứ tự Muốn lưu trữ tất cả các kho gạo vào máy tính theo vị trí, trong các
kiểu dữ liệu đã học, kiểu dữ liệu nào có thể giúp ta thực hiện được điều đó?
F HS trả lời : Các kiểu dữ liệu chỉ lưu giá trị không theo vị trí.
Sau khi học sinh trả lời, tôi đưa ra nhận xét: “Các kiểu dữ liệu đã học chỉ ghi dữ liệu lên biến và giá trị mới sẽ thay thế cho giá trị cũ Khi sử dụng kiểu mảng để lưu trữ dữ liệu thì em thấy có điểm gì đặc biệt?”
F HS trả lời : Chúng ta có thể nhớ các phần tử đã lưu theo chỉ số của nó.
Để HS có thể hiểu nội dung kiểu mảng, tôi tạo ra các câu trả lời ngắn trên bảng câu hỏi học tập và yêu cầu các nhóm tham khảo nội dung SGK[1] trang 53, 54, 55 để trả lời:
1 Từ khóa em sử dụng cho để khai báo mảng một chiều là array.
2 Số lượng phần tử trong mảng như thế nào? ……… Hữu hạn (xác định).
1[] SGK: Sách giáo khoa
Trang 83 Kiểu dữ liệu của các phần tử có đặc điểm gì? ……… Giống nhau (cùng kiểu).
4 Các phần tử mảng có thể truy cập (tham chiếu) thông qua ………… Tên biến mảng và chỉ số.
Hình 3 Bảng hoạt động nhóm củng cố nội dung khái niệm Mảng một chiều
Sau khi hoàn thành câu trả lời, tôi yêu cầu các em ghi lại các nội dung theo cách hiểu của mình về nội dung vừa học Tiếp đó, tôi đưa ví dụ để củng cố nội dung các em vừa học:
“Một cửa tiệm bán gạo, họ tiến hành bán gạo cho 50 người, người đầu mua 5kg gạo, người sau mua hơn người đầu 0.5kg Em hãy cho biết số lượng phần tử mảng có thể lưu trữ, kiểu
dữ liệu để lưu trữ số kg gạo.”
F HS trả lời : Ta sử dụng 50 biến để lưu trữ số kg gạo, kiểu dữ liệu để lưu trữ số gạo
là kiểu thực.
(*) Hoạt động 2: Tìm hiểu cách khai báo biến mảng một chiều.
Nội dung này, học sinh đã làm quen ở cách khai báo biến, nhưng khi khai báo một biến thuộc kiểu mảng một chiều các em sẽ gặp một số lúng túng Để hạn chế điều này, tôi
phát cho các em phiếu học tập, để các em trả lời những nội dung đã học qua việc tham
khảo tài liệu SGK trang 55
1 Em hãy ghi câu lệnh khai báo 5 biến để lưu trữ gạo? Var a,b,c,d,e: integer;
2
Nếu sử dụng mảng một chiều, để lưu
trữ 5 biến đó, em sẽ thực hiện? (khai
báo trực tiếp)
Var a: array[1 5] of integer;
3 Em có nhận xét gì về giá trị n1, n2 lưu trữ chỉ số phần tử mảng n1 ≤ n2
4
Số lượng phần tử lớn nhất của mảng
một chiều là
n1 n2
n2 (xác định số lượng phần tử lớn nhất
của mảng một chiều)
5
Kiểu phần tử mảng có thể là:
Số nguyên Số thực
Tất cả các kiểu dữ liệu đã học
Hình 4 Bảng học sinh tìm hiểu nội dung Khai báo biến
Ngoài cách khai báo, trong câu trả lời thầy cung cấp, em còn có thể sử dụng từ khóa Type
để định nghĩa kiểu mảng một chiều qua tên kiểu mảng em thích Sau đó, áp dụng nó cho
kiểu dữ liệu đó vào tên biến mảng
Trang 9 Thầy sử dụng biến mảng một chiều khogaođể lưu số lượng gạo từng kho bằng 5
biến Em hãy cho biến cách truy cập (tham chiếu) đến phần tử thứ 2 – chứa 10 tấn gạo.
Hình 5 Mô tả mảng khogao lưu số gạo ở mỗi kho
FHS trả lời : khogao[2] (chứa lượng gạo cần tìm là 10 tấn)
Sau tiết học đầu tiên, để các em khắc sâu thêm kiến thức đã học, tôi cho các em tiến hành sử dụng các kiến thức đã học vào các bài tập
1) Nhập từ bàn phím 10 biến và xuất các biến đã nhập
2) Nhập từ bàn phím 10 biến và xuất các biến đã nhập (Sử dụng vòng lặp for do)
3) Nhập từ bàn phím 10 biến và xuất các biến đã nhập (Sử dụng mảng một chiều)
4) Em có nhận xét gì cách nhập và xuất biến qua các bài tập 1, 2, 3
Khi bước vào tiết bài tập, tôi hỏi ngẫu nhiên một số em trong lớp về cách thức thực hiện bài tập 1 và bài tập 2, các em đều cho rằng bài tập 2 có số lần khai báo biến ít hơn bài tập 1 Sau đó, tôi hỏi các em khác về cách thức làm bài tập 3, thì các em gặp một số lúng túng về việc nhập mảng các phần tử Tiết học hôm nay, thầy trò chúng ta sẽ đi tìm hiểu việc nhập và xuất mảng một chiều và một số bài toán liên quan đến nó
(*) Hoạt động 3: Tìm hiểu nhập và xuất mảng một chiều.
Khi xây dựng nhóm học tập cho tiết học mới, tôi yêu cầu các bàn trong các nhóm thay đổi thành viên, tôi lưu ý các em khi chọn nhóm có thể phát huy khả năng của nhau Với cách làm này, các bạn trong nhóm sẽ tự tin trình bày quan điểm cá nhân của mình, tính hiệu quả của nhóm sẽ được nâng cao hơn Tiếp đó, tôi cho các nhóm bốc thăm các gói câu hỏi thảo luận, thời gian các em thảo luận là 8 phút
Nhập và xuất ra hiển thị 5 giá trị từ bàn
phím?
(*) Em cần sử dụng bao nhiêu bao nhiêu
biến:………
(*) Em ghi các dòng lệnh thực hiện nhập
và xuất dữ liệu:
(*) Em có nhận xét gì khi nhập và xuất
nhiều biến cùng một lúc?
Cho đoạn chương trình sau:
For i:=1 to 5 do Begin
Write(i,’: ’);Readln(a);
End;
(*) Em hãy cho biết số lượng phần tử sẽ nhập trong chương trình: (*) Vai trò của biến i trong chương trình: (*) Em hãy ghi lệnh xuất phần tử thứ 2 trong các phần tử đã nhập
khogao
Trang 10
Cho đoạn chương trình sau:
Write(‘Nhap N: ’);readln(N);
For i:=1 to N do
Begin
Write(i,’: ’);Readln(a[i]);
End;
(*) Em hãy cho biết ý nghĩa của đoạn
chương trình:
(*) Biến i, N trong chương trình có vai trò
gì?
(*) Em hãy ghi lệnh hiển thị phần tử thứ 2
trong mảng?
Cho A={30,10,40,20,50}, đoạn chương trình sau:
Write(a[1],’ ’,a[2],’ ’,a[3],’ ’,a[4],’ ’, a[5]);
(*) Em hãy cho biết ý nghĩa của đoạn chương trình trên: (*) Kết quả hiển thị ra màn hình:
(*) Em hãy cải tiến chương trình trên bằng vòng lặp for…do?
+ Số lần lặp:…….;Câu lệnh lặp lại:
+ Chương trình cải tiến:
Hình 6 Bảng mô tả các gói câu hỏi thảo luận nhóm tìm hiểu nội dung
tìm hiểu nhập và xuất mảng một chiều
Đáp án các gói câu hỏi
Nhập và xuất ra hiển thị 5 giá trị từ bàn
phím?
(*) Em cần sử dụng bao nhiêu bao nhiêu
biến: 5
(*) Em ghi các dòng lệnh thực hiện nhập
và xuất dữ liệu:
Readln(a,b,c,d,e);
Write(a,’ ’,b,’ ’,c,’ ’,d,’ ’,e);
(*) Em có nhận xét gì khi nhập và xuất
nhiều biến cùng một lúc?
Ta cần sử dụng nhiều biến, thực hiện
nhập và xuất nhiều lần các biến đó
Cho đoạn chương trình sau:
For i:=1 to 5 do Begin
Write(i,’: ’);Readln(a);
End;
(*) Em hãy cho biết số lượng phần tử sẽ nhập trong chương trình: 5
(*) Vai trò của biến i trong chương trình:
duyệt các giá trị nhập vào
(*) Em hãy ghi lệnh xuất phần tử thứ 2 trong các phần tử đã nhập
không thực hiện được (vì không biết biến
chỉ số kèm theo)