Школьная информатика делится примерно на 2 больших раздела — базовые компьютерные навыки и навыки программирования.

К базовым компьютерным навыкам можно отнести темы «что такое папка и файл», а также «подготовка презентаций в программе MS PowerPoint».

К навыкам программирования — все, что касается представления и обработки информации.

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

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

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

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

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

На сегодняшний день занятия по программированию вводятся в младшей школе многих стран первого мира (Соединенные штаты, Канада, Китай, Великобритания и т. п.).

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

Однако, как я уже сказал, у меня есть ощущение, что действительно понять, научиться по тем материалам, которые сейчас есть — довольно сложно.

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

Рассмотрим базовую задачу школы (а иногда и университета) — подготовка по вопросу «системы счисления и их применение».

Мой критерий успешности обучения прост. У любого ученика или студента сразу возникает вопрос «а зачем это нужно?» — и, если он удовлетворен ответом, то еще и вопрос «как это работает?»

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

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

Возьмем тему «Системы счисления».

Чтобы проверить, понял ученик тему или нет, я задаю всего 2 вопроса:

Если считать в двоичной системе, какое число идет после 111?

Переведи в уме двоичное число 1010 в десятичное — сколько будет?

Если отвечает уверенно и достаточно быстро — значит, суть понял, потому что эти два вопроса элементарны для того, кто ПОНЯЛ, и трудны для того, кто просто ЗАУЧИЛ.

Системы счисления — в обычной школе

В школе идут путем объяснения математического аппарата, стоящим за системами счисления. Получается довольно сухо. Например, перевод десятичного числа в двоичную форму делается через множественное нахождение остатка после деления на 2.

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

А если ученику непонятно, то и не интересно. А если нет интереса, то и запоминается с трудом.

В жизни ученик делает вывод «Это слишком сложно! И не нужно!» — и применять это не будет. Еще и про себя подумает «опять я ничего не могу понять».

Выходит, что школа дает довольно слабый ответ на вопрос «как», и практически не отвечает на вопрос «зачем».

Ладно, идем дальше.

Системы счисления на онлайн-курсах

Давайте попробуем зайти на «Прометеус» — у них на курсе «Программирование на языке Питон» рассказывают и о системах счисления (таймкод 11:00).

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

Очевидно, что ответа на вопрос «какое число идет после 111» вы не получите — непонятно.

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

Ну хорошо, ну может довольно разрекламированный курс Гарвардского университета по компьютерным наукам "CS50" поможет? Давайте проверим (таймкод 3:00).

Американский парень просто вам говорит, что «ноль — это ноль», «один — это один», а потом сразу будет 10, и потом 11. Понятно? Думаю, нет.

Вот спросите кого-то, кто не программист, а каким будет следующее число? Я думаю, он не ответит.

Принцип переноса разряда проскочили, и все, уже непонятно.

Что мы предлагаем

Мы решили взяться за эту проблему и рассказать ее постепенно (чтобы было понятно) — мы отсняли видеоролики по каждой из этих тем:

Мы взяли только 2, 10 и 16-ричными системами (8-ричная система идет бонусом в одном видео). Да, ученик не будет знать, как перевести число в какую-нибудь шестиричную систему, но мы подумали, что это не критично — важно понять 3 основные системы.

1. «Двоичная система счисления»

Вставка из кино вначале — это и есть первый ответ на вопрос «Зачем это нужно?» В фильме «Ядро» программист-хакер говорит военным: «Вы сколько языков знаете, пять? А вот я — всего один, это нули и единицы, но его одного хватит, чтобы украсть все ваши деньги из любой точки мира».

Дальше берём метафору «одометр» (это прибор в авто, который крутится и показывает, сколько машина проехала), и показываем очевидную вещь, как это работает для десятичной системы — а потом по тому же принципу показываем на двоичном «алфавите».

Вот тут и происходит магический момент — ученику становится ясно, как это работает, и вот он уже, представляя себе одометр, мысленно крутит колёсики и говорит: 0, 1, 10, 11, 100.

«Аха»-момент достигнут!

Но у нас есть кое-что и поинтересней. Показываем биты на прямо на руке!

Все пальцы сжаты — это 0.

Оттопырен большой палец — это 1.

Оттопырен только указательный палец, а большой сжат — это 10 (в десятичной системе это просто 2).

Оттопырены указательный и большой пальцы — это 11 (то есть 3).

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

Я проверял это на детях в классе несколько раз — это непередаваемое ощущение, когда весь класс медленно, вдумчиво оттопыривает средние пальцы, при этом у отличниц глаза делаются большими из-за смешанных чувств между «это правильный ответ!» и «о боже, что я делаю?!», а мальчишки на задних партах показывают друг другу в лицо средние пальцы и орут «На 4! На 4!»

Скажете, провокативно? Да, очень!

Поняли они материал? Однозначно да. Это нам и нужно.

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

2. «Шестнадцатеричная система счисления»

Когда тема «двоичная система счисления» уже пройдена, то можно не обрезать «алфавит» цифр, а наоборот, наращивать.

И тут мы сразу даем несколько ответов на вопрос «зачем это нужно».

Во-первых, это RGB-кодирование цвета — а ну-ка, давайте в CSS поменяем синий цвет шапки Фейсбука на красный? Или зеленый? Какой вы хотите?

Во-вторых, на примере фильма «Марсианин» разбираем, как главный герой наладил общение с базой на земле, хотя у него была только камера, которая умела поворачиваться на заданный угол — именно за счет кодировки символов ASCII в 16-ричных символах. А это уже хорошее начинание по большой теме «Кодирование символов» из школьной программы.

3. «Перевод чисел из 2-чной в 10-чную систему счисления»

Перевод из двоичной в десятичную и обратно мы разбираем сначала по-школьному, академически правильно (т. е. медленно), а потом по-нашему — на пальцах и быстро.

Из двоичной в десятичную систему в школе переводят вот таким образом:

А мы учим делать это практически мгновенно вот так (для этого придется заучить наизусть таблицу первых степеней двойки):

4. «Перевод из 10-чной системы счисления в 2-чную»

Обратная операция «по-правильному» делается ну очень долго:

Мы же сначала предлагаем выучить степени двойки (играя в игру "2048" на телефоне, она бесплатна — видите, даже игры могут быть частью обучения), а потом опять делать перевод быстро — на пальцах:

Провокации продолжаются — ведь тема большая. Учитывая, что ответ на вопрос «как» — всегда технически сложный (нужно освоить новый трюк), без провокаций тут не обойтись — все ради того, чтобы «активное пятно» в мозгу было больше и активнее.

Дальше темы обзорные, для расширения кругозора — применение всех 3 систем счисления в жизни (закрепление ответа на вопрос «зачем это нужно»).

5. «Применение 2-чной системы счисления в реальной жизни»

Мы решили рассказать о QR-кодах в качестве применения двоичной системы. Ведь там даже есть защита от повреждений (дополнительная информация для восстановления в конце).

Мы показываем, как фраза (в данном случае — "Zero to hero", название нашего проекта) перерабатывается в биты, а потом в QR-картинку с довольно сложной структурой.

5. «Применение 16-чной системы счисления в реальной жизни»

16-ричная система — самая ёмкая из всех, и именно поэтому она используются для кодирования чего-то объемного. Например, для записи MD5-хеша при скачивании фильма или UUID-хеша для нумерации объектов — всего 32 символа, чтобы проверить, правильно ваш фильм скачался или нет.

6. «Применение 8-чной системы счисления и права доступа к файлу»

Тут просто — объясняем, что такое права "755" для файла в Линуксе. Это полезно и для будущих веб-дизайнеров, и для сисадминов.

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

Увы, обычные учебные заведения мало пытаются эту цену снизить — потому что это сложно, действительно сложно.

А мы пробуем. Пользуйтесь на здоровье.

P.S. Сейчас мы хотим перевести эти видео на украинский язык. Если кто-то захочет помочь — напишите мне на [email protected]