Таблицы истинности и логические схемы для заданных выражений на Python
Цели и задачи
- Цель по SMART: к концу урока научиться строить таблицу истинности для логического выражения с двумя или тремя переменными, представлять его в виде логической схемы и проверять результат с помощью программы на Python.
- Научиться определять количество строк таблицы истинности по числу логических переменных и правильно перечислять все наборы значений True и False.
- Закрепить умение применять операции логического отрицания not, конъюнкции and и дизъюнкции or при анализе выражений.
- Развивать навыки составления алгоритма, программной проверки гипотезы и поиска ошибок в логическом выражении или коде.
- Формировать ответственное отношение к точности вычислений, сотрудничеству и самостоятельному выбору уровня практического задания.
Планируемые результаты
Личностные
- Осознают значение логики и проверки данных для программирования, цифровой безопасности и будущей профессиональной деятельности.
- Проявляют познавательный интерес к самостоятельному исследованию работы логических выражений в Python.
- Принимают необходимость проверять результат и корректно относиться к ошибкам как к источнику нового знания.
- Оценивают собственный вклад в парную работу и соблюдают правила ответственного использования компьютера.
Метапредметные
- Познавательные: преобразуют логическое выражение в таблицу истинности и логическую схему, выделяя промежуточные операции.
- Регулятивные: планируют последовательность построения таблицы, выполняют самопроверку и исправляют обнаруженные ошибки.
- Коммуникативные: объясняют партнёру ход рассуждения, задают уточняющие вопросы и аргументируют выбор ответа.
- Информационные: используют среду программирования Python для проверки таблицы и сопоставляют программный вывод с ручным решением.
- Развивают алгоритмическое и критическое мышление при сравнении двух способов проверки результата.
Предметные
- Знать обозначения логических операций not, and, or и их приоритет при вычислении выражений.
- Уметь определять число строк таблицы истинности для заданного количества переменных.
- Уметь строить таблицу истинности для выражений с двумя и тремя логическими переменными.
- Уметь изображать последовательность логических операций в виде схемы с элементами НЕ, И, ИЛИ.
- Уметь составлять и запускать программу на Python для автоматической проверки значений логического выражения.
Универсальные учебные действия (УУД)
Личностные УУД
- Осознают личную ответственность за точность составленной таблицы и программы.
- Определяют личный уровень понимания темы и выбирают посильный уровень практического задания.
- Связывают изучение логики с разработкой программ, тестированием и профессиями в сфере информационных технологий.
- Проявляют готовность спокойно обсуждать разные способы решения и принимать обоснованную критику.
Регулятивные УУД
- Формулируют цель практической работы и планируют шаги: выделить переменные, построить наборы, вычислить промежуточные значения, проверить результат.
- Сверяют количество строк с формулой $2^n$, где $n$ — число переменных.
- Используют самопроверку по эталону и тестовый запуск программы.
- Находят расхождение между ручной таблицей и выводом Python, устанавливают причину ошибки и корректируют решение.
Познавательные УУД
- Классифицируют логические операции по числу входов и результату.
- Строят модели логических выражений в форме таблицы и схемы.
- Разбивают сложное выражение на промежуточные подвыражения.
- Сопоставляют математическую запись логического выражения с синтаксисом Python.
- Анализируют ошибочный код и объясняют, на каком шаге возникло неверное значение.
Коммуникативные УУД
- Распределяют роли в паре: исполнитель вводит код, контролёр сверяет таблицу и задаёт вопросы.
- Формулируют объяснение результата с использованием терминов «переменная», «операция», «истинность», «выражение».
- Согласуют общий вариант таблицы и фиксируют аргументы при расхождении ответов.
- Представляют классу краткое доказательство корректности решения.
Подготовка учителя к уроку
- Подготовить 15 компьютеров или ноутбуков с установленным Python и проверенной возможностью запуска программ в выбранной среде.
- Подготовить презентацию или экран с таблицами истинности операций not, and, or и памяткой о приоритете операций.
- Распечатать карточки трёх уровней сложности: по одной карточке на каждого ученика, всего 15 экземпляров каждого уровня или комплект для выбора.
- Распечатать лист практической работы с полями для переменных, промежуточных столбцов, итогового значения и вывода Python — по одному на ученика.
- Подготовить карточки с наборами значений True и False для разминки — по одной на парту.
- Вывести на доску шаблон: «переменные → все наборы → промежуточные операции → итог → проверка кодом».
- Подготовить файл-заготовку Python с переменными a, b, c и примерами операций and, or, not без готового ответа к основной задаче.
- Подготовить эталонные решения для выражений $(A \land \neg B) \lor C$ и $\neg(A \lor B) \land C$.
- Проверить, что ученики умеют запускать код, видеть логический вывод True или False и сохранять результат в рабочей папке.
- Подготовить стикеры трёх цветов для рефлексии: зелёный — «могу самостоятельно», жёлтый — «нужна тренировка», красный — «нужна помощь».
Ход урока
Этап 1. Организационный момент и мотивация (3 мин)
Цель этапа: организовать практическую работу и показать связь логических выражений с программированием.
Время | Действие учителя | Действие учеников |
|---|---|---|
1 мин | Учитель приветствует класс и проверяет готовность: "Здравствуйте, ребята. Сегодня мы будем не только рассуждать о логике, но и проверять свои рассуждения программой на Python. Откройте тетради, подготовьте компьютер и лист практической работы. Проверьте, что среда программирования запускается." | Ученики готовят тетради, листы и компьютеры, запускают Python, сообщают о готовности. |
2 мин | Учитель показывает на экране условие: «Система включает сигнал, если выполнено условие A и не выполнено условие B». Затем спрашивает: "Как понять, будет ли сигнал включён при каждом сочетании значений A и B? Можно ли доверять одному примеру? Сегодня мы построим полную таблицу, схему и проверим их кодом." | Ученики предлагают ответы: "Нужно проверить все варианты"; называют таблицу истинности и программу как способы проверки. |
Завершение этапа: учитель подводит итог: "Мы увидели, что одного случайного примера недостаточно. Нужно системно перебрать все наборы значений и проверить итог несколькими способами. Сначала вспомним, как устроены логические операции."
Этап 2. Актуализация знаний (5 мин)
Цель этапа: восстановить знания об операциях логики и количестве наборов значений.
Время | Действие учителя | Действие учеников |
|---|---|---|
2 мин | Учитель выводит на экран памятку и говорит: "Рассмотрите три операции. Для not результат меняется на противоположный. Для and оба входа должны быть истинными. Для or достаточно хотя бы одного истинного входа. Проговорите, какой результат дадут выражения not True, True and False и False or True." | Ученики записывают или рассматривают памятку, отвечают: "False, False, True". |
2 мин | Учитель задаёт вопрос: "Сколько строк без заголовка потребуется для двух переменных? А для трёх? Объясните, откуда берётся это число." На доске фиксирует формулу $2^n$. | Ученики вычисляют $2^2=4$ и $2^3=8$, объясняют: "Каждая переменная имеет два значения, поэтому число наборов равно степени двойки". |
1 мин | Учитель проводит приём «Светофор»: "Покажите цвет, который соответствует вашей уверенности в операциях and, or, not. Если есть жёлтые или красные сигналы, запишите операцию, которую нужно повторить." | Ученики показывают стикеры, фиксируют индивидуальное затруднение. |
Завершение этапа: учитель подводит итог: "Мы вспомнили смысл операций и определили число строк. Теперь проверим, умеем ли мы применить эти знания к сложному выражению, где есть промежуточный результат."
Этап 3. Постановка проблемы и планирование практикума (4 мин)
Цель этапа: сформулировать алгоритм построения таблицы, схемы и программы.
Время | Действие учителя | Действие учеников |
|---|---|---|
2 мин | Учитель записывает выражение $(A \land \neg B) \lor C$ и обращается к классу: "Нельзя сразу вычислять всё выражение как один неразделённый кусок. Какие промежуточные действия вы выделите? Посмотрите на скобки и на знак отрицания. Предложите порядок работы." | Ученики называют шаги: "Сначала найти not B, затем A and not B, затем объединить результат с C". |
2 мин | Учитель фиксирует алгоритм: "Работаем по четырём шагам: выписываем переменные; строим все наборы; добавляем столбцы not B и A and not B; вычисляем итог. Затем изображаем схему и сверяем таблицу с Python. В паре один ученик вводит код, второй контролирует значения, затем роли меняются." | Ученики записывают алгоритм, распределяют роли и формулируют цель: "Построить и проверить таблицу для заданного выражения". |
Посмотрите план целиком
Зарегистрируйтесь — и откройте план урока по этой теме полностью: цели, ход урока и рефлексия по ФГОС.
Завершение этапа: учитель подводит итог: "План работы определён: от переменных и наборов — к промежуточным операциям, схеме и программной проверке. Переходим к совместному разбору образца."
Этап 4. Выполнение образца: таблица, схема и код (8 мин)
Цель этапа: совместно построить модель логического выражения и увидеть её реализацию на Python.
Время | Действие учителя | Действие учеников |
|---|---|---|
3 мин | Учитель показывает на доске шаблон таблицы для выражения $(A \land \neg B) \lor C$: "В выражении три переменные, поэтому должно быть восемь строк. Заполняем наборы системно: сначала меняется C, затем B, затем A. Не пропускайте ни одной строки. После этого вычисляем столбец not B." | Ученики создают таблицу с колонками A, B, C, not B, A and not B, итог; заполняют восемь наборов True и False. |
2 мин | Учитель продолжает: "Теперь для каждой строки вычисляем A and not B. Напоминаю: результат and равен True только при двух True. После этого применяем or к столбцам A and not B и C. Проговорите одну строку вслух." | Ученики вычисляют промежуточные столбцы; например, для A=True, B=False, C=False получают not B=True, A and not B=True, итог=True. |
2 мин | Учитель рисует схему словами: "Сначала сигнал B проходит через элемент НЕ. Значение A соединяется с результатом НЕ через И. Получившийся сигнал соединяется с C через ИЛИ. Такая схема точно повторяет структуру выражения." | Ученики переносят схему в тетрадь в виде блоков «B — НЕ», «A и НЕ B — И», «результат и C — ИЛИ», соединяют стрелками. |
1 мин | Учитель демонстрирует код: "Запустим перебор всех значений. В Python логические значения записываются True и False, операции — not, and, or. Обратите внимание на скобки: они сохраняют структуру выражения." | Ученики вводят и запускают код, сравнивают восемь строк вывода с ручной таблицей. |
Запись в тетрадях
Ученики записывают: «Для $n$ переменных таблица истинности содержит $2^n$ строк. Алгоритм: определить переменные; выписать все наборы; вычислить промежуточные операции; получить итог; проверить таблицу программой. В Python используются операции not, and, or».
Эталон решения
Для выражения $(A \land \neg B) \lor C$ строятся 8 наборов. Для каждой строки сначала вычисляется $\neg B$, затем $A \land \neg B$, затем $(A \land \neg B) \lor C$. Пример кода: for A in [False, True]: for B in [False, True]: for C in [False, True]: result = (A and (not B)) or C print(A, B, C, result). Если $A=True$, $B=False$, $C=False$, то $\neg B=True$, $A \land \neg B=True$, итог равен $True$.
Завершение этапа: учитель подводит итог: "Мы построили одну и ту же логическую модель тремя способами: таблицей, схемой и программой. Теперь вы самостоятельно примените алгоритм к своему выражению и сможете выбрать базовый, повышающий или дополнительный уровень."
Этап 5. Практическая работа по выбору уровня (12 мин)
Цель этапа: сформировать умение самостоятельно строить таблицу истинности, схему и программу проверки.
Время | Действие учителя | Действие учеников |
|---|---|---|
2 мин | Учитель раздаёт карточки трёх уровней и говорит: "Выберите уровень, который позволит вам работать с усилием, но без случайного угадывания. Базовый вариант обязателен для всех, повышающий можно выбрать при уверенной работе, дополнительный предназначен для тех, кто готов анализировать эквивалентность выражений. На листе обязательно оставляйте промежуточные столбцы." | Ученики выбирают карточку, записывают номер уровня и распределяют роли в паре. |
6 мин | Учитель сопровождает пары вопросами: "Сколько переменных в вашем выражении? Сколько строк должно получиться? Какая операция выполняется первой? Какой столбец поможет не ошибиться? После ручного решения составьте код с теми же скобками." Учитель раздаёт индивидуальные консультационные карточки с напоминанием синтаксиса Python. | Ученики уровня 1 строят таблицу для $(A \lor B) \land \neg A$, рисуют схему и пишут код. Ученики уровня 2 работают с $(A \land B) \lor (\neg A \land C)$ и строят таблицу из 8 строк. Ученики уровня 3 сравнивают выражения $A \lor (B \land C)$ и $(A \lor B) \land (A \lor C)$, строят таблицы и делают вывод об эквивалентности. |
3 мин | Учитель организует взаимопроверку по приёму «Две звезды и пожелание»: "Обменяйтесь листами с соседней парой. Найдите две сильные стороны решения и одну конкретную рекомендацию: добавить строку, исправить скобки, перепроверить операцию или уточнить схему." | Ученики сверяют количество строк, промежуточные значения, итоговый столбец и вывод Python; записывают две сильные стороны и одно пожелание. |
1 мин | Учитель просит две пары показать разные способы проверки: "Одна пара объяснит ручную проверку, другая — программную. Сравните не только итог, но и порядок действий." | Ученики кратко представляют решение и формулируют вывод: "Таблица и Python дают одинаковые значения, значит выражение проверено". |
Эталон решения
Для базового выражения $(A \lor B) \land \neg A$ используются переменные $A$ и $B$, поэтому требуется 4 строки. Сначала вычисляется $\neg A$, затем $A \lor B$, после чего результаты соединяются операцией and. Код проверки: for A in [False, True]: for B in [False, True]: result = (A or B) and (not A) print(A, B, result). При $A=False$, $B=True$ результат равен $True$; при $A=True$ результат всегда равен $False$.
Завершение этапа: учитель подводит итог: "Вы прошли полный цикл практической работы: прочитали выражение, построили модель, записали схему, проверили кодом и получили обратную связь от партнёра. Осталось индивидуально подтвердить, что алгоритм понятен без подсказки."
Этап 6. Индивидуальная самостоятельная проверка (7 мин)
Цель этапа: выявить личный уровень освоения алгоритма и научить корректировать ошибку по результату проверки.
Время | Действие учителя | Действие учеников |
|---|---|---|
1 мин | Учитель раздаёт мини-задание: "Работаем индивидуально. Для выражения $\neg A \lor (B \land C)$ определите число строк, запишите два промежуточных действия и вычислите итог для наборов $A=False, B=True, C=False$ и $A=True, B=True, C=True$." | Ученики записывают: 3 переменные, 8 строк; промежуточные выражения $\neg A$ и $B \land C$. |
4 мин | Учитель говорит: "Теперь составьте короткий код, который вычислит результат для этих двух наборов. Не копируйте ответ соседа: важно увидеть собственный способ рассуждения. Если код и ручной ответ расходятся, проверьте скобки и значения переменных." | Ученики решают индивидуально и запускают код. Получают для первого набора $True$, для второго $True$. |
2 мин | Учитель показывает эталон и просит выполнить самопроверку: "Поставьте плюс за правильное число строк, плюс за промежуточные операции, плюс за оба результата и плюс за работающий код. Отметьте один шаг, который потребовал наибольшего внимания." | Ученики сверяют решение, подсчитывают четыре признака успешности и отмечают затруднение. |
Завершение этапа: учитель подводит итог: "Индивидуальная проверка показала, какие шаги уже выполняются уверенно. На рефлексии мы назовём не только правильный ответ, но и способ, который помогает его получить."
Этап 7. Рефлексия и домашнее задание (6 мин)
Цель этапа: осмыслить результат практической работы, зафиксировать затруднения и выбрать домашнее задание.
Время | Действие учителя | Действие учеников |
|---|---|---|
2 мин | Учитель проводит рефлексию «Светофор»: "Поднимите зелёный стикер, если можете самостоятельно построить таблицу и проверить её кодом; жёлтый — если алгоритм понятен, но нужны тренировки; красный — если пока требуется помощь. Объясните соседу один шаг, который вы уже умеете выполнять." | Ученики выбирают стикер, формулируют: "Я умею определять число строк» или «Мне нужно повторить порядок операций». |
2 мин | Учитель задаёт вопросы: "Что оказалось самым важным — количество строк, промежуточные столбцы, скобки или сравнение с Python? Какую ошибку вы теперь сможете найти в чужой программе?" | Ученики отвечают: "Нельзя пропускать наборы"; "Нужно сохранять скобки»; приводят пример исправления ошибки. |
2 мин | Учитель сообщает домашнее задание: "Выберите уровень по результату сегодняшней работы. В тетради запишите выражение, таблицу, схему и код проверки. Перед уходом ответьте на контрольные вопросы: сколько строк нужно для четырёх переменных и почему; чем отличаются and и or; зачем нужны промежуточные столбцы?" | Ученики записывают выбранный уровень, отвечают на контрольные вопросы и закрывают программы. |
Критерии оценивания практической работы
- «5» — корректно определено число строк, заполнены все наборы, правильно вычислены промежуточные и итоговые столбцы, схема соответствует выражению, код на Python запускается и совпадает с таблицей.
- «4» — выполнены все основные части работы, но допущена одна неточность в промежуточном значении, схеме или оформлении кода; ошибка найдена при проверке и исправлена.
- «3» — определено выражение и составлен код или часть таблицы, но пропущены наборы либо допущены две и более ошибки в операциях; ученик может объяснить отдельные шаги с помощью подсказки.
Рефлексия
Вопрос для ученика | Цель вопроса |
|---|---|
Как определить количество строк таблицы истинности до начала вычислений? | Проверка понимания связи между числом переменных и формулой $2^n$. |
Какие промежуточные столбцы нужны для выражения с несколькими операциями? | Выявление умения анализировать структуру выражения и планировать вычисления. |
Что делать, если ручная таблица и результат Python не совпали? | Проверка освоения алгоритма поиска и исправления ошибки. |
Какой уровень домашнего задания вы выбираете и почему? | Оценка самоопределения, мотивации и субъективного уровня освоения темы. |
Завершающее слово учителя
"Сегодня вы научились рассматривать логическое выражение как алгоритм, который можно представить таблицей, схемой и программой. Особенно важно не пропускать наборы значений и сохранять скобки в коде, потому что одна небольшая ошибка меняет результат. Вы сами выбрали уровень сложности и проверили решение не догадкой, а несколькими способами. На следующем уроке мы продолжим использовать логические выражения в условных операторах Python и разберём, как по ним управлять действиями программы."
Домашнее задание
Уровень | Что задать | Зачем |
|---|---|---|
Базовый (обязательный) | Для двух выражений с двумя переменными, содержащих not, and или or, построить таблицы истинности, выделить промежуточные столбцы и написать короткую программу на Python для проверки всех строк. | Закрепляет базовый алгоритм; при проверке смотреть на полный набор строк, порядок операций и совпадение таблицы с выводом программы. |
Средний (повышающий) | Для двух выражений с тремя переменными построить таблицы из 8 строк, изобразить логические схемы и проверить результаты программой на Python. | Развивает умение работать со сложной структурой; при проверке смотреть на корректность промежуточных операций, скобок и схемы. |
Продвинутый (дополнительный) | Сравнить выражения $A \lor (B \land C)$ и $(A \lor B) \land (A \lor C)$: построить обе таблицы, написать программу сравнения итоговых столбцов и сделать вывод, эквивалентны ли выражения. | Формирует анализ и оценку логических моделей; при проверке смотреть на доказательность вывода и отсутствие пропущенных наборов. |
Контрольные вопросы перед выходом: «Сколько строк будет в таблице для четырёх переменных? Что получится при вычислении True and False? Какая операция выполняется первой в выражении $(A \lor B) \land \neg C$? Почему результат программы нужно сравнивать с таблицей?»