Đề cương Sáng kiến Sử dụng phần mềm chấm bài Themis góp phần nâng cao chất lượng bồi dưỡng học sinh giỏi Tin học 9

pdf 21 trang sklop9 02/12/2024 160
Bạn đang xem 20 trang mẫu của tài liệu "Đề cương Sáng kiến Sử dụng phần mềm chấm bài Themis góp phần nâng cao chất lượng bồi dưỡng học sinh giỏi Tin học 9", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

Tóm tắt nội dung tài liệu: Đề cương Sáng kiến Sử dụng phần mềm chấm bài Themis góp phần nâng cao chất lượng bồi dưỡng học sinh giỏi Tin học 9

Đề cương Sáng kiến Sử dụng phần mềm chấm bài Themis góp phần nâng cao chất lượng bồi dưỡng học sinh giỏi Tin học 9
 UBND THỊ XÃ NINH HÒA 
 PHÒNG GIÁO DỤC VÀ ĐÀO TẠO 
 Kính gửi: Hội đồng Xét duyệt sáng kiến thị xã 
 ĐỀ CƯƠNG SÁNG KIẾN 
Đề tài: 
 “Sử dụng phần mềm chấm bài Themis góp phần nâng cao 
chất lượng bồi dưỡng học sinh giỏi tin học 9” 
 Họ và tên: Trần Minh Thọ 
 Chức vụ: Giáo viên – Tổ phó tổ Toán, Tin, Thể dục 
 Đơn vị công tác: Trường THCS Trần Quang Khải 
 Đề tài chuyên môn: Môn tin học khối lớp 9 
 Tháng 8 năm 2020 
 CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM 
 Độc lập - Tự do - Hạnh phúc 
 ĐỀ CƯƠNG SÁNG KIẾN 
 - Họ và tên: Trần Minh Thọ Giới tính: Nam 
 - Ngày, tháng, năm sinh: 19/08/1982 
 - Cơ quan, đơn vị công tác: THCS Trần Quang Khải 
 - Chức vụ/ chức danh: Tổ Phó tổ Toán, Tin, thể dục 
 - Trình độ chuyên môn: Đại học sư phạm 
1. Tên sáng kiến: 
 Sử dụng phần mềm chấm bài Themis góp phần nâng cao chất lượng bồi 
dưỡng học sinh giỏi tin học 9 
2. Lĩnh vực áp dụng 
2.1. Lĩnh vực áp dụng sáng kiến: 
 Áp dụng cho việc dạy học môn tin học phần ngôn ngữ lập trình Pascal và 
đặc biệt là bồi dưỡng học sinh giỏi môn tin học. 
2.2. Mục tiêu 
 Môn tin học ở trường phổ thông trang bị cho học sinh những hiểu biết cơ 
bản về công nghệ thông tin và vai trò của nó trong xã hội hiện đại. Môn học này 
giúp học sinh bước đầu làm quen với phương pháp giải quyết vấn đề theo quy 
trình công nghệ và kĩ năng sử dụng máy tính phục vụ học tập và cuộc sống. Tin 
học có ý nghĩa to lớn đối với sự phát triển trí tuệ, tư duy thuật toán, góp phần 
hình thành học vấn phổ thông cho học sinh. 
 Bồi dưỡng học sinh giỏi là một trong những phong trào mũi nhọn của 
trường và của Thị xã, Có học sinh giỏi các cấp nhất là học sinh giỏi Thị xã, 
Tỉnh. Giáo viên mới thấy được sự thành công của mình trong sự nghiệp giáo dục 
và sự tiến bộ nghề nghiệp đối với xã hội. 
 Để học tốt môn ngôn ngữ lập trình Pascal học sinh cần được hình thành 
và rèn luyện tư duy lập trình, việc hình thành và rèn luyện được giáo viên chú 
trọng thường xuyên thông qua một số bài toán đơn giản nhưng đòi hỏi phải có 
sự vận dụng tư duy của học sinh. 
 Phần mềm Themis là phầm mềm chấm bài tự động là công cụ hỗ trợ 
quan trọng của giáo viên và ban giám khảo các kì thi lập trình, phần mềm có 5. Mô tả sáng kiến: 
5.1. Về nội dung của sáng kiến: 
 Nội dung của sáng kiến là nêu lên các kinh nghiệm trong việc sử dụng 
phần mềm chấm bài Themis để góp phần nâng cao chất lượng bồi dưỡng học 
sinh giỏi môn tin học 9. Sáng kiến giúp cho giáo viên tiết kiệm nhiều thời gian 
khi chấm bài (code) của học sinh, tạo tác phong làm việc chuyên nghiệm, khoa 
học. Sáng kiến nhằm giúp cho học sinh có tư duy lập trình, giúp các em giải các 
bài toán về lập trình tốt hơn, các em có hứng thú hơn khi học lập trình, không 
còn thấy môn học khô khan, khó, đặc biệt là các em học sinh giỏi sẽ tìm ra các 
giải pháp để giải các đề thi một cách trọn vẹn và làm được hết các test cũng như 
yêu cầu mà đề đưa ra. 
5.1.1. Hình thành lòng yêu thích học lập trình 
 Giáo viên cần tạo cho học sinh lòng yêu thích học lập trình thông qua 
việc giới thiệu một số người thành đạt trên thế giới nhờ học giỏi về tin học và 
được học lập trình từ nhỏ như tỉ phú Bill Gates - tác giả và chủ tịch tập 
đoàn Microsoft, hãng phần mềm khổng lồ; Mark Elliot Zuckerberg là một 
nhà lập trình máy tính người Mỹ, đồng sáng lập của Facebook; Larry 
Page và Sergey Brin sáng lập Google từ năm 1998... 
 Giởi thiệu cho học sinh xem các video nói về việc dạy học lập trình từ 
nhỏ cho học sinh tiểu học, ứng dụng lập trình pascal để điều khiển Robot....các 
video nói về lợi ích của việc học lập trình 
 Thời sự VTV1 nói về tác dụng của học lập trình: https://youtu.be/cVs-
wqwCoQ8 
 Vì sao phải dạy lập trình cho con từ nhỏ: 
https://youtu.be/7RlumXKoEXY 
 Tại sao mọi người nên học lập trình: https://youtu.be/OQAnhML3Q8g 
 Hào hứng ứng dụng thuật toán pascal để lập trình Robot: 
https://dantri.com.vn/giao-duc-khuyen-hoc/hao-hung-ung-dung-thuat-toan-
pascal-de-lap-trinh-robot-20160411071310523.htm 
5.1.2. Sử dụng phần mềm Themis 
5.1.2.1. Giới thiệu về phần mềm: 
 Themis là phần mềm chấm bài tự động được phát triển theo yêu cầu của 
Cục Khảo thí và Kiểm định chất lượng giáo dục, Bộ Giáo dục và Đào tạo. Sản 
phẩm được thiết kế phục vụ ký thi học sinh giỏi Quốc gia hàng năm, nhưng 
 3 
 Trong thư mục này chứa 2 thư mục con là Đáp án và Thí Sinh, thư mục đáp án 
chứa thư mục mang tên các đề thi và bộ test đáp án gồm file input và file output. 
Thư mục Thí sinh chứa các thư mục con là Số báo danh của thí sinh trong mỗi 
số báo danh lại chứa các tệp tin .pas là bài thi của học sinh. 
 5 
 b. Xem điểm và báo cáo kết quả 
Phần mềm chấm và hiện kết quả điểm từng bài, điểm tổng cộng. Đối với những 
bài bị lỗi thì hiện kí tự đặc biệt. 
Ví dụ: bảng chấm điểm kiểm tra học kì 2 của nửa lớp 82 năm học 2019 – 2020 
Đối với các bài có kí tự đặc biệt thì giáo viên kiểm tra lại bằng tay, để xem mức 
độ làm bài của học sinh. 
Sau đây là 2 trường hợp lỗi thường xảy ra đối với bài làm của học sinh 
Một là học sinh chưa làm bài ví dụ bài 4 ở máy 10 
Hai là bài dịch bị lỗi ví dụ bài 4 ở máy 9 
Bài 3 ở máy 9 thì bài làm không qua được hết các test nên không đạt điểm tối đa 
chỉ đạt 1,5/2. Còn bài 1 ở máy 9 thì không bị lỗi gì nhưng làm không đúng nên 
bị điểm 0/4. 
 7 
 5.1.3. Cách tạo bộ test cho mỗi bài tập, đề thi 
 5.1.3.1. Sự cần thiết phải có bộ Test 
 Bộ test có vai trò cực kì quan trọng, bộ test giúp phần mềm kiểm tra và 
chấm bài của học sinh theo tiêu chuẩn do giáo viên đưa ra. Khi tạo bộ test giáo 
viên cần tính hết các trường hợp mà học sinh có thể mắc phải sai lầm ví dụ như 
khai báo biến có kiểu dữ liệu nhỏ, các trường hợp số âm, các trường hợp số rất 
nhỏ, rất lớn,... Thông thường mỗi bài tập có từ 10 đến 20 bộ test. Một số trường 
hợp thì ít nhất phải có 5 bộ test. Nếu bộ test không chuẩn, không lường hết 
trường hợp thì giải thuật của học sinh không chính xác vẫn đạt điểm tối đa. Vì 
vậy bộ test có vai trò cực kì quan trọng. 
 5.1.3.2. Cấu trúc bộ test 
 Mỗi bài đều có trúc bộ test như sau: (1 phần của ví dụ ở trên) 
BÀI 1 
 TEST01 
 BAI1.INP 
 BAI1.OUT 
 TEST02 
 BAI1.INP 
 BAI1.OUT 
 TEST03 
 BAI1.INP 
 BAI1.OUT 
 ... 
 Trong đó các tệp BAI1.INP Là dữ liệu nhập vào, ứng với nó BAI1.OUT là 
dữ liệu xuất ra. Phần mềm sẽ căn cứ vào bộ test chuẩn này để chấm bài. Nếu 
khớp thì sẽ cho điểm phần test đó, nếu không khớp thì test đó bị 0 điểm. 
 9 
 Để giải bài toán trên thì ta cần tìm tích 2 phần tử lớn nhất, gọi là tích 1, và 
tìm tích 2 phần tử bé nhất (để phòng trường hợp là 2 số đều âm, thì tích của 
chúng ra số dương nên cũng có thể là lớn nhất) gọi là tích 2, kết quả bài toán 
chính là số lớn nhất của tích 1 và tích 2. 
 Để tìm 2 phần tử lớn nhất thì ta dùng cách sắp xếp 2 phần tử lớn nhất ra 
đầu, sau đó để tìm 2 phần tử nhỏ nhất thì ta cũng sắp xếp 2 phần tử nhỏ nhất ra 
đầu. 
Use math; 
var a:array[1..100000]of longint; 
 i,n,t,tich1,tich2,j:longint; 
 f:text; 
begin 
assign(f,'BAI1.inp'); 
reset(f); 
readln(f,n); 
for i:=1 to n do read(f,a[i]); 
close(f); 
for i:=1 to 2 do 
 for j:=i+1 to n-1 do 
 if a[i]<=a[j] then 
 begin 
 t:=a[i]; 
 a[i]:=a[j]; 
 a[j]:=t; 
 end; 
tich1:=a[1]*a[2]; 
for i:=1 to 2 do 
 for j:=i+1 to n-1 do 
 if a[i]>=a[j] then 
 begin 
 t:=a[i]; 
 a[i]:=a[j]; 
 a[j]:=t; 
 end; 
tich2:=a[1]*a[2]; 
assign(f,'BAI1.OUT'); 
Rewrite(f); 
write(f,max(tich1,tich2)); 
close(f); 
readln 
end. 
Xây dựng bộ test 
Khi xây dựng bộ test cần lưu ý đầy đủ các trường hợp 
 11 
 BAI2.INP BAI2.OUT 
 7 10 
 1 2 -4 3 5 -1 3 3 5 -1 3 
Giáo viên cần giải bài trên để có code xây dựng bộ test: 
var a:array[1..1000]of longint; 
 n,i,j,d,c,s,max:longint; 
 f:text; 
Begin 
Assgin(f,’BAI2.inp’); 
Reset(f); 
read(f,n); 
for i:=1 to n do read(f,a[i]); 
close(f); 
max:=low(longint); 
for i:=1 to n do 
 begin 
 s:=a[i]; 
 for j:=i to n do 
 begin 
 if ij then s:=s+a[j]; 
 if s>max then begin max:=s;d:=i;c:=j;end; 
 end; 
 end; 
assign(f,’BAI2.OUT’); 
rewrite(f); 
writeln(f,max); 
for i:=d to c do write(f,a[i],' '); 
close(f); 
end. 
Xây dựng bộ test 
Khi xây dựng bộ test cần lưu ý đầy đủ các trường hợp 
 Test có đoạn con là 1 số dương lớn nhất (03) 
 Test có đoạn con là 1 số âm lớn nhất (04) 
 Test toàn số dương (05) 
 Test toàn số âm (04) 
 Test có số âm và dương (01, 02) 
 Test có 2 đoạn có tổng bằng nhau(06) 
 13 
 Giáo viên cần giải bài trên để có code xây dựng bộ test : 
var f,g:text; 
 N,K,M,x,y:longint; 
Begin 
 assign(f,'CONG.INP'); reset(f); 
 assign(g,'CONG.OUT'); rewrite(g); 
 readln(f,N,K); close(f); 
 M:=0; 
 while N>0 do 
 begin 
 x:=N mod 10; 
 y:=K mod 10; 
 M:=M*10+(x+y) mod 10; 
 K:=K div 10; 
 N:=N div 10; 
 end; 
 N:=0; 
 While M>0 do 
 begin 
 N:=N*10+M mod 10; M:=M div 10; 
 end; 
 writeln(g,N); 
 close(g); 
end. 
Khi xây dựng bộ test cần lưu ý đầy đủ các trường hợp từ số nhỏ có 1 chữ số đến 
số lớn 109 
Test BAI3.INP BAI3.OUT 
01 1 1 2 
02 8 9 7 
03 111 999 0 
04 545 847 382 
05 4237 6236 463 
06 64590 38439 92929 
07 437587 297535 624012 
08 891773 567130 358803 
09 96366277 27265630 13521807 
10 383441522 477665112 750006634 
 15 
 const n:array[0..9] of longint=(10,20,60,100,120); 
var t,i:longint; 
 s:string; 
 f:text; 
begin 
 randomize; 
 for t:=0 to 4 do 
 begin 
 str(t,s); 
 s:='test'+s; 
 mkdir(s); 
 s:=s+'/BAI4.inp'; 
 assign(f,s); 
 rewrite(f); 
 writeln(f,n[t]); 
 for i:=1 to n[t] do write(f,random(n[t]*10)+1,' '); 
 close(f); 
 end; 
end. 
Ghi chú: Hàm mkdir(s) dùng để tạo thư mục s 
Lưu ý: lúc này trong thư mục các test0 đến test4 chỉ chứa các file BAI4.INP 
Để tạo file BAI4.OUT ta cần chạy đoạn chương trình sau (đây cũng gần là đáp 
án của bài) 
var n,i,j,tg,t:longint; 
 a:array[1..1000] of longint; 
 f,g:text; 
 s:string; 
begin 
for t:=0 to 4 do 
 begin 
 str(t,s); 
 s:='test'+s+’\’; 
 assign(f,s+'BAI4.INP'); reset(f); 
 assign(g,s+'BAI4.OUT'); rewrite(g); 
 readln(f,n); 
 for i:=1 to n do read(f,a[i]); 
 for i:=1 to n-1 do 
 for j:=i+1 to n do 
 if a[i]>a[j] then 
 begin 
 tg:=a[i]; a[i]:=a[j]; a[j]:=tg; 
 end; 
 for i:=1 to n do write(g,a[i],' '); 
 close(f); close(g); 
 end; 
end. 
 17 

File đính kèm:

  • pdfde_cuong_sang_kien_su_dung_phan_mem_cham_bai_themis_gop_phan.pdf