Открытое занятие по дисциплине "Основы программирования" на тему: "Модульное программирование в Python"

  • Разработки уроков
  • pdf
  • 25.01.2026
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Урок-игра, основанные на этапах принятия на работу специалиста в области программирования, включая техническое собеседование, тестирование, принятие на работу, и на выполнение принятым на работу сотрудников проекта и обучения пользователей работе с этим проектом. Теоретическая часть выполнена в виде опроса и викторины, а практическая часть - написание чат-бота
Иконка файла материала Модульное программирование.pdf

Ленкова Оксана Юрьевна

Многопрофильный технологический колледж 

ФГБОУ ВО «ДонГТУ», г. Алчевск, ЛНР

Преподаватель компьютерных дисциплин

 

 

Методическая разработка открытого занятия  по дисциплине

ОП.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.   Расскажите о логических ошибках

 

Основная часть.

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

Программист на Python Знаю: Python 3.0

Знаком: с библиотекой Telebot Желаемая ЗП: 20 тыс.

Опыта работы: нет

 

Викторина «Техническое собеседование»

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

Вам необходимо зайти по ссылке quizizz.com ввести код, который будет отображен на экране. Гости, присутствующие у нас на занятии, могут также пройти викторину со своих смартфонов по QR-коду, представленному на экране, и, возможно, попадут в команду разработчиков и получат свою первую должность «программиста».

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

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

Идет викторина. 

Подводятся ее итоги.

 

Практика – техническое собеседование

В ходе технического задания вы показали неплохие теоретические знания в языке программирования Python.

 

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

LeetCode. Это отличные платформы для решения задач по программированию, которые обычно задают на собеседованиях. На них предлагается широкий спектр заданий разных уровней сложности, которые используются на собеседованиях в таких крупных компаниях, как Google, Facebook и Amazon.

Задачи для практической части технического задания приведены ниже.

 

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

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

 

Задача 1. Исключительно странный

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

 

Задача 2. Элементы в ассортименте

Дан массив 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.

 

Задача 3. Разделите четные и нечетные числа

Дан массив 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,]

Пояснение: Здесь все элементы четные, поэтому нет необходимости в разделении. Только сортировка.

 

 

Задача 4. Различные цифры

Дан массив 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 – это отдельные цифры, которые могут быть извлечены из чисел массива.

 

Задача 5. Удалите дубликаты  

Дан целочисленный массив nums, отсортированный в порядке неубывания. Удалите дубликаты на месте, чтобы каждый уникальный элемент встречался только один раз. Относительный порядок элементов должен остаться прежним. Затем верните количество k уникальных элементов в nums.

 

Задача 6. Общие цифры

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

 

Создание проекта – чат-бота

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

Как программисту вам поступает первый заказ на проект: создать программу-бот для мессенджера Телеграмм. 

Ваш бот должен выполнять такие действия:

1)    При старте бота нужно выдать приветствие и перечень команд, которые бот умеет делать.

2)    Команда /reg – регистрация пользователя. Бот задает вопросы об имени, фамилии и возрасте. Пользователь последовательно задает эти вопросы, а пользователь обязан на них ответить. Как только пользователь пройдет регистрацию, бот выведен сообщение «Вас зовут «Имя Фамилия, вам N kлет»».

3)    Команда /pog – информация о погоде. Бот задает вопрос, чтобы пользователь ввел название города, а возвращает ответ в виде читабельного текста с информацией о погоде. Для черпания информации о погоде используйте API – сторонний сервис, который вам может предоставить эту информацию по введенному городу.

4)    К данному боту нужно подключить модуль с функцией, которая правильно подбирает окончания к фразам вида:

«Вам 45 лет», или «вам 23 года», или «вам 21 год»

Эти фразы нужно будет использовать после регистрации при выводе сообщения.

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

 

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

 

Ход выполнения проекта описан на локальном сайте server/python/

 

Шаг 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