Конспект урока по теме «Запись алгоритмов на языках программирования. Язык программирования Python»
план-конспект урока по информатике и икт (11 класс)

Козлова Ксения Васильевна

Вся история человечества – это история раздвигания граней неизвестного. Одним из вечно спорных и до сих пор нерешенных вопросов человека к самому себе остается вопрос о возможности создания искусственного интеллекта.

Так или иначе, всем нам интересно узнать побольше о проблеме искусственного интеллекта.

 

Скачать:


Предварительный просмотр:

Конспект урока по теме «Запись алгоритмов на языках программирования. Язык программирования Python»

  1. класс: 11 класс;
  2. раздел программы: Алгоритмизация и программирование;
  3. тема урока:  Запись алгоритмов на языках программирования. Язык программирования Python;
  4. планируемые результаты (личностные, метапредметные, предметные) урока:

предметные — представления о способах записи вспомогательных алгоритмов в языке Python; углубление и систематизация знаний, учащихся по основным понятиям: алгоритм, свойства алгоритма;

• метапредметные — умение самостоятельно планировать пути достижения целей; умение соотносить свои действия с планируемыми результатами, осуществлять контроль своей деятельности, определять способы действий в рамках предложенных условий, корректировать свои действия в соответствии с изменяющейся ситуацией; умение оценивать правильность выполнения учебной задачи;

• личностные — алгоритмическое мышление, необходимое для профессиональной деятельности в современном обществе; представление о программировании как сфере возможной профессиональной деятельности.

  1. тип урока: урок систематизации и обобщения знаний и умений;
  2. оборудование: интерактивная доска, проектор, ноутбуки, доступ в интернет;
  3. список литературы и Интернет-ресурсов:

Основная литература по теме урока:

Л. Л. Босова, А. Ю. Босова. Информатика. Базовый уровень: учебник для 11 класса— М.: БИНОМ. Лаборатория знаний, 2017

Дополнительная литература по теме урока:

- И. Г. Семакин, Т. Ю. Шеина, Л. В. Шестакова. Информатика и ИКТ. Профильный уровень: учебник для 11 класса. — М.: БИНОМ. Лаборатория знаний, 2019

- Андреева Е. В. Программирование — это так просто, программирование — это так сложно. Современный учебник программирования. — М.: МЦНМО, 2015

- Учебник и руководство для начинающих: К. Сваруп, «Укус Питона/A Byte of Python» (перевод В. Смоляр)

Этап урока

Номер слайда

Комментарии для учителя

Дополнительные материалы

Организационный э Актуализация знаний.

Постановка цели и задач урока. Мотивация учебной деятельности учащихся. тап.

1-2, демонстрация сайтов, работа с интерактивной доской

Вся история человечества – это история раздвигания граней неизвестного. Одним из вечно спорных и до сих пор нерешенных вопросов человека к самому себе остается вопрос о возможности создания искусственного интеллекта.

Так или иначе, всем нам интересно узнать побольше о проблеме искусственного интеллекта.

Посмотрите на слайд, вы можете увидеть 2 стихотворения давайте попробуем определить авторов этих стихотворений:

  1. Умирающий — в смятеньи.

Вновь, как тень, огни дрожат,

Вновь над бездною движенья —

Где-то далека душа...

Крик смертельный рядом, зыбкий,

Тлели в хрустале глаза,

Шелест мечется с улыбкой,

Где-то в чаще небеса. (Google бот)

  1. В соседнем доме окна жолты.

По вечерам — по вечерам

Скрипят задумчивые болты,

Подходят люди к воротам.

И глухо заперты ворота,

А на стене — а на стене

Недвижный кто-то, черный кто-то

Людей считает в тишине. (А. Блок)

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

Сегодня огромные коллективы специалистов в области искусственного интеллекта трудятся на благо нашей безопасности тратя многочисленные ресурсы на распознавания лиц преступников в толпе, номеров машин при нарушении правил дорожного движения и т.д. (показать карту http://airussia.online/#titul)

Так например давайте проведем эксперимент и попробуем проверить сможет ли нейронная сеть определить какой рисунок вы нарисовали для этого воспользуемся сервисом https://quickdraw.withgoogle.com/ (запускаем игру на интерактивной доске и приглашаем одного ребенка).

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

Примечание:

Презентация для проведения этого этапа урока представлена в документе

3

Сегодня мы с вами побываем в виртуальном IT корпорации, и попробуем применить наши знания в программировании на решение конкретной задачи - КАК человек научить машину распознавать рукописные числа …

Итак, какой же алгоритм для этого необходим?

Обобщение и систематизация знаний.

Подготовка учащихся к обобщенной деятельности. Воспроизведение на новом уровне

4-9 (работа с плакатами)

В основе данного приложения лежат глубинные нейронные сети.

Нейронная сеть – это математическая модель, состоящая из нескольких слоев элементов, выполняющих параллельные вычисления.

Глубинные нейронные сети состоят из нескольких слоев. Слои, что добавляет нейронным сетям глубину. Каждый слой набор определенных математических операций или алгоритмов.

Что может стать объектами обучения? (ответы - картинки, звуки, состояния организма и т.д.)

Давайте подумаем, каким образом происходит распознавание образов? (ответы учащихся – 1) Получить изображение, 2) Обработка, 3) сегментация (выделение цветом определенных значимых пикселей для объекта) с данным пунктом ребятам необходимо помочь).

Распознавание образов является одной из ведущих задач искусственного интеллекта, поскольку решение этой задачи помогает в различных областях деятельности человека. Давайте подумаем, где может использоваться данная система в реальной жизни? (ответы - например, распознавание лиц системой безопасности в метрополитене).

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

Давайте рассмотрим 2 класса знакомых нам объектов кошки и собаки. Где кошки, это отдельный класс, обладающий общими параметрами и наглядно отличаются от собак. Объекты одного класса отличаются значениями параметрами, что делает возможным сортировку объектов по одному из параметров объекта, который называется ранжирование. Давайте подумаем кошек можно ранжировать? Попробуйте назвать конкретные значения этих параметров. (ответы учащихся)

Таким образом мы понимаем, что процесс обучения системы определяется 1) путем предъявления системе отдельных объектов и выделением определенных параметров 2) указанием принуждённости объектов тому или другому классу. При этом обучение распознаванию образов может быть реализовано как на основе экспертных систем с заполнением дата сетов человеком, так и на основе машинного обучения.

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

  • найти отличительные черты объекта;
  • сравнить их с содержимым дата сетов;
  • определить принадлежность объектов к классам; ​
  • выдать наиболее оптимальный результат.        

Любая нейросеть — это набор нейронов и связей между ними. Нейрон лучше всего представлять просто как функцию с кучей входов и одним выходом. Задача нейрона — взять числа со своих входов, выполнить над ними функцию и отдать результат на выход. Простой пример полезного нейрона: просуммировать все цифры со входов, и, если их сумма больше N — выдать на выход единицу, иначе — ноль.

Связи — это каналы, через которые нейроны шлют друг другу циферки. У каждой связи есть свой вес — её единственный параметр, который можно условно представить, как прочность связи. Когда через связь с весом 0.5 проходит число 10, оно превращается в 5. Сам нейрон не разбирается, что к нему пришло и суммирует всё подряд — вот веса и нужны, чтобы управлять на какие входы нейрон должен реагировать, а на какие нет.

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

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

Рекомендации для учителя:

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

Применение знаний и умений в новой ситуации. Практическая работа

Работа с файлом

zadacha.py или с сервисом, представленным в тексте colab.research.google.com

Давайте вспомним, что же из себя представляет изображение? (ответ – изображение – это набор пикселей. Разбив «обычный» рисунок на квадратики, мы выполнили его дискретизацию – разбили единый объект на отдельные элементы. Действительно, у нас был единый и неделимый рисунок – изображение ромба. В результаты мы получили дискретный объект – набор пикселей.)

Значит, изображение представляет собой матрицу, и нам необходимо будет выполнить сегодня обработку изображения, как матрицы. Что такое матрица? (ответ - Массив — это пронумерованная последовательность величин одинакового типа, обозначаемая

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

Для этого давайте вспомним, какая команда в Python позволяет открыть файл работы?  (ответ – open) Какой метод подгружает изображение по его структуре? (ответ – load())Какой метод получает количество пикселей по ширине и высоте  изображения?(ответ – size )

Отлично, а если картинка представляет собой матрицу пикселей, то каким образом необходимо выполнить работу с каждым отдельным элементом (пикселем в ней)? (ответ – с помощью циклов) Какой цикл подойдет лучше всего? (ответ -  цикл for)

Любое изображение необходимо представить в более простом формате для компьютера. Что для этого нужно сделать? (ответ -  уменьшить количество цветов в палитре). Как это сделать? (ответ -  уменьшить значение основных цветов из 255)

Ответ:

image = Image.open('img3.jpg')

def swap_colors(img):

    pix = img.load()

    x, y = img.size

    for i in range(x):

        for j in range(y):

            r, g, b = pix[i, j]

            r, g, b = 255 - r, 255 - g, 255 - b

            pix[i, j] = (r, g, b)

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

Ребята приступают к самостоятельной части написания кода на своих компьютерах в среду Python. В конце можно попросить кого-нибудь из ребят подключиться к облачному сервису - colab.research.google.com с уже готовой программой и вставить недостающий код в нее). Готовая программа для работы учеников (https://colab.research.google.com/drive/1QF6XlnCQmRjIMKsxonqpLbaFhwePhFP2#scrollTo=VwXyI0MynTVg

Версия для компьютера представлена в прилагаемом файле с расширением .py)

Рефлексия (подведение итогов занятия)

На данном занятии мы познакомились с вами с методологией распознавания прописным чисел с помощью машинного обучения. В конце занятия попрошу вас заполнить электронную форму https://forms.gle/Z3GNg9e5JFk5yGtk9.

Подведение итогов урока. Сообщение домашнего задания. Выставление оценок.



Предварительный просмотр:

image = Image.open('img3.jpg')

def swap_colors(img):

pix = img.load()

x, y = img.size

for i in range(x):

for j in range(y):

r, g, b = pix[i, j]

r, g, b = 255 - r, 255 - g, 255 - b

pix[i, j] = (r, g, b)

    

    

        

            

            

            



Предварительный просмотр:

Краткое руководство по работе

с Google Colab

Google Colaboratory — это облачный сервис, направленный на упрощение исследований в области машинного и глубокого обучения. Используя Colaboratory, можно получить удаленный доступ к машине с подключенной видеокартой, причем совершенно бесплатно, что сильно упрощает жизнь, когда приходится делать глубокое обучение нейросетей. Можно сказать, что Colab является некоторым аналогом гугл-документов для Jupyter Notebook.

В Colaboratory предустановлена Tensorflow и практически все необходимые для работы Python-библиотеки. Если какой-то пакет отсутствует, он с легкостью устанавливается на ходу через pip или apt-get.

Итак, используя Google Colab вы можете:

улучшить свои навыки программирования на языке программирования Python.

развивать глубокое обучение нейросетей с использованием популярных библиотек, таких как KerasTensorFlowPyTorch, и OpenCV.

Наиболее важной особенностью, которая отличает Colab от других бесплатных облачных сервисов, является то, что Colab предоставляет GPU и это абсолютно бесплатная услуга.

Подготовка Google Colab к работе

Создание папки на Google Диске

http://texno.info/wp-content/uploads/2019/09/qc2.jpeg

Поскольку Colab работает на вашем собственном Google Диске, сначала нам нужно указать папку, с которой мы будем работать. Мы создали папку с именем « app » на своем Google Диске . Конечно, вы можете использовать другое имя или выбрать папку Colab Notebooks по умолчанию вместо папки « app ».

Мы создали пустую папку «app»

Создание нового ноутбука Colab

Создайте новый ноутбук, щелкнув правой кнопкой мыши > More > Colaboratory

щелкнув правой кнопкой мыши > More > Colaboratoryщелкнув правой кнопкой мыши > More > Colaboratory

Переименуйте ноутбук, нажав на имя файла.

http://texno.info/wp-content/uploads/2019/09/gc5.png

Запуск основных кодов Python с Google Colab

Теперь мы можем начать использовать Google Colab.

http://texno.info/wp-content/uploads/2019/09/gc7.png

Мы будем запускать некоторые коды базовых типов данных из Python Numpy Tutorial.

http://texno.info/wp-content/uploads/2019/09/gc8.png

Как загрузить изображение в папку.

  1. Необходимо перейти во вкладку с файлами.
  2. Выбрать папку.
  3. Выбрать директорию с изображением и загрузить его.


По теме: методические разработки, презентации и конспекты

Конспект урока по теме "«Понятие алгоритма. Виды алгоритмов и их свойства»

Урок по теме : «Понятие алгоритма. Виды алгоритмов и их свойства» 10класс. Появление алгоритмов связывают с зарождением математики. Более 1000 лет назад (в 825 году) ученый из города Хорезма Абдулла ...

конспект урока по теме: Понятие переменной в языке программирования Pascal АВС

Проект урока по информатике в 7 классе с использованием ТИО Макарова...

План-конспект урока в 9 классе по английскому языку на тему: “British Writers”(«Британские писатели») составлен по основам УМК для 9 класса, автор УМК «English,9» Student\'s Book ,(В.П. Кузовлев, Н.М.Лапа, Э.Ш.Перегудова). Учитель английского языка Луц

Место в учебном плане: Unit 1«Reading…? Why not? » Lesson 3 «Famous British Writers»  Материал может быть использован при изучении Раздела 1 (Unit 1) на уроках разного типа:объясне...

Конспект урока на тему: Работа с конструктором Робот LEGO WeDo. Программирование.

В помощь руководителю кружка "Легоконструирование"...

Конспект урока по теме "Разветвляющийся алгоритм" с использованием метода групповой работы

Конспект урока по теме  "Разветвляющийся алгоритм" с использованием метода групповой работы.К конспекту прилагается презентация, контрольная работа (4 варианта), задачи для практической работы (4...

краткий конспект урока по теме"Понятие алгоритма"

краткий конспект урока по теме "Понятие алгоритма" с использованием обучающих структур сингапурской методики обучения...

Конспект урока по теме разветвляющийся алгоритм

Конспект урока по теме: «Программирование разветвляющихся алгоритмов».Тип урока: закрепление ранее изученных знаний.Цели урока:Образовательная – закрепить усвоение учащимися особенностей конструирован...