
Conduct student programming Olympiad: our experience

It so happened that in our region and our industry (web development), our studio has been a leader for many years in a row. This is not written for the red words at all, just such a situation imposes a certain responsibility: those young children who want to do the web need help to prove themselves.
And along with this there is a logical practical interest - when the studio grows, it needs more hands and heads, and these same guys could become them. Of course, if we wanted to ourselves, we are not forcing anyone.
We have a very sober awareness that in Barnaul there are simply no specialists we are ready for using at the level we need. Rather, they are, but all are already working somewhere. Therefore, one of the motives for the Olympics is to reveal free, bright minds.
Problems
At least two major problems prevent the web as an industry from developing:
First, global. Those who study in IT specialties often do not have the normal applied knowledge given by teachers. So many current PHP developers are self-taught.
The second is local. It is called "the problem of rare personnel in a small city." Many flee the city, others work at the desks, where it’s difficult to unleash the potential, but still remain seated straight (because there is nowhere to go especially).
Now - to the goals arising from here.
Goals
- Stimulate the industry as a whole, make young programmers look towards the web, create a positive halo.
- Find those who want to develop in this direction, offer them the opportunity to gain practical skills.
Base
By the time we decided to develop activities for ourselves that would help to achieve these goals, we already had the experience of "growing" developers from very green and inexperienced. This practice was dictated, again by the “small town problem” - they took a beginner, included him in a team of experienced developers (we have Scrum), and gradually increased the complexity of the tasks given to him.
Idea
From the whole goal-setting a logical decision emerged: to hold a student web programming olympiad. Inter-university, without strict requirements for participants - this can be any student or schoolchild.
I must say right away that the Olympiad has already been held twice, in the 2013th and 2014th, so a report on how this was done will be “combined” of these two experiments.
So, what was done during the preparation for the Olympics:
- We contacted a familiar progressive teacher from a state university (he oversees a local IT center). He helped a lot to get around the various "subtleties" of the education system.
- Together we planned how we will convey information to students. Working with teachers, by the way, could bring both invaluable benefits and a fair amount of hemorrhoids (as it turned out, not all teachers see benefit for themselves in such events and can easily become an obstacle).
- We decided on the time of the Olympiad: it will be March-April. The time of sessions and defenses has not yet come; many determine the place of practice.
- We developed the concept of the Olympiad: there will be two rounds - part-time (site competition, you need to develop and show a site with a story about yourself) and full-time (solving algorithmic problems in any familiar language). Thus, the strongest were revealed both by “intelligence and quick wit”, and by pumpability precisely in web development.
- They came up with the name - Hot Code (which is funny, in a couple of months a conference with the same name will be held in Kiev ). They made leaflets to attract attention in the walls of the university and launched the promotion site of the Olympiad, with the registration form.
- Allocated a place on their hosting for the sites of the contestants - all who wished to participate were given access.
Planned a plan for publishing in local media. The university has joined the PR service - distributing information about the Olympiad in social networks.
The machine was started, at first we had only to accept competitive sites (by the way, there were a couple of almost professional ones that pleased us all).
The next round is problem solving. Who cares, you can decide, here is one example;)
Minefield

The flat playing field is divided into adjacent cells (squares), some of which are “mined”; the number of "mined" cells is known. The aim of the game is to open all cells that do not contain mines.
The player opens the cells, trying not to open the cell with the mine. Opening a cell with a mine, he loses.
Mines are placed from a pre-prepared file. If there is no mine under the open cell, then a number appears in it showing how many cells adjacent to the just opened one are “mined”. If there are no mines under the neighboring cells, then a certain “non-mined” area opens up to the cells in which there are numbers. Having opened all the "non-mined" cells, the player wins.
Input file [input.txt]
The input file in the first line contains two numbers, M - width, N - height, separated by spaces (maximum 50 50). Next is M lines. Each line contains N characters. Symbols can be 0 (no mines) and 1 (mined).
[output.txt]
5 | 5 | |||
0 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 1 |
0 | 1 | 0 | 1 | 0 |
0 | 1 | 1 | 0 | 0 |
1 | 1 | 0 | 1 | 1 |
Speaking of prizes. The Olympics, of course, are not on sheer enthusiasm:

In addition to material values, we proposed to undergo an internship in the studio. So a year ago, in 2013, we invited 8 students, of whom four agreed, three of them were enrolled in the state and are working to this day.

Quite lively statistics.
Now
At the moment, the winners of 2014 were awarded, invitations were sent - we are waiting for a meeting with new Padawans. And the experience is pretty good, if you decide to conduct it - specify what is interesting, try to tell.