Bạn biết những gì về ACM/ICPC và CTF Nếu như được chọn một phần thi thứ 3 thì bạn mong đó sẽ là phần thi gì?

  1. Công nghệ thông tin

Không chỉ Code Battle mà còn rất nhiều cuộc thi về lập trình khác đều thi về các nội dung như ACM/ICPC và CTF. Vậy các bạn biết những gì về ACM/ICPC và CTF. Và ngoài 2 nội dung này ra thì bạn còn mong muốn được tranh tài ở nội dung gì nữa?

#CodeBattle2018

Từ khóa: 

công nghệ thông tin

Cuộc thi này rất hay và bổ ích cho sv. Nhưng còn nhỏ và chưa show được nhiều yếu tố của SV IT.

  • Sáng tạo : Khi bạn đã code Okie rồi thì cái ý tưởng là quan trọng nhất --> Có thể thêm phần thi sáng tạo app cơ bản cho SV theo chủ đề mà BTC đưa ra
  • Đồng đội : việc thi ACM cũng như TCF có nhiều trường hợp gánh team. Nên BTC có thể nghĩ nhiều và sâu hơn về vấn đề này
  • Hack code : Như ở codeForce hay cái là bọn kia nó hack cmn code của mình. Tuy cay nhưng lại càng kích thích cho mình
  • Debug code : Debug là 1 kỹ năng cực kỳ quan trọng của Programer, nên cái này cũng có thể được đưa vào
  • Thêm những thử thách bất ngờ cho mọi người : Đang ngồi code thì có cái gì đó bonus điểm ... đại loại như thế sẽ hấp dẫn hơn nhiều
Trả lời

Cuộc thi này rất hay và bổ ích cho sv. Nhưng còn nhỏ và chưa show được nhiều yếu tố của SV IT.

  • Sáng tạo : Khi bạn đã code Okie rồi thì cái ý tưởng là quan trọng nhất --> Có thể thêm phần thi sáng tạo app cơ bản cho SV theo chủ đề mà BTC đưa ra
  • Đồng đội : việc thi ACM cũng như TCF có nhiều trường hợp gánh team. Nên BTC có thể nghĩ nhiều và sâu hơn về vấn đề này
  • Hack code : Như ở codeForce hay cái là bọn kia nó hack cmn code của mình. Tuy cay nhưng lại càng kích thích cho mình
  • Debug code : Debug là 1 kỹ năng cực kỳ quan trọng của Programer, nên cái này cũng có thể được đưa vào
  • Thêm những thử thách bất ngờ cho mọi người : Đang ngồi code thì có cái gì đó bonus điểm ... đại loại như thế sẽ hấp dẫn hơn nhiều

Nếu có thể thì BTC nên mở rộng phạm vi thi cho cả sinh viên năm 3 và 4 nữa. Ngoài ra em thấy khá hay nếu cho thêm phần thi Dịch Code. Đây là Code Battle, cá thí sinh đã phải viết code khá nhiều, vậy đây sẽ là phần thi thí sinh không phải viết gì cả, chỉ phải dịch một đoạn code mà BTC cho sẵn và giành điểm như các phần thi trước

ACM thì mình có tiếp xúc rồi còn CTF thì chưa. Hay là cho thêm nội dung Hackathon vào nhỉ ^^?

Hackathon mình cũng đã từng tham gia ở cấp CLB và thấy nó rất hay. Hay ở chỗ các team có chung một mục đích và phát huy hết khả năng code và tìm hiểu công nghệ ngay tức thì. Nếu thêm nội dung này vào sẽ khiến cuộc Code Battle trở nên khốc liệt hơn và khó đoán được kết quả.

Với quan điểm cá nhân của mình thì:

Về ACM/ICPC: nội dung competitive programming (lập trình thi đấu - giải những bài toán thuộc những vấn đề, những thuật toán đã được nghiên cứu đầy đủ). Cụ thể thì, ACM/ICPC chú trọng sự chính xác tuyệt đối (tính điểm binary - chỉ đúng hoặc không có gì cả) và tốc độ cũng như sự chính xác (phân bố điểm theo thời gian, và có phạt khi nộp đáp án không chính xác; không giống như IOI là không tính tới những điều này).

Về CTF: Sử dụng các phương pháp bảo mật (phòng thủ) cũng như xâm nhập (tấn công) nhằm thu được thông tin cần yêu cầu dưới dạng các "flags".

Nếu thực sự muốn đóng góp thêm một ý kiến, mình hi vọng ở phần ACM/ICPC có thêm một phần "hack" (giống như Codeforces/Topcoder). Cơ chế rất đơn giản: bạn giải xong một bài, bạn chắc chắn là nó đúng, bạn có thể khóa bài đó lại - sau khi khóa, bạn mất quyền nộp lại đáp án cho bài đó, nhưng có thể được xem source code của những người khác, và một khi code của họ không tối ưu hoặc đưa ra kết quả sai ở một test bất kỳ nào đó bạn nghĩ đến, miễn là nằm trong giới hạn đề bài, bạn có thể "hack" để khiến bài làm đó bị đánh sai, và bạn được thêm một ít điểm thưởng. Tất nhiên, nếu hack không thành công thì cũng như nộp code sai, bạn cũng sẽ bị phạt điểm / thời gian.

Mình thấy 2 nội dung này là chuẩn hay rồi, 2 mảng lớn của cntt là giải thuật và attt phù hợp với mọi lứa sinh viên .. kể cả năm nhất. Có chăng sang năm cho mấy bô lão năm ba năm bốn tham gia cùng nữa thì vui 😂😂

Mình cũng may mắn có cơ hội được tham gia cả 2 cuộc thi, CTF thì mới tham gia cuộc thi cấp trường, món này kiểu đăng ký cho vui vì các anh em trong team ACM đăng ký hết, kết quả không được tốt cho lắm nhưng được cái là rất phấn khởi và vui, vì được tiếp cận một cuộc thi khá lạ đối với mình, có cách thức gần giống với ACM nhưng cần nhiều kiến thức cũng như những kỹ năng, kỹ thuật về bảo mật.

Theo mình thì, ACM là sử dụng giải thuật để giải quyết một bài toán cụ thể và bạn phải vượt qua các testcase. Còn CTF thì mò các mẹo bảo mật, liên quan đến mã hóa, dịch ngược,....

Cá nhân mình cũng đã tham gia rất nhiều cuộc thi ACM và CTF, và có góp ý nên có thêm 1 phần thi về sáng tạo, cải thiện hệ thống hiệu năng cao.

Bởi 2 phần thi kia cũng mang tính học thuật hơi nhiều, về CTF thì cũng có thực tế hơn ACM chút nhưng tính ứng dụng thực tế chưa cao. Hiện nay thì hầu hết các công ty CNTT đều cần có hệ thống hiệu năng cao, ví dụ như web server có độ tải cao, tốc độ xử lý nhanh, phân tán, HA... Nếu có một kì thi như vậy thì thí sinh tham gia vừa có cơ hội sáng tạo, áp dụng kiến thức về thuật toán, mạng, công nghệ mới và cải thiện nó.

Một ví dụ là cấp cho mỗi đội thi 1 máy chủ và thành phần opensource, ví dụ như Nginx và yêu cầu chỉnh sửa hay thêm một vài tính năng sao cho tăng được tốc độ xử lý của máy chủ. (Cái này thì có lẽ nên để cho các chuyên gia đưa ra đề thi sao cho phù hợp, đây chỉ là ví dụ).

Phần thi này có vẻ khó hơn và hợp với các sinh viên năm cuối hoặc người đi làm hơn, nhưng theo mình thì cũng khá hay.

ACM thì mình đã từng tham gia khá nhiều cuộc thi , bạn sẽ phải giải quyết các bài toán sao cho đúng tất cả các testcase mới ghi được điểm. Còn CTF chúng ta sẽ cần phải biết các công cụ và trang web để giải mã thử thách đề bài.

Đấm bốc