Всем привет! В этом году я закончил 11 класс и сдавал первый Компьютерный ЕГЭ. Знаю, что довольно поздно пишу статью об этом, но все равно хотелось бы высказать пару мыслей об экзамене и о своем опыте. Хочу рассказать о самом ЕГЭ по информатике, его изменениях, подготовке и о некоторых мелочах.

Что представляет из себя экзамен по информатике

В основном это задания на системы счисления, кодирование/декодирование, алгоритмы, логика, рекурсивные алгоритмы и базовая математика. 2 часть заключается в умение писать программ (30-40 строк) для сортировки и анализа последовательностей. За такие задачки дают 2 балла за правильное решение, и 1 – за неполное. Например, можно решить задачу неэффективно по времени и получить только 1 балл. Вот некоторые примеры заданий.

24, 27 – новые с этого года.

Источник

Сдают ЕГЭ по информатике свыше 80 000 школьников, цифра с каждым годом растет. Средний балл, сдающих ~ 65.

Изменения

В прошлых годах информатику школьники решали и записывали ответы, используя бумажные черновики, ручки и бланк ответов соответственно. Также задания 2 части проверялись людьми, а сами задания писались на бланках ответа ручкой. Летом 2020 года появляется Компьютерный ЕГЭ – меняется сам формат экзамена, пропадает возможность подавать апелляцию, добавляются новые задания и удаляются некоторые старые, ну и конечно же сам экзамен проходит на компьютерах.           

 Новые задания больше направленны на решение задач с помощью языков программирования и компьютера, к примеру, больше не приходится переводить системы счисления вручную на листочке, можно написать свою программу и пользоваться ею на протяжении всего экзамена. Но также появляется проблема, что можно даже и не знать, к примеру, системы счисления, просто заучить алгоритм перевода и сделать ctrl+v на экзамене, что по моему мнению ставит учеников, которые действительно понимают тему, и тех, кто - нет, в одинаковые условия.

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

Новый экзамен стало действительно приятно решать, потому что он стал таким, каким его представляют и каким он должен быть, но, к сожалению, есть и достаточно минусов нового формата.

О подготовке

Я жил в небольшом городе (100к населения) и учился соответственно в обычной школе. Сдавало информатику в городе 14 человек и только 1 был из моей школы. Учил нас информатике с 8 по 11 класс учитель ИЗО, поэтому уроков у нас либо не было, либо на них мы рисовали в пеинте или играли в браузерные игрушки. Такая обстановка была, насколько я знаю, в каждой школе, и я не удивлюсь, если так и в почти каждом регионе. Про подготовку в школе можно было забыть, кто-то ходил к местным репетиторам, а некоторые прибегали к услугам онлайн-репетиторов (в том числе и я).

Учил я питон, на экзамене он самый настоящий чит: он многое позволяет, прост в изучении, помогает писать задачки быстро и легко, даже не задумываясь о времени выполнения программы. Почти все онлайн-репетиторы учили своих учеников питону, но у меня в городе репетиторы учили паскалю. Время на подготовку уделял не особо много. Во-первых, летом я увлекался некоторыми курсами по программированию – решать 2 часть получалось уже вначале 11 класса. Во-вторых, информатика была самым последним ЕГЭ по дате сдачи, поэтому время на повторение и заполнение пробелов было достаточно.

Из-за множества нововведений, банк заданий был достаточно пуст: было множество однотипных заданий, которые отличались только входными данными, не было примеров новых заданий, которые попадались бы в прошлые года на экзамене, и в целом контента долгое время было очень мало, что не скажешь, к примеру, о профильной математике, где изменений нет очень долго, есть куча репетиторов, школ и заданий прошлых лет.

Как проходил сам экзамен

Экзамен проходил в два дня – 24 и 25 июня. Я сдавал 24, в другой школе, за ноутбуком (характеристики не помню). Можно было использовать все что на ноутбуке установлено: среды разработки, калькуляторы, paint, текстовые файл и т.п.. Можно было использовать такие ЯП как: C/C++, C#, Java, Pascal, Python, Школьный алгоритмический язык.

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

Хоть с техникой и был порядок, но я все равно столкнулся с некоторыми проблемами. Во-первых решать КЕГЭ дома и в аудитории – совершенно две разные истории. Сложнее всего было привыкнуть к другому ноутбуку и клавиатуре в особенности, набирать код приходилось, постоянно пялясь в клавиатуру, и значительно медленнее, чем у себя дома. Во-вторых хоть и характеристики машин были приемлемы, у меня в PyCharm’e при запуске неэффективного алгоритма в конце экзамена ноут стал сильно лагать (что дома такого конечно же не происходило, поэтому о таком я даже не думал). В такой ситуации, по правилам, можно либо поменять место (потраченное на это время не восполнят), либо писать экзамен во 2 день. Это уже был конец экзамена, я потратил больше 3 часов, эмоции, которые я пережил, не хотелось ощущать снова, и решил дописать этот ЕГЭ, да и в целом у меня были готовы ответы, только 30 минут на проверку я потерял из-за этого.

Задания экзамена были в основном обычные, но новые задачки во 2 части, которые дают больше всего баллов, удивили многих. То ,что давали на всероссийском пробнике, было значительно легче. Да и хотя бы немного похожих заданий нигде не встречалось. Вот некоторые из тех задачек.

В некоторых моментах я немного схитрил и последнюю задачу решил неэффективным алгоритмом, поэтому потерял на 2 части не много баллов. Самым удивительным был 2 день экзамена: школьникам достались те же задания, что были и в первый день. Как составители могли осознанно принять такое решение, готовясь к проведению экзамена целый год, я не понимаю. На горячей линии ответ рособнадзора был мол, что статистика показывает одинаковый процент решаемости заданий в 1 и 2 день, поэтому все ок, но саму статистику почему-то никто не показывает. Возможно так сделали, чтобы показать, что новый формат себя оправдал и средний балл по России не упал. Также на ноутбуках оставались файлы с кодом прошлых учеников, но тут, видимо, вина организаторов.

Вывод

Хоть экзамен я сдал на 90/100, по итогу Единый Государственный Экзамен оказался далеко не единым и быть первопроходцем оказалось не просто. Формат очень сырой и надеюсь, что его будут дорабатывать. Но на самом деле КЕГЭ по информатике стал интересным экзаменом, который действительно хочется решать. Возможность запрограммировать множество заданий - самая главная фишка. Надеюсь экзамен будут дорабатывать, привлекать больше специалистов как к совершенствованию КЕГЭ, так и к обучению в школах небольших регионов.

Также хотел сказать пару слов тем, кому предстоит сдавать этот экзамен в следующих годах. О своих проблемах с техникой сразу сообщать организаторам. Надеяться при подготовке только на сайт решу егэ не стоит, берите задания отовсюду: кполяков, ютуб, варианты статграда, сборники и т.д., проявляйте инициативу к изучению. Питон – must have. И посоветовал бы увлекаться спортивным программированием, изучать алгоритмы и пробовать себя в олимпиадах (Но тут питон, наверное, уже не прокатит).

На этом все, спасибо всем, кто уделил этой статье внимание. Извиняюсь за возможно большое количество ошибок в моем изложении.

Комментарии (31)


  1. Apokalepsis
    18.08.2021 18:30
    +2

    А мне интересно, запись экрана была? Интернет можно было раздать с телефона?

    Вообще формат сдачи интересный, когда я сдавал - очень хотел в своей любимой IDE писать вторую часть.


    1. Harrix
      18.08.2021 23:55
      +1

      Записи экрана нет. Про интернет. Раздать его не с чего: телефона не должно быть у ученика. Но если как-то организовал, то программа на компьютере распознает подключение по сети и перестанет работать, что не позволит ученику сдавать экзамен дальше.


    1. Elusha
      19.08.2021 01:05

      1. Давным давно, как на ЕГЭ практически нереально пронести телефон ввиду обысков вездесущих проверяющих, камер и, конечно же, металлоискателей

      2. В пунктах проведения должны стоять средства для глушения сотовой связи, поэтому даже если кто-то и пронесёт телефон(см. пункт 1), то ничего от этого не получит, если только не выкачал весь интернет себе до этого на телефон


  1. AndyPike
    18.08.2021 19:35
    +1

    А мне очень понравилось.
    Ну, не leetcode, но задачи не тривиальные.

    После этой статьи от автора с удивлением узнал, что есть выпускники, которые могут пройти через это быстро и эффективно.

    Хочется поддержать следующее поколение. Базовые знания и понятия на уровне, остальное уже на реальной работе подтянут, это не проблема. Главное - мозги, образование, ответственность.


  1. amarao
    18.08.2021 20:12

    №24 мне нравится. Пошёл играться.


  1. amarao
    18.08.2021 21:26

    Вот моя версия №24. Улучшения и полезная критика приветствуются.

    use std::io::prelude::*;
    
    fn non_double(data: &String) -> u32{
        let mut iter = data.chars().peekable();
        let mut max = 0;
        let mut cur = 0;
        while let Some(ch) = iter.next(){
            cur += 1;
            if cur > max{ max = cur};
            match iter.peek(){
                Some(x) if *x == ch => {cur = 0},
                _ => {}
            };
        }
        max
    }
    
    fn main() {
        let mut f = std::fs::File::open("data.txt").unwrap();
        let mut data = String::new();
        f.read_to_string(&mut data).unwrap();
        println!("Non-double length: {}", non_double(&data));
    }
    
    
        #[test]
        fn test_empty(){
            assert_eq!(non_double(&String::new()), 0);
        }
    
        #[test]
        fn test_one(){
            assert_eq!(non_double(&String::from("x")), 1);
        }
        
        #[test]
        fn test_six(){
            assert_eq!(non_double(&String::from("xyzxyz")), 6);
        }
    
        #[test]
        fn test_duplicate(){
            assert_eq!(non_double(&String::from("xxx")), 1);
        }
    
        #[test]
        fn test_double(){
            assert_eq!(non_double(&String::from("xyzzzzy")), 3);
        }


    1. 0xd34df00d
      19.08.2021 09:53
      +3

      Улучшил.


      split :: Eq a => [a] -> [[a]]
      split [] = [[]]
      split [x] = [[x]]
      split (x1 : x2 : xs) | x1 /= x2 = (x1 : next) : rest
                           | otherwise = [x1] : (next : rest)
        where (next : rest) = split (x2 : xs)
      
      maxSeqLen :: Eq a => [a] -> Int
      maxSeqLen = maximum . map length . split
      
      main :: IO ()
      main = readFile "data.txt" >>= print . maxSeqLen

      Ваши тесты проходит, но у меня тут поздно, и я мог накосячить.


      Можно, конечно, решить и сразу одной функцией:


      maxSeqLen :: Eq a => [a] -> Int
      maxSeqLen [] = 0
      maxSeqLen (h : rest) = go 1 1 h rest
        where go maxAcc curAcc _ [] = max maxAcc curAcc
              go maxAcc curAcc x (x' : xs) | x /= x' = go maxAcc (curAcc + 1) x' xs
                                           | otherwise = go (max maxAcc curAcc) 1 x' xs

      но мне больше нравится комбинаторы писать — о них рассуждать проще, в этом вот коде я точно не уверен, слишком много состояния. Хотя оптимизатору с ним существенно проще, да. Эх, писал бы на идрисе — можно было бы доказать их эквивалентность.


    1. event1
      19.08.2021 18:35

      по-питонски

      def longest_diff(s) :
          def matches_to_lengths(iter, slen) :
              try :
                  oldt = next(iter)
              except StopIteration :
                  yield slen
                  return
              yield oldt[0] + 1
              for t in iter :
                  yield t[0] - oldt[1] + 1
                  oldt = t
              yield slen - oldt[1]
          return max(matches_to_lengths(((m.start(), m.end())
                                         for m in re.finditer('(.)\\1', s)), len(s)))
      print(longest_diff(sys.argv[1]))


  1. IceSlam
    19.08.2021 00:23

    Я проходил этот КЕГЭ году в 2012 вроде, когда его тестово запускали, по информатике был он


  1. dzol
    19.08.2021 01:05
    -1

    Мои поздравления со сдачей. И немного замечаний.

    Питон — must have

    Нет и еще раз нет. Языки, подобные питону, развращают, давая ложное ощущение простоты. Для обучения только Pascal.
    посоветовал бы увлекаться спортивным программированием, изучать алгоритмы и пробовать себя в олимпиадах

    Смею отметить, что спортивное программирование и олимпиады тренируют лишь навык решения чётко поставленных задача в стрессовых условиях, не более. Хорошо для экзамена, хорошо для собеседования (в те компании, которые требуют решать подобные задачи на собеседовании). Но совершенно бесполезны и, не побоюсь этого слова, вредны в реальной практике. Вредны, потому что учат решать лишь чётко поставленные задачи. А на практике, по моему опыту, таких задач очень мало. Особенно, когда вы перерастете уровень junior'а.
    Образно говоря, придет к вам заказчик (необязательно сторонний, это может быть ваш тимлид или менеджер) и скажет: «Хочу то-то. Сделай.». И вы, как инженер, должны не только определить то, как решить эту задачу и как сделать это оптимально, но для начала определить, надо ли её решать вообще — может она уже решена. А может она вообще не стоит. Или вместо неё надо решить совсем другую задачу.
    По моему, опять же, опыту не все умеют решать такие нечёткие задачи, да ещё в условиях недостатка информации. Это уже чистой воды творчество. Изобретательство.
    Тут можно поспорить, сказав, что надо, дескать, нормально задачи формулировать. Но лично в моей практике последний год задачи такие, что формулируя задачу, ты уже её решаешь. Тогда зачем её делегировать? Проще продолжать самому решать раз уж начал.
    А насчет изучения алгоритмов всё верно, надо изучать. Но не учить наизусть, ни в коем случае. Изучать описание, пытаться понять как алгоритм работает и почему он устроен именно так, а не иначе. Пытаться реализовать этот алгоритм, причем лучше на нескольких языках с разными парадигмами. Тупое же заучивание абсолютно ничего не даст.


    1. Mike_soft
      19.08.2021 07:57
      +1

      стрессовые условия — это основное, на что жалуются сдающие ЕГЭ. Поэтому навык, полученый на олимпиадах (не только по программированию) — хорошее подспорье для сдачи экзамена.
      Ну и в жизни, увы, порой приходится создавать технический долг, решая задачи в стрессовых условиях потому, что «надо здесь и сейчас».

      но вообще, прогресс радует.
      Питон — если это не первый язык (и уж тем более не единственный), то почему бы и нет? Лично у меня паскаль был далеко не первым, да и делал я на нем (на дельфях) почти ничего серьезного — но его многословность реально раздражала (может, как раз потому, что были в активе другие языки)


    1. evage Автор
      20.08.2021 12:18
      +1

      Спасибо за отличный комментарий. Насчёт питона я имел ввиду, что на КЕГЭ с этим языком можно очень быстро решать небольшие задачки. Буквально пара строк и уже можно получить балл за задачу. Поэтому я его выделили в своей статье


  1. Godless
    19.08.2021 10:40
    +1

    ИМХО, но все же. Я конечно уже суперстар, но в нашей юности был паскаль кругом. И именно для обучения он лучше чем питон. Питон как второй, третий, десятый язык - отлично, ведь он действительно сейчас популярен. Но обучение - строгая типизация, строгие, но не сложные конструкции, отсутствие сложных лексических форм, максимальная концентрация на алгоритмах - вот что нужно для обучения. Пусть вы и забудете про него потом, на дельфях сейчас не так много проектов, но зато с легкостью перейдете как на питон, так и на ассемблер или си.


    1. Gorthauer87
      19.08.2021 11:38

      Но решать на нем олимпиадные задачи реально проще и быстрее. Синтаксического шума минимум, можно полностью на задаче сосредоточиться.


      1. TheGodfather
        19.08.2021 12:23

        С одной стороны да, но с другой, проще ненароком вызвать какой-нибудь min(numbers_list) в цикле и проморгать увеличение ассимптотической сложности до квадратичной, что на олимпиаде будет красным флагом. Поэтому простота тут обоюдоострая, да, просто писать, но легко написать что-то неэффективно.


        1. alexdesyatnik
          19.08.2021 15:12

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


          1. TheGodfather
            19.08.2021 19:21

            Тем, что в других языках найти и заюзать стандартную библиотеку это *сложно*. В плюсах нужны какие-то инклюды и мудреные сигнатуры (напишете, не подглядывая, компаратор для сортировки в плюсах?), в паскале вроде их тупо нет. А в питоне банальные sort/min/max идут из коробки и используются интуитивным образом, поэтому, если зазеваться, то на самом деле можно пропустить эти символы во время анализа сложности.


            1. alexdesyatnik
              19.08.2021 20:19

              Аргументы какие-то из пальца высосанные. Если зазеваться как следует, можно что угодно пропустить. В современном паскале (PascalABC.NET), кстати, стандартная библиотека цельнотянутая из .NET, там есть всё то же, что и в C#. Или он, как и питон, не годится по причине "можно случайно массив отсортировать"?


  1. krylov_sn
    19.08.2021 12:20

    сдавал ЕГЭ по информатике еще в 2009. Было все на бумажке. В итоге не засчитали вообще одну задачу из-за неэффективного алгоритма. Не стал тогда подавать апелляцию - не стал рисковать


  1. Kolobrod72
    19.08.2021 18:24

    Что-то не очень похоже, что автор сдавал КЕГЭ(так он кратко называется) в этом году. Или забыл "нюансы".

    1. Как таковых частей нет. Есть 27 заданий. 1-23 - графы, булева алгебра, таблицы (обычные, не электронные), кодирование, системы счисления, алгоритмы, офисные пакеты (текстовый процессор, эл.таблицы), 24-27 - программирование.

    2. Текст программы никуда не записывается(!) и никто его не проверяет, только результат работы программы. Соответственно эффективно-неэффективно - не важно, лишь бы результат был правильный. За задачи 24-27 дают 2 балла, остальные 1. Список ЯП и сред утверждает регион. В связи с этим самой распространенной проблемой было непонимание отдельных учеников разницы между MS VS Code и MS VS 2019 и соответственно неумение запускать программу в MS VS Code с прикрученным minigw-64 (у меня сдавались только на C++, C# и python)

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


    1. evage Автор
      20.08.2021 13:17

      Вторая часть в КЕГЭ существует. Сам экзамен состоит из 27 заданий, задания с кратким ответом - 23 (1 часть) и остальные 4 - с развернутым (2 часть). https://inf-ege.sdamgia.ru/manual. Хотя в спецификации экзамена сказано только что экзамен делится на уровни сложности: Б - базовый, П - повышенный, В - высокий, но 24-27 привычнее называть 2 частью, потому что, грубо говоря, так и есть. А текст программы хоть никто и не проверяет, но для проверки заданий из 2 части есть два файла: один небольшого размера, а второй огромного. Неэффективным способом, соответственно, результат для файла Б получить не удастся.


      1. Kolobrod72
        20.08.2021 15:12

        На задания 24-27 ответы такие же, как и на остальные, т.е. либо одно число, либо несколько. И два файла - большой и маленький - только у 27го задания. Не знаю, как картинку вставить, но на тренажере Полякова посмотреть можно, только у него второй файл 60К записей, а на КЕГЭ было 1М.


  1. event1
    19.08.2021 18:45
    +1

    Надо сказать что прогресс поражает. Я заканчивал школу 20 лет назад и у нас экзамен по информатике вообще не подразумевал программирования.


  1. ivanych
    19.08.2021 20:47

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

    Что за ПО? Где скачать?


    1. Kolobrod72
      19.08.2021 23:10

      Распространяется через местные РЦОИ(региональный центр обработки информации) и ИМЦ(информационно-методический центр)


      1. ivanych
        19.08.2021 23:32

        Среди кого распространяется? Как причаститься?


        1. alexdesyatnik
          20.08.2021 08:27

          Среди организаторов ЕГЭ распространяется, причаститься никак. В интернете можно найти демо-версии, например: https://kpolyakov.spb.ru/school/ege/kege/start.htm Насколько они приближены к реальной станции записи ответов, мне неизвестно.


          1. Kolobrod72
            20.08.2021 11:19

            Внешне довольно похоже.