Student Olympiad "I am a professional": the direction of "Programming and Information Technology"

    Today is the last day of registration for the student competition “ I am a professional ”. And we talk about the direction of "Programming and Information Technology."

    The general partner of the ITMO University Olympiad is “Programming and IT”, “Information and Cybersecurity”, “ Big Data ” - Sberbank.

    Christina Morillo / Pexels / PD

    A couple of words about the competition "I am a professional"

    Student Olympiad "I am a professional" is a competition for bachelors and masters of humanities and technical specialties. Those students who show themselves well at the Olympiad will be able to enroll in Russian universities without exams. At the same time, they will undergo an internship at leading Russian IT companies: Yandex, Sberbank, IBS and Mail.Ru.

    The Olympiad will begin on November 24 ( today is the last day of registration ) - this is the start date of the qualifying rounds. They will be held in the online format. Those participants who will be released in the next round will get into the internal stage of the competition. It will be held at various universities in the country in February 2019.

    What directions of the Olympiad are we supervising?

    ITMO University is engaged in the preparation of tasks in the following areas: "Programming and IT", "Information and Cybersecurity" and " Photonics ".

    This year we presented two new directions:

    • " Robotics ": The themes of the direction are mechanics, electronics and control. It is worth participating those students who plan to continue training in the fields of applied mechanics, software engineering, and others. The partners of this direction were the company "Motorika", the NGO "Android technology", DNS.
    • Big data ”: topics in this area include data analysis, statistics and machine learning. Suited to students of Applied Computer Science faculties, ICT, information technology in the humanitarian sphere and others . Partners include such companies as Gazprom, Siemens, MTS and Business Lines.

    Next, we will talk more about the direction of "Programming and Information Technology."

    About the direction of "Programming and IT"

    ITMO University is one of the largest organizers of events close in level to the “I Am Professional” Olympiad.
    We hold a large number of creative competitions and contests in computer science and programming. These are school olympiads, such as the All-Russian School Team Olympiad , the Information Technologies Olympiad and the IEPI . We also organize student Olympiads, in particular, the semi-final of the ICPC World Programming Championship .
    When working on the “Programming and Information Technologies” direction, we took into account the rich experience in conducting other thematic competitive events in the IT sphere and the expertise of our colleagues. For example, since this year, the author and developer of the Codeforces portal Mikhail Mirzayanov has been working at ITMO University .

    Employees of the relevant faculty are involved in the preparation of the “Programming and Information Technologies” direction from the ITMO University. This is Dean Parfenov Vladimir Glebovich, as well as Associate Professor and Trainer of the ITMO student sports programming team Andreke Sergeyevich Stankevich.

    In the design and development of tasks Olympiad involved employees of IT companies, teaching at the faculty of specialized disciplines, and employees of universities, co-organizers. These universities are the Ural Federal University, Northeastern Federal University. Ammosova, Saratov State University and Samara University.

    How to prepare for the Olympiad

    The direction of " Programming and Information Technology " is based on the knowledge of mathematics, computer science and the ability to develop reliable and secure software. While preparing students, it is advisable to repeat the theory of computational complexity, the theory of formal languages ​​and grammars, the principles of constructing computational architectures, OOP and parallel programming, the theory of relational databases.

    We recommend watching thematic webinars prepared by our teachers. For example, this video covers data storage and operating systems.

    The second direction webinar deals with algorithms and data structures:

    When preparing for the qualifying and final stages, one should pay attention not only to theoretical, but also to practical issues. Therefore, below we give several examples of tasks that may occur at the qualifying and final stages. These are real case studies that were offered to students last year.
    Example task: Given a code in an abstract programming language imitating the work of a request queue.

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

    In a separate thread, the worker process is started, which processes tasks coming from N (N> 1) request threads. The do_task method imitates task execution.

    Which of the following statements are true?

    1. Race condition on worker_task variable
    2. The queue queue can contain 6 items.
    3. The system may stop performing tasks, even if the queue is not empty.
    4. The system will always carry out tasks if they arrive,
    5. The system is guaranteed to perform all incoming tasks.

    Answer: 1, 2, 3
    Further, as an example, we give the task from the final stage. This is the task of operating systems and process scheduling.
    Example of a problem: Consider a computer system with one central processor, which at a time can calculate only one process. The system time is discrete and is measured in arbitrary cycles.

    Continuation of the text of the task
    В системе есть три источника заданий. Каждое задание порождает процесс, который завершается по окончании вычислений. Для каждого источника заданий известен номер такта, в который появилось первое задание от этого источника, количество тактов, по истечении которого появляется каждое следующее задание и количество тактов, необходимое для выполнения задания от этого источника (все задания от одного источника требуют одинакового времени на выполнение).

    Для управления порядком выполнения заданий используется многоуровневая очередь. Для каждого источника формируется своя FIFO очередь из заданий этого источника. Очередям присвоены приоритеты. Процесс выполнения конкретного задания может быть запущен только, если ни в одной очереди с большим приоритетом нет ни одного задания.

    Появившееся задание сразу в этот же такт начинает выполняться, если процессор свободен или встает в свою очередь на выполнение. После начала выполнения процесс не прерывается до его окончания. Если выполнение очередного процесса завершилось, то в следующий такт происходит выбор процесса из наиболее приоритетной из непустых очередей. В этом выборе участвует и задание, появившееся в этот такт.

    Временем отклика будем считать количество тактов, прошедших с момента, появления конкретного задания до окончания его выполнения. Будем считать аварией ситуацию, когда время отклика одного из заданий превысило 50 тактов.

    Определите минимальное количество тактов до появления следующего задания источника 3 — X, при котором система будет неограниченно долго работать без наступления аварийных ситуаций.

    • Будем считать, что момент появления задания, это начальный момент указанного такта. Соответственно, когда мы говорим, что такт появления первого задания от источника равен 1, а количество тактов до появления следующего задания равно 5, то второе задание от этого источника появиться в начале такта 6.
    • Время, требуемое на переключение для выполнения следующего задания, будем считать несущественным и не учитывать при решении задания.
    • У каждого источника независимая нумерация заданий, начинающаяся с 1.

    Ответ: 24
    Great information on the topic can be found in thematic programming courses from the approved list on the Olympiad website .

    Additional links on the topic:

    Also popular now: