В помощь учителю. Системы счисления
Поразительно, насколько низок уровень обучения базовым вещам. По идее, в школе на уроках информатики должны обучать принципам работы с информацией — и таким образом подготавливать ученика к миру 21 века. Ведь гораздо легче войти в IT, если в школе тебе хорошо объяснили базовые понятия касательно обработки информации.
Именно в расчете на это многие правительства спонсируют обучение программированию в школе — и чем раньше, тем лучше.
Сегодня уроки программирования вводятся в младших классах многих развитых стран мира (США, Канада, Китай, Объединённое королевство и т.д.). У нас тоже думают в эту сторону, вот даже результаты социологического исследования 2019 года показывают, что 83.8% за то, что предмет «Программирование» нужно вводить в школьную программу.
Но дьявол же, зараза, кроется в деталях.
Давайте не будем рассматривать совсем тривиальные темы, типа «подготовка презентаций в программе MS PowerPoint» с контрольными вопросами уровня «как расшифровывается MS?», потому что это к программированию отношения не имеет.
Рассмотрим базовую задачу школы (а иногда и университета) — подготовка по вопросу «системы счисления и их применение».
Мой критерий успешности обучения таков. У любого ученика сначала возникает вопрос «зачем?» — и, если интересно, то еще и «как?». Если ученик получает ответ на оба вопроса, то он легко осваивает тему, а полученные знания и навыки считает «своими» — они его усиливают. Если он по какому-то вопросу ответа не получил, то тема идет тяжело и быстро забывается, ученик думает плохое и про преподавателя, и про себя, а вся эта тема его «ослабляет» (например, «Интегралы? Помню, в школе мучили. Фу, гадость!»).
Чтобы проверить, понял ученик тему «системы счисления» или нет, я задаю всего 2 вопроса:
- Если считать в двоичной системе, какое число идет после 111.
- Переведи в уме двоичное число 1010 в десятичное — сколько будет?
Если отвечает быстро и уверенно — значит он правда уловил суть, ибо оба вопроса элементарны для того, кто ПОНЯЛ, и сложны для того, кто просто ЗАУЧИЛ.
Что в обычной школе
В школе идут путем классического объяснения математического аппарата. Например, перевод десятичного числа в двоичную форму делается через множественное нахождение остатка после деления на 2.
Я считаю, что это совсем неочевидный способ — если еще можно объяснить, почему происходит именно деление на 2 (потому что переводим в двоичную систему), но уже трудно объяснить, почему полученные остатки потом нужно будет записать задом наперед.
А если непонятно, то и не интересно. А если неинтересно, то и запоминать тяжело. В реальности ученик посмотрит на это все, сделает вывод «Ну и жесть!» и применять это не будет. Плюс про себя подумает «я ничего не могу понять». Получается, школа слабенько отвечает на вопрос «как», и практически не отвечает на вопрос «зачем».
Ладно, идем дальше.
Пробуем онлайн-курсы
Идём на «Прометеус» — там в курсе по программированию на Питоне касаются этой темы (таймкод 11:00).
Что мы видим? Сухая схема. За несколько минут вам предстоить разобраться в довольно сложной теме двоичного исчисления, просто глядя на схему. Думаю, никого не удивит, что разобраться таким методом будет немыслимо тяжело.
Ну хорошо, ну может распиаренный американский курс по компьютерным наукам CS50 поможет? Смотрим (таймкод 3:00).
Американский парнишка просто вам говорит, что «0 это 0», «1 это 1», а потом будет 10, потом 11. Понятно?
Вот спросите не-программиста, а следующее число какое? Отож.
Принцип переноса разряда проскочили, и все, уже непонятно.
Что мы предлагаем
В общем, мы решили взяться за эту проблему и качественно её раскрыть — сняли несколько роликов практически по каждой из подтем:
- как понять принцип «системы счисления» (это основная проблема);
- как переводить одни системы счисления в другие;
- где это все применяется на практике.
Мы ограничились 2, 10 и
1. Двоичная система счисления
Повествование начинается сразу с вставки из кино — в фильме «Земное ядро» хакер говорит военным: «Вот вы знаете 5 языков, а я всего один — нули и единицы, но его хватит, чтобы украсть все ваши деньги в любое время из любой точки мира».
Это и есть первое «зачем».
Дальше берём метафору «одометр» (это такой приборчик в машине под спидометром, который крутится и показывает пробег машины), показываем очевидную вещь, как это работает для десятичной системы — а потом хоп, по тому же принципу показываем на двоичном «алфавите».
Вот тут и происходит магия. До ученика доходит, и вот он уже, представляя себе одометр, мысленно крутит колёсики и говорит: 0, 1, 10, 11, 100.
Есть контакт.
Но мы идём дальше. Показываем биты на пальцах.
Все пальцы сжаты — это 0.
Оттопырен большой палец — это 1.
Оттопырен только указательный палец, а большой сжат — это 10 (десятичное 2).
Оттопырены указательный и большой пальцы — это 11 (десятичное 3).
«А теперь покажите следующее число (десятичное 4)», — говорю я тихо, потому что сейчас будет ураган эмоций.
Я пробовал это на «живых» детях — это непередаваемое ощущение, когда весь класс медленно, сосредоточенно оттопыривает средние пальцы, при этом у отличниц округляются глаза из-за смешанных чувств между «это правильный ответ!» и «о боже, что я делаю?!», а пацаны на задней парте тыкают друг другу в лицо факами и орут «На 4! На 4!».
Провокативно? Может быть.
Поняли они материал? Однозначно да.
2. Шестнадцатеричная система счисления
Когда двоичная система счисления понятна, то идем в другую сторону — не уменьшаем «алфавит», а наоборот добавляем новые цифры.
И сразу даем несколько ответов на вопрос «зачем».
Во-первых, это RGB-кодирование цветов — а ну-ка, давайте в CSS поменяем синий цвет шапки Фейсбука на желтый?
Во-вторых, на примере фильма «Марсианин» разбираем, как Метт Деймон общался с базой на земле с помощью поворотов камеры наблюдения — именно за счет кодировки символов в
3. Перевод чисел из 2-чной в 10-чную систему счисления
Обе большие темы (перевод из 2 в 10чную — и обратно) разбираем сначала по-школьному медленно, а потом по-нашему — на пальцах и быстро.
Из двоичной в десятичную систему в школе переводят вот так:
А мы учим делать это практически мгновенно вот так:
4. Перевод из 10-чной системы счисления в 2-чную
Обратная операция «по-правильному» делается вообще неприлично долго:
Мы же сначала предлагаем подучить степени двойки, играя в бесплатную игру «2048» на телефоне (да, игры могут быть частью обучения), а потом опять же переводить быстро — на пальцах:
Учитывая, что ответ на вопрос «как» — всегда технически сложный (нужно освоить новый трюк), без провокаций тут не обойтись — все ради того, чтобы «активное пятно» в мозгу было больше и активнее.
Дальше темы обзорные — применение трех систем счисления в жизни (закрепление с помощью ответа на вопрос «зачем»).
5. Применение 2-чной системы счисления в реальной жизни
Почему бы не рассказать о QR-кодах как применении двоичной системы? Там даже защита от повреждений встроена (лишняя информация для восстановления).
Показываем, как фраза «Zero to hero» перемалывается в биты, а потом в картинку с довольно сложной структурой.
5. Применение 16-чной системы счисления в реальной жизни
6. Применение 8-чной системы счисления и права доступа к файлу
Тут просто — объясняем что такое права «755» для файла в Линуксе. Если придется заливать файлы по FTP (а файлы статистики сейчас лихо гоняют уже даже маркетологи) — будут понимать, что это за штука.
В книге «Искусство объяснять» говорится, что хорошее объяснение снижает цену, которую платит ваш клиент за понимание. Увы, обычные учебные заведения мало пытаются эту цену снизить — потому что это сложно.
А мы пробуем. Получилось или нет — напишите в комментариях. Пользуйтесь на здоровье.
131 коментар
Додати коментар Підписатись на коментаріВідписатись від коментарів