Phần mềm nguồn mở

Đề thi phần mềm nguồn mở - OLP 2023.pdf

18/11/2023

Công bố đề thi nội dung Phần mềm nguồn mở - Olympic Tin học Sinh viên Việt Nam 2023. Các Teams xem và Download để chuẩn bị.

Hoặc tham khảo trên trang VFOSSA:

https://vfossa.vn/tin-tuc/de-thi-phan-mem-nguon-mo-olp-2023-688.html

30/08/2023 - Chủ đề và Thể lệ tham dự OLP - nội dung Phần mền nguồm mở năm 2023:

Ứng dụng các mô hình ngôn ngữ lớn (LLMs)


Thông tin mới cho nội dung PMNM (ngày 5/10/2023)

Nội dung chi tiết xem ở đây!

https://vfossa.vn/hoat-dong-cong-dong/gioi-thieu-chu-de-pmnm-olp-2023-679.html


Thể lệ OLP Phần mềm nguồn mở năm 2023

Cơ quan tổ chức: Hội Tin học Việt nam

Đơn vị thường trực: Câu lạc bộ VFOSSA

Căn cứ theo Quy chế Olympic Tin học Sinh viên Việt Nam

 

Đối tượng tham dự:

-       Sinh viên chuyên hoặc không chuyên về CNTT của các trường đại học, cao đẳng trên toàn quốc.

Hình thức cuộc thi:

-       Thi hình thức Harkathon theo đội tuyển trong từ 5 đến 8 tiếng theo đề bài do Hội đồng giám khảo  đưa ra.

Yêu cầu tham gia:

-       Các trường đăng kí các đội tuyển tham gia nội dung PMNM. 

-       Mỗi đội thi phải bao gồm không quá 3 thí sinh và được dẫn dắt bởi một giảng viên của trường tham dự.

-       Mỗi trường chỉ được đăng kí tối đa 2 đội tuyển tham gia nội dung PMNM.

Giải thưởng:

-       Gồm các giải nhất, nhì, ba và khuyến khích theo quy chế OLP 2023.

-       Quà tặng, giải thưởng của nhà tài trợ cho các đội đạt giải chuyên môn do các chuyên gia của VFOSSA bình chọn.  

Phương thức ra đề và làm bài thi:

-       Các đề thi lập trình do các chuyên gia của VFOSSA xây dựng dựa trên việc thu thập bài toán yêu cầu cần giải quyết từ các cá nhân, tổ chức trong thực tế. Các bài toán yêu cầu được đặt ra phải theo cùng một chủ đề chung do HĐGK đưa ra.

-       Đề thi được giữ kín và sẽ được công bố trước 2 tuần của ngày chấm thi chung kết.

-       Sau khi đề thi được công bố, các đội lựa chọn 1 đề bài trong số các đề đưa ra để lập trình. Toàn bộ kết quả sản phẩm của các đội thi phải được công bố trên một kho nguồn mở.

-       Các đội thi chuẩn bị bài trình bày và nội dung trình diễn sản phẩm kết quả tại buổi chấm thi Chung kết của HĐGK PMNM trong thời gian tổ chức Oympic.

-       HĐGK chấm điểm bài thi và sắp xếp phân hạng dựa trên sản phẩm công bố trên kho nguồn mở và kết quả trình diễn tại buổi chung kết.  

 

Chủ đề cuộc thi năm 2023: “Ứng dụng các mô hình ngôn ngữ lớn (LLMs)

 

Lịch trình tổ chức

-       Tháng 9/2023: Công bố chủ đề và phát động cuộc thi PMNM - OLP 2023

-       Tháng 9-10/2023: Thu thập ý tưởng, bài toán yêu cầu thực tiễn theo chủ đề cuộc thi

-       Tháng 11/2023: BTC ra đề và tiếp nhận thông tin danh sách đăng kí thi

-       Ngày 20/11-3/12/2023: Công bố đề thi và các đội tham gia lập trình hackathon

-       Ngày 4-6/12/2023: Chấm thi kho mã nguồn của sản phẩm dự thi

-       Ngày 7/12/2023: Trình diễn sản phẩm và chấm thi chung kết

-       Ngày 8/12/2023: Công bố trao giải

 

 Các tiêu chí chấm điểm

OLP 2022 - a Briefing.pdf

Tham khảo

Khối thi PMNM - OLP'22


Các mốc thời gian chính:


Chi tiết Download và xem hướng dẫn trong tệp PDF: A Briefing

(tham khảo OLP'21)

Khối thi “Phần mềm nguồn mở” 

Thông báo ngày 10/2/2022

Lịch tổ chức livestream PMNM:

Thời gian: 9h-11h sáng thứ 6 ngày 18/02/2022

Hình thức: Online meeting qua Zoom + Livestream trên kênh Youtube của VFOSSA

Phổ biến quy chế, tư vấn và giải đáp thắc mắc cho các đội thi tham gia khối thi PMNM - Olympic Tin học lần thứ 30

Link đăng ký: https://forms.gle/esrYB9VnAc2H9qFq6

Lưu ý:

- Mỗi trường đăng ký tối đa 05 người đại diện tham gia buổi meeting. Người tham gia có thể giao lưu và đặt câu hỏi trực tiếp qua Zoom.

- Buổi meeting sẽ được phát trực tiếp trên Youtube tại địa chỉ: https://www.youtube.com/channel/UC9Bq4q36e43dzCwAIpmn2cg/featured

- Không giới hạn số người xem livestream. Các trường có thể thông báo cho sinh viên đăng ký xem qua livestream.


Thông tin thêm: Hiện giờ VFOSSA đã nhận được thông báo của 3 đội thi sau sẽ tham gia phần thi phụ:

- Đội FFC01 & đội FFC02 của Đại học mở Hà Nội.

- Đội SIU-Open của Đại học quốc tế Sài Gòn. 

VFOSSA đã báo cho đội code NukeViet cho người hướng dẫn các đội thi (Theo quy chế năm nay, mỗi đội thi tham gia phần thi phụ sẽ có một mentor từ NukeViet hỗ trợ đội thi tham gia phần thi phụ).

Ngoài hỗ trợ từ đội code NukeViet, các đội tham gia phần thi phụ sẽ được add vào Group Zalo do VFOSSA thiết lập để hỗ trợ các đội thi nhanh chóng hơn: https://zalo.me/g/cyrtva466

BTC sẽ thường xuyên cập nhật danh sách các đội đăng ký tham gia phần thi phụ lên website của VFOSSA (http://vfossa.vn)


Thông báo ngày 17/1/2022

VFOSSA và NukeViet sẽ tổ chức livestream/meeting trực tuyến nhằm phổ biến, giải đáp thắc mắc về nội dung thi  (mã nguồn mở NukeViet). 

Thời gian: 15h00 Thứ Tư, ngày 19/01/2022

Hình thức: Online meeting qua Zoom + Livestream trên kênh Youtube của VFOSSA

Link đăng ký: https://forms.gle/esrYB9VnAc2H9qFq6

Lưu ý:

- Mỗi trường đăng ký tối đa 05 người đại diện tham gia buổi meeting. Người tham gia có thể giao lưu và đặt câu hỏi trực tiếp qua Zoom.

- Buổi meeting sẽ được phát trực tiếp trên Youtube tại địa chỉ: https://www.youtube.com/channel/UC9Bq4q36e43dzCwAIpmn2cg/featured

Không giới hạn số người xem livestream. Các trường có thể thông báo cho sinh viên đăng ký xem qua livestream.

Thư viện nguồn mở

Thư viện nguồn mở chính

 

NukeViet CMS: Hệ quản trị nội dung (Content Management System - CMS) xây dựng dựa trên nền tảng phần mềm nguồn mở NukeViet - một phần mềm nguồn mở thế hệ mới do người Việt phát triển. NukeViet CMS cho phép bạn xây dựng và quản lý các website một cách dễ dàng. NukeViet đã được trao giải Nhân tài đất Việt 2011, được Bộ GD&ĐT khuyên dùng trong thông tư số 08/2010/TT-BGDĐT, được Bộ TT&TT Quy định ưu tiên sử dụng trong cơ quan, tổ chức nhà nước tại thông tư 20/2014/TT-BTTTT. [1]

 

Apache: Là chương trình máy chủ HTTP - một chương trình dành cho máy chủ đối thoại qua giao thức HTTP. Apache là phần mềm phổ biến nhất để vận hành website bằng NukeViet. [2]

 

PHP: Ngôn ngữ lập trình kịch bản hay một loại mã lệnh chủ yếu được dùng để phát triển các ứng dụng viết cho máy chủ, mã nguồn mở, dùng cho mục đích tổng quát. PHP rất thích hợp với web và có thể dễ dàng nhúng vào trang HTML. [3]

 

MySQL: Hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến nhất thế giới và được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng. [4]

 

HTML: Ngôn ngữ đánh dấu được thiết kế ra để tạo nên các trang web trên World Wide Web. Cùng với CSS và JavaScript, HTML là một trong những ngôn ngữ quan trọng trong lĩnh vực thiết kế website. [5]

 

Git: là công cụ quản lý mã nguồn được sử dụng rất nhiều tại các dự án mã nguồn mở trên thế giới. Sinh viên cần thiết phải tìm hiểu Git và sử dụng git để nộp kết quả bài thi thông qua git diff và đẩy pull request lên tới kho mã nguồn của BTC. GitHub là một dịch vụ cung cấp kho lưu trữ mã nguồn Git dựa trên nền web cho các dự án phát triển phần mềm. Đề thi sẽ yêu cầu thao tác với mã nguồn được lưu trữ trên GitHub. [6]

 

Các đội tuyển sẽ nghiên cứu cách sử dụng và lập trình bằng các thư viện trên, nhằm mục tiêu có thể cài đặt, sử dụng NukeViet, lập trình giao diện, module trên NukeViet, thao tác với mã nguồn NukeViet đặt trên Github.

 

Thư viện hỗ trợ

 

Eclipse IDE for PHP Developers: Là phần mềm hỗ trợ để lập trình NukeViet được các lập trình viên NukeViet khuyến khích sử dụng nhất. [7]

 

XAMPP: Phần mềm tích hợp Apache + MySQL + PHP. Cài đặt phần mềm này, người sử dụng hoặc lập trình viên sẽ có ngay môi trường đầy đủ trên máy tính cá nhân để vận hành NukeViet. [8]

 

phpMyAdmin: Công cụ được viết trên PHP để thao tác trực quan với cơ sở dữ liệu MySQL ngay trên trình duyệt web. Nó có thể thực hiện nhiều tác vụ như tạo, sửa đổi hoặc xóa bỏ cơ sở dữ liệu, bảng, các trường hoặc bản ghi; thực hiện báo cáo SQL; hoặc quản lý người dùng và cấp phép. phpMyAdmin được tích hợp sẵn trong XAMPP. [9]

 

Bootstrap: Là một framework bao gồm các HTML, CSS và JavaScript template dùng để phát triển website chuẩn responsive. [10]

 

jQuery: Là thư viện được viết từ JavaScript, jQuery giúp xây dựng các chức năng bằng Javascript dễ dàng, nhanh và giàu tính năng hơn. [11]

 

Các nội dung thi & Thời gian làm bài

Nội dung thi “Phần mềm nguồn mở” (viết tắt PMNM) sẽ có 2 phần

Phần thi phụ

-       Diễn ra từ thời điểm công đội thi đăng ký cho tới 0h của ngày thi diễn ra phần thi chính.

-       Phần thi phụ không bắt buộc các đội phải tham gia. Các đội đăng ký thi OLP xong muốn tham gia phần thi phụ sẽ phải gửi email tới admin@nukeviet.vn để thông báo sẽ tham gia phần thi phụ. BTC sẽ xác nhận trong vòng 24h và cử người hỗ trợ đội thi trong suốt quá trình đội thi tham gia phần thi phụ.

Phần thi chính

Thời gian cho phần thi chính là 06 (sáu) tiếng, từ 08h00 sáng tới 14h00 trong ngày thi. Sau đó các đội cần trình bày sản phẩm từ 14h00 tới 15h00.

Nội dung đề thi cho phần thi chính bao gồm:

Cài đặt, lập trình giao diện hoặc module trong vòng 6 tiếng tại nơi thi (theo phong cách Hackathon [13]). Yêu cầu về lập trình giao diện hoặc module sẽ được Ban Tổ Chức công bố trước khi thí sinh vào phòng thi.

Mô tả, trình diễn kết quả trước Ban Tổ Chức.

 

Những điểm thí sinh cần lưu ý trong cuộc thi OLP FOSS 2021

Chỉ dẫn chung

Cuộc thi OLP FOSS 2021 có những điểm quan trọng thí sinh cần lưu ý như sau:

1.   Tương tự mô hình Hackathon của những năm gần đây, đề thi năm nay tiếp tục sử dụng thư viện nguồn mở của Việt Nam là NukeViet để giải quyết một số bài toán/ vấn đề nhất định cho nó. Cách thức chấm điểm tương tự như năm 2020: Trong toàn bộ thời gian thi, thí sinh không chỉ tập trung giải một bài toán duy nhất do Ban Tổ Chức (BTC) công bố trước khi thi; Kết quả thi không chỉ căn cứ vào đáp án của bài thi, mà BTC sẽ có thang điểm chấm cho toàn bộ quá trình thí sinh tham gia lập trình, từ kỹ năng code, kỹ năng sử dụng các công cụ làm việc nguồn mở, kỹ năng làm việc nhóm… cuối cùng mới là sản phẩm.

2.   Thí sinh sẽ phải trình diễn kết quả thi vào cuối buổi thi trong thời gian 5 phút.

3.   Thí sinh sẽ phải làm quen với kỹ năng lập trình PHP & MySQL trên nền phần mềm nguồn mở NukeViet thông qua các phần thi phụ trước đó. Mặc dù phần thi phụ không ảnh hưởng đến kết quả của phần thi chính nhưng theo kinh nghiệm của BTC với cuộc thi năm trước thì các đội thi phụ có kết quả thi tốt thường sẽ làm tốt bài thi trong phần thi chính.

Về hướng ra đề thi cho phần thi chính

-       Bài thi tập trung vào việc chỉnh sửa hoặc lập trình mới giao diện, module trên NukeViet.

-       Thí sinh sẽ cần phải lấy mã nguồn, chỉnh sửa và đưa bài thi lên Github.

-       Đề bài sẽ được công bố ngay trước khi thi.

Về số lượng sinh viên tham gia & các thông tin khác

1.   Ban tổ chức không hạn chế số lượng đội sinh viên tham gia cuộc thi OLP FOSS 2021.

2.   Tuy nhiên, mỗi đội sinh viên có số sinh viên tham gia tối đa là 03 (ba) người.

3.   Ban tổ chức sẽ không cung cấp máy tính. Sinh viên cần mang và sử dụng laptop cá nhân.

4.   Sinh viên được khuyến khích tương tác cùng cộng đồng nguồn mở NukeViet (diễn đàn, group Facebook, cộng đồng lập trình NukeViet trên github...) để chuẩn bị kiến thức trước khi thi.

Về môi trường phát triển

A. Laptop: Khuyến khích cấu hình laptop như bên dưới hoặc tương đương.

1.   Tốc độ CPU 1.5 Ghz hoặc nhanh hơn.

2.   RAM 1GB hoặc nhiều hơn.

3.   Ổ cứng còn trống 3Gb hoặc nhiều hơn.

4.   Internet connection (LAN hoặc Wireless).

B. Môi trường phát triển:

5.   Trong phần thi chính, thí sinh cần Ubuntu, CentOS, Fedora hoặc các hệ điều hành nguồn mở khác. Không lập trình trên hệ điều hành nguồn đóng như Windows. Nếu vi phạm cá nhân/đội thi sẽ không được công nhận kết quả thi.

6.   Phần thi phụ trước đó: BTC không quy định môi trường phát triển.

C. Nộp bài thi:

7.   Trong toàn bộ quá trình làm bài của phần thi chính, tất cả các thí sinh của các đội thi cần share màn hình và có thể được yêu cầu share camera chính/ khu vực thi (nếu đội thi thi tập trung)

8.   Toàn bộ bài thi được chấm trên kho công khai trên github.

Tiêu chí đánh giá

Một số tiêu chí đánh giá kết quả cuộc thi là:

1.   Thao tác thành thạo với mã nguồn trên Github và làm việc cộng tác tốt trên git.

2.   Phong cách lập trình rõ ràng, ghi chú đầy đủ trong code. Lập trình đúng chuẩn PSR-12 [12] là một lợi thế.

3.   Sử dụng được các framework có sẵn & các thư viện nguồn mở (tương thích giấy phép) là một lợi thế.

4.   Độ hoàn thiện, đẹp mắt, sáng tạo của sản phẩm.

Gợi ý

-       Để thực hiện tốt bài thi, thí sinh cần tìm hiểu cách cài đặt, sử dụng và lập trình giao diện, module NukeViet. Kiến thức nền tảng mà thí sinh cần có là PHP+MySQL.

-       Vì quá trình thi hoàn toàn trên github cho nên các thí sinh cần làm quen và thành thạo việc sử dụng Github cũng như các kỹ năng làm việc cộng tác trên git.

-       Các tài liệu cần thiết thí sinh xem tại mục “Các cộng đồng nguồn mở và tài liệu hỗ trợ cho cuộc thi” ở cuối file.

Giải thưởng

Giải thưởng phần thi chính

-       Giải chính thức gồm giải nhất (một đội duy nhất).

-       Về giải nhì và giải ba: Hội đồng giám khảo sẽ căn cứ vào chất lượng các bài thi để đề nghị số lượng giải thưởng nhì và ba.

Giải thưởng phần thi phụ

BTC sẽ căn cứ vào quá trình thi sẽ có các giải phụ như:

-       Giải vì cộng đồng nguồn mở: Dành cho đội thi đã công bố nhiều sản phẩm miễn phí nhất lên kho mã nguồn NukeViet (NukeViet Store) [14] & và được nhiều người tải về nhất trước ngày thi OLP 2021.

-       Giải nhà phát triển nguồn mở tiềm năng: Dành cho đội thi có nhiều commit nhất lên kho code chính thức của NukeViet [15] trước ngày thi OLP 2021.

-       … và một số giải phụ khác. Tất cả các giải phụ sẽ do Cộng đồng NukeViet/ Câu lạc bộ phần mềm tự do nguồn mở Việt Nam (VFOSSA) trao giải và cấp chứng nhận.

 

Các kênh hỗ trợ khác

Cộng đồng NukeViet

●      NukeViet's Facebook Group: https://www.facebook.com/groups/nukeviet

Tài liệu hỗ trợ cho cuộc thi

●      Tài liệu hướng dẫn sử dụng: https://wiki.nukeviet.vn/nukeviet4

●      Tài liệu hướng dẫn lập trình: https://wiki.nukeviet.vn/technical_manual4

●      Video hướng dẫn sử dụng, lập trình: https://www.youtube.com/user/nukeviet/videos

 

Link tham khảo

[1] NukeViet CMS: https://nukeviet.vn/

[2] Apache: https://httpd.apache.org/

[3] PHP: https://www.php.net/, https://www.w3schools.com/php/DEFAULT.asp

[4] MySQL: https://www.mysql.com/, https://www.mysqltutorial.org/

[5] HTML: https://developer.mozilla.org/vi/docs/Web/HTML

[6] Git: https://git-scm.com/, https://github.com/

[7] Eclipse IDE for PHP Developers: https://www.eclipse.org/downloads/packages/release/2021-12/r/eclipse-ide-php-developers

[8] XAMPP: https://www.apachefriends.org/index.html

[9] phpMyAdmin: https://www.phpmyadmin.net/

[10] Bootstrap: https://getbootstrap.com/docs/3.4/

[11] JQuery: https://jquery.com/, https://learn.jquery.com/

[12] PSR-12: https://www.php-fig.org/psr/psr-12/

[13] Hackathon là gì: https://en.wikipedia.org/wiki/Hackathon

[14]: NukeViet Store: https://nukeviet.vn/vi/store/

[15: Kho code NukeViet trên github: http://code.NukeViet.vn, https://github.com/nukeviet/nukeviet