Tin tức‎ > ‎Mùa hè sáng tạo‎ > ‎

Thông tin thư viện Phần mềm nguồn mở 2019

đăng 01:09, 4 thg 10, 2019 bởi Long Nguyen   [ đã cập nhật 01:15, 4 thg 10, 2019 ]

Thư viện cho khối thi “Phần mềm nguồn mở” 2019


1. Chủ đề khối thi PMNM 2019: Phát triển ứng dụng Blockchain

2. Thư viện đề thi

https://docs.google.com/document/d/1ITIIsOI3kIN9aF3sKqv5bWMkkoSp67I7W826-gtVqY4/


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

Solidity: Ngôn ngữ lập trình dùng để viết smart contracts và được cài đặt trong nhiều blockchain khác nhau, trong đó nổi tiếng nhất là Ethereum. [1]

 

Docker: Công nghệ container, giúp đóng gói phần mềm, thuận tiện trong việc phát triển, triển khai ứng dụng, CI/CD. [2].


Các đội tuyển sẽ đọc, nghiên cứu, phân tích, và tìm hiểu các thư viện, dự án nguồn mở này để nắm được các chức năng chính, các giao tiếp, các thành phần (module) chính, cách sử dụng và cách mở rộng tính năng trong bộ thư viện và dự án.


Nội dung đề thi cho phần thi “Phần mềm nguồn mở” (viết tắt PMNM) sẽ bao gồm:

  • Phát triển ứng dụng blockchain trong vòng 8 tiếng tại nơi thi (theo phong cách Hackathon [3]).

  • Thực nghiệm, triển khai hệ thống với Docker và trình diễn trước Ban tổ chức.

Git

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 Ban tổ chức.

Thư viện phụ thuộc

Truffle: Bộ công cụ để hỗ trợ lập trình smart contract.

https://www.trufflesuite.com/


Infura: Cung cấp RPC để kết nối đến Ethereum Network.

https://infura.io


Metamask: Browser Extension để giao tiếp với Ethereum Network.


Web3Js: Thư viện Javascript để giao tiếp với Ethereum Network.

https://github.com/ethereum/web3.js/

Những điểm mới và thay đổi trong cuộc thi OLP FOSS 2019

So với các cuộc thi Olympic Nguồn mở những năm 2013 trở về trước, cuộc thi OLP FOSS 2019 có những điểm thay đổi như sau:

  1. Bỏ phần thi câu hỏi trắc nghiệm lý thuyết về Phần mềm Nguồn mở.

  2. Bỏ phần thi trắc nghiệm về các thư viện Nguồn mở.

  3. Bỏ phần thi lập trình dạng thuật toán theo chủ đề.

  4. Thay vào đó, đề thi năm nay tập trung vào một phần mềm thực tế hoặc/và một thư viện nguồn mở phổ biến.

  5. Trong toàn bộ thời gian thi, thí sinh chỉ tập trung giải một bài toán duy nhất do Ban Tổ Chức công bố trước khi thi.

  6. 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.


Về hướng ra đề thi

Đề thi sẽ tập trung vào việc xây dựng ứng dụng blockchain. Tất cả các dịch vụ được yêu cầu đóng gói và chạy trên Docker container. Đề bài sẽ được công bố ngay trước khi thi.

Về số lượng sinh viên tham gia

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

  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ẽ cung cấp máy tính (PC) và khuyến khích sinh viên áp dụng lập trình cặp (pair programming).

  4. Sinh viên được quyền mang và sử dụng laptop cá nhân.

  5. Sinh viên được khuyến khích tương tác cùng các cộng đồng nguồn mở tại Việt Nam như Docker Vietnam, Vietnam OpenStack để 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. CPU core i5 3.00 GHz hoặc tương đương.

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

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

B. Môi trường: 

  1. Ubuntu 18.04 64 bit.

Tiêu chí đánh giá

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

  1. Độ hoàn thiện cũng như tính sáng tạo của ứng dụng blockchain.

  2. Mã nguồn trong sáng, rõ ràng, có tài liệu đầy đủ thể hiện tính nguồn mở.

Gợi ý

Để thực hiện tốt bài thi, thí sinh cần làm quen với các chuẩn của Ethereum như ERC721 (NFT), ERC20. [4]

Thời gian làm bài

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

Giải thưởng

Theo qui chế của OLP Tin học [5], giải chính thức gồm giải nhất, 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. 

Thông tin tham khảo

[1] Solidity: https://github.com/ethereum/solidity

[2] Docker: https://www.docker.com/ 

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

[4] ERC và ERC721: https://eips.ethereum.org/erchttp://erc721.org/

[5] Chương trình tổng thể: http://www.olp.vn/olympic/noi-quy

[6] Ethereum for Developer: https://www.ethereum.org/developers/

[7] MCashChain for Developer: https://developer.mcash.network/



Các cộng đồng nguồn mở hỗ trợ cho cuộc thi

Docker Vietnam

Group: https://www.facebook.com/groups/containervietnam/


Vietnam OpenStack

Group: https://www.facebook.com/groups/vietstack/


Comments