Cybersecurity C [Possible mini SO, Satellite SO Replacement]

User avatar
bernard
Administrator
Administrator
Posts: 2498
Joined: January 5th, 2014, 3:12 pm
Division: Grad
State: WA
Pronouns: He/Him/His
Has thanked: 185 times
Been thanked: 789 times
Contact:

Cybersecurity C [Possible mini SO, Satellite SO Replacement]

Post by bernard »

Cybersecurity is a Division C event that at some tournaments may be used to supplement the event slate (esp. in the event many other events cannot be run). Please refer to instructions from your particular tournament as the event might not be run at every tournament.
These users thanked the author bernard for the post:
sciolyperson1 (November 19th, 2020, 4:37 pm)
"One of the ways that I believe people express their appreciation to the rest of humanity is to make something wonderful and put it out there." – Steve Jobs
User avatar
sciolyperson1
Exalted Member
Exalted Member
Posts: 1074
Joined: April 23rd, 2018, 7:13 pm
Division: C
State: NJ
Pronouns: He/Him/His
Has thanked: 529 times
Been thanked: 601 times
Contact:

Re: Cybersecurity C [Possible mini SO, Satellite SO Replacement]

Post by sciolyperson1 »

Colorado and SoCal are running these events on their regional and/or state competitions as of now.

Cybersecurity Rules
SoCal Planning Team & BirdSO Tournament Director
WW-P HSN '22, Community MS '18
Sciolyperson1's Userpage
freed2003
Member
Member
Posts: 202
Joined: November 3rd, 2015, 3:00 pm
Division: C
State: CA
Has thanked: 9 times
Been thanked: 6 times

Re: Cybersecurity C [Possible mini SO, Satellite SO Replacement]

Post by freed2003 »

Very excited for this, I even gave up Geologic mapping to do it. :(
These users thanked the author freed2003 for the post:
sciolyperson1 (November 20th, 2020, 9:56 pm)
BEARSO/MIT/High Desert/Regionals/State?
Cybersecurity 3/ /2/1
Codebusters 6/2/1/1
Circuit lab 77/20/3/1
Machines / /2/1
0ddrenaline
Member
Member
Posts: 136
Joined: May 21st, 2015, 6:36 pm
Division: Grad
State: MI
Has thanked: 3 times
Been thanked: 18 times

Re: Cybersecurity C [Possible mini SO, Satellite SO Replacement]

Post by 0ddrenaline »

I'm thinking about doing some coaching for a Cybersecurity team going to BirdSO. It's interesting that the rules allow competitors to use several programming languages, but there's a potential for speed and memory constraints. That greatly incentivises certain languages, probably in the order of C > C++ > Java > Python. Faster languages with better memory management are better in this event. Maybe that's intended, because most would agree that C is harder than Python for beginners, so there's a tradeoff. If it's not the intent to incentivize a certain language, maybe future versions of these rules should allow for Big O constraints instead of time constraints.
Last edited by 0ddrenaline on February 2nd, 2021, 7:58 pm, edited 1 time in total.
These users thanked the author 0ddrenaline for the post (total 3):
Adi1008 (February 2nd, 2021, 8:23 pm) • sciolyperson1 (February 2nd, 2021, 8:28 pm) • builderguy135 (February 2nd, 2021, 8:58 pm)
404ic
Member
Member
Posts: 13
Joined: November 4th, 2017, 11:54 am
Division: Grad
State: CA
Pronouns: He/Him/His
Has thanked: 4 times
Been thanked: 22 times

Re: Cybersecurity C [Possible mini SO, Satellite SO Replacement]

Post by 404ic »

0ddrenaline wrote: February 2nd, 2021, 7:57 pm I'm thinking about doing some coaching for a Cybersecurity team going to BirdSO. It's interesting that the rules allow competitors to use several programming languages, but there's a potential for speed and memory constraints. That greatly incentivises certain languages, probably in the order of C > C++ > Java > Python. Faster languages with better memory management are better in this event. Maybe that's intended, because most would agree that C is harder than Python for beginners, so there's a tradeoff. If it's not the intent to incentivize a certain language, maybe future versions of these rules should allow for Big O constraints instead of time constraints.
Hey hey,

I mean...I guess? A couple things:

First things first, yes, C/C++/C-like languages are much speedier than Python. Note that to address this discrepancy, contests hosted through HackerRank usually allow C++ 2 seconds to execute, while Python gets 10 seconds, and Java gets somewhere in between. While this doesn't entirely fix the problem (because it'd be extremely incorrect to say that a C++ program always runs five times faster), it does make it significantly fairer.

Moreover, one of the justifications for allowing different languages is so that no matter what language the competitor is comfortable with, they can still compete without needing to pick up an entirely different language for a Science Olympiad event. I think Cybersecurity is a fairly foreign topic to most teams, and decreasing accessibility by only allowing a specific language would probably hurt participation rates in the event.

Also, the Programming hands-on portion sort of resembles a mini competitive programming (CP) contest. CP contests generally allow C++, C, Java, Python, Ruby, Pascal, and a couple others. Just like I mentioned above, each language gets its own time limit depending on how speedy the programs execute in each language. However, even with this time limit difference, most competitive participants just use C++ because it's much faster, and competitive programming contests (just like the Programming hands-on portion) don't rely on sophisticated language nuances or memory management (that are often found in C/C++) — you just have to get the algorithm right. With the right libraries, implementing a solution for a CP problem is not too much harder in C++ than Python.

Finally, I see your point about Big O, but I would cry for the Event Supervisor if they had to read every single team's uncommented, hastily written code and assess runtime. I think it'd be better if the execution time of the intended optimal solution in some given language to benchmark the execution time of a team's solution in that language, but that would take too much effort and expertise on the side of the Event Supervisor.

Those are my thoughts! Let me know what you think.

EDIT: It appears that I have a difficult time spelling.
Last edited by 404ic on February 2nd, 2021, 8:57 pm, edited 1 time in total.
These users thanked the author 404ic for the post (total 2):
builderguy135 (February 2nd, 2021, 8:54 pm) • sciolyperson1 (February 2nd, 2021, 8:56 pm)
0ddrenaline
Member
Member
Posts: 136
Joined: May 21st, 2015, 6:36 pm
Division: Grad
State: MI
Has thanked: 3 times
Been thanked: 18 times

Re: Cybersecurity C [Possible mini SO, Satellite SO Replacement]

Post by 0ddrenaline »

404ic wrote: February 2nd, 2021, 8:54 pm First things first, yes, C/C++/C-like languages are much speedier than Python. Note that to address this discrepancy, contests hosted through HackerRank usually allow C++ 2 seconds to execute, while Python gets 10 seconds, and Java gets somewhere in between. While this doesn't entirely fix the problem (because it'd be extremely incorrect to say that a C++ program always runs five times faster), it does make it significantly fairer.
This was my thought before I brought up Big O. It's true that BirdSO is using HackerRank, which I didn't consider since it's not required within the rules. That's a good decision on the part of the ES, though.
404ic wrote: February 2nd, 2021, 8:54 pm Moreover, one of the justifications for allowing different languages is so that no matter what language the competitor is comfortable with, they can still compete without needing to pick up an entirely different language for a Science Olympiad event. I think Cybersecurity is a fairly foreign topic to most teams, and decreasing accessibility by only allowing a specific language would probably hurt participation rates in the event.
Absolutely true. I only brought this issue up because it could potentially limit a student's choices if they want to succeed.
404ic wrote: February 2nd, 2021, 8:54 pm Finally, I see your point about Big O, but I would cry for the Event Supervisor if they had to read every single team's uncommented, hastily written code and assess runtime. I think it'd be better if the execution time of the intended optimal solution in some given language to benchmark the execution time of a team's solution in that language, but that would take too much effort and expertise on the side of the Event Supervisor.
Great points! I was thinking of some way for the competitor to write an explanation of their time complexity, but I think that's straying too far from the event's purpose. It's correct that languages aren't always going to have consistent differences in speed, but the HackerRank plan is probably the closest we can get to a perfect solution. The rule is still up to the Event Supervisor's interpretation and they could use a strict time limit that is easily doable in C, but much harder to achieve in Python. It's all up to the choice of the ES, but I guess every event is only as fair and enjoyable as the ES makes it. I should say that I don't mean to complain about the rules of Cybersecurity. I'm just giving some constructive criticism of a trial event.

Thanks for the thoughts!
These users thanked the author 0ddrenaline for the post (total 2):
builderguy135 (February 2nd, 2021, 9:48 pm) • 404ic (February 2nd, 2021, 11:47 pm)
User avatar
builderguy135
Exalted Member
Exalted Member
Posts: 736
Joined: September 8th, 2018, 12:24 pm
Division: C
State: NJ
Pronouns: He/Him/His
Has thanked: 191 times
Been thanked: 143 times
Contact:

Re: Cybersecurity C [Possible mini SO, Satellite SO Replacement]

Post by builderguy135 »

0ddrenaline wrote: February 2nd, 2021, 9:39 pm
404ic wrote: February 2nd, 2021, 8:54 pm First things first, yes, C/C++/C-like languages are much speedier than Python. Note that to address this discrepancy, contests hosted through HackerRank usually allow C++ 2 seconds to execute, while Python gets 10 seconds, and Java gets somewhere in between. While this doesn't entirely fix the problem (because it'd be extremely incorrect to say that a C++ program always runs five times faster), it does make it significantly fairer.
This was my thought before I brought up Big O. It's true that BirdSO is using HackerRank, which I didn't consider since it's not required within the rules. That's a good decision on the part of the ES, though.
404ic wrote: February 2nd, 2021, 8:54 pm Moreover, one of the justifications for allowing different languages is so that no matter what language the competitor is comfortable with, they can still compete without needing to pick up an entirely different language for a Science Olympiad event. I think Cybersecurity is a fairly foreign topic to most teams, and decreasing accessibility by only allowing a specific language would probably hurt participation rates in the event.
Absolutely true. I only brought this issue up because it could potentially limit a student's choices if they want to succeed.
404ic wrote: February 2nd, 2021, 8:54 pm Finally, I see your point about Big O, but I would cry for the Event Supervisor if they had to read every single team's uncommented, hastily written code and assess runtime. I think it'd be better if the execution time of the intended optimal solution in some given language to benchmark the execution time of a team's solution in that language, but that would take too much effort and expertise on the side of the Event Supervisor.
Great points! I was thinking of some way for the competitor to write an explanation of their time complexity, but I think that's straying too far from the event's purpose. It's correct that languages aren't always going to have consistent differences in speed, but the HackerRank plan is probably the closest we can get to a perfect solution. The rule is still up to the Event Supervisor's interpretation and they could use a strict time limit that is easily doable in C, but much harder to achieve in Python. It's all up to the choice of the ES, but I guess every event is only as fair and enjoyable as the ES makes it. I should say that I don't mean to complain about the rules of Cybersecurity. I'm just giving some constructive criticism of a trial event.

Thanks for the thoughts!
I definitely agree with this. Time limits should have been explicitly set in the rules for each language.
West Windsor-Plainsboro High School North '22
BirdSO Co-Director
My Userpage
404ic
Member
Member
Posts: 13
Joined: November 4th, 2017, 11:54 am
Division: Grad
State: CA
Pronouns: He/Him/His
Has thanked: 4 times
Been thanked: 22 times

Re: Cybersecurity C [Possible mini SO, Satellite SO Replacement]

Post by 404ic »

0ddrenaline wrote: February 2nd, 2021, 9:39 pm
404ic wrote: February 2nd, 2021, 8:54 pm First things first, yes, C/C++/C-like languages are much speedier than Python. Note that to address this discrepancy, contests hosted through HackerRank usually allow C++ 2 seconds to execute, while Python gets 10 seconds, and Java gets somewhere in between. While this doesn't entirely fix the problem (because it'd be extremely incorrect to say that a C++ program always runs five times faster), it does make it significantly fairer.
This was my thought before I brought up Big O. It's true that BirdSO is using HackerRank, which I didn't consider since it's not required within the rules. That's a good decision on the part of the ES, though.
404ic wrote: February 2nd, 2021, 8:54 pm Moreover, one of the justifications for allowing different languages is so that no matter what language the competitor is comfortable with, they can still compete without needing to pick up an entirely different language for a Science Olympiad event. I think Cybersecurity is a fairly foreign topic to most teams, and decreasing accessibility by only allowing a specific language would probably hurt participation rates in the event.
Absolutely true. I only brought this issue up because it could potentially limit a student's choices if they want to succeed.
404ic wrote: February 2nd, 2021, 8:54 pm Finally, I see your point about Big O, but I would cry for the Event Supervisor if they had to read every single team's uncommented, hastily written code and assess runtime. I think it'd be better if the execution time of the intended optimal solution in some given language to benchmark the execution time of a team's solution in that language, but that would take too much effort and expertise on the side of the Event Supervisor.
Great points! I was thinking of some way for the competitor to write an explanation of their time complexity, but I think that's straying too far from the event's purpose. It's correct that languages aren't always going to have consistent differences in speed, but the HackerRank plan is probably the closest we can get to a perfect solution. The rule is still up to the Event Supervisor's interpretation and they could use a strict time limit that is easily doable in C, but much harder to achieve in Python. It's all up to the choice of the ES, but I guess every event is only as fair and enjoyable as the ES makes it. I should say that I don't mean to complain about the rules of Cybersecurity. I'm just giving some constructive criticism of a trial event.

Thanks for the thoughts!
Hey hey,

Thanks for taking the time to think about it. I definitely agree that it's a bit of an oversight that the time limit discrepancy for different languages aren't in the rules — it is just common enough to CP/programming competition auto-graders that I think it was glossed over. Hopefully that can be clarified in the future.

I'm happy to discuss anything else about the Cybersecurity event.
freed2003
Member
Member
Posts: 202
Joined: November 3rd, 2015, 3:00 pm
Division: C
State: CA
Has thanked: 9 times
Been thanked: 6 times

Re: Cybersecurity C [Possible mini SO, Satellite SO Replacement]

Post by freed2003 »

0ddrenaline wrote: February 2nd, 2021, 7:57 pm I'm thinking about doing some coaching for a Cybersecurity team going to BirdSO. It's interesting that the rules allow competitors to use several programming languages, but there's a potential for speed and memory constraints. That greatly incentivises certain languages, probably in the order of C > C++ > Java > Python. Faster languages with better memory management are better in this event. Maybe that's intended, because most would agree that C is harder than Python for beginners, so there's a tradeoff. If it's not the intent to incentivize a certain language, maybe future versions of these rules should allow for Big O constraints instead of time constraints.
While C is definitely the fastest in terms of speed, C++, Java, and especially Python will still remain relevant due to the amount of inbuilt functionality they contain (the python standard library is pretty insane). If the time constraints are adjusted enough, I don't think the time discrepancies between languages will become a big issue. I use Python for codeforces, where the time limit is the same for every language, and there's only been one or two cases where I had to further optimize my solution from the C++ version.
BEARSO/MIT/High Desert/Regionals/State?
Cybersecurity 3/ /2/1
Codebusters 6/2/1/1
Circuit lab 77/20/3/1
Machines / /2/1
biz11
Member
Member
Posts: 25
Joined: February 15th, 2015, 10:55 am
Division: Grad
State: PA
Pronouns: He/Him/His
Has thanked: 2 times
Been thanked: 0

Re: Cybersecurity C [Possible mini SO, Satellite SO Replacement]

Post by biz11 »

I personally don't think heavy optimization to the point of a question being easier to solve with one language than another is the point of the competition. I also think most other event supervisors will avoid giving a test where using C or C++ is necessary for most of the points for the same reason, and instead focus on algorithms. While I do agree that vague time and memory constraint rules are bad, and big O notation would be better, for feasibility sake, I think it would be better to move more away from time and essentially write in the rules that optimization-based problems should be avoided.

Sidenote, but the entire idea of a separate programming and cryptography section still seems weird to me, I think just one cryptography section would work better. It would help teams better prepare for the event by limiting scope at least a little and having it all as one section points-wise would help tests have better difficulty distributions for programming questions I think.

Either way, the hands-on section of cybersecurity requires python 3 implementations, and so I think learning and practicing python is going to be best for teams, especially since it is generally more intuitive to use unless you are very familiar with another language.
Last edited by biz11 on February 7th, 2021, 10:07 pm, edited 1 time in total.
Mount Nittany MS (2014-2017)
State College HS (2017-2020)
Penn State (2020-2024)
Locked

Return to “2021 Lab Events”

Who is online

Users browsing this forum: No registered users and 1 guest