Get to know our January Star Player!
Nickie is one of the most busy bees on the forum and never short of a great code review. Real Star Player material!
How did you learn about CheckiO?
Last year I was giving a Python seminar, which ended up focusing on algorithmic problem solving using Python. Later on, one of the students posted in the students' forum that "if one needs practice problems, a very good site/game is CheckIO". I followed the link and got stuck.
How long have you been on the platform?
I think this was in October 2013, so I've been around for three months.
What do you like about CheckiO?
It's a nice looking platform with emphasis both on style and functionality. Also, compared to other (more serious) coding contests that exist, CheckIO values the exchange of users' opinions on code --- code reviews, voting, comments, etc. --- and this is very important. It makes CheckIO suitable not only for people who want to show off :-) but also for people who want to learn, by reviewing others' solutions and their comments.
You are pretty active in the forum, what do you focus on when you look at solutions from other players?
For the past 10 years, I've been involved in programming contests for school students (ages 12-18, culminating in the IOI): designing tasks and test cases, training students, etc. For a slightly longer time, I also teach "Introduction to Programming" to our first-year undergraduate students and the approach that we take here is that one first learns the basics of algorithmic problem solving, using any appropriate programming language, and only then she or he should be exposed to the intricacies of programming languages and their implementations.
With this in mind, when I look at a solution I tend to focus on the following (usually in this order):
- Correctness; does this solution work for all test cases?
- Algorithmic complexity; how fast is this solution for large inputs?
- Readability and elegance; is the code short, elegant in style, readable?
I'm often disappointed that my first and (especially) my second concern are often neglected by CheckIO and by mission designers. In most tasks, test cases are small and not as exhaustive as they could be. I've made a related suggestion in the forum (sorry, I can't find it now to include the link) and I'd be glad to help fixing it in a way that will bring attention to correctness and complexity without scaring users away.
When do you play most? (evenings? lunch breaks?)
From September until December 2013 there was a very big strike of administrative people, resulting in the temporary closing of the two biggest Greek Universities (which have seen much better days, along with our entire country). This left me with much more free time than usual. In normal circumstances, I "play" during evenings and weekends. Occasionally from the office too, if there's an hour of free time. I consider "playing" this kind of games as a part of my job.
What kind of challenges do you like most?
What I like most is algorithmic tasks, which admit clever and fast solutions. [Pearls in the box](http://www.checkio.org/mission/box-probability) is a recent one that I liked very much. I'm looking forward to seeing what people will come up with when the solutions are released; how many dynamic-programming solutions there will be in comparison with brute-force ones.