Ленкова Оксана Юрьевна
Многопрофильный технологический колледж
ФГБОУ ВО «ДонГТУ», г. Алчевск, ЛНР
Методическая разработка открытого занятия по дисциплине
ОП.04 Основы алгоритмизации и программирования
Программы без ошибок можно писать двумя способами, но работает только третий.
Тип занятия: практическое занятие.
Дидактическая цель: систематизация и обобщение знаний и умений по составлению программ с использованием модулей на языке Python Задачи:
• закрепление терминологии языка программирования Python; усвоить на уровне осмысленного воспроизведения применения функций и модулей в Python;
• уметь самостоятельно составлять алгоритм и программу по заданной постановке задачи;
• закрепить создание приложений по заданию, отлаживать и тестировать проект.
Развивающая цель: способствовать развитию логического и аналитического мышления, развитию творческих способностей.
Задачи:
• развитие умения применять знания на практике;
• формирование умения планировать свою деятельность;
• развитие умения контролировать и анализировать результат своей работы;
• формирование умений творчески подходить к решению
поставленных задач;
Воспитательная цель: создание условия, обеспечивающие воспитание интереса к изучаемой дисциплине, к будущей профессии;
Задачи:
• создание на занятии условий, обеспечивающих воспитание аккуратности и внимательности при выполнении работ с применением информационных технологий;
• повысить добросовестное отношение к выполняемому заданию;
• закрепление умения применять правила общения, правила поведения на занятии и правила работы в паре.
Форма организации обучения: занятие-игра.
Форма обучения: групповая.
Методы обучения: игра, проектный, исследовательский, решение профессиональных задач.
Формы и методы контроля: устный, практическая работа.
Ожидаемые результаты:
ОК 01. Выбирать способы решения задач профессиональной деятельности, применительно к различным контекстам.
ОК 02. Осуществлять поиск, анализ и интерпретацию информации, необходимой для выполнения задач профессиональной деятельности.
ОК 04. Работать в коллективе и команде, эффективно взаимодействовать с коллегами, руководством, клиентами.
ОК 05. Осуществлять устную и письменную коммуникацию на государственном языке с учетом особенностей социального и культурного контекста.
ОК 09. Использовать информационные технологии в профессиональной деятельности.
ОК 10. Пользоваться профессиональной документацией на государственном и иностранном языках.
ПК 1.1. Формировать алгоритмы разработки программных модулей в соответствии с техническим заданием.
ПК 1.2. Разрабатывать программные модули в соответствии с техническим заданием.
ПК 1.4. Выполнять тестирование программных модулей.
ПК 1.5. Осуществлять рефакторинг и оптимизацию программного кода.
Оснащение средствами обучения: наглядные (мультимедиа презентации с демонстрацией наглядного материала и заданий для рефлексии; проекты, составленные на языке программирования Python; онлайн-викторина; API; библиотеки Python), технические (компьютеры с установленным программным обеспечением: редактор кода, интерпретатор Python, браузер, телевизор или проектор, доступ к сети интернет), печатнословесные (карточки с заданиями, дидактические материалы).
Продолжительность: 1 час 20 мин. План мероприятия:
• Организационный момент.
• Постановка темы и цели урока.
• Вступительная часть.
• Викторина – техническое собеседование
• Практическая часть 1. Практика – техническое собеседование Практическая часть 2. Создание проектов – чат-ботов.
• Практическая часть 3. Обучение пользователей созданному чатботу.
• Рефлексия. Итоги занятия.
Мероприятие сопровождается интерактивной презентацией, на которой содержатся вопросы и задания конкурсов.
Вступительная часть. Добрый день. Ребята, сегодня мы собрались здесь, чтобы показать свои знания в области программирования на языке Python.
Python отпраздновал своё 33-летие в 2024 году. Вопрос к студентам, какой год считается годом создания языка программирование Python? За это время он успел вырасти из небольшого проекта в один из самых популярных языков программирования в мире.
Главный создатель этого языка голландский программист Гвидо ван Россум. В декабре 1989 года Гвидо начал создавать язык, который сочетал бы в себе простоту и широкие возможности. Так появился Python.
Над названием для языка команда думала долго и хотела подчеркнуть его главную особенность — простоту изучения. Первой версией было название АВС, что означало, что программирование похоже на азбуку: сначала учишь «А», затем «В», «С» и так далее.
Однако Гвидо, не хотел тратить много времени на название и посвятил его своему любимому британскому комедийному шоу – Летающий цирк Монти Пайтона (Monty Python’s Flying Circus)
Пользователи в сети, начали публиковать статьи и книги о Python. На обложках всё чаще стали появляться змеи, питоны, и команда задумалась о разработке логотипа! Гвидо не стал искать сложного решения, он просто поигрался с шрифтами и написал слово "python". Так и было до 2006 года, пока брат Гвидо, дизайнер и программист, не предложил известный нам сейчас логотип.
Это небольшое вступление поясняет всем присутствующим здесь, что на занятиях основ программирования студенты специальности Информационные системы и программирование изучают популярный в данное время язык Python.
Ребята, перед нами сегодня стоит задача показать, чему мы научились на занятиях с начала учебного года, и закрепить свои знания. Итак, мы начинаем!
Сначала проведем небольшой разогрев в виде вопроса-ответа. Предлагается задать такие вопросы:
1. Как работает алгоритм?
2. Что такое программирование?
3. Назовите преимущества языка программирования Python?
4. Какие недостатки языка программирования Python?
5. Как работает программный код на Python-e?
6. Что такое отладка?
7. Назовите типы ошибок, которые могут возникнуть в программе
8. Расскажите о синтаксических ошибках
9. Расскажите об исключениях
10. Расскажите о логических ошибках
Основная часть.
Сегодня смоделируем такую ситуацию. Каждый из вас начинающий программист, который желает получить свою первую работу. Из ваших портфолио, в основном, поступали такие сведения о вас:
Знаком: с библиотекой Telebot Желаемая ЗП: 20 тыс.
Викторина «Техническое собеседование»
Чтобы подтвердить свои знания, заявленные в резюме, работодатель предложит вам пройти техническое собеседование. Он понимает, как переживают джуниоры перед таким собеседованием, и предлагает вам пройти его в современной форме онлайн-викторины, которую он составил для вас, и в привычной для вас обстановке один-на-один с компьютером.
Вам необходимо зайти по ссылке quizizz.com ввести код, который будет отображен на экране. Гости, присутствующие у нас на занятии, могут также пройти викторину со своих смартфонов по QR-коду, представленному на экране, и, возможно, попадут в команду разработчиков и получат свою первую должность «программиста».
После перехода по ссылке вам предлагается ввести имя. В это поле вводим имя и фамилию. После этого начнется прохождение викторины в форме соревнования. Лучшие из вас пройдут техническое собеседование с работодателем и будут иметь возможность претендовать на получение работы.
В особенностях викторины есть вопросы на выбор ответа и есть те, где нужно ввести ответ в поле. Если ответ верный, то об этом сообщает программа. Если были даны несколько неверных ответов, то программа предложит еще раз ответить на один из них. За правильные и быстрые ответы начисляются бонусы. В конце прохождения викторины будет выстроена рейтинговая таблица.
Идет викторина.
Подводятся ее итоги.
Практика – техническое собеседование
В ходе технического задания вы показали неплохие теоретические знания в языке программирования Python.
Но нужно проверить ваши практические навыки. Работодатель придумал вам задачки и предлагает решить их за необходимое время. Задания для практической части взяты с таких порталов, как GeeksforGeeks и
LeetCode. Это отличные платформы для решения задач по программированию, которые обычно задают на собеседованиях. На них предлагается широкий спектр заданий разных уровней сложности, которые используются на собеседованиях в таких крупных компаниях, как Google, Facebook и Amazon.
Задачи для практической части технического задания приведены ниже.
Замечания к задачам: Все действия выполняем с помощью функций. Выводим промежуточные результаты с поясняющим текстом, выполняем проверку входных данных и промежуточных результатов с помощью исключений. Программу делим на два модуля – модуль с функциями и модуль с главной программой.
После окончания времени для написания программ необходимо поработать в парах проверку результатов выполнения программ, т.е. обучающиеся сидящие за соседними компьютерами выполнят проверку задач друг у друга.
Дан массив из N положительных целых чисел, в котором все числа встречаются чётное количество раз, кроме одного числа, которое встречается нечётное количество раз. Найдите это исключительное число.
Дан массив arr, содержащий положительные элементы. A и B — два числа, определяющие диапазон. Задача состоит в том, чтобы проверить, содержит ли массив все элементы в заданном диапазоне (включительно).
Примеры:
Ввод: n = 7, A = 2, B = 5, arr = [1, 4, 5, 2, 7, 8, 3]
Вывод: True
Пояснение: В нем есть все элементы в диапазоне 2-5, т.e 2,3,4,5.
Ввод: n = 7, A = 2, B = 6, arr = [1, 4, 5, 2, 7, 8, 3]
Вывод: False
Пояснение: Массив не содержит 6, следовательно, он не содержит всех элементов в диапазоне 2-6, на выходе получается No.
Дан массив arr. Напишите программу, которая разделит чётные и нечётные числа. Программа должна сначала отсортировать чётные числа, а затем нечётные.
Примеры:
Ввод: arr = [12, 34, 45, 9, 8, 90, 3]
Вывод: [8, 12, 34, 90, 3, 9, 45]
Пояснение: Четные числа 12, 34, 8, 90. Остальные числа - нечетные.
Ввод: arr = [0, 1, 2, 3, 4]
Вывод: [0, 2, 4, 1, 3]
Пояснение: 0, 2, 4 – четные и 1, 3 Нечетные числа.
Ввод: arr = [10, 22, 4, 6]
Вывод: [4, 6, 10, 22,]
Пояснение: Здесь все элементы четные, поэтому нет необходимости в разделении. Только сортировка.
Дан массив nums из положительных целых чисел размером N. Найдите все различные цифры, присутствующие в nums.
Примеры:
Ввод: nums = [131, 11, 48]
Вывод: 1 3 4 8
Пояснение: 1, 3, 4, 8 – это отдельные цифры, которые могут быть извлечены из чисел массива.
Ввод: nums = [111, 222, 333, 4444, 666]
Вывод: 1 2 3 4 6
Пояснение: 1, 2, 3, 4, 6 – это отдельные цифры, которые могут быть извлечены из чисел массива.
Дан целочисленный массив nums, отсортированный в порядке неубывания. Удалите дубликаты на месте, чтобы каждый уникальный элемент встречался только один раз. Относительный порядок элементов должен остаться прежним. Затем верните количество k уникальных элементов в nums.
На вход программе подается натуральное число n, а затем n различных целых чисел, каждое на отдельной строке. Напишите программу, которая выводит все общие цифры в порядке возрастания у всех введенных чисел. Посчитайте, сколько раз повторяется каждая такая цифра в этих числах.
Создание проекта – чат-бота
Ребята, вы показали хорошие результаты в написании программ, которые вам были предоставлены от работодателя, и каждый из вас достоин занять место программиста в некоторой компании.
Как программисту вам поступает первый заказ на проект: создать программу-бот для мессенджера Телеграмм.
Ваш бот должен выполнять такие действия:
1) При старте бота нужно выдать приветствие и перечень команд, которые бот умеет делать.
2) Команда /reg – регистрация пользователя. Бот задает вопросы об имени, фамилии и возрасте. Пользователь последовательно задает эти вопросы, а пользователь обязан на них ответить. Как только пользователь пройдет регистрацию, бот выведен сообщение «Вас зовут «Имя Фамилия, вам N kлет»».
3) Команда /pog – информация о погоде. Бот задает вопрос, чтобы пользователь ввел название города, а возвращает ответ в виде читабельного текста с информацией о погоде. Для черпания информации о погоде используйте API – сторонний сервис, который вам может предоставить эту информацию по введенному городу.
4) К данному боту нужно подключить модуль с функцией, которая правильно подбирает окончания к фразам вида:
«Вам 45 лет», или «вам 23 года», или «вам 21 год»
Эти фразы нужно будет использовать после регистрации при выводе сообщения.
5) После написанию бота и после того, как вы его сами протестировали, вам необходимо будет обучить пользованию вашим ботом наших гостей.
Так как вы начинающий программист, вас сначала обучат и дадут пояснения по вашему проекту. При выполнении задания можно задавать вопросы, но на работе всегда ценится ваша способность к самостоятельным действиям и самообразованию.
Шаг 1. Получения ключа API
1) Выполните регистрацию на сайте https://home.openweathermap.org/api_keys
2) Зайдите в меню вашего профиля и выберите пункт «Мои ключи API»
3) Нажмите кнопку
для генерирования имени ключа API, под которым будут отправляться
на сервис запросы о погоде
Шаг 2. Установка библиотеки Telebot для создания бота в
Телеграмм
Telebot – официальная библиотека от Telegram для разработки ботов на Python.
Она предоставляет простой и удобный интерфейс для работы с Telegram API.
Поддерживает обработку команд, обновлений, отправку сообщений и многое другое.
Выполняется установка выполнением команды в терминале:
pip install pyTelegramBotAPI
Убедитесь, что библиотека установлена.
Шаг 3. Получение токена в отце всех ботов BotFather
Откройте приложение Telegram и найдите @BotFather - официального бота для создания новых ботов.
Нажмите на команду /newbot, так вы создадите новый бот. Далее следуйте инструкциям BotFather, введите название бота, получите ссылку на него и самое важное - получите токен доступа для вашего бота:
Вам нужна эта строка из цифр и букв, это и есть токен
Шаг 4. Начало написания бота. Создание команды /start Вместо троеточия вставляйте нужные команды.
1) Подключите библиотеки для создания ботов, математические функции, работа с датой, для выполнения запросов к API openweathermap – telebot, math, datetime, requests
Подключите функцию okonchanie из модуля mylib.
2) Создайте экземпляр бота
bot = telebot.TeleBot('здесь должен быть токен из
BotFather')
3) Выполните инициализацию глобальных переменных имени, фамилии и возраста пользователя (вместо троеточия вставьте нужное) name = … surname = …
age = …
4) Задайте перечень команд, которые будет выполнять бот:
@bot.message_handler(commands=["start","reg","pog"] )
5) Напишите функцию для обработки команд: def start(message, res=False): # если команда "/start" if message.text=="/start":
# очищаем значения переменных имени, фамилии и возраста для последующих запросов global name name = '' global surname surname = '' global age age = 0
# формируем текст сообщения
mes = f"""Привет, я - бот! Могу выполнять такие команды:\n
/reg - знакомство с пользователем\n
/pog - погода в любом городе мира\n""" # отправляем в чат сообщение
bot.send_message(message.from_user.id, mes) # если команда "/reg" elif message.text=="/reg":
# бот отправляем сообщение с вопросом пользователю bot.send_message(message.from_user.id, "Привет. Как тебя зовут?")
bot.register_next_step_handler(message, get_name) # следующий шаг – функция get_name
# если команда "/reg" elif message.text=="/pog": # отправляем сообщение пользователю
...
... # следующий шаг – функция get_weather
6) Запустите бота командой
bot.polling(none_stop=True, interval=0)
7) Далее выполните сохранение бота. Пропишите в терминале путь к вашей программе-боту и запустите ее командой:
Python bot.py
bot.py – имя вашей программы-бота
Шаг 5. Написание бота. Создание команды /reg
1) Напишите функции получения имени, фамилии и возраста пользователя.
# функция получения имени пользователя def get_name(message): # получаем имя global name
# все буквы введенного имени делаем строчными, а первую букву большой name = message.text...
# бот отправляет следующий вопрос 'Какая у тебя фамилия?'
...
# следующий шаг – функция get_surname ...
# функция получения фамилии пользователя def get_surname(message):
# аналогично функции получения имени пользователя ...
# функция получения возраста пользователя def get_age(message):
global age try:
# вводит пользователь возраст
age = int(...) #проверяем, что возраст введен корректно except:
# если возраст - не целое число bot.send_message(message.from_user.id,
'Цифрами, пожалуйста. Сколько тебе лет?')
# бот отправляет повторно вопрос о возрасте
... else:
# если возраст - целое число
# бот выводит сообщение с информацией о пользователе
bot.send_message(message.from_user.id, 'Тебе '+...(age)+' '+okonchanie(...)+', тебя зовут '+...+'
'+...)
2) Далее выполните сохранение бота. Пропишите в терминале путь к вашей программе-боту и запустите ее командой:
Python bot.py
3) Проверьте, что работает команда регистрации и верно записываются окончания во фразах «Вам 45 лет», «вам 23 года», «вам 21 год».
Шаг 6. Написание бота. Создание команды /pog
1) Напишите функцию получения сообщения с данными о погоде (температуре, влажности, скорости ветра, давлении, времени восхода, времени захода солнца, продолжительности светового дня) в некотором городе.
def get_weather(message): try:
# считываем название города town = message.text
# бот отправляет запрос на погоду в городе
# в запросе ниже
appid=685327e6e461b776f10f99247f68ac33 - это токен с API api.openweathermap.org response = requests.get(
f"http://api.openweathermap.org/data/2.5/weather?q={tow n}&lang=ru&units=metric&appid=685327e6e461b776f10f99247 f68ac33")
# получение данных о погоде в формате json - в виде словаря
data = response.json()
# вывод словаря с погодой в консоль – для проверки
print(data)
# в переменные записываем нужные данные о
погоде
city = data["name"] cur_temp = data["main"]["temp"] humidity = data["main"]["humidity"] pressure = data["main"]["pressure"] wind = data["wind"]["speed"]
# время рассвета, преобразуем понятный формат sunrise_timestamp =
datetime.datetime.fromtimestamp(data["sys"]["sunrise"]) # время заката, преобразуем понятный формат sunset_timestamp =
datetime.datetime.fromtimestamp(data["sys"]["sunset"])
# продолжительность дня length_of_the_day =
datetime.datetime.fromtimestamp(data["sys"]["sunset"])
-
datetime.datetime.fromtimestamp(data["sys"]["sunrise"]) # проверяем код ошибки - если пришел ответ с погодой без ошибки if data['cod']==200:
# формируем сообщение пользователю с погодой
mes=f"""{datetime.datetime.now().strftime('%Y-%m-%d
%H:%M')}\n
Погода в городе: {city}\nТемпература: {cur_temp}°C
{wind}\n
Влажность: {humidity}%\nДавление: {math.ceil(pressure /
1.333)} мм.рт.ст\nВетер: {wind} м/с \n
Восход солнца: {sunrise_timestamp}\nЗакат солнца:
{sunset_timestamp}\nПродолжительность дня:
{length_of_the_day}\n
Хорошего тебя дня!"""
# отправляем сообщение пользователю с погодой (переменной mes)
... else:
# отправляем сообщение пользователю, что введено некорректное название города в виде сообщения "Город не найден"
... except:
# отправляем сообщение пользователю, если город не найден
...
2) Далее выполните сохранение бота. Пропишите в терминале путь к вашей программе-боту и запустите ее командой:
Python bot.py
3) Проверьте, что работает команда погоды. Проверьте варианты – введено несуществующее название города, введено существующее название города.
Обучение пользователей созданному чат-боту.
На нашем занятии присутствуют активные пользователи мессенджера Телеграмм из гостей. Поэтому тем ребятам, кто уже справился с задачей и написал чат-бот, удовлетворяющий постановке задачи, предлагаю обучить гостей использовать свой чат-бот, а также протестировать на работоспособность.
Подведение итогов. Выставление оценок.
Домашнее задание
Вашим домашним заданием является: показать чат-бот родителям и вместе с ними протестировать его работоспособность и доработать в случае возникновения в этом необходимости.
Рефлексия. Мы проводим данный опрос в конце занятия, чтобы узнать ваши эмоции и впечатления после занятия, от приобретенных и систематизированных знаний и навыков, с учетом полученных оценок.
Демонстрируется презентация «Шесть волшебных шляп. Метод анализа инновационных предложений и необычных ситуаций изобретенный Эдвардом Де Боно». Каждый студент отвечает на предложенные вопросы. Шесть волшебных шляп
1 Белая шляпа – шляпа информации. Итак, на тебе белая шляпа, теперь тебя интересуют ТОЛЬКО ФАКТЫ! Что ты уже знаешь? Какая информация тебе еще необходима? Как можно получить недостающую информацию?
2 Черная шляпа – шляпа осторожности. На тебе черная шляпа, теперь ты ворчун-пессимист, ты все КРИТИКУЕШЬ! Что тебе не понравилось? Что вызывает сомнения? Придирайся, придирайся, придирайся…
3 Желтая шляпа – шляпа оптимизма. На тебе желтая шляпа, теперь ты обаятельный оптимист, ты всем ДОВОЛЕН! Что тебе понравилось больше всего? Что принесет тебе успех? Почему это стоит знать, применять?
4 Зеленая шляпа – шляпа творчества. Итак, на тебе зеленая шляпа, ты невероятно творческий человек, ты ФАНТАЗЕР! Какие новые идеи у тебя возникают? Как можно еще применять полученные знания?
5 Синяя шляпа – шляпа мудрости. Итак, на тебе синяя шляпа, ты размышляешь о пользе, которую несут новые знания, ты МУДРЕЦ! Чего ты достиг? Как следует применять полученные знания для эффективного достижения своих целей?
6 Красная шляпа – шляпа эмоций. Итак, на тебе красная шляпа, ты не думаешь, ты чувствуешь, тебя переполняют ЭМОЦИИ! Чего ты чувствуешь:
страх, радость, угрозу, восхищение, желание действовать?..
Список литературы:
1. Никитина Т. П. Программирование. Основы Python / Т. П. Никитина, Л. В. Королев. – Санкт-Петербург: Лань, 2023. – 156 с.
https://e.lanbook.com/book/302714
2. Программирование на Python в примерах и задачах / Алексей Васильев. — Москва : Эксмо, 2021. — 616 с. http://lib.jizpi.uz/pluginfile.php/7364/mod_resource/content/0/Программир
ование_на_Python_в_примерах_и_задачах_2.pdf
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.