Olimpíada Estudantil "Sou Profissional": direção "Programação e Tecnologia da Informação"

Hoje é o último dia de inscrição para a olimpíada estudantil " Eu sou um profissional ". E falamos sobre a direção de "Programação e tecnologia da informação".

O parceiro geral da Olimpíada nas áreas da Universidade ITMO é "Programação e TI", "Informação e segurança cibernética", " Big Data " - Sberbank.


Christina Morillo / Pexels / PD

Algumas palavras sobre as Olimpíadas "Eu sou um Profissional"


A Olimpíada Estudantil "Eu sou um Profissional" é uma competição para solteiros e mestres em especialidades humanitárias e técnicas. Os estudantes que se mostrarem bem nas Olimpíadas poderão entrar nas universidades russas sem exames. Ao mesmo tempo, eles serão treinados nas principais empresas de TI da Rússia: Yandex, Sberbank, IBS e Mail.Ru.

As Olimpíadas começarão em 24 de novembro ( hoje é o último dia de inscrição ) - esta é a data de início das etapas de qualificação. Eles serão realizados em formato online. Os participantes que passarem para a próxima rodada chegarão ao estágio de tempo integral da competição. O evento será realizado em várias universidades do país em fevereiro de 2019.

Que áreas da Olimpíada supervisionamos


A Universidade ITMO está preparando tarefas nas seguintes áreas: "Programação e TI", "Informação e segurança cibernética" e " Fotônica ".

Ainda este ano, introduzimos duas novas áreas:

  • " Robótica ": os tópicos em campo são mecânica, eletrônica e controle. A participação deve ser dada aos alunos que planejam continuar seus estudos no campo da mecânica aplicada, engenharia de software, etc. Os parceiros nessa área foram Motorika, NPO Android Technique e DNS.
  • Big Data : Os tópicos nesta área incluem análise de dados, estatística e aprendizado de máquina. Adequado para estudantes que estudam nas faculdades de informática aplicada, TIC, tecnologia da informação no campo humanitário , etc. Entre os parceiros estão empresas como Gazprom, Siemens, MTS e Business Lines.

A seguir, falaremos mais sobre a direção da “Programação e Tecnologia da Informação”.

Sobre a direção "Programação e TI"


A Universidade ITMO é um dos maiores organizadores de eventos que se aproximam da Olimpíada "Eu sou um Profissional".
Realizamos um grande número de competições criativas e em ciência da computação e programação. São as olimpíadas escolares, por exemplo, a Olimpíada de Equipas da Rússia para crianças em idade escolar , a Olimpíada " Tecnologias da Informação " e o IOIP . Também organizamos olimpíadas para estudantes, em particular as meias-finais do campeonato mundial de programação do ICPC .
Ao trabalhar na direção “Programação e tecnologias da informação”, levamos em conta a rica experiência na realização de outros eventos competitivos temáticos na área de TI e a experiência dos colegas. Por exemplo, a partir deste ano, Mikhail Mirzayanov, autor e desenvolvedor do portal Codeforces , trabalhou na ITMO University.

A preparação da direção “Programação e Tecnologia da Informação” pela Universidade ITMO é realizada pelos funcionários do corpo docente correspondente. Este é Dean Parfenov Vladimir Glebovich, além de professor associado e instrutor da equipe de programação de estudantes da ITMO para programação esportiva, Andrey Sergeyevich Stankevich.

Funcionários de empresas de TI, que ensinam disciplinas especializadas na faculdade, e funcionários de universidades co-organizadoras participam do projeto e desenvolvimento de tarefas para a Olimpíada. Essas universidades são a Universidade Federal de Ural, Universidade Federal do Nordeste. Ammosova, Universidade Estadual de Saratov e Universidade de Samara.

Como se preparar para as Olimpíadas

A direção de “ Programação e tecnologia da informação ” é baseada no conhecimento de matemática, ciência da computação e na capacidade de desenvolver software confiável e seguro. Durante a preparação, é aconselhável que os alunos repitam a teoria da complexidade computacional, a teoria das linguagens e gramáticas formais, os princípios da construção de arquiteturas computacionais, OOP e programação paralela e a teoria dos bancos de dados relacionais.

Recomendamos assistir a seminários on-line temáticos preparados por nossos professores. Por exemplo, este vídeo discute problemas de armazenamento e sistemas operacionais.


A segunda orientação do webinar é sobre algoritmos e estruturas de dados:


Na preparação para as etapas de qualificação e final, deve-se prestar atenção não apenas às questões teóricas, mas também às práticas. Portanto, daremos alguns exemplos de tarefas que podem ocorrer nos estágios de qualificação e final. Estes são casos reais que foram oferecidos aos estudantes no ano passado.
Tarefa de exemplo: código fornecido em uma linguagem de programação abstrata que simula a operação de uma fila de consulta.

Código para a tarefa
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) } } 


Em um encadeamento separado, o processo do operador é iniciado, que processa tarefas provenientes de N (N> 1) solicitando encadeamentos. O método do_task imita a execução de tarefas.

Qual das seguintes afirmações é verdadeira?

  1. Condição de corrida pela variável worker_task
  2. A fila pode conter 6 itens
  3. O sistema pode parar de executar tarefas, mesmo que a fila não esteja vazia.
  4. O sistema sempre concluirá tarefas se chegarem,
  5. É garantido que o sistema conclua todas as tarefas recebidas.

Resposta: 1, 2, 3
Além disso, como exemplo, damos a tarefa desde o estágio final. Aqui está uma tarefa relacionada aos sistemas operacionais e agendamento de processos.
Exemplo de tarefa: considere um sistema de computação com um processador central que, a qualquer momento, pode realizar cálculos de apenas um processo. O tempo do sistema é discreto e é medido em ciclos arbitrários.

Continuação do texto da tarefa
Existem três fontes de trabalho no sistema. Cada tarefa gera um processo que termina quando os cálculos são concluídos. Para cada fonte de tarefas, é conhecido o número da medida na qual a primeira tarefa dessa fonte apareceu, o número de medidas após as quais cada tarefa subsequente aparece e o número de medidas necessárias para concluir a tarefa a partir dessa fonte (todas as tarefas de uma fonte requerem o mesmo tempo para serem concluídas) .



Uma fila de vários níveis é usada para controlar a ordem em que as tarefas são concluídas. Para cada fonte, sua própria fila FIFO é formada a partir das tarefas dessa fonte. Filas são priorizadas. O processo de conclusão de uma tarefa específica só pode ser iniciado se não houver tarefas em nenhuma fila com alta prioridade.

A tarefa que aparece imediatamente na mesma batida começa a ser executada se o processador estiver livre ou, por sua vez, ficar em pé para execução. Após o início da execução, o processo não é interrompido até o final. Se a execução do próximo processo for concluída, a próxima etapa será a seleção do processo da prioridade mais alta de filas não vazias. A tarefa que apareceu nessa batida também participa dessa escolha.

Consideramos o tempo de resposta como o número de medidas decorridas desde o aparecimento de uma tarefa específica até o final de sua execução. Consideraremos uma situação em que o tempo de resposta de uma das tarefas excedeu 50 ciclos de relógio como um acidente.

Determine o número mínimo de tiques até que o próximo trabalho de origem 3 - X seja exibido, no qual o sistema funcionará indefinidamente, sem situações de emergência.

  • Assumimos que no momento em que a tarefa aparece, esse é o momento inicial da medida especificada. Assim, quando dizemos que o ciclo do relógio da primeira tarefa da fonte é 1 e o número de barras até a próxima tarefa é 5, a segunda tarefa dessa fonte aparecerá no início da barra 6.
  • O tempo necessário para alternar para concluir a próxima tarefa será considerado insignificante e não levado em consideração ao resolvê-la.
  • Cada fonte possui numeração de atribuição independente começando em 1.

Resposta: 24
Ótimas informações sobre o tema podem ser encontradas nos cursos de programação temática da lista aprovada no site da Olimpíada .

Links relacionados adicionais:

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


All Articles