Re: 2014 National Trial Events C
Posted: March 31st, 2014, 8:48 am
I would like to offer some feedback about the tentative national trial event Game On.
I am glad to see that Science Olympiad is finally in the process of creating a computer science event. As someone who regularly programs, creates and distributes products in my free time, a computer science event seems like a great step forward into making Science Olympiad keep up with future areas of science.
However, I have some criticism of and alternate suggestions for how I feel Game On should be run. I and nearly every other programmer I have talked to agrees that Game On is not a correct way to run a computer science event.
I do not think that the creation of a computer game via Scratch is an accurate and objective evaluation of a person's computer science knowledge and ability. While Scratch is an excellent tool for introduction and teaching of basic Computer Science concepts, it is in my opinion certainly not the tool to use for competition due to its drag and drop, pseudo-but-not-completely-programming nature. Algorithmic challenges cannot be run well with scratch (see below). Instead, a classical programming language should be used (I recommend Python - it is commonly used and is very powerful, yet is one of the easiest languages to pick up). In addition, designing the event to use what I feel is a commercially and scientifically used programming language would be right in step closer to the goal of Science Olympiad - to prepare students for a future of science.
In addition (and what I consider more important), the greatest flaw is that the very objective of the event is to create a game. I do not think that this is a good way to evaluate programming ability. I foresee difficulty in distinguishing between two subjective products (especially at the national level). I also think that 50 minutes is not enough time to create a game that will meet the requirements enough to differentiate between teams. The true science of computer science is solving problems. In my opinion, what differentiates between how programmers can "think" is their ability to solve algorithmic problems. I would suggest looking at USACO (http://usaco.org/) and Hackerrank (https://www.hackerrank.com/) as examples of and inspiration for some of these problems.
My proposal for improving the event is to model it after a UIL Computer Science or USACO competition. The basics are as follows:
-Use a classical programming language like Python or Java
-Instead of a game, give teams 50 minutes to solve a collection of problems like these (http://www.cs.utexas.edu/~scottm/uil/20 ... s_2014.pdf). Each problem has multiple test cases. Teams would be ranked by how many problems they can solve that work with the test cases
-There can also be a written test in addition to the hands on programming. The written test would be similar to this: http://www.cs.utexas.edu/~scottm/uil/20 ... ritten.pdf.
In short, I do not feel that the current implementation of Game On is the correct way to implement a computer science event. Instead, I would recommend a USACO or UIL type programming competition of objective algorithmic nature. A written test could also be added.
I speak for nearly all of my fellow Science Olympiad competitors who program when I say that we think this would be the ideal way to run a computer science event in Science Olympiad.
I am glad to see that Science Olympiad is finally in the process of creating a computer science event. As someone who regularly programs, creates and distributes products in my free time, a computer science event seems like a great step forward into making Science Olympiad keep up with future areas of science.
However, I have some criticism of and alternate suggestions for how I feel Game On should be run. I and nearly every other programmer I have talked to agrees that Game On is not a correct way to run a computer science event.
I do not think that the creation of a computer game via Scratch is an accurate and objective evaluation of a person's computer science knowledge and ability. While Scratch is an excellent tool for introduction and teaching of basic Computer Science concepts, it is in my opinion certainly not the tool to use for competition due to its drag and drop, pseudo-but-not-completely-programming nature. Algorithmic challenges cannot be run well with scratch (see below). Instead, a classical programming language should be used (I recommend Python - it is commonly used and is very powerful, yet is one of the easiest languages to pick up). In addition, designing the event to use what I feel is a commercially and scientifically used programming language would be right in step closer to the goal of Science Olympiad - to prepare students for a future of science.
In addition (and what I consider more important), the greatest flaw is that the very objective of the event is to create a game. I do not think that this is a good way to evaluate programming ability. I foresee difficulty in distinguishing between two subjective products (especially at the national level). I also think that 50 minutes is not enough time to create a game that will meet the requirements enough to differentiate between teams. The true science of computer science is solving problems. In my opinion, what differentiates between how programmers can "think" is their ability to solve algorithmic problems. I would suggest looking at USACO (http://usaco.org/) and Hackerrank (https://www.hackerrank.com/) as examples of and inspiration for some of these problems.
My proposal for improving the event is to model it after a UIL Computer Science or USACO competition. The basics are as follows:
-Use a classical programming language like Python or Java
-Instead of a game, give teams 50 minutes to solve a collection of problems like these (http://www.cs.utexas.edu/~scottm/uil/20 ... s_2014.pdf). Each problem has multiple test cases. Teams would be ranked by how many problems they can solve that work with the test cases
-There can also be a written test in addition to the hands on programming. The written test would be similar to this: http://www.cs.utexas.edu/~scottm/uil/20 ... ritten.pdf.
In short, I do not feel that the current implementation of Game On is the correct way to implement a computer science event. Instead, I would recommend a USACO or UIL type programming competition of objective algorithmic nature. A written test could also be added.
I speak for nearly all of my fellow Science Olympiad competitors who program when I say that we think this would be the ideal way to run a computer science event in Science Olympiad.