Olympiade étudiante "Je suis un professionnel": direction "Programmation et technologies de l'information"

Aujourd'hui est le dernier jour d' inscription pour l'étudiant Olympiade " Je suis un professionnel ". Et nous parlons de la direction de «Programmation et technologie de l'information».

Le partenaire général de l'Olympiade dans les domaines de l'Université ITMO est «Programmation et informatique», «Information et cybersécurité», « Big Data » - Sberbank.


Christina Morillo / Pexels / PD

Quelques mots sur les JO "Je suis un professionnel"


Olympiade étudiante "Je suis un professionnel" est un concours pour les bachelors et masters en spécialités humanitaires et techniques. Les étudiants qui se montrent bien aux Jeux olympiques pourront entrer dans les universités russes sans examens. Dans le même temps, ils suivront une formation dans les principales sociétés informatiques russes: Yandex, Sberbank, IBS et Mail.Ru.

Les Jeux Olympiques débuteront le 24 novembre ( aujourd'hui est le dernier jour d'inscription ) - c'est la date de début des phases de qualification. Ils auront lieu dans un format en ligne. Les participants qui passeront au tour suivant passeront à l'étape à plein temps de la compétition. Il se tiendra dans différentes universités du pays en février 2019.

Quels domaines de l'Olympiade surveillons-nous


L'ITMO University prépare des tâches dans les domaines suivants: "Programmation et informatique", "Information et cybersécurité" et " Photonique ".

Même cette année, nous avons introduit deux nouveaux domaines:

  • " Robotique ": Les sujets dans le domaine sont la mécanique, l'électronique et le contrôle. La participation devrait être accordée aux étudiants qui envisagent de poursuivre leurs études dans le domaine de la mécanique appliquée, du génie logiciel, etc. Les partenaires dans ce domaine étaient Motorika, NPO Android Technique et DNS.
  • Big Data : les sujets dans ce domaine incluent l'analyse des données, les statistiques et l'apprentissage automatique. Convient aux étudiants qui étudient dans les facultés d'informatique appliquée, TIC, technologies de l'information dans le domaine humanitaire , etc. Parmi les partenaires figurent des sociétés telles que Gazprom, Siemens, MTS et Business Lines.

Ensuite, nous parlerons davantage de l'orientation de «Programmation et technologie de l'information».

A propos de la direction "Programmation et informatique"


L'ITMO University est l'un des plus grands organisateurs d'événements proches du niveau de l'Olympiade "Je suis un professionnel".
Nous organisons un grand nombre de concours créatifs et de concours en informatique et programmation. Il s'agit des olympiades scolaires, par exemple, l' Olympiade panrusse des écoliers , l'Olympiade " Technologies de l'information " et l' IOIP . Nous organisons également des olympiades d'étudiants, notamment les demi-finales du championnat du monde de programmation ICPC .
Lorsque nous avons travaillé sur la direction «Programmation et technologies de l'information», nous avons pris en compte la riche expérience dans l'organisation d'autres événements compétitifs thématiques dans le domaine informatique et l'expertise de collègues. Par exemple, depuis cette année, Mikhail Mirzayanov, auteur et développeur du portail Codeforces , travaille à l'Université ITMO.

La préparation de la direction «Programmation et technologies de l'information» par l'Université ITMO est effectuée par les employés de la faculté correspondante. Il s'agit du doyen Parfenov Vladimir Glebovich, ainsi que du professeur agrégé et formateur de l'équipe de programmation étudiante de l'ITMO pour la programmation sportive Andrey Sergeyevich Stankevich.

Les employés des sociétés informatiques, l'enseignement des disciplines spécialisées à la faculté et les employés des universités co-organisatrices participent à la conception et au développement des tâches pour l'Olympiade. Ces universités sont l'Université fédérale de l'Oural, l'Université fédérale du Nord-Est. Ammosova, Saratov State University et Samara University.

Comment se préparer aux Jeux olympiques

La direction de « Programmation et technologie de l'information » est basée sur la connaissance des mathématiques, de l'informatique et la capacité de développer des logiciels fiables et sûrs. Pendant la préparation, il est conseillé aux étudiants de répéter la théorie de la complexité informatique, la théorie des langages et grammaires formels, les principes de construction des architectures informatiques, la POO et la programmation parallèle, et la théorie des bases de données relationnelles.

Nous vous recommandons de regarder des webinaires thématiques préparés par nos professeurs. Par exemple, cette vidéo traite des problèmes de stockage et des systèmes d'exploitation.


Le deuxième séminaire en ligne sur les algorithmes et les structures de données:


Lors de la préparation des phases qualificatives et finales, il faut prêter attention non seulement aux questions théoriques, mais aussi aux questions pratiques. Par conséquent, nous donnerons quelques exemples de tâches pouvant survenir aux phases de qualification et finale. Ce sont de vrais cas qui ont été offerts aux étudiants l'année dernière.
Exemple de tâche: code donné dans un langage de programmation abstrait qui simule le fonctionnement d'une file d'attente de requêtes.

Code pour la tâche
queue tasks; task worker_task; void do_task(task) { sleep(random()) : } void request() { while (true) { new_task = new task(); if (worker_task == null) worker_task = new_task; else if (queue.size() < 5) queue.push(new_task) sleep(random()) } } void worker() { while (true) { if (worker_task == null) { sleep(1000); } else { do_task(worker_task); if (queue.notEmpty()) worker_task = queue.pop(); } } } main() { thread worker_thread(worker); for (int i = 0; i < N; ++i) { threadr tr(request) } } 


Dans un thread séparé, le processus de travail démarre, qui traite les tâches provenant de N (N> 1) threads de demande. La méthode do_task imite l'exécution de tâches.

Lesquelles des affirmations suivantes sont vraies?

  1. Condition de concurrence par variable worker_task
  2. La file d'attente peut contenir 6 éléments
  3. Le système peut cesser d'exécuter des tâches même si la file d'attente n'est pas vide.
  4. Le système terminera toujours les tâches à leur arrivée,
  5. Le système est garanti pour terminer toutes les tâches entrantes.

Réponse: 1, 2, 3
De plus, à titre d'exemple, nous donnons la tâche de la phase finale. Voici une tâche liée aux systèmes d'exploitation et à la planification des processus.
Exemple de tâche: considérons un système informatique avec un processeur central qui, à tout moment, peut effectuer les calculs d'un seul processus. Le temps système est discret et est mesuré en cycles arbitraires.

Suite du texte de la tâche
Il existe trois sources d'emplois dans le système. Chaque tâche génère un processus qui se termine lorsque les calculs sont terminés. Pour chaque source de tâches, le numéro de mesure est connu dans lequel la première tâche de cette source est apparue, le nombre de mesures après lesquelles chaque tâche suivante apparaît et le nombre de mesures nécessaires pour terminer la tâche à partir de cette source (toutes les tâches de la même source nécessitent le même temps d'exécution) .



Une file d'attente à plusieurs niveaux est utilisée pour contrôler l'ordre dans lequel les tâches sont terminées. Pour chaque source, sa propre file d'attente FIFO est formée à partir des tâches de cette source. Les files d'attente sont priorisées. Le processus de réalisation d'une tâche spécifique ne peut être démarré que s'il n'y a aucune tâche dans une file d'attente avec une priorité élevée.

La tâche qui apparaît immédiatement au même temps commence à être exécutée si le processeur est libre ou à son tour se lève pour exécution. Après le début de l'exécution, le processus n'est interrompu qu'à la fin. Si l'exécution du processus suivant est terminée, l'étape suivante est la sélection du processus à partir de la plus haute priorité des files d'attente non vides. La tâche qui est apparue à ce rythme participe également à ce choix.

Nous considérons le temps de réponse comme le nombre de mesures qui se sont écoulées depuis l'apparition d'une tâche spécifique jusqu'à la fin de son exécution. Nous considérerons qu'une situation où le temps de réponse d'une des tâches a dépassé 50 cycles d'horloge est un accident.

Déterminez le nombre minimum de ticks jusqu'à ce que le prochain travail source 3 - X apparaisse, auquel le système fonctionnera indéfiniment sans situations d'urgence.

  • Nous supposons que le moment où la tâche apparaît, c'est le moment initial de la mesure spécifiée. Par conséquent, lorsque nous disons que le cycle d'horloge de la première tâche de la source est 1 et que le nombre de barres jusqu'à la tâche suivante est 5, la deuxième tâche de cette source apparaîtra au début de la barre 6.
  • Le temps nécessaire pour passer à la tâche suivante sera considéré comme insignifiant et non pris en compte lors de la résolution de la tâche.
  • Chaque source a une numérotation d'affectation indépendante commençant à 1.

Réponse: 24
De grandes informations sur le sujet peuvent être trouvées dans les cours de programmation thématique de la liste approuvée sur le site Web de l'Olympiade .

Liens connexes supplémentaires:

Source: https://habr.com/ru/post/fr430742/


All Articles