Как учиться

Репетитор по информатике для 5–8 класса: что подтянуть

Шестиклассник написал программу, которая спрашивает два числа и выводит их сумму. Он вводит пять и три и получает пятьдесят три. Формулу он проверил трижды, она верна, и ученик делает единственный доступный ему вывод: компьютер ошибся. Компьютер не ошибся. В Python всё, что пришло с клавиатуры, считается текстом, а сложение двух текстов их склеивает, поэтому «5» плюс «3» даёт «53». Чтобы получить сумму, введённое нужно сначала превратить в число, и этой одной строки в тетради у ребёнка нет.

С такой истории обычно и начинается обращение к репетитору по информатике в пятом–восьмом классах: программа почти работает, ответ получается какой-то, но не тот, и ребёнок не знает, где искать. Школьная информатика в эти годы собрана из нескольких вещей, и проседать может любая. Дальше разобрано, какие места у детей этого возраста ломаются чаще всего, чем занятие отличается от разбора у доски и как показывать код преподавателю через видеосвязь.

Что в школе, а что остаётся за её пределами

Школы здесь устроены по-разному, но в большинстве основной курс начинается с седьмого класса. В пятом–шестом бывает пропедевтика: работа с текстом и рисунком, простые исполнители, иногда блочная среда; а бывает, что информатики нет вовсе, и тогда вся «подготовка» приходит от родителей или кружка. В восьмом классе обычно появляются системы счисления и логика: двоичная запись числа, таблицы истинности, «и», «или», «не». Язык, на котором школа учит программировать, зависит от учителя: встречаются Паскаль, Python и школьный алгоритмический язык.

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

Пять мест, где программа ломается тихо

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

  • числа, введённые с клавиатуры, склеиваются как текст, как в истории с суммой;
  • присваивание принимают за равенство: запись «x = x + 1» ребёнок считает неверной, потому что такое равенство невозможно;
  • цикл по диапазону от одного до десяти останавливается на девяти, потому что правая граница не входит;
  • счётчик или сумма не обнулены перед началом, и на втором прогоне ответ тихо растёт;
  • в Python пропущен или лишний отступ, и строка выполняется один раз после цикла вместо каждого прохода.

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

Занятие в школе и занятие с репетитором

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

Главный приём называется ручной разбор. Преподаватель просит ученика взять лист и выписывать значения переменных после каждой строки программы, столбиком, по одному на каждый проход цикла. Через пять-шесть строк обычно становится видно, где значение пошло не туда. Дети сопротивляются: им кажется, что это долго и что компьютер сделает то же быстрее. Это правда, пока программа верна. Когда она неверна, лист находит ошибку раньше, чем десять случайных правок.

На деле это выглядит так. Ученик хотел сложить числа от одного до пяти, а программа выдаёт десять вместо пятнадцати. Цикл в ней записан диапазоном от одного до пяти. Ученик берёт лист и пишет: i равно 1, сумма равна 1; i равно 2, сумма равна 3; i равно 3, сумма равна 6; i равно 4, сумма равна 10, и на этом строки кончаются. Пятёрки в списке нет. Объяснять, что такое правая граница диапазона, преподавателю уже не нужно: ребёнок видит её собственными записями и запоминает надолго, потому что нашёл это сам. Одна такая запись стоит нескольких правил, прочитанных в учебнике.

Второй приём проще: прежде чем запустить, ученик говорит, что программа выведет. Угадал, значит, понимает; не угадал, значит, у него в голове другая программа, чем в файле, и разговор нужно вести об этом расхождении. Многие репетиторы начинают занятие именно так, и мне такой порядок нравится больше, чем объяснение теории с последующей задачей.

Как отличить лень от непонимания

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

Второй признак касается времени. Ребёнок сидит над одной программой сорок минут и сообщает, что «не получается», но на вопрос «что вы уже пробовали» отвечает пожиманием плеч. Лень тут редко при чём: чаще он просто не знает, что делать, когда программа не работает. Взрослые знают три-четыре стандартных шага, дети их не усвоили, и показать им надо эти шаги: готовое решение здесь бесполезно.

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

Какой язык брать и стоит ли торопиться

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

Если школа не даёт программирования вовсе, брать Python разумно. Короткие программы, мало служебных слов, первый результат через четверть часа. Конструкторы игр, где «программируют» мышкой, неплохо удерживают интерес, но проблему со скобками и отступами они только откладывают: пока в них нет текста программы, выученное не переносится на настоящий язык. Паскаль и школьный алгоритмический язык хороши для школьной контрольной, но вне школы нужны заметно реже, и тратить на них внеурочное время имеет смысл, только если от них никуда не деться.

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

Математика, которая всплывает в программах

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

Откуда ребёнок приходит в пятый класс с точки зрения информатики, описано в статье про занятия в 1–4 классе, а куда он идёт после восьмого, в статье про девятый класс, где к программам добавляется экзамен.

Занятие по видео и как показать код

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

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

Занятие по информатике в этом возрасте лучше брать не дольше сорока пяти минут: дальше внимание у экрана садится. В каталоге такой фильтр есть.

Начать поиск:

Вопросы и ответы

Надо ли готовиться к ЕГЭ уже в седьмом классе? Нет. К ЕГЭ ведёт курс десятого–одиннадцатого классов, а о его устройстве можно прочитать заранее в статье про структуру ЕГЭ по информатике, чтобы понимать направление.

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

Как выбрать репетитора, если я сам ничего не понимаю в программировании? Общие признаки хорошего преподавателя не зависят от предмета и разобраны в статье про выбор репетитора. Для информатики добавьте один: на пробном занятии попросите его при вас найти ошибку в короткой программе и проговаривать ход мысли. Если он делает это молча и быстро, ребёнку он не поможет, потому что ребёнку нужен видимый способ искать, ответ он получит и сам.

Сколько занятий в неделю нужно? Одного хватает почти всегда: после занятия у ребёнка должно оставаться несколько дней, чтобы самому повозиться с программой, прежде чем показывать её снова. Если занятий два, второе часто превращается в пересказ первого. Между занятиями ребёнок должен написать две-три небольшие программы сам, чужие читать для этого мало.

Что делать, если школа учит одному языку, а репетитор предлагает другой? Договориться, что до конца учебного года работаем на школьном. Это не потеря времени: циклы, условия и работа со списками одинаковы в любом языке.

Оставить заявку

Ещё в рубрике «Как учиться»