
Dans le cadre du projet AichiHype, nous avons enregistré une
interview vidéo avec Andrei Stankevich , le légendaire entraîneur de l'équipe de programmation sportive de l'Université ITMO , qui gagne régulièrement chaque année dans les compétitions internationales.
Et pour ceux qui ne sont pas très intéressés par la version vidéo, sous la coupe, nous avons préparé une transcription détaillée de l'interview, où Andrei parle des nuances de la programmation sportive, prépare les étudiants aux Jeux olympiques, l'éducation russe, les salaires et les réunions avec les présidents.
À propos de la programmation de l'Olympiade
Stas Tsyganov: Parlons d'abord de la programmation de l'Olympiade. Dites-moi ce que sont les tournois et quelles sont les règles pour de telles compétitions?Andrew : Le plus grand tournoi de la programmation des Olympiades est le championnat du monde parmi les étudiants. Il a la plus longue histoire. Cela a commencé, même pas moi, ou vous, probablement, n'était pas là, dans les années 70 du siècle dernier, comme un tournoi de collèges américains.
C'est un tournoi par équipe, maintenant c'est déjà le championnat du monde international. La finale a lieu chaque année dans un pays différent. L'année dernière, j'étais à Pékin. Là, l'équipe de l'Université d'État de Moscou est devenue championne. Ce tournoi a récemment été remporté uniquement par des étudiants russes. Et notre université, l'ITMO, l'Université d'État de Saint-Pétersbourg et l'Université de Moscou gagnent depuis sept ans.
C'était à l'origine un tournoi américain, et c'était un tournoi par équipe. Là, des équipes de trois étudiants résolvent les problèmes pendant un certain temps. La compétition dure cinq heures. On vous confie 11 à 13 tâches, vous devez en résoudre autant que possible. Plus loin le temps des pénalités. Une amende est la somme du temps qu'il faut pour résoudre tous les problèmes.
Stas: Il s'avère que plus tôt la tâche est terminée, moins est le temps de pénalité?Andrew: Tant moins, oui. Besoin plus rapide.
Stas: Et pour les tentatives?Andrew: Pour les tentatives de retrait aussi. Il y a une pénalité de 20 minutes si j'essaie de le résoudre incorrectement. Vous pouvez essayer de le résoudre autant de fois que vous le souhaitez. Et immédiatement le résultat est rapporté - bien ou mal.
Stas: Il est intéressant de discuter des langages de programmation. Quand j'étais étudiant, je résolvais des problèmes chez nous, où il fallait respecter la taille et la vitesse. Cela a imposé des restrictions sur certains langages de programmation.Andrei: Maintenant, il y a encore des limites de temps, mais pas la taille. Il y a une restriction conditionnelle sur la taille de la source, mais elle est très grande, presque personne ne l'atteint. Fondamentalement, maintenant tout le monde utilise C ++ comme un langage puissant, rapide et flexible.
Mais il a aussi ses inconvénients spécifiquement pour les Jeux olympiques. Ces inconvénients ne concernent pas seulement les olympiades, mais également la vraie programmation. Il est difficile de rechercher des erreurs dans le code C ++. Il est plus difficile de comprendre exactement où se bloque votre programme, etc. Mais, néanmoins, en raison de la vitesse, tout le monde l'utilise vraiment maintenant.
Il y a des équipes qui utilisent Java. Là, il est plus facile dans un sens de trouver des erreurs, une mémoire plus contrôlée, un code plus contrôlé. Mais des ordures plus syntaxiques, des programmes plus longs s'avèrent. Et ils fonctionnent un peu plus lentement à cause de la machine virtuelle.
J'ai moi-même essayé d'enseigner aux équipes de notre université à Java il y a une dizaine d'années, nous utilisions activement Java. Mais depuis lors, C ++ a également fait un pas en avant.
Et un autre langage de programmation que les écoliers utilisent davantage est Python. C'est beaucoup plus lent, il est encore plus difficile de respecter le délai imparti. Mais alors il y a des programmes très compacts, ils sont très rapides à écrire.
Parfois, lorsque la limite de temps ne joue pas de rôle dans les tâches, Python est choisi. Le temps de pénalité n'est pas donné pour la durée du programme, mais pour la période allant du début de la compétition jusqu'à ce que vous réussissiez la tâche. Par conséquent, il est important d'écrire plus rapidement.
Et la dernière langue qui a été ajoutée à la Coupe du monde l'année dernière est le kotlin.
Stas: Je sais qu'il y a assez souvent une personne dans une équipe qui est responsable de la partie mathématique de la tâche. D'autres rôles?Andrew: Ça se passe très différemment. Chaque équipe est sa propre composition unique. Il existe plusieurs modèles de réussite. L'un est vraiment un mathématicien qui résout les problèmes. En fait, il est déjà allé assez loin des mathématiques, car néanmoins, les tâches de programmeur, les algorithmes, les structures de données y sont aussi tous. Une telle personne propose des algorithmes, des idées.
Et le reste des encodeurs. Que signifient les codeurs? Eux aussi devraient très bien connaître ces algorithmes, car ils ne pourront pas programmer l'algorithme ligne par ligne sous la dictée de ce mathématicien. Quand résoudra-t-il les problèmes différemment? Ils se concentrent davantage sur les algorithmes, sur l'implémentation, sur la façon d'écrire soigneusement le code afin qu'il fonctionne immédiatement, pour trouver rapidement une erreur si quelque chose ne fonctionne pas. Il existe un tel modèle.
D'autres équipes - les équipes ITMO les plus performantes - ont travaillé sur un modèle différent lorsque les trois personnes de l'équipe sont des codeurs très cool. Et les algorithmes le savent aussi. Certains d'entre eux sont meilleurs, certains sont pires, certains se spécialisent en géométrie, certains sur les structures de données complexes, certains sur les chaînes. Et ils sont prêts à se remplacer dans des choses plus simples.
Mathématicien dédié - il y a toujours un tel danger qu'il n'a pas décidé quelque chose, et c'est tout. Ce n'est pas son thème qui est apparu. Et donc, quand les trois personnes comprennent, trouvent une idée, il me semble que de telles équipes sont plus fiables.
À propos de olympiadnikov
Stas: Vous avez parlé du fait qu'il s'agit principalement de compétitions étudiantes. Pour autant que je sache, dans certaines compétitions, il existe certaines règles selon lesquelles un athlète ne peut pas participer plus que dans un certain nombre de tournois. Quelle en est la raison?Andrew: Vraiment. Cela s'applique principalement au championnat du monde entre étudiants. Il y a deux limites. Premièrement, vous ne pouvez pas participer plus de deux fois à la finale et plus de cinq fois en général. Dans toute compétition de qualification - pas plus de cinq fois.
L'idée principale de cette règle était que de plus en plus d'étudiants devraient rejoindre ce mouvement. Par exemple,
Gennady Korotkevich est venu me voir pour la première année, et c'est tout, pendant six ans, je suis libre, je peux me détendre, boire du thé et regarder comment Gena gagne tout de suite. Non, je dois me rappeler tout le temps qu'il ne peut jouer que deux fois en finale. Pendant ce temps, je dois préparer un quart de travail, de nouveaux participants qui seront les meilleurs l'année prochaine, après le départ des meilleurs. Ceci est le premier.
Par exemple, Gennady Korotkevich est venu me voir pour la première année, et c'est tout, pendant six ans, je suis libre, je peux me détendre, boire du thé et regarder comment Gena gagne tout de suite
Deuxièmement, vous ne pouvez pas vivre éternellement uniquement avec cette programmation Olympiade. Besoin d'avancer. Pour que chaque élève comprenne qu'il ira vraiment en finale deux fois, essayez de gagner. Mais il continuera d'avoir une vie différente. Il doit soit s'engager dans la science, soit entrer dans l'industrie, soit s'engager dans l'éducation, ou autre chose. Elle ne pourra certainement pas étudier les Jeux olympiques à l'infini.
Stas: Évidemment, le code qui a été écrit lors du tournoi ne sera utilisé nulle part ailleurs. Il peut ne pas être écrit dans le meilleur style. La chose la plus importante est qu'il exécute la tâche, s'inscrit dans le temps réservé. Mais dans l'industrie, ils n'écrivent pas de code comme ça.Andrew: Les Jeux Olympiques et le code industriel sont en relation avec le fait qu'ils utilisent les mêmes langages de programmation et algorithmes. Mais il y a beaucoup de différences.
Non pas que vous ayez besoin de rechercher des sociétés olympiades pour obtenir immédiatement un employé qui écrit le code parfait. Il est avantageux pour l'entreprise d'obtenir ce code parfait. Ils développent leurs directives, ils ont leurs propres principes, comment fonctionne la programmation. Lorsqu'ils embauchent une Olympiade, ils obtiennent une personne qui pense bien. Et il devra déjà adapter son code, son style d'écriture, etc., tout en travaillant dans l'entreprise.
Lorsqu'une entreprise est embauchée, c'est-à-dire une sélection de candidats pour ce poste. Ils doivent choisir celui qui convient le mieux à l'entreprise. Il y a un niveau moyen de personnes qui viennent vers eux. Il y a une sorte d'écart. Ce niveau moyen dans l'environnement olympiade est déplacé vers le haut, car les gens viennent déjà formés, connaissent bien les algorithmes et réfléchissent plus rapidement.
Stas: Je connaissais les participants à l'Olympiade panrusse des mathématiques. Et ils m'ont dit que les problèmes des olympiades sont très différents de ce qu'ils enseignent à l'université. Comment ça marche dans la programmation olympiade?Andrei: Au départ, les problèmes d'olympiades sont des modèles simplifiés de problèmes réels. Les gens qui sont venus et ont fait les tâches - ce sont principalement des gens de la science qui ont fait certaines choses, les ont projetées sur les tâches de l'olympiade, d'une manière ou d'une autre simplifiées, reformulées. Lorsque j'écrivais une thèse, l'un des algorithmes de celle-ci a également été présenté comme un problème d'olympiade.
Mais il arrive que des tâches pour certaines compétitions, en particulier à un niveau inférieur, soient déjà pensées pour une raison quelconque: terminons, ceci, cela, ce sera un problème d'olympiade, vous pouvez le donner. Traditionnellement, nous considérons les compétitions où ils ne l'ont pas fait et où vraiment de nombreux membres du jury ont remarqué des tâches intéressantes de leur pratique et les ont transformées en Olympiades plus intéressantes.
Stas: Est-il jamais arrivé qu'à l'Olympiade, ils prennent pour les tâches les plus difficiles des problèmes dont les solutions n'ont pas encore été résolues? Et si une solution est trouvée, elle sera utilisée dans l'industrie.Andrew: Oui et non. Dans les compétitions olympiades classiques comme les championnats du monde de programmation, ils ne le font pas. Il y a toujours des tâches claires, l'auteur de la tâche connaît sa solution. Cela pourrait être une nouvelle approche pour tout le monde. Il arrive qu'il ait même trouvé une nouvelle classe de problèmes. Mais il devrait toujours y avoir une solution.
Mais il y a des compétitions plus longues, des marathons, dans lesquelles des tâches sont données pour lesquelles la solution n'est pas connue exactement. Et les sponsors de ces compétitions sont souvent toutes sortes d'entreprises intéressantes, comme la NASA. Ils donnent des tâches, peut-être aussi simplifiées, mais avec une solution exacte inconnue. Et l'équipe, les participants se disputent qui trouveraient mieux une solution à ce problème. Et puis, peut-être, ils essaient de l'appliquer d'une manière ou d'une autre.
A propos du travail d'un coach
Stas: Qu'est-ce qui fait fonctionner un coach?Andrew: En fait, cela évolue avec le temps. Il y a 15 ans, au début des années 2000, je commençais à peine à travailler comme coach, il y avait mes tâches. Ensuite, le travail principal du formateur était de dire quelques algorithmes, quelques astuces de programmation. Autrement dit, pour préparer une équipe d'un point de vue fondamental, parler de la façon de résoudre les problèmes. Trouver des tâches de formation, mettre en place un système de formation.
Maintenant, il y a beaucoup plus de tels cours. Dans le domaine de l'enseignement de l'informatique, nous avons connu un certain saut, et maintenant il y a beaucoup de bons cours dans les universités russes. Les élèves sont déjà plus préparés, ils se préparaient pour les olympiades à l'école, étaient dans différentes écoles d'été et sont allés en cercle. Les algorithmes sont principalement des gens qui connaissent déjà.
Trouver un entraînement n'est également pas un problème en ce moment. Il existe des archives en ligne avec un grand nombre des meilleures compétitions des dernières années, qui peuvent être résolues en mode compétition virtuelle. À tout moment, vous appuyez et rivalisez avec toutes les équipes qui ont déjà décidé de cette compétition.
Par conséquent, maintenant, le travail principal des entraîneurs se situe plutôt dans le domaine du plan d'organisation et de la motivation de l'équipe. Il est nécessaire de savoir de qui exactement former une équipe et de motiver les étudiants à le faire. De plus, à l'université, beaucoup ne s'intéressent pas aux olympiades, font des stages, essaient déjà de planifier une carrière, etc.
Encore une fois, former une équipe n'est pas si simple, car les membres de l'équipe doivent se compléter, l'équipe doit avoir un bon climat psychologique. Le travail du coach se déplace désormais davantage vers les activités organisationnelles. Mais plus précisément, je continue à l'université de suivre des cours sur le contenu. Et il y a des formateurs qui ne sont pas directement liés au contenu, à la théorie, à l'informatique, mais qui font du travail d'organisation. Et certains de leurs assistants couvrent les problèmes de contenu.
Les membres de l'équipe doivent se compléter, l'équipe doit avoir un bon climat psychologique.
Stas: Dans d'autres sports, en particulier dans les sports d'équipe, il y a des clubs et des équipes nationales. Les participants de ces clubs représentant le pays sont sélectionnés pour l'équipe nationale. Y a-t-il quelque chose de similaire dans la programmation des olympiades?Andrew: Ce n'est pas le cas dans les compétitions étudiantes. Il n'y a pas d'équipes nationales. Ce sont précisément les représentants des universités qui y concourent. Naturellement, l'université est toujours située dans certains pays. Par conséquent, lorsqu'une équipe d'une université russe remporte la Coupe du monde, alors, bien sûr, toute la communauté russe gagne. Mais c'est précisément la concurrence des pays - il n'y a pas un tel format.
Mais les étudiants l'ont. Les élèves ont une olympiade d'école internationale, et là, quatre personnes de chaque pays peuvent venir jouer, représenter leur pays. Nous avons tout un système de préparation pour cette Olympiade. Nous sélectionnons des écoliers pour l'Olympiade panrusse. Ensuite, nous les collectons, nous nous entraînons dans des camps d'entraînement spéciaux. Et là, nous sélectionnons les meilleurs pour aller au pays. Nous avions quatre personnes cette année. Deux médailles d'or, deux d'argent. De plus, ce résultat est considéré comme pas très bon. Nous nous efforçons uniquement pour les médailles d'or dans les compétitions scolaires.
Stas: Est-ce aussi une compétition par équipe?Andrew: Non, il y a une compétition personnelle. Tout le monde parle pour lui-même, mais à la fin tout le monde regarde comment les écoliers de quel pays parlent des médailles. Soit dit en passant, intéressant sur les médailles, je veux dire. Tous ceux qui regardent une sorte de sport, comme l'athlétisme, pensent: il y a une médaille d'or, une médaille d'argent, une médaille de bronze, et c'est tout. Trois prix.
Lors des concours scolaires en informatique, en mathématiques, ce n'est pas le cas. Là, les médailles sont décernées assez généreusement. Environ la moitié des concurrents reçoivent des médailles. Et donc, il y a une valeur particulière une médaille d'or, qui reçoit 1/12 des participants au concours. Aux Jeux olympiques internationaux de l'école, vous devez entrer dans le top 28. En gros, dans le top 30 mondial.
Les étudiants reçoivent des médailles comme celle-ci. Pour les quatre meilleures places - or, quatre - argent, les quatre suivantes - bronze. 12 prix.
À propos du support et des prix
Stas: En parlant des gagnants, en plus des médailles, que peut-on gagner à de telles compétitions?Andrew: En général, les prix ne sont pas très importants. Il y a eu une forte augmentation des prix vers 2007-2008, lorsque de grandes sociétés de parrainage sont venues, en particulier Microsoft, IBM. Ils ont commencé à augmenter les prix pendant un certain temps. Ensuite, il a commencé à décliner un peu, et maintenant les prix sont principalement symboliques.
Dans un concours personnel organisé par des entreprises, Google ou Yandex, il y a un prix pour la première place - quelque part entre 5 et 10 000 dollars. Et pour le deuxième et le bas - des prix presque symboliques. En finale de la Coupe du monde, le prix de la première place dans l'équipe est d'environ 15 mille dollars, puis ils diminuent aussi rapidement. Seules les médailles reçoivent des prix. Pour une médaille de bronze - 3 mille dollars par prix d'équipe.
Personne ne concourra pour des prix, car cet argent peut être gagné en programmation beaucoup plus, beaucoup plus facilement qu'en participant à des concours, en s'entraînant pendant plusieurs années.
Plutôt, en plus des médailles, une sorte de relations publiques, de gloire, de mérite. Quelques rencontres, parfois avec des hauts fonctionnaires de l'Etat. Certains prix sont déjà dans leur propre pays, peut-être dans leur université. Mais le soutien financier global n'y est désormais plus très important.
À propos de l'éducation russe
Egor Tolstoy: Andrei, comment préparer les élèves aux programmes olympiques de programmation sportive? Et comment est-il organisé dans notre pays maintenant?Andrew: Il y a deux aspects à cette question. Tout d'abord, selon quel objectif. Il y a des écoliers qui participent principalement aux olympiades pour entrer dans une université. Bien sûr, ils doivent comprendre approximativement leur niveau. Les Jeux olympiques sont également de différents niveaux. Et il faut résoudre les problèmes d'un tel plan, que l'on retrouve aux Olympiades qu'il a choisies. Apprenez des algorithmes, programmez, participez à des compétitions, résolvez des compétitions en ligne.
Pour les participants qui sont déjà au plus haut niveau et prétendent gagner l'Olympiade panrusse ou passer à l'Olympiade internationale - tout se transforme vraiment en sport là-bas. Programmation sportive. Vous devez étudier sérieusement, au moins deux fois par semaine, aller dans un club, organiser des compétitions en ligne, s'il n'y a pas de club dans la ville où se trouve l'étudiant.
Egor: Est-ce que le système d'enseignement de l'informatique, qui est maintenant disponible dans les écoles secondaires ordinaires, pousse les gars à cela? Ou avez-vous besoin de rechercher consciemment certains cercles, comme vous l'avez dit?Andrei: Il me semble que dans la plupart des écoles de Russie, l'informatique n'est pas au plus haut niveau. Ce n'est pas partagé, mais l'informatique comprend non seulement la programmation. Les Jeux olympiques chez les écoliers - l'essentiel est concentré précisément sur l'aspect de la programmation. Il faut non seulement trouver un algorithme, puis le programmer.
Dans le même temps, l'informatique à l'école, en plus de la programmation, comprend, premièrement, les choses nécessaires pour l'Olympiade, et généralement utiles - l'informatique théorique, la théorie de l'information, les fonctions, certaines de ces choses. Naturellement, au niveau de base, mais néanmoins. Il y a aussi des choses utilisateur: travailler avec des suites bureautiques, travailler sur Internet. Bien entendu, cela ne contribue guère à la préparation des Jeux olympiques.
Il y a toujours une activité de projet dans les bonnes écoles. Il peut y avoir certaines choses lorsque les enfants réalisent un projet, qu'ils peuvent ensuite envoyer au concours. Ceci est également utile. Ceci est une préparation pour des stages potentiels. Mais les Jeux olympiques ne sont d'aucune aide.
Autrement dit, dans une école russe moyenne, l'informatique est loin de réussir à l'Olympiade en informatique ou en programmation. Tous les écoliers des régions qui réussissent d'une manière ou d'une autre ont évidemment commencé à étudier eux-mêmes en plus, ou sont allés dans un club, ou sont allés dans une école d'été.
Egor: Pourquoi pensez-vous que cela se produit? En effet, dans les mêmes mathématiques, physique, le programme est partout pareil. Quant à l'enseignement de la programmation ou de l'informatique, il se passe vraiment des choses complètement différentes d'une école à l'autre.Andrei: Tout d'abord, les mathématiques, la physique sont déjà des matières beaucoup plus établies. Ils ont une histoire de centaines d'années. Et des dizaines d'informatique seulement jusqu'à présent. Deuxièmement, de ces décennies, une grande période est tombée sur la crise du financement de l'éducation. Lorsque des enseignants talentueux, beaucoup ne pouvaient tout simplement pas aller à l'éducation, car c'était difficile financièrement.… - . , 1980-, 1980-, , , , , .
, . , . , : – . , .
, . . , . , , , . . , , - . : « ».
: « ».
, , . . , 1990- – 2000- , , , . , , , , .
, , Python. , , . , . , , .
: , ?: , – . , - – .
, , , . , – , . , , - . , , . , , , , , . , , .
: , ?: , . - . , , , . . 280-300 , . , , – . , , . .
Il s'agit d'une crise de motivation, notamment des enseignants de ces universités. Je connais des professeurs d'université de Petrozavodsk et Saratov qui sont contrariés parce qu'ils doivent enseigner dans des conditions plus difficiles. La crise des universités régionales est l'une des conséquences du système d'examen unifié de l'État ou des olympiades RSOSh.À propos des salaires des enseignants
: ? ? ?: - , - - , , , , , - , , , – , . . - , – – , , - , , .
… , - … , .
: ? , , Google, . , ?: . , , . , . - , -. , – - . .
, . – «5-100», 21 .
, , -, Computer science . , , -, , , .
.
. – –
« » . , , , , .
– JetBrains, , ., – , , , , , .
: , ? ?: . , , , , . – 10-20-30. .
, - , «5-100», . , .
: , ? , .: . . , , 10-15 , , , .
, , , : - , , . . . ?
, , , , , , , . , , . .
Egor: En 2009, vous et Dmitry Medvedev avez rencontré l'équipe gagnante de l'Olympiade. J'ai trouvé la transcription de l'entretien. Il y a de merveilleux moments où vous lui lisez les textes des tâches. Dans certains cas, ils comprennent, dans d'autres non. J'ai eu le fort sentiment que vous le traitez avec précaution dans le processus. Était-ce intentionnel ou est-ce arrivé?Andrei: Vous devez comprendre que ces réunions sont organisées pour les caméras. Lors de telles réunions, rien n'est décidé. Si des problèmes sont résolus, ils peuvent vraiment être programmés pour coïncider avec cette réunion. Mais en réalité, une réunion est une campagne de relations publiques.Lors d'un briefing sur cette réunion, on nous a dit que le président serait intéressé de savoir quelles étaient les tâches. Nous avons examiné les tâches de la dernière finale et sélectionné quelques tâches pour lesquelles les textes correspondent à au moins quelques problèmes quotidiens. Parfois, il est difficile, même pour un étudiant non préparé, d'expliquer l'énoncé de la tâche d'un programmeur. Nous avons choisi des légendes assez amusantes, comme il nous a semblé. Je ne sais pas, peut-être un élément de pêche à la traîne.. – – 2004 , . , . , .
: ? , ?: , . , , 2016 , , . , , .
, , -. – , , .
, , .
: , ?: , , - . , . . . , , , , , .
- , . : - , «5-100», .
Que peut demander l'État, à part l'argent? Ce n'est pas clair. Vous pouvez toujours demander moins de montée, pour être honnête, mais vous ne le demanderez pas.Compétition
Dans les commentaires sur la vidéo sur Youtube, avec Andrei, nous organisons un concours. Le vainqueur recevra un T-shirt de notre équipe de la finale du Championnat du monde de programmation de l'année dernière, de Pékin.Affectation:Récemment, les sports électroniques ont été très populaires lorsque les concurrents jouent à des jeux et gagnent de gros prix. Et dans la programmation sportive, les prix sont jusqu'à présent sensiblement inférieurs.
Nous devons trouver une motivation pour que les entreprises sponsors fassent des prix pour les compétitions de programmation sportive. Pourquoi seraient-ils intéressés? Comment motiver les entreprises à soutenir nos compétitions?
, ! ,
– , , IT.