GỢI ĐỘNG CƠ HOẠT ĐỘNG TRONG VIỆC GIẢNG DẠY CHƯƠNG TRÌNH CON TIN HỌC 11 Ở TRƯỜNG THPT TRẦN PHÚ học sinh nhìn nhận vấn đề một cách tích cực hơn, sáng tạo hơn, tự xây dựng được một chương t
Trang 1GỢI ĐỘNG CƠ HOẠT ĐỘNG TRONG VIỆC GIẢNG DẠY CHƯƠNG TRÌNH CON TIN HỌC 11 Ở TRƯỜNG THPT TRẦN PHÚ
SÁNG KIẾN KINH NGHIỆM
Đề tài:
GỢI ĐỘNG CƠ HOẠT ĐỘNG TRONG VIỆC GIẢNG DẠY CHƯƠNG TRÌNH
CON MÔN TIN HỌC LỚP 11 Ở TRƯỜNG THPT TRẦN PHÚ
A ĐẶT VẤN ĐỀ
I LÝ DO CHỌN ĐỀ TÀI
- Công nghệ thông tin là một ngành khoa học đang phát triển rất mạnh mẽ
Sự bùng nổ thông tin trong thời đại ngày nay, tốc độ phát triển của công nghệ thông tin khiến cho người thầy không thể truyền tải hết mọi điều cho học trò, mà
dù có kéo dài thời gian để dạy hết mọi điều thì rồi các kiến thức đó cũng nhanh chóng trở nên lạc hậu
- Do đó người thầy cần phải tìm ra phương pháp dạy học tích cực hơn, gợi động cơ học tập trong quá trình giảng dạy để tăng hiệu quả dạy và học Trong việc giảng dạy cho học sinh, ngoài việc giúp học sinh lĩnh hội những kiến thức cơ bản Thầy giáo còn phải biết kích thích tính tích cực, sự sáng tạo say mê học hỏi của học sinh trong việc học tập của các em Bởi vì, việc học tập tự giác, tích cực, chủ động và sáng tạo đòi hỏi học sinh phải có ý thức về những mục tiêu đặt ra và tạo được động lực bên trong thúc đẩy bản thân họ hoạt động để đạt các mục tiêu đó Điều này được thực hiện trong dạy học không chỉ đơn giản bằng việc nêu rõ mục tiêu
mà quan trọng hơn còn do gợi động cơ
- Turbo Pascal là ngôn ngữ lập trình có cấu trúc, nó được dùng phổ biến ở nước ta hiện nay trong công tác giảng dạy, lập trình tính toán, đồ họa Turbo Pascal được dùng trong chương trình giảng dạy Tin học ở hầu hết các trường đại học, cao đẳng, trung học phổ thông Bởi vì, ngôn ngữ Pascal có tính cấu trúc mạnh, có cơ
sở và nó đòi hỏi chương trình phải chặt chẽ, logic Đặc biệt, khi học về chương trình con, học sinh có thể hiểu một cách sâu sắc hơn về ngôn ngữ lập trình, nhìn nhận vấn đề một cách sâu sắc hơn, chặt chẽ hơn và nhất là chương trình con có thể giúp cho các em hoàn thành những chương trình lớn hơn vượt ra những bài toán bình thường mà nội bộ môn học đòi hỏi Bên cạnh đó sức học của học sinh trong nhà trường còn hạn chế, đại đa số học sinh đầu vào lớp 10 còn yếu nên việc tự học chưa có Chính vì vậy, để giúp cho học sinh hứng thú khi học lập trình nói chung
và thích thú với Chương trình con trong Chương VI ““Chương trình con và lập
trình có cấu trúc” việc gợi động cơ cho học sinh trong việc dạy học là một công
việc quan trọng, đòi hỏi mỗi giáo viên cần phải nỗ lực tìm tòi, sáng tạo giúp cho
Trang 2GỢI ĐỘNG CƠ HOẠT ĐỘNG TRONG VIỆC GIẢNG DẠY CHƯƠNG TRÌNH CON TIN HỌC 11 Ở TRƯỜNG THPT TRẦN PHÚ
học sinh nhìn nhận vấn đề một cách tích cực hơn, sáng tạo hơn, tự xây dựng được một chương trình con đơn giản và hiểu được cái cốt lõi trong chương này và nhất
là giúp cho các em có thể yêu thích nhiều hơn nữa ngôn ngữ lập trình Pascal
- Với tất cả những lý do nêu trên, tôi quyết định chọn đề tài này
II ĐỊNH HƯỚNG NGHIÊN CỨU
1 Mục đích nghiên cứu:
- Tạo động cơ cho học sinh ý thức về ý nghĩa của các hoạt động khi sử dụng chương trình con trong công việc lập trình Từ đó, học sinh có thể liên hệ, vận dụng sáng tạo vào giải quyết các bài toán lập trình và các tình huống thực tế
2 Nhiệm vụ nghiên cứu:
- Qua việc nghiên cứu các vấn đề về chương trình con của ngôn ngữ lập trình Pascal, các tài liệu về phương pháp giảng dạy Từ đó, đưa ra các biện pháp có thể gợi động cơ hoạt động cho học sinh thông qua các ví dụ cụ thể về chương trình con
3 Phạm vi nghiên cứu:
- Nội dung nghiên cứu này có nhiều phần, trong phạm vi nghiên cứu của đề tài này tôi tập trung hướng học sinh đến vấn đề gợi động cơ học tập trong chương VI
“Chương trình con và lập trình có cấu trúc” và ở chương này ta cần làm rõ các
vấn đề trọng tâm cho học sinh nắm bắt được sau đó việc gợi động cơ trong quá trình thực hiện viết chương trình sẽ trở nên dễ dàng với các em hơn
- Chương trình con được viết dưới hai dạng: thủ tục (procedure) và hàm (function)
- So sánh cấu trúc của 2 kiểu chương trình con này thì tương tự với nhau, mặc dù cách truy xuất của chúng có khác nhau và cách trao đổi thông tin trong mỗi kiểu cũng có điểm khác nhau Hàm (function) trả lại một giá trị kết quả vô hướng thông qua tên hàm và hàm được sử dụng trong biểu thức còn Thủ tục (procedure) thì không trả về một kết quả nào qua tên của nó
- Liên hệ một số hàm và thủ tục chuẩn đã học:
+ Hàm chuẩn, như hàm sin(x) mà chúng ta đã biết trong chương trước có thể được xem như một chương trình con kiểu function với tên là sin và tham số là x
Trang 3GỢI ĐỘNG CƠ HOẠT ĐỘNG TRONG VIỆC GIẢNG DẠY CHƯƠNG TRÌNH CON TIN HỌC 11 Ở TRƯỜNG THPT TRẦN PHÚ
+ Thủ tục (procedure) không trả lại kết quả thông qua tên của nó, do
vậy, ta không thể viết các thủ tục trong biểu thức Các lệnh Writeln, Readln trong chương trước được xem như các thủ tục chuẩn
- Một chương trình có chứa chương trình con có 3 Phần :
+ Phần khai báo + Phần chương trình con + Phần chương trình chính
Để thực hiện những mục tiêu trên, yêu cầu học sinh cần nắm vững một
số kiến thức cơ bản sau:
+ Một số khái niệm biến:
- Vận dụng để viết được một số chương trình con đơn giản để minh họa
Trong các chương trình đó chỉ rõ đâu là biến toàn cục, biến cục bộ, tham số thực, tham số hình thức, lời gọi chương trình con…
- Cách gọi hàm trong các phép toán và biểu thức
4 Đối tượng nghiên cứu: Học sinh lớp 11 (được phân lớp theo năng lực học sinh từ lớp
11A1 11A7) Trường THPT Trần Phú
Trang 4GỢI ĐỘNG CƠ HOẠT ĐỘNG TRONG VIỆC GIẢNG DẠY CHƯƠNG TRÌNH CON TIN HỌC 11 Ở TRƯỜNG THPT TRẦN PHÚ
B NỘI DUNG
I ĐẶC ĐIỂM TÌNH HÌNH:
- Thực tế qua những năm trực tiếp giảng dạy bộ môn cũng như trao đổi với đồng nghiệp tôi nhận thấy: hầu như học sinh đều rất yêu thích và hứng thú với môn Tin học Tuy nhiên, chất lượng bộ môn qua các năm học chưa cao, đặc biệt là kĩ năng lập trình của học sinh lớp 11 còn yếu, thậm chí một số học sinh còn rất ngại viết lập trình trong chương trình lớp 11 do lập trình đòi hỏi rất nhiều về mặt kiến thức Toán học, tư duy thuật toán thậm chí còn liên quan đến tiếng Anh trong ngôn ngữ lập trình Pascal
d n đến làm cho việc tiếp cận, làm quen với lập trình cũng tương đối khó
+ Số lượng học sinh trong một lớp học còn quá đông trên 40 học sinh một lớp, diện tích phòng máy nhỏ hẹp, phòng máy có 25 máy, thiết bị máy móc thường xuyên bị lỗi chương trình, lỗi hệ điều hành, và một số máy đang hoạt động tự động tắt (do lỗi main, lỗi ram, nguồn tuột áp, ), làm cho tiết học thực hành lập trình của các em không đạt hiệu quả cao nhất
Trang 5GỢI ĐỘNG CƠ HOẠT ĐỘNG TRONG VIỆC GIẢNG DẠY CHƯƠNG TRÌNH CON TIN HỌC 11 Ở TRƯỜNG THPT TRẦN PHÚ
+ Học sinh chủ yếu là con em các gia đình làm công nhân, làm nông, sự quan tâm của phụ huynh đến việc học tập của con em còn nhiều hạn chế, nói đến học lập trình để các em hiểu và viết được các chương trình đầu tiên cơ bản thì các em phải thường xuyên làm bài tập và viết chương trình lên trên máy, xem kết quả đúng sai từ đó hiểu chỉnh lại đoạn chương trình cho hoàn chỉnh, nhưng điều kiện để các em có máy vi tính ở nhà là rất khó, hầu hết các em chỉ được tiếp xúc, làm quen với máy tính trong giờ học d n đến việc viết chương trình của học sinh còn lúng túng, chất lượng môn học chưa cao
Một bộ phận học sinh chưa coi trọng môn học, xem đây là một môn phụ nên chưa có sự đầu tư thời gian cho việc học
II GIẢI PHÁP
Nhìn được những khó khăn trong quá trình giảng dạy, bản thân tôi suy nghĩ đến vấn đề từng chương trong chương trình học, mình phải làm sao hệ thống hóa được các nội dung một cách nhẹ nhàng để làm sao ngay cả học sinh yếu, trung bình cũng có thể hội tụ được kiến thức của từng phần trong bộ môn Như vậy việc chuẩn bị kĩ lượng nội dung cần truyền tải đến các em Ngoài ra để các em lĩnh hội được nội dung bài học một cách tốt nhất mà bản thân tôi nghĩ nó cũng rất quan trọng đó là gợi động cơ học tập cho các em, làm cho các em đam mê, thích thú với những bài tập, những đoạn chương trình, tìm tòi xem khi viết đoạn chương trình chạy trên máy thành quả của mình đạt được là kết quả gì Trong chương VI
“Chương trình con và lập trình có cấu trúc”, để làm tốt việc này thì bản thân
người thầy phải làm rõ cho học sinh một số nội dung trọng tâm để các em có cái nhìn tổng quan đến chi tiết của Chương này
1 Một số khái niệm và biến
* Cấu trúc của thủ tục không tham số PROCEDURE < Tên thủ tục > ; { Các khai báo hằng, biến, kiểu cục bộ } BEGIN
{ các lệnh trong nội bộ thủ tục } END ;
Trang 6GỢI ĐỘNG CƠ HOẠT ĐỘNG TRONG VIỆC GIẢNG DẠY CHƯƠNG TRÌNH CON TIN HỌC 11 Ở TRƯỜNG THPT TRẦN PHÚ
if a > b then max := a else max := b;
if c > max then max := c;
Writeln (' So lon nhat la: ', max:5);
end ; begin Writeln ('Nhap 3 so nguyen : ' );
Readln (a, b, c );
GTLN;
readln;
end
Trong chương trình trên, thủ tục GTLN được khai báo trước khi nó
được truy xuất, các biến a, b, c được gọi nhập vào ở chương trình chính và biến max được định nghĩa bên trong thủ tục Điều này cho ta thấy, không phải lúc nào cũng cần thiết khai báo biến ngay đầu chương trình chính
Cấu trúc của thủ tục có tham số
- Khi viết một thủ tục, nếu có các tham số cần thiết, ta phải khai báo nó
(kiểu, số lượng, tính chất, ) Các tham số này gọi là tham số hình thức
PROCEDURE<Tên thủ tục >(<DS tham số hình thức : kiểu biến>);
{ Các khai báo hằng, biến, kiểu cục bộ } BEGIN
{ các lệnh trong nội bộ thủ tục } END ;
Ví dụ: Hoán đổi 2 số nguyên a và b
program vidu_hoandoi;
Trang 7GỢI ĐỘNG CƠ HOẠT ĐỘNG TRONG VIỆC GIẢNG DẠY CHƯƠNG TRÌNH CON TIN HỌC 11 Ở TRƯỜNG THPT TRẦN PHÚ
x:=y;
y:=TG;
end;
begin clrscr;
- Hàm 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ó
- Cấu trúc một hàm tự đặt gồm:
FUNCTION <Tên hàm> (<Tham số hình thức : kiểu biến>) :
<Kiểu kết quả> ; { các khai báo hằng, biến, kiểu cụcbbộ } BEGIN
{ các khai báo trong nội bộ hàm } END ;
Trong đó:
+ Tên hàm là tên tự đặt cần tuân thủ theo nguyên tắc đặt tên trong Pascal
+ Kiểu kết quả là một kiểu vô hướng, biểu diễn kết quả giá trị của hàm
+ Một hàm có thể có 1 hay nhiều tham số hình thức, khi có nhiều tham số hình thức cùng một kiểu giá trị thì ta có thể viết chúng cách nhau bằng dấu phẩy (,) Trường hợp các tham số hình thức khác kiểu thì ta viết chúng cách nhau bằng dấu chấm phẩy (;)
+ Trong hàm có thể sử dụng các hằng, kiểu, biến đã được khai báo trong chương trình chính nhưng ta có thể khai báo thêm các hằng, kiểu, biến
dùng riêng trong nội bộ hàm Chú ý là phải có một biến trung gian có cùng kiểu kết quả của hàm để lưu kết quả của hàm trong quá trình tính
Trang 8GỢI ĐỘNG CƠ HOẠT ĐỘNG TRONG VIỆC GIẢNG DẠY CHƯƠNG TRÌNH CON TIN HỌC 11 Ở TRƯỜNG THPT TRẦN PHÚ
toán để cuối cùng ta có 1 lệnh gán giá trị của biến trung gian cho tên hàm
Ví dụ: Tìm giá trị nhỏ nhất của 3 số thực a,b và c
writeln('so nho nhat trong 3 so: ', Min(Min(a,b),c):3:1);
c Biến toàn cục (global variable): Còn được gọi là biến chung, là biến
được khai báo ở đầu chương trình, nó được sử dụng bên trong chương trình chính và cả bên trong chương trình con Biến toàn cục sẽ tồn tại trong suốt quá trình thực hiện chương trình
Trang 9GỢI ĐỘNG CƠ HOẠT ĐỘNG TRONG VIỆC GIẢNG DẠY CHƯƠNG TRÌNH CON TIN HỌC 11 Ở TRƯỜNG THPT TRẦN PHÚ
d Biến cục bộ (local variable): Còn được gọi là biến riêng, là biến được khai báo
ở đầu chương trình con, và nó chỉ được sử dụng bên trong thân chương trình con hoặc bên trong thân chương trình con khác nằm bên trong nó (các chương trình con lồng nhau) Biến cục bộ chỉ tồn tại khi chương trình con đang hoạt động, nghĩa là biến cục bộ sẽ được cấp phát bộ nhớ khi chương trình con được gọi để thi hành, và nó sẽ được giải phóng ngay sau khi chương trình con kết thúc
program vidu_hoandoi;
uses crt;
var a,b:integer;
procedure hoan_doi(x:integer; y: integer);
var TG: integer; Biến cục bộ begin
e Tham số hình thức (formal parameter) là các biến được khai báo ngay sau
Tên chương trình con, nó dùng để nhận giá trị của các tham số thực truyền
đến Tham số hình thức cũng là một biến cục bộ, ta có thể xem nó như là các đối số của hàm toán học Tham số hình thức có 2 loại:
+ Tham số hình thức là tham trị, là các tham số hình thức không có từ khóa khai báo biến (var) đứng trước nó, các giá trị chỉ có tác dụng bên trong chương trình con, ra khỏi chương trình con không còn giá trị
+ Tham số hình thức là tham biến là các tham số hình thức có từ khóa khai báo biến (var) đứng trước nó, các giá trị có tác dụng bên trong chương trình con và cả chương trình lớn
Trang 10GỢI ĐỘNG CƠ HOẠT ĐỘNG TRONG VIỆC GIẢNG DẠY CHƯƠNG TRÌNH CON TIN HỌC 11 Ở TRƯỜNG THPT TRẦN PHÚ
var TG: integer;
begin TG:=x;
x:=y;
y:=TG;
end;
begin clrscr;
f Tham số thực (actual parameter) là một tham số mà nó có thể là một biến toàn
cục, một biểu thức hoặc một giá trị số (cũng có thể biến cục bộ khi sử dụng chương trình con lồng nhau) mà ta dùng chúng khi truyền giá trị cho các tham
số hình thức tương ứng của chương trình con
x:=y;
y:=TG;
end;
begin clrscr;
2 Lời gọi đến chương trình con
Để chương trình con được thi hành, ta phải có lời gọi đến chương trình con, lời gọi chương trình con thông qua tên chương trình con và danh sách các tham số tương ứng (nếu có) Các qui tắc của lời gọi chương trình con:
Tham biến Tham trị
Tham số thực
trường hợp này là biến a,b
Trang 11GỢI ĐỘNG CƠ HOẠT ĐỘNG TRONG VIỆC GIẢNG DẠY CHƯƠNG TRÌNH CON TIN HỌC 11 Ở TRƯỜNG THPT TRẦN PHÚ
+ Trong thân chương trình chính hoặc thân chương trình con, ta chỉ có thể gọi tới các chương trình con trực thuộc nó
+ Trong chương trình con, ta có thể gọi các chương trình con ngang cấp
đã được thiết lập trước đó
x:=y;
y:=TG;
end;
begin clrscr;
3 Truyền tham số cho chương trình con
- Khi truyền tham số trong Pascal, đòi hỏi phải có sự tương ứng về tên của kiểu dữ liệu của các tham số hình thức và tham số thực Một số định nghĩa và quitắc về truyền tham số trong Pascal:
+ Những tham số hình thức nằm sau từ khóa VAR gọi là tham số biến
(variable parameter) Với tham số biến, các tham số thực bắt buộc phải là
biến chứ không được là giá trị Khi giá trị của tham số biến thay đổi thì
nó sẽ làm thay đổi giá trị của tham số thực tương ứng và khi ra khỏi chương trình con đó, tham số thực v n giữ giá trị đã được thay đổi đó
+ Những tham số hình thức không đứng sau từ khóa VAR gọi là tham số trị
(value parameter), khi đó các tham số thực có thể là một biến, một biểu thức, một hằng, hoặc một giá trị số Các tham số trị nhận giá trị từ tham
số thực khi truyền như là giá trị ban đầu, khi giá trị của tham số trị thay
đổi thì nó sẽ không làm thay đổi giá trị của tham số thực, nghĩa là giá trị
của tham số thực sau khi thoát khỏi chương trình con v n luôn bằng với
Lời gọi đến CTC có tên hoan_doi
Trang 12GỢI ĐỘNG CƠ HOẠT ĐỘNG TRONG VIỆC GIẢNG DẠY CHƯƠNG TRÌNH CON TIN HỌC 11 Ở TRƯỜNG THPT TRẦN PHÚ
giá trị của tham số thực trước khi truyền đến chương trình con đó Do vậy
một tham trị không bao giờ là kết quả tính toán của chương trình con
a:=5; b:=10;
writeln(a:5, b:5);
hoan_doi(a,b);{ tham số thực a truyền cho tham trị x;
tham số thực b truyền cho tham biến y}
writeln('gia tri sau hoan doi: ', a:5,b:5);
4 Gợi động cơ trong học tập:
- Để Gợi động cơ chúng ta có thể xuất phát từ thực tế hoặc xuất phát từ nội bộ Tin
học
- Việc xuất phát từ thực tế 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 Nhờ đó, học sinh nhận rõ việc nhận thức và cải tạo thế giới đã đòi hỏi phải suy nghĩ và giải quyết những vấn đề Tin học như thế nào, tức là nhận rõ Tin học bắt nguồn từ những nhu cầu của đời sống
Trang 13GỢI ĐỘNG CƠ HOẠT ĐỘNG TRONG VIỆC GIẢNG DẠY CHƯƠNG TRÌNH CON TIN HỌC 11 Ở TRƯỜNG THPT TRẦN PHÚ
thực tế 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, đương nhiên có thể đơn giản hóa vì lý do sư phạm trong trường hợp cần thiết
+ 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
- Mặc dù Tin học phản ánh thực tế một cách toàn bộ và nhiều tầng Tuy nhiên không phải bất cứ nội dung nào, hoạt động nào cũng có thể gợi động cơ xuất phát
từ thực tế Vì vậy, ta còn tận dụng cả những khả năng gợi động cơ xuất phát từ nội
bộ Tin học
- Gợi động cơ từ nội bộ Tin học là nêu vấn đề Tin học xuất phát từ nhu cầu Tin học,
từ việc xây dựng khoa học Tin hoc, từ những phương thức tư duy và hoạt động Tin học Gợi động cơ theo cách này là cần thiết vì:
+ Việc gợi động cơ xuất phát từ thực tế không phải bao giờ cũng thực hiện được
+ Việc gợi động cơ từ nội bộ Tin học sẽ giúp học sinh hình dung được đúng
sự hình thành và phát triển của Tin học cùng với những đặc điểm của nó và
có thể dần dần tiến tới hoạt động Tin học một cách độc lập
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ừ thực tế Còn đối với từng bài hay từng phần của bài thì cần tính tới những khả năng gợi động cơ từ nội bộ Tin học Đó là những cách sau đây:
4.1 Đáp ứng nhu cầu xóa bỏ sự hạn chế
- Do đại đa số học sinh tương đối yếu chính vì vậy bản thân tôi chỉ đưa ra các bài toán đơn giản mục đích cho học sinh hiểu và hệ thống hóa được ý nghĩa của bài học, nắm được cái cốt lõi của vấn đề bài toán
Xét bài toán: Viết chương trình vẽ 5 hình chữ nhật như sau:
* * * * * *
* *
* * * * * * Khi có yêu cầu bài toán như vậy thì chắc chắn học sinh sẽ xây dựng bài toán theo hướng tư duy của các em:
program ve_hcn;