Положение об Олимпиаде по программированию 2022г

ПОЛОЖЕНИЕ ОБ ОБЛАСТНОЙ ОЛИМПИАДЕ ПО ПРОГРАММИРОВАНИЮ СРЕДИ СТУДЕНТОВ, ОБУЧАЮЩИХСЯ ПО СПЕЦИАЛЬНОСТЯМ И ПРОФЕССИЯМ СРЕДНЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ УКРУПНЕННОЙ ГРУППЫ 09.00.00 «ИНФОРМАТИКА И ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА»

I. Общие положение

  1. Настоящее Положение определяет порядок проведения областной олимпиады по программированию среди студентов, обучающихся по специальностям и профессиям среднего профессионального образования укрупненной группы профессий и специальностей 09.00.00 Информатика и вычислительная техника (далее – Олимпиада), ее организационное и методическое обеспечение, порядок участия в Олимпиаде и определения победителя и призеров.
  2. Оператором по подготовке и проведению Олимпиады является Государственное бюджетное профессиональное образовательное учреждение Иркутской области «Иркутский авиационный техникум» (далее – ИАТ).

II. Цели и задачи Олимпиады

  • Олимпиада проводится в целях выявления качества подготовки выпускаемых специалистов, дальнейшего совершенствования их мастерства, закрепления и углубления знаний и умений, полученных в процессе теоретического и практического обучения, стимулирования творческого роста, повышения престижа среднего профессионального образования, выявления наиболее одаренных и талантливых обучающихся в области информационных технологий.
  • Основными задачами Олимпиады являются:
    •  повышение интереса студентов к своей будущей профессии, осознание её социальной значимости;
    •  стимулирование творческого роста студентов, выявление одаренной молодежи для формирования кадрового потенциала для исследовательской и производственной деятельности России в сфере высоких технологий;
    •  выявление уровня подготовки студентов, закрепление и углубления знаний и умений студентов, полученных в процессе теоретического, практического и профессионального обучения;
    •  проверка способностей студентов к системному действию в профессиональной ситуации;
    •  проверка готовности будущего специалиста к самостоятельной трудовой деятельности;
    • совершенствование навыков самостоятельной работы и развития профессионального мышления;
    • обмен опытом в области профессионального обучения по новым технологиям.

III. Организация и проведение Олимпиады

  • Олимпиада проводится 30 марта 2022 г. на базе ИАТ по адресу: г. Иркутск, ул. Ленина, 5 «а».
  • К участию в Олимпиаде допускаются студенты, обучающиеся по специальностям и профессиям среднего профессионального образования укрупненной группы профессий и специальностей 09.00.00 «Информатика и вычислительная техника», прошедшие регистрацию на сайте op.irkat.ru в срок до 15 марта 2022 года.
  • Процедуру регистрации участников Олимпиады от образовательного учреждения осуществляет ответственный сотрудник (руководитель команды), назначенный приказом руководителя.
  • Полный список участников Олимпиады публикуется на сайте олимпиады (op.irkat.ru) 22 марта 2022 года.
  • От одной образовательной организации в Олимпиаде может принимать участие не более 3 человек.
  • Руководитель команды от образовательной организации входит в состав жюри.
  • Организацию работы по подготовке и проведению Олимпиады осуществляет оргкомитет Олимпиады, состав которого утверждается приказом руководителя ИАТ.
  • В функции оргкомитета входят: разработка плана подготовки и  проведения Олимпиады, разработка конкурсных заданий и критериев их оценки.
  • План проведения Олимпиады:
ВремяМестоМероприятие
09:00-09:30Холл актового зала ИАТ (3 этаж)Регистрация участников Олимпиады и их руководителей
09:30-09:50Актовый зал ИАТОткрытие олимпиады, инструктаж
09:50-14:00Аудитории ИАТ: 206, 208, 209, 211Проведение Олимпиады
10:00-13:00Аудитория ИАТ 229Согласование критериев оценки
13:00-13:30БуфетОбед
14:00-14:30Аудитория ИАТ 229Проверка заданий
14:00-15:00Актовый зал ИАТПодведение итогов, награждение
  1. Программное обеспечение: для выполнения заданий Олимпиады всем участникам предлагаются (на выбор) следующие программные продуты:
  2. Pascal ABC.NET;
  3. Visual Studio 2015 (C#, VB.NET, C++);
  4. CodeGear RAD Studio 2007 (Delphi, C++ Builder);
  5. Java 10;
  6. Python 3.

IV. Правила учета решений

  1. Решения участников Олимпиады будут оцениваться строго по формальному принципу с помощью тестирования на некотором множестве тестов. Поэтому к решениям участников и их оформлению предъявляются жесткие формальные требования, за несоответствие которым жюри оставляет за собой право оценивать решения в 0 (ноль) баллов.
  2. Задания по программированию предполагают решение в виде написания программы на выбранном языке программирования. Разработанные программы должны выполнять обработку каких-либо входных данных согласно условию задачи.
  3. Тесты для задачи представляют собой наборы входных данных согласно условию задачи, а также тестирующий модуль, который для конкретного набора входных данных (теста) может проверить правильность набора выходных данных, полученных с помощью программы-решения участника Олимпиады. Для каждого олимпиадного задания разрабатывается свой набор тестов.
  4. Оценка решения участника производится в зависимости от количества пройденных решением тестов. Тест считается пройденным, если для данного теста с помощью решения участника получены выходные данные, правильные согласно условию задачи. Каждому тесту сопоставляется какое-то количество баллов за прохождение теста в зависимости от сложности данного теста. Таким образом, каждое решение оценивается в сумму баллов за пройденные данным решением тесты.
  5. Форматы входных файлов строго соответствуют заявленным в условиях задач. Форматы выходных файлов решения должны строго соответствовать требуемым форматам в условиях задач. Любое несоответствие может быть рассмотрено жюри в качестве неверного решения с оценкой в 0 (ноль) баллов.
  6. Решения, которые являются «подгонкой» под правильный ответ с целью пройти ряд тестов, оцениваются жюри в 0 баллов независимо от того, сколько такое решение набрало баллов в результате тестирования. Такие решения выявляются жюри при изучении исходных текстов программ. Если к решению участника исходных текстов не прилагается, то такое решение оценивается в 0 (ноль) баллов.

V. Правила поведения участников Олимпиады и руководителей команд при выполнении заданий

  • Запрещаются переговоры между участниками Олимпиады (далее – участник), между участниками и руководителями команд.
  • Строго запрещается пользоваться сотовыми телефонами, справочниками и другими источниками информации (за исключением источников инсталлированных на ПК).
  • Участник может покинуть аудиторию только в сопровождении лаборанта.
  • Участник после выполнения заданий Олимпиады должен сформировать и подписать итоговый лист.
  • Участник обязательно должен согласовать свой выход за пределы техникума со своим руководителем.
  • Руководитель команды  имеет право заходить в аудитории, где участники выполняют задания, но при этом контакт с участниками в той или иной форме запрещён.

VI. Правила оформления решений

  • Учитывая, что решения участников Олимпиады оцениваются с помощью тестов, при разработке решений следует строго соблюдать форматы входных и выходных данных, указанных в условии задачи.
  • В общем случае программа-решение состоит из трех частей:
  • чтение входных данных из входного файла;
  • обработка данных для поиска правильного ответа;
  • запись полученного ответа в выходной файл.

Примеры оформления решений прилагаются.

VII. Критерии оценивания

  • Критерии оценивания и правила оформления решений определяются и согласовываются на заседании оргкомитета.

VIII. Подведение итогов олимпиады

  • Для подведения итогов Олимпиады и определения победителей и призеров (второе и третье место) оргкомитетом Олимпиады создается жюри.
  • В состав жюри входят представители от образовательных организаций, направивших студентов для участия в Олимпиаде, и ИАТ.
  • По итогам Олимпиады определяются победитель и призеры среди участников, а также победитель и призеры среди команд. Победитель и призеры среди команд определяются в случае, если численность команды составляет три человека.
  • Победителем Олимпиады считается участник (команда участников), набравший наибольшее количество баллов, призерами – участники (команды участников), набравшие по количеству баллов второй и третий результаты.
  • По результатам работы жюри составляет протокол, в котором указываются победители и призеры Олимпиады.
  • Победители и призеры Олимпиады награждаются соответствующими дипломами.
  • Участникам Олимпиады вручаются сертификаты участников.
  • Образовательным организациям, подготовившим победителей и призеров, вручаются благодарственные письма.

Приложение

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

09.00.00 «Информатика и вычислительная техника»

Примеры оформления решений задачи «Сумма чисел»

на различных языках программирования

Пример задания

Имя входного файла:Input.txt
Имя выходного файла:Output.txt
Максимальное время работы на одном тесте:3 секунды  
Максимальный объем используемой памяти:50 мегабайт
Максимальная оценка100 баллов

Задача (сумма чисел):

Требуется написать программу, которая складывает два целых числа.

Формат входных данных

Входной файл содержит одну строку, в которой через пробел представлены два целых числа.

Формат выходных данных

Выходной файл должен содержать целое число. Гарантируется, что решение существует.

Примеры входных и выходных данных

Input.txtOutput.txt
12 315
3 -5-2
0 99
-2 -3-5

Примеры решения задачи

Pascal ABC.NETDelphi
const   InputFileName = ‘input.txt’;   OutputFileName = ‘output.txt’;   var   A, B, C: Integer; Input, Output: Text;   begin   Assign(Input, InputFileName);   Reset(Input);   Assign(Output, OutputFileName);   Rewrite(Output);   ReadLn(Input, A, B);   C := A + B;   WriteLn(Output, C);   Close(Input);   Close(Output); end.program Task1 ; 
 
uses 
  SysUtils ; 
 
  var a , b , c : integer ; 
  input , output : text ; 
begin 
  Assign ( input , ‘input.txt’ ) ; 
  reset ( input ) ; 
  read ( input , a , b ) ; 
  close ( input ) ;  
  c : = a + b ;  
  Assign ( output , ‘output.txt’ ) ; 
  rewrite ( output ) ; 
  write ( output , c ) ; 
  close ( output ) ; 
end.
Visual C++Visual Basic .NET
#include «stdafx.h» 
#include <iostream> 
#include <fstream> 
using namespace std ; 

int main ( ) 

    ifstream input («input.txt»); 
    int a, b, c; 
    input >> a >> b;
    c = a + b;
    std::ofstream out(«output.txt»);
    out << c;
    out.close();
    return 0;
}
Imports System.IO
Module Module1

Sub Main ( ) 
  Dim line As String , parts As Array, a As Integer , b As Integer , c As Integer 
 
  Using input As New StreamReader(«input.txt») 
    line = input.ReadLine() 
  End Using
  parts = line.Split(» «) 
  a = parts(0) 
  b = parts(1) 
  c = a + b
 
  Using output As New StreamWriter(«output.txt») 
    output.Write(c) 
  End Using End Sub 
End Module
C++ BuilderVisual C#
#include <stdio> #include <iostream> 
#include <fstream> 
using namespace std ; 

int main ( ) 

    ifstream input («input.txt»); 
    int a, b, c; 
    input >> a >> b;
    c = a + b;
    std::ofstream out(«output.txt»);
    out << c;
    out.close();
    return 0;
}
using System ; 
using System.IO ; 
using System.Text ; 

namespace ConsoleApplication2

class Program

static void Main (string[] args) 

StreamReader input = new StreamReader(«input.txt»); 
String[] line = input.ReadLine().Split(‘ ‘); 
int a = Convert.ToInt32(line[0]) ; 
int b = Convert.ToInt32(line[1]) ; 

int c = a + b; 
StreamWriter output = new StreamWriter(«output.txt»); 
output.Write(c); 
output.Close(); 


}
JavaPython
import java.util.*;
import java.io.*;
public class Main{
public static void main(String[] argv) throws IOException{
new Main().run();
}  
PrintWriter pw;
Scanner sc;  
public void run() throws IOException{    
sc = new Scanner(new File(«input.txt»));
int a=sc.nextInt(), b=sc.nextInt();
pw = new PrintWriter(new File(«output.txt»));     pw.print(a+b);
pw.close();
}
}
fin = open(«input.txt») fout = open(«output.txt»,»w»)   a, b = map(int, fin.readline().split()) fout.write(str(a+b))   fin.close() fout.close()  
GoNode.js
package main
import («fmt»; «os»)
func main(){
in, _ := os.Open(«input.txt»)
out, _ := os.Create(«output.txt»)
var a, b int
fmt.Fscanf(in, «%d %d», &a, &b)
fmt.Fprintf(out, «%d», a+b)
}
——
js
const fs = require(‘fs’);
const readableStream = fs.createReadStream(‘input.txt’, ‘utf8’)
readableStream.on(‘data’, (data) => {
let input = data.split(‘ ‘);
throw data;
let a = +input[0];
let b = +input[1];
let c = a+b;
fs.writeFileSync(«output.txt», c.toString());
})