1. Trang chủ
  2. » Luận Văn - Báo Cáo

Triển khai hệ thống upcoder để chấm bài tự động học phần kỹ thuật lập trình 1

22 21 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Triển Khai Hệ Thống Upcoder Để Chấm Bài Tự Động Học Phần Kỹ Thuật Lập Trình 1
Tác giả Phan Thị Trinh
Người hướng dẫn Giảng viên
Trường học Trường Cao Đẳng Công Nghệ Thủ Đức
Chuyên ngành Công Nghệ Thông Tin
Thể loại Sáng Kiến Kinh Nghiệm
Năm xuất bản 2022
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 22
Dung lượng 1,18 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

ỦY BAN NHÂN DÂN TP.HCM TRƯỜNG CAO ĐẲNG CÔNG NGHỆ THỦ ĐỨC KHOA CÔNG NGHỆ THÔNG TIN SÁNG KIẾN KINH NGHIỆM NĂM HỌC 2021 -2022 Tên sáng kiến: Triển khai hệ thống Upcoder để chấm bài tự đ

Trang 1

ỦY BAN NHÂN DÂN TP.HCM

TRƯỜNG CAO ĐẲNG CÔNG NGHỆ THỦ ĐỨC

KHOA CÔNG NGHỆ THÔNG TIN

SÁNG KIẾN KINH NGHIỆM NĂM HỌC 2021 -2022

Tên sáng kiến: Triển khai hệ thống Upcoder để chấm

bài tự động học phần Kỹ thuật lập trình 1

Tên người viết sáng kiến: Phan Thị Trinh

Chức danh: Giảng viên Đơn vị: Khoa Công nghệ thông tin

TP Hồ Chí Minh, năm 2022

Trang 2

MỤC LỤC

I Phần mở đầu 4

1.1 Đặt vấn đề 4

1.1.1 Lý do chọn sáng kiến kinh nghiệm 4

1.1.2 Mục đích của sáng kiến kinh nghiệm 5

1.2 Tổng quan 5

II Phần nội dung 6

2.1 Cơ sở lý luận của vấn đề: Dựa vào căn cứ nào? 6

2.2 Cơ sở thực tiễn (Thực trạng vấn đề nghiên cứu) 8

2.3 Các biện pháp đã tiến hành để giải quyết vấn đề: 11

2.4 Hiệu quả của SKKN 18

2.5 Những bài học kinh nghiệm được rút ra từ quá trình áp dụng sáng kiến, kinh nghiệm, giải pháp của bản thân 20

III Kết luận và Kiến nghị 20

3.1 Kết luận 20

3.2 Kiến nghị 21

Tài liệu tham khảo 21

Trang 3

DANH MỤC CHỮ VIẾT TẮT

SKKN: Sáng kiến kinh nghiệm

ACM-ICPC: ACM International Collegiate Programming Contest

IDE: Integrated Development Environment

HCMC: Ho Chi Minh City

DANH MỤC HÌNH ẢNH

Hình 1: Sơ đồ mô tả các bước học và đánh giá học phần 8

Hình 2: Trang chủ Upcoder 11

Hình 3: Thiết kế các chương cho học phần 12

Hình 4: Thiết kế nội dung bài tập và testcase 13

Hình 5: Danh sách bài tập 14

Hình 6: Giao diện làm bài thực hành 14

Hình 7: Kết quả chấm tự động 15

Hình 8: Giao diện thiết kế bài kiểm tra, bài thi 16

Hình 9: Danh sách các kỳ thi 17

Hình 10: Giao diện theo dõi tiến trình học tập của sinh viên 18

Hình 11: Biểu đồ so sánh tỷ lệ sinh viên rớt Kỹ thuật lập trình 1 20

DANH MỤC BẢNG BIỂU SỐ LIỆU Bảng 1: Chi tiết số liệu sinh viên rớt Kỹ thuật lập trình 1 năm 2020-2021 19

Bảng 2: Chi tiết số liệu sinh viên rớt Kỹ thuật lập trình 1 năm 2021-2022 19

Bảng 3: So sánh số liệu sinh viên rớt Kỹ thuật lập trình 1 năm 2020-2021 và 2021-2022 19

Trang 4

I Phần mở đầu

1.1 Đặt vấn đề

1.1.1 Lý do chọn sáng kiến kinh nghiệm

Trong những năm học vừa qua, hiệu suất đào tạo của ngành Công nghệ thông tin rất thấp Điều này luôn là mối trăn trở của chủ nhiệm khoa và tập thể giáo viên của khoa Công nghệ thông tin Lý do hiệu suất đào tạo thấp xuất phát

từ rất nhiều nguyên nhân như: nhiều sinh viên đăng ký học để xin giấy hoãn nghĩa vụ quân sự, sinh viên chọn ngành học không phù hợp nên chuyển ngành khi đang học giữa chừng, sinh viên không đủ điều kiện tài chính theo học nên bỏ học để đi làm, sinh viên không đủ tư duy để theo học, ….Trong các lý do khách quan và chủ quan trên, chủ nhiệm khoa và tập thể giáo viên khoa Công nghệ thông tin luôn tìm cách khắc phục để giảm số lượng sinh viên bỏ học

Là một giáo viên nhiều năm giảng dạy các môn cơ sở nền của ngành Công nghệ thông tin, tôi nhận thấy tình trạng sinh viên năm nhất, ngành công nghệ thông tin gặp khó khăn, nợ học phần Kỹ thuật lập trình 1 ngay học kỳ đầu của năm nhất là một trong những lý do dẫn tới hiệu suất đào tạo thấp Đa phần các sinh viên năm nhất gặp khó khăn do đặc thù môn học đòi hỏi nhiều tư duy và thiếu trang thiết bị máy tính thực hành, dẫn tới học không hiệu quả hoặc bị rớt quá nhiều, dẫn tới nợ học phần Kỹ thuật lập trình 1 Theo đó, vào học kỳ thứ 2 của năm nhất và các năm sau, các em không thể theo học các môn lập trình nâng cao tiếp theo, dẫn đến học tập kém, chán nản bỏ học

Đặc biệt trong bối cảnh dịch bệnh, sinh viên phải học online, không thể đến trường nên việc học tập bị thiếu trang thiết bị càng nghiêm trọng hơn Giáo viên

bộ môn giảng dạy online cũng khó khăn để hướng dẫn, giám sát quá trình thực hành và làm bài tập của các em

Vấn đề cấp thiết đặt ra là làm sao để nâng cao chất lượng và hiệu quả học phần Kỹ thuật lập trình 1, tạo cho sinh viên có hứng thú học tập chủ động, nhằm giảm số lượng sinh viên bỏ học

Trang 5

Chính vì những lý do nêu trên, tôi quyết định chọn đề tài SKKN: “Triển khai hệ thống Upcoder để chấm bài tự động học phần Kỹ thuật lập trình 1”

Đề tài được áp dụng cho sinh viên ngành Công nghệ thông tin, bắt đầu từ học kỳ 1 năm 2021-2022, học phần Kỹ thuật lập trình 1

Hệ thống này có tính mới là sinh viên có thể đăng nhập vào hệ thống làm bài và chấm bài tự động Giáo viên có thể theo dõi, giám sát, đánh giá cũng như kịp thời góp ý điều chỉnh cho sinh viên trong quá trình học

1.1.2 Mục đích của sáng kiến kinh nghiệm

Hệ thống Upcoder để chấm bài tự động học phần Kỹ thuật lập trình 1 được triển khai nhằm mục đích nâng cao hiệu quả học học phần Kỹ thuật lập trình 1 cho sinh viên năm nhất, giảm số lượng sinh viên rớt học phần này, giảm số lượng sinh viên bỏ học, nâng cao hiệu suất đào tạo của ngành Công nghệ thông tin

1.2 Tổng quan

Hệ thống có thể tự động chấm bài lập trình của sinh viên đã được các trường đại học trên thế giới thiết kế và ứng dụng trong nhiều năm qua Đặc biệt trong những năm gần đây, các hệ thống tự động chấm bài lập trình được phát triển và ứng dụng ngày càng nhiều hơn trong lĩnh vực giáo dục và trong cả các lĩnh vực khác như tuyển dụng, việc làm

Hiện nay, ACM-ICPC được xem là kỳ thi lập trình lâu đời và danh giá nhất dành cho sinh viên các trường đại học và cao đẳng trên thế giới Trong những năm đầu tổ chức kỳ thi, hệ thống chấm bài bán tự động đã được triển khai để chấm điểm các bài lập trình của các đội thi Qua thời gian, hệ thống chấm bài được nâng cấp theo hướng tự động hóa ngày càng cao Ở Việt Nam, kỳ thi Olympic Tin học sinh viên toàn quốc đã được ban tổ chức triển khai hệ thống chấm bài lập trình tự động hoàn toàn cho các khối thi cá nhân từ năm 2016 Dựa trên sự phát triển mạnh mẽ của nền tảng Internet, các khóa học lập trình trực tuyến được mở ra ngày càng nhiều Người học có thể tham gia học tập tại

Trang 6

mọi thời điểm, mọi nơi phù hợp với điều kiện của cá nhân Trong quá trình học tập trực tuyến, các hệ thống chấm bài tự động sẽ được sử dụng là một lẽ tất yếu Ngoài ra, các hệ thống đánh giá tự động đã và đang được ứng dụng ngày càng nhiều vào quá trình tuyển dụng, đánh giá lập trình viên Với phiên bản thử nghiệm ban đầu, hệ thống Codility đã đem lại hiệu quả cao trong việc hỗ trợ công

ty sàng lọc ứng viên tham gia tuyển dụng vào vị trí lập trình viên Trong vòng sơ loại, công ty đưa ra một số bài toán và yêu cầu tất cả ứng viên làm bài qua hệ thống chấm tự động Hơn 90% ứng viên bị loại do không làm đúng trọn vẹn các bài toán dễ nhất trong số đó

Chính vì vậy, sáng kiến kinh nghiệm này đề xuất một hệ thống trực tuyến Upcoder, có thể tự động chấm bài lập trình của sinh viên khoa Công nghệ thông tin Qua đó, góp phần tăng hiệu quả của việc dạy và học môn Kỹ thuật lập trình

1, nâng cao hiệu suất đào tạo của ngành Công nghệ thông tin

II Phần nội dung

2.1 Cơ sở lý luận của vấn đề: Dựa vào căn cứ nào?

- Học phần Kỹ thuật lập trình 1: là học phần cơ sở chuyên ngành giúp sinh viên ngành Công nghệ thông tin và sinh viên ngành Truyền thông & Mạng máy tính

có kiến thức và kỹ năng cơ bản về lập trình, từ đó sinh viên hình thành được tư duy về lập trình và có khả năng sử dụng ngôn ngữ lập trình để giải một số bài toán trên máy tính Mục tiêu của học phần là sinh viên có thể:

+ Phân biệt được các dạng lập trình Trình bày các bước để giải quyết bài toán trên máy tính; Mô tả thuật toán bằng lưu đồ/mã giả

+ Phân biệt được hằng, biến, các kiểu dữ liệu cơ bản, toán tử, các cấu trúc điều khiển, cấu trúc lặp

+ Sử dụng thành thạo các cấu trúc điều kiện và cấu trúc lặp

+ Sử dụng thành thạo hàm, mảng một chiều để giải quyết các bài toán theo yêu cầu

Trang 7

+ Hình thành tư duy lập trình và tư duy thuật toán để giải quyết một số bài toán vừa và nhỏ theo hướng lập trình thủ tục

+ Sử dụng thành thạo bộ công cụ IDE trong soạn thảo, gỡ lỗi và chạy chương trình

+ Luôn viết code theo chuẩn

+ Thường xuyên chủ động tìm hiểu vấn đề Làm bài tập theo yêu cầu của Giảng viên và nộp bài đúng quy định

- Phần mềm chấm bài tự động là công cụ hỗ trợ quan trọng trong các kỳ thi lập trình như kỳ thi lập trình quốc tế ACM/ICPC Ưu điểm chính của việc sử dụng phần mềm chấm bài tự động so với cách chấm truyền thống là:

+ Tự động hóa các thao tác cho điểm, tránh sự nhầm lẫn khi lên điểm và xếp hạng

+ Quá trình cho điểm được thực hiện hoàn toàn khách quan trên các bộ test được xây dựng từ trước, không bị ảnh hưởng bởi ý kiến chủ quan hay tâm lý người chấm

+ Việc in ấn các bảng biểu, lấy ra các số liệu thống kê được thực hiện hoàn toàn tự động và chính xác Những số liệu thống kê đó có thể tích hợp vào các phần mềm khác để làm báo cáo và rút kinh nghiệm cho các kỳ thi sau

+ Sau khi kỳ thi kết thúc, dữ liệu cho kỳ thi có thể công bố và các thí sinh khác có thể luyện tập trên các bài thi, sau đó dùng chương trình chấm tự động để tự đánh giá Việc này sẽ giúp ích cho việc rèn luyện, nâng cao kỹ năng lập trình

- Hệ thống chấm bài lập trình tự động Upcoder: được khoa Công nghệ thông tin trường Đại học Sư phạm TP Hồ Chí Minh phát triển và áp dụng từ năm 2016 cho việc học tập, rèn luyện kỹ năng lập trình và thi các môn Lập trình căn bản, Lập trình nâng cao, Lập trình hướng đối tượng, Cấu trúc dữ liệu, Lý thuyết đồ thị Năm 2017, hệ thống Upcoder đã được sử dụng cho kỳ thi Olympic Tin học

và ACM/ICPC Asia HCMC 2017, được đánh giá cao về tính chính xác, tiện dụng, khả năng hỗ trợ cho việc chấm bài lập trình tự động

Trang 8

2.2 Cơ sở thực tiễn (Thực trạng vấn đề nghiên cứu)

Phần lớn các trường đại học, cao đẳng trong nước hiện nay đều có đào tạo ngành Công nghệ thông tin hoặc các ngành liên quan đến lập trình Do đó rèn luyện kỹ năng thông qua các bài tập lập trình cho sinh viên các ngành này là rất cần thiết Tuy nhiên, quy trình dạy, học và đánh giá các môn lập trình hiện nay ở các trường đại học và cao đẳng đa phần dừng lại ở mức thủ công

Hình 1: Sơ đồ mô tả các bước học và đánh giá học phần Quy trình này có một số nhược điểm sau:

- Giữa hai bước liền kề trên luôn có một thời gian trễ nhất định (thường ít nhất là

1 đến 2 ngày) do không phải lúc nào giáo viên cũng gặp được sinh viên ngược lại

- Giáo viên phải dành nhiều thời gian để đánh giá bài làm, sinh viên phải chờ đợi phản hồi từ giáo viên, dẫn tới hiệu quả dạy học và đánh giá không cao

Trang 9

- Giáo viên phải thu thập từng bài làm của sinh viên, biên dịch từng chương trình

và chấm điểm, dựa trên việc so sánh kết quả chương trình với đáp án có sẵn hoặc

sử dụng các bộ test với các thao tác thủ công để kiểm lỗi Những điều này sẽ khiến việc chấm bài lập trình bị chậm, dễ sai sót, và không khách quan, dẫn đến lãng phí thời gian và công sức của giáo viên

- Số lượng sinh viên mỗi lớp trên thực tế của các trường khá đông nên giáo viên khó đảm bảo đánh giá hết công việc từng sinh viên trong một buổi thực hành trên lớp Bài tập sinh viên về nhà làm ít có cơ hội được đánh giá đầy đủ mức độ đúng sai Thời gian để tất cả sinh viên có thể trao đổi trực tiếp với giáo viên không đủ dẫn đến nhiều sinh viên không nắm vững những kiến thức và kỹ năng lập trình cơ bản Từ đó sinh viên có thể sẽ bị yếu kỹ năng lập trình

Từ thực trạng trên, tôi đã đề xuất với ban chủ nhiệm khoa hợp tác triển khai

hệ thống chấm bài lập trình tự động Upcoder để chấm bài tự động học phần Kỹ thuật lập trình 1 trong học kỳ 1 năm học 2021-2022 Sau một học kỳ triển khai hệ thống Upcoder, tôi nhận thấy những thuận lợi và khó khăn như sau:

- Thuận lợi:

+ Trong bối cảnh dịch bệnh Covid-19 kéo dài, sinh viên phải học online thì hệ thống đã góp phần hỗ trợ sinh viên học tập, thực hành rèn luyện kỹ năng lập trình thông qua hệ thống bài tập phong phú do giảng viên đưa lên Hệ thống bài tập được phân loại theo từng chương từ căn bản đến nâng cao giúp sinh viên có thể tự học, tự thực hành và củng cố lại kiến thức đã học một cách dễ dàng, hiệu quả hơn

+ Giảng viên không cần chấm bài, hệ thống sẽ tự chấm điểm dựa vào những testcase (đáp án) giảng viên đã thiết lập cho từng câu hỏi Sinh viên

sẽ biết điểm ngay

+ Cách tính điểm dựa vào số bộ testcase mà sinh viên làm đúng, ví dụ bài

có 10 testcase, sinh viên làm đúng 3 testcase thì sẽ được 3 điểm Khi không diễn ra kỳ thi, sinh viên có thể rèn luyện kĩ năng lập trình đáp ứng chuẩn đầu ra bằng cách thực hành các bài tập trên lớp, ở nhà trong hệ

Trang 10

thống Các bài tập trên hệ thống được phân chia các cấp độ khác nhau: căn bản, trung bình, nâng cao, olympic, …

+ Hệ thống có tích hợp các điểm thưởng cho các bài làm đúng (100% test), cũng như hệ thống phân cấp coder dựa vào tổng số điểm thưởng nhận được (các cấp độ: coder sơ sinh, coder mầm non, coder tiểu học, coder thcs, coder thpt, coder cao đẳng coder đại học, …) tăng sự hứng thú của sinh viên khi tham gia vào hệ thống Ngoài ra, sinh viên có thể dùng điểm thưởng này để tham khảo các bài làm của các bạn khác trong trường hợp gặp bài tập khó

+ Sinh viên có thể thực hành bài tập trên Upcoder bằng điện thoại, máy tính bảng hay máy tính Việc này sẽ giải quyết vấn đề khó khăn thiếu trang

bị máy tính thực hành, sẽ hỗ trợ cho sinh viên học tập tốt hơn học phần Kỹ thuật lập trình 1

+ Thi theo hình thức ACM, Olympic, sinh viên phải có khả năng code chạy chương trình, làm đúng các test để có số điểm tương ứng

+ Hệ thống có tích hợp quét copy có thể phát hiện các bài đã copy nhau của sinh viên, chống gian lận đảm bảo công bằng trong thi cử

+ Hệ thống hỗ trợ giảng viên in bản điểm sau khi làm bài xong, có thể chấm bài lại trong trường hợp cần thiết Ngoài ra, trong mỗi kỳ thi, hệ thống có xếp hạng điểm của sinh viên theo thời gian thực trong suốt kỳ thi

để giảng viên có thể theo dõi, đánh giá tiến trình làm bài của sinh viên + Mỗi bài làm của sinh viên đều được hệ thống lưu lại, khi cần sinh viên

có thể xem lại bài làm của mình

- Khó khăn:

+ Hệ thống được triển khai là sự hợp tác với khoa Công nghệ thông tin trường Đại học Sư phạm TP Hồ Chí Minh nên khi có sự cố phải đợi bên hợp tác

xử lý nên có thể mất nhiều thời gian

+ Khi triển khai, có một số giảng viên còn e ngại nên chưa triển khai hoàn toàn cho tất cả các lớp Kỹ thuật lập trình 1 của khoa trong học kỳ 1 năm học 2021-2022

Trang 11

2.3 Các biện pháp đã tiến hành để giải quyết vấn đề:

Hợp tác tích hợp hệ thống chấm bài tự động Upcoder của trường Đại học Sư phạm thành phố Hồ Chí Minh vào cho khoa Công nghệ thông tin trường Cao đẳng Công nghệ Thủ Đức Các bước đã thực hiện cho đề tài bao gồm:

Giai đoạn 1: Cài đặt hệ thống Upcoder

Đại học Sư phạm Thành Phố Hồ Chí Minh, hợp tác sử dụng phần mềm miễn phí cho sinh viên trường Cao đẳng công nghệ Thủ Đức với mục đích học tập

 Cài đặt hệ thống lên host khoa Công nghệ thông tin với tên miền tdc:

Ngày đăng: 09/10/2023, 09:45

HÌNH ẢNH LIÊN QUAN

Hình 1: Sơ đồ mô tả các bước học và đánh giá học phần  Quy trình này có một số nhược điểm sau: - Triển khai hệ thống upcoder để chấm bài tự động học phần kỹ thuật lập trình 1
Hình 1 Sơ đồ mô tả các bước học và đánh giá học phần Quy trình này có một số nhược điểm sau: (Trang 8)
Hình 2: Trang chủ Upcoder - Triển khai hệ thống upcoder để chấm bài tự động học phần kỹ thuật lập trình 1
Hình 2 Trang chủ Upcoder (Trang 11)
Hình 3: Thiết kế các chương cho học phần - Triển khai hệ thống upcoder để chấm bài tự động học phần kỹ thuật lập trình 1
Hình 3 Thiết kế các chương cho học phần (Trang 12)
Hình 4: Thiết kế nội dung bài tập và testcase - Triển khai hệ thống upcoder để chấm bài tự động học phần kỹ thuật lập trình 1
Hình 4 Thiết kế nội dung bài tập và testcase (Trang 13)
Hình 5: Danh sách bài tập - Triển khai hệ thống upcoder để chấm bài tự động học phần kỹ thuật lập trình 1
Hình 5 Danh sách bài tập (Trang 14)
Hình 6: Giao diện làm bài thực hành - Triển khai hệ thống upcoder để chấm bài tự động học phần kỹ thuật lập trình 1
Hình 6 Giao diện làm bài thực hành (Trang 14)
Hình 7: Kết quả chấm tự động - Triển khai hệ thống upcoder để chấm bài tự động học phần kỹ thuật lập trình 1
Hình 7 Kết quả chấm tự động (Trang 15)
Hình 8: Giao diện thiết kế bài kiểm tra, bài thi - Triển khai hệ thống upcoder để chấm bài tự động học phần kỹ thuật lập trình 1
Hình 8 Giao diện thiết kế bài kiểm tra, bài thi (Trang 16)
Hình 9: Danh sách các kỳ thi - Triển khai hệ thống upcoder để chấm bài tự động học phần kỹ thuật lập trình 1
Hình 9 Danh sách các kỳ thi (Trang 17)
Hình 10: Giao diện giáo viên theo dõi tiến trình học tập của sinh viên - Triển khai hệ thống upcoder để chấm bài tự động học phần kỹ thuật lập trình 1
Hình 10 Giao diện giáo viên theo dõi tiến trình học tập của sinh viên (Trang 18)
Bảng 3: So sánh số liệu sinh viên rớt Kỹ thuật lập trình 1 năm 2020-2021 và - Triển khai hệ thống upcoder để chấm bài tự động học phần kỹ thuật lập trình 1
Bảng 3 So sánh số liệu sinh viên rớt Kỹ thuật lập trình 1 năm 2020-2021 và (Trang 19)
Hình 11: Biểu đồ so sánh tỷ lệ sinh viên rớt Kỹ thuật lập trình 1 - Triển khai hệ thống upcoder để chấm bài tự động học phần kỹ thuật lập trình 1
Hình 11 Biểu đồ so sánh tỷ lệ sinh viên rớt Kỹ thuật lập trình 1 (Trang 20)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w