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

OLP'17 - Thư viện Phần mềm nguồn mở

đăng 20:28, 4 thg 7, 2017 bởi Long Nguyen   [ đã cập nhật 20:32, 4 thg 7, 2017 ]

OLYMPIC TIN HỌC SINH VIÊN VIỆT NAM NĂM 2017

 


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

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

Docker: nền tảng ảo hóa mức hệ điều hành cung cấp cho người dùng cuối môi trường triển khai nhanh chóng, tiện ích. [1].

ESP8266: dự án phần cứng nguồn mở của thế giới, được hỗ trợ bởi cộng đồng IoT Maker Vietnam. [3]

M.E.O Project: nền tảng mã nguồn mở Việt Nam của nhóm Maker Hanoi được xây dựng dựa trên NodeRed và một số IoT Platform sẵn có. [4]

 

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:

     Thêm mới hoặc cải tiến tính năng cho một dự án PMNM là M.E.O Project trong vòng 8 tiếng tại nơi thi (theo phong cách Hackathon [5]). Yêu cầu "thêm mới/cải tiến" sẽ được Ban Tổ Chức công bố trước khi thí sinh vào phòng thi.

     Thực nghiệm, tích hợp M.E.O Project với Docker, thiết bị ESP8266 và trình diễn trước Ban Tổ Chức.

Python

Python (cùng HTML, JavaScript và CSS) là ngôn ngữ lập trình được chọn sử dụng trong nội dung thi “Mã nguồn mở” năm nay xoay quanh chủ đề phát triển các ứng dụng nguồn mở trên nền tảng IoT và điện toán đám mây.

Arduino

Arduino là một cộng đồng mã nguồn mở thiết bị nhúng bao gồm cả phần cứng và Arduino IDE. Được giới thiệu vào năm 2005, Những nhà thiết kế của Arduino cố gắng mang đến một phương thức dễ dàng, không tốn kém cho những người yêu thích, sinh viên và giới chuyên nghiệp để tạo ra những thiết bị có khả năng tương tác với môi trường thông qua các cảm biến và các cơ cấu chấp hành. Những ví dụ phổ biến cho những người yêu thích mới bắt đầu bao gồm các robot đơn giản, điều khiển nhiệt độ và phát hiện chuyển động. Đi cùng với nó là một môi trường phát triển tích hợp (IDE) chạy trên các máy tính cá nhân thông thường và cho phép người dùng viết các chương trình cho Aduino bằng ngôn ngữ C hoặc 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 BTC.

Thư viện phụ thuộc

NodeRed: nền tảng hỗ trợ kết nối nhiều loại thiết bị IoT, các API và các dịch vụ từ các nhà cung cấp khác. NodeRed cung cấp các tiện ích hỗ trợ thông qua giao diện trực quan với yếu tố chính là các luồng làm việc (flow). Người dùng có thể định nghĩa, tuỳ chỉnh các luồng làm việc theo đầu vào (input) để nhận dữ liệu từ các hệ thống, biến đổi chuyển hoá dữ liệu (function) để gửi dữ liệu đến các hệ thống bên ngoài thông qua các đầu ra (output). Trong M.E.O Project [2] đã tích hợp sẵn NodeRed và định nghĩa sẵn input, output để giúp người phát triển làm việc mới mạch esp8266.

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

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

7.    Thí sinh sẽ phải làm quen với kỹ năng lập trình nhúng, mã nguồn mở Adruino

Về hướng ra đề thi

Bài thi sẽ tập trung vào việc xây dựng thêm dịch vụ kết nối thiết bị ESP8266 với M.E.O và NodeRed để giải quyết một bài toán IoT, 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 2017.

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 02 (hai) máy tính (PC) cùng mạch thiết bị ESP8266 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ư Vietnam OpenStack, Docker Hanoi, Maker Hanoi, IoT Maker Vietnam để 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 4GB hoặc nhiều hơn.

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

B. Môi trường:

4.    Ubuntu 16.04 64 bit.

5.    Trình biên dịch IDE Adruino

Tiêu chí đánh giá

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

1.    Mức độ tối ưu, cải thiện công năng/sửa lỗi.

2.    Độ hoàn thiện cũng như tính sáng tạo của giải pháp IoT.

3.    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  M.E.O, ESP8266 và cần nắm vững các thao tác làm việc với Docker.

Thời gian làm bài

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

Giải thưởng

Theo qui chế của OLP Tin học [6], 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] Docker: https://www.docker.com/

[2] NodeRed: https://nodered.org/https://github.com/node-red

[3] ESP8266: https://github.com/esp8266vn/https://esp8266.vn/

[4] M.E.O Project: https://github.com/makerhanoi/meo-guide

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

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

[7] Arduino Ide https://www.arduino.cc/en/Main/OldSoftwareReleases

 

 

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

Vietnam OpenStack

Facebook: https://www.facebook.com/VietOpenStack/

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

Slack: https://vietops.herokuapp.com/

 

Docker Hanoi

Facebook: https://www.facebook.com/dockerhanoi

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

Slack: http://docker-hanoi.herokuapp.com/

 

Maker Hanoi

Website: https://makerhanoi.org

Facebook: https://www.facebook.com/makerhanoi/

Meetup: https://www.meetup.com/Ha-Noi-Maker-Meetup/

Comments