Các bài tập chấm online phần lập trình cơ bản (Chủ đề F, SGK Cánh Diều)

Việc chấm bài tự động trên các trang chấm bài online rất phổ biến ở nhiều nơi, cả ở nước ngoài cũng như Việt Nam. Nhưng ở khu vực mình dạy học, chấm bài tự động như là một "đặc sản" riêng của lớp chuyên Tin học. Mình nghĩ, việc sử dụng công cụ chấm bài tự động để hỗ trợ giáo viên và học sinh trong dạy và học lập trình rất hữu ích kể cả giai đoạn lập trình cơ bản. Bởi thế, mình đã biên soạn lại các bài tập trong SGK Cánh Diều để có thể chấm tự động, đồng thời đưa lên trang này để các HS có thể sử dụng để thực hành. 

Sử dụng hệ thống chấm bài tự động có nhiều lợi ích. Một là, có thể giúp giảm bớt gánh nặng đối với giáo viên trong các giờ thực hành. Giờ thực hành, giáo viên ngoài việc chuẩn bị các nội dung thực hành, giao cho các nhóm học sinh ở từng máy, rồi quan sát, hỗ trợ học sinh ở từng máy, từng bài tập,... rất nhiều việc khiến giáo viên "kiệt sức" ở mỗi giờ thực hành. Mà mỗi giáo viên, một buổi dạy 4, 5 tiết; một tuần 4,5 buổi :( Nếu không dùng công cụ chấm tự động để hỗ trợ thì mệt chết mất. 

Hai là, giúp cho học sinh có thể tự học theo tốc độ của riêng mình. Một thực tế phổ biến trong dạy học lập trình hiện nay là hiện tượng phân hóa lớp học. Tức là, tại một thời điểm, rất nhiều học sinh ở các mức trình độ khác nhau; sau một thời gian ngắn, lớp tự động phân hóa thành nhiều nhóm với tốc độ học tập rất khác nhau. Nhóm những học sinh khá giỏi thì vừa hứng thú, yêu thích lập trình, lại có khả năng tự học tốt nên ở một mức cao. Nhóm đại trà, trung bình thì tốc độ học tập bình thường, vẫn yêu thích môn học và học theo tốc độ của giáo viên trên lớp. Một nhóm chậm, nhóm này gồm các em có khả năng học tập thấp hơn, mức độ hứng thú với môn học có thể cũng không kém hai nhóm trên nhưng có thể các em còn nhiều bỡ ngỡ ở giai đoạn đầu tiên nên tốc độ học tập chậm hơn nhiều so với các bạn. 

Hệ thống chấm bài tự động xem như một khung gồm các bài tập được sắp xếp theo thứ tự từ dễ tới khó (theo định hướng của SGK và giáo viên); bởi thế, theo khung đó, các học sinh dù ở nhóm nào cũng có thể học tập theo tốc độ của mình. Một điều thú vị khi sử dụng hệ thống chấm bài tự động đó là: mỗi học sinh, sau khi nộp bài đều biết luôn kết quả của mình (Đạt-AC; lỗi cú pháp, sai một vài trường hợp...). Trên cơ sở những phản hồi của hệ thống chấm, học sinh tự mình điều chỉnh, tìm lỗi, gỡ lỗi. Điều này là điểm chính giúp cho mỗi HS có thể tùy theo năng lực, mức độ yêu thích để phát triển theo con đường của mình.

Ba là, tạo và giữ hứng thú học lập trình cho học sinh. Ở môi trường học thực hành truyền thống không có hỗ trợ của chấm tự động, mỗi học sinh (nhóm HS) sau khi làm xong một bài, chạy thử tại máy của mình, còn phải đợi sự đánh giá, phản hồi của giáo viên để đảm bảo bài của mình không còn lỗi, và đợi thầy cô "chấm điểm"... Nếu như một lớp học có quá nhiều học sinh, các học sinh đều làm việc độc lập tại máy tính của mình, giáo viên không thể có thời gian quán xuyến và quan tâm đầy đủ được. Khi đó, học sinh dễ rơi vào trạng thái chờ đợi nhận xét từ giáo viên, hoặc không yên tâm chuyển sang bài khác khi bài hiện tại còn băn khoăn chưa biết đúng, sai... Hoặc học sinh gặp các lỗi nhỏ trong quá trình thực hành, các lỗi liên quan tới phần mềm, cú pháp, ngữ nghĩa... rất đơn giản nhưng các em chưa đủ kinh nghiệm xử lí... những điều này góp phần gây nên sự "mất hứng" đối với học sinh. Do đó mà chất lượng tiết học không được như ý. Ảnh hưởng tới quá trình học tập chung.

Đối với học sinh có nền tảng lập trình tốt, có thể tham gia các trang online judge trong nước như: vnoj; lqdoj; ntucoder; 

Còn bây giờ, hãy thử sức với loạt bài tập cơ bản theo chương trình Tin học - chủ đề F, SGK Cánh Diều. Các bài tập được thiết kế có độ khó từ thấp tới cao. Để đạt được hiệu quả học tập tốt, hãy sử dụng SGK Cánh Diều với các phần tương ứng với các bài như sau:

  • Phần Khởi động bài 1, 2, 3, 4, 5
  • Phần Cấu trúc rẽ nhánh bài 6, 7
  • Phần Cấu trúc lặp bài 8, 9
  • Phần Hàm bài 10, 11
  • Phần Xâu kí tự bài 12, 13
  • Phần Danh sách bài 14, 15
  • Phần Luyện tập tổng hợp bài 16, 17, 18
Và đây là link đề bài và chấm: https://codeforces.com/group/voSoHOJamK/contests. Các bạn cần tạo tài khoản ở trang Codeforces.com, sau khi đăng nhập, hãy vào lại link này để làm và nộp bài. Trên trang có các công cụ trình biên dịch online CUSTOM INOVATION, vị trí nộp bài ở thẻ SUBMIT CODE: các bạn chọn tên bài, chọn ngôn ngữ mình dùng (nếu theo SGK Cánh Diều thì chọn Python 3 nhé); rồi các bạn paste code của mình vào khung code; Bấm SUBMIT là thấy kết quả.

Phần kết quả; nếu bạn thấy trạng thái là Acepted màu xanh thì chúc mừng bạn, bạn đã làm tốt rồi đấy; trong trường hợp bạn còn bị Wrong Answer On Test x thì bạn sẽ được hiện trường hợp mà code bạn còn chưa đúng.


Trong khi các bạn thực hành hệ thống bài tập cơ bản này, nếu có vướng mắc gì có thể hỏi giáo viên của mình hoặc để lại comment hay hỏi trực tiếp theo liên hệ FB của tác giả. Chúc các bạn học lập trình vui vẻ, hiệu quả.

Comments

Popular posts from this blog

Bài toán dãy tìm con liên tiếp

Hướng dẫn cách Debug trong Free Pascal

Tìm kiếm nhị phân (Binary Search)