Vector

ОСВIТНЯ ПРОГРАМА підвищення кваліфікації педагогічних працівників «Структури даних мовою Python»

Мета програми: комплексний професійний розвиток вчителів інформатики відповідно до вимог реформи «Нова українська школа», системне вдосконалення предметно-методичної та інформаційно-цифрової компетентностей шляхом поглиблення теоретичних знань і розвитку практичних умінь у сфері програмування структур даних мовою Python, а також опанування інноваційних педагогічних технологій викладання алгоритмізації в сучасній школі з використанням штучного інтелекту (далі ШІ).

ОСВIТНЯ ПРОГРАМА  підвищення кваліфікації педагогічних працівників «Структури даних мовою Python»

Інформація про розробника (розробників):

Андрій Мірошниченко, доцент кафедри управління інформаційно – освітніми проектами, кандидат філософських наук, доцент, доцент Комунального закладу вищої освіти «Дніпровська академія неперервної освіти» Дніпропетровської обласної ради

Напрями підвищення кваліфікації:

  • використання інформаційно-комунікативних та цифрових технологій в освітньому процесі, включаючи електронне навчання, інформаційну та кібернетичну безпеку
  • розвиток професійних компетентностей (знання навчального предмета, фахових методик, технологій)
  • цифрова компетентність

Форма (форми) підвищення кваліфікації:

  • дистанційна

Види підвищення кваліфікації:

  • практико-орієнтований курс (навчання за програмами підвищення кваліфікації)

Цільова група:

  • Вчитель закладу загальної середньої освіти

Перелік професійних стандартів:

  • «Вчитель закладу загальної середньої освіти» (2024)

Складники системи освіти та рівні освіти:

  • повна загальна середня освіта

Професійні компетентності за професійними стандартами педагогічних працівників:

  • Вчитель ЗЗСО. А3. Інформаційно-цифрова компетентність

 

ЗМІСТ ПРОГРАМИ

МОДУЛЬ 1. Теоретико-методичні засади навчання структур даних у мові Python в умовах НУШ

Тема 1.1. Концепція НУШ у навчанні алгоритмізації та програмування: розвиток обчислювального мислення, компетентнісний підхід, інформаційна безпека. Профільна школа: інформатична освітня галузь.

Лекція та практичне заняття присвячені аналізу трансформації змісту шкільного курсу інформатики під впливом реформи «Нова українська школа» та європейських рамок цифрової компетентності (DigCompEdu). Розглядаються сутність компетентнісного підходу, наскрізні лінії та місце розділу «Алгоритми та програмування» у сучасних модельних навчальних програмах для 5–6 та 7–9 класів. Особлива увага приділяється поняттю обчислювального мислення (Computational Thinking) як ключової метакомпетентності, що включає декомпозицію, розпізнавання патернів, абстрагування та алгоритмічне проєктування. Також аналізуються питання інформаційної безпеки, захисту інтелектуальної власності та виховання культури академічної доброчесності учнів при написанні програмного коду та використанні ШІ.

Зміст лекційного матеріалу: Трансформація мети викладання програмування в НУШ: від вивчення синтаксису до розв'язання життєвих проблем. Обчислювальне мислення та методика її інтеграції в уроки інформатики. Психолого-педагогічні особливості сприйняття абстрактних понять програмування учнями різних вікових груп. Педагогічні технології як тактика реалізації парадигми НУШ (модульно-розвивальне, кооперативне, проблемно-діалогічне навчання). Правові та етичні аспекти цифровізації, захист персональних даних, дотримання авторських прав на програмний продукт, створений з використанням ШІ.

Зміст практичного заняття: Проєктування технологічної карти уроку інформатики з розвитку обчислювального мислення. Моделювання ситуацій диференційованого підходу. Огляд та аналіз модельних програм НУШ в інформатичній галузі. Створення критеріїв оцінювання для первинних алгоритмічних завдань.

Тема 1.2. Послідовні структури даних: Списки (Lists). Поняття, індексація, зрізи, введення, виведення та пошук даних у списках. Особливості викладання в 5 – 9 класах.

Списки є базовою динамічною структурою даних у мові Python. Заняття спрямоване на глибоке вивчення внутрішньої природи списків як гетерогенних змінюваних послідовностей. Слухачі опанують повний спектр операцій: створення списків, пряму та зворотну індексацію, механізм зрізів (slices), вбудовані методи додавання (append, extend, insert), видалення (remove, pop, clear) та трансформації елементів. Розглядається методика подання цієї теми в учнівському середовищі, зокрема за допомогою інтерактивної візуалізації (наприклад, Python Tutor), що дозволяє наочно продемонструвати посилання в пам'яті комп'ютера та еволюцію структури в процесі виконання алгоритму.

Зміст лекційного матеріалу: Визначення структури даних як способу організації інформації. Списки в Python: динамічність, гетерогенність, впорядкованість. Пам'ять та покажчики: як Python зберігає списки під капотом. Операції над списками: конкатенація, повторення, перевірка приналежності (in). Базові алгоритми обробки списків: обчислення суми, середнього значення, пошук максимального та мінімального елементів, лінійний пошук елемента за заданим критерієм. Списки списків як модель двовимірних матриць. Методика пропедевтики поняття "масив/список" у 5–6 класах через життєві аналогії (список покупок, черга, шкільний журнал).

Зміст практичного заняття: Розв'язання типових завдань на обробку одновимірних та двовимірних списків у Python. Написання програм введення списку з клавіатури (зокрема в один рядок за допомогою розщеплення рядків split()) та генерації випадковими числами за допомогою модуля random. Розробка серії різнорівневих вправ для учнів 7 - 9 класів з використанням спискових включень (List Comprehensions).

Приклад навчального коду (Генерація та обробка списку):

# Створення списку оцінок учнів за допомогою спискового включення
import random
grades = [random.randint(4, 12) for _ in range(10)]
print(f"Список оцінок класу: {grades}")

# Лінійний пошук відмінників (оцінки >= 10)
excellent_students = [g for g in grades if g >= 10]
print(f"Оцінки відмінників: {excellent_students}")
print(f"Кількість відмінників: {len(excellent_students)}")

# Обчислення середнього балу класу
average_score = sum(grades) / len(grades)
print(f"Середній бал класу: {average_score:.2f}")

 

Тема 1.3. Незмінювані послідовності: Кортежі (Tuples). Порівняльний аналіз із списками. Методична доцільність використання в учнівських проєктах.

Самостійне опрацювання та лекційний огляд сутності кортежів (tuples) як незмінюваних аналогів списків. Тема розкриває поняття імутабельності, її переваги з точки зору оптимізації пам'яті та захисту даних від випадкових змін усередині програми. Педагоги вчаться порівнювати списки та кортежі, визначати сценарії, коли використання кортежів є критично важливим (передача константних конфігурацій, повернення кількох значень із функції, робота з географічними координатами або RGB-палітрами в комп'ютерній графіці). Методичний акцент робиться на запобіганні типових помилок учнів, пов'язаних спробами модифікації елементів кортежу, зокрема, з використанням ШІ.

Зміст лекційного матеріалу: Синтаксис створення кортежів, особливості створення кортежу з одного елемента. Концепція незмінюваності об'єктів у Python. Операції розпакування (unpacking) та запакування кортежів, використання зірочки (*extra) для гнучкого розпакування. Переваги кортежів у продуктивності (Tuple packing/unpacking speed). Використання кортежів як ключів для словників (завдяки їхньому хэшуванню). Методичні прийоми пояснення незмінюваності через метафору "запечатаного листа" або "архівного документа".

Зміст практичного заняття та самостійної роботи: Складання порівняльної таблиці «Списки vs Кортежі в Python» за критеріями: синтаксис, мутабельність, швидкість роботи, споживання пам'яті, методи, типові сфери застосування. Розробка мікропроєкту «Координатна сітка або Навігатор» на основі кортежів для інтеграції з уроками географії чи математики (STEM-підхід).

 

МОДУЛЬ 2. Практикум із програмування та методика виконання проєктів на основі структур даних Python

Тема 2.1. Асоціативні та унікальні структури: словники (Dictionaries) та множини (Sets). Створення прикладних завдань типу «Бази даних» для 8 – 9 класів.

Словники (ключ-значення) та множини (унікальні нетипізовані колекції) представляють нелінійні структури даних Python, що базуються на механізмі хеш-таблиць. Ця тема відкриває широкі можливості для створення учнями реалістичних інформаційних систем: телефонних довідників, каталогів бібліотек, систем обліку товарів чи результатів змагань. Слухачі вивчають синтаксис словників, методи доступу до ключів, значень та пар (keys, values, items), безпечне вилучення даних за допомогою get() або pop(), а також математичні операції над множинами (об'єднання, перетин, різниця). У методичному плані розглядається перехід від простих типів до моделювання складних об'єктів реального світу за допомогою вкладених словників та списків.

Зміст лекційного матеріалу: Поняття асоціативного масиву. Словники в Python: унікальність та вимоги до типів ключів, змінюваність значень. Ітерування по словниках. Динамічне оновлення даних. Множини (Sets): теорія множин у шкільній математиці та її програмна реалізація в Python. Швидкість пошуку в множинах та словниках (складність O(1) проти O(n) у списках). Методика навчання учнів 8–9 класів проєктуванню міні-баз даних без використання SQL. Інтеграція міжпредметних зв'язків з математикою (множини, кола Ейлера-Венна).

Зміст практичного заняття: Написання програми "Електронний класний журнал" або "Словник іншомовних слів" з функціями додавання, видалення, редагування та пошуку інформації. Використання множин для очищення списків від дублікатів та знаходження спільних елементів у кількох групах даних. Розробка інструкцій до лабораторної роботи "Аналіз текстового файлу: підрахунок частоти зустрічальності слів за допомогою словника".

Приклад навчального коду (Робота зі словниками):

# База даних контактів школи у вигляді словника словників
school_contacts = {
    "Дирекція": {"телефон": "101-20-30", "кабінет": 12},
    "Учительська": {"телефон": "101-20-31", "кабінет": 5},
    "Кафедра ІТ": {"телефон": "101-20-35", "кабінет": 24}
}

# Додавання нового контакту
school_contacts["Бібліотека"] = {"телефон": "101-20-40", "кабінет": 3}

# Пошук із захистом від помилок відсутності ключа
department = "Кафедра ІТ"
info = school_contacts.get(department, "Контакт не знайдено")
print(f"Інформація про '{department}': {info}")

# Виведення всієї бази даних у зручному для користувача вигляді
print("\nТелефонний довідник школи:")
for dept, details in school_contacts.items():
    print(f"- {dept}: тел. {details['телефон']}, каб. {details['кабінет']}")

 

Тема 2.2. Метод проєктів у структурах даних. Розробка комплексних проєктів («Символьний калькулятор», «Шифр Цезаря» та інші). Реалізація алгоритмів сортування та їх візуалізація.

Тема повністю присвячена практичному втіленню проєктного підходу НУШ. Проєктна діяльність дозволяє об'єднати всі вивчені структури даних для створення цілісного, функціонального програмного продукту. Слухачі детально розбирають архітектуру двох класичних навчальних проєктів: «Шифр Цезаря» (криптографія, маніпуляції з рядками, списками та словниками) та «Символьний калькулятор» (парсинг математичних виразів, пріоритетність операцій). Друга частина заняття фокусується на алгоритмах сортування (бульбашкове, вибором, вставками). Педагоги вивчають не лише код цих алгоритмів, а й методику їх наочної демонстрації учням за допомогою графічних бібліотек (Tkinter) або консольної анімації, що розвиває в школярів глибоке розуміння ефективності коду.

Зміст лекційного матеріалу: Життєвий цикл розробки учнівського ІТ-проєкту: від технічного завдання до тестування та презентації. Покрокова декомпозиція проєкту «Шифр Цезаря» з урахуванням підтримки українського алфавіту та розділових знаків. Алгоритмічний аналіз математичних виразів. Сортування як фундаментальна задача інформатики. Поняття про часову складність алгоритму (O-нотація). Порівняння простих сортувань. Як навчити учнів сортуванню "на пальцях" за допомогою карт, лінійок або живого шикування класу.

Зміст практичного заняття: Написання повного коду програми криптографічного захисту тексту методом зсуву (Шифр Цезаря) з можливістю шифрування та дешифрування. Реалізація класичного алгоритму сортування бульбашкою для списку чисел. Модифікація алгоритму для підрахунку кількості операцій перестановки (для оцінки ефективності). Розробка методичних рекомендацій та чек-листів самооцінювання для учнів при виконанні індивідуальних проєктів.

Приклад навчального коду (Алгоритм сортування бульбашкою з підрахунком кроків):

def bubble_sort(arr):
    n = len(arr)
    swaps = 0
    comparisons = 0
    # Копіюємо список, щоб не змінювати оригінальний
    sorted_arr = arr.copy()
    
    for i in range(n):
        for j in range(0, n - i - 1):
            comparisons += 1
            if sorted_arr[j] > sorted_arr[j + 1]:
                # Обмін елементів місцями
                sorted_arr[j], sorted_arr[j + 1] = sorted_arr[j + 1], sorted_arr[j]
                swaps += 1
    return sorted_arr, comparisons, swaps

# Тестування алгоритму
data = [64, 34, 25, 12, 22, 11, 90]
sorted_data, comp, swp = bubble_sort(data)
print(f"Оригінальний список: {data}")
print(f"Відсортований список: {sorted_data}")
print(f"Кількість порівнянь: {comp}, Кількість перестановок: {swp}")

 

Тема 2.3. Семінар з обміну досвідом. Презентація авторських методичних кейсів, технології критичного мислення, аналіз залікових робіт. Віртуальні лабораторії.

Завершальне інтерактивне заняття (самостійна підготовка та презентаційні виступи), організоване у формі педагогічного круглого столу. Слухачі презентують свої випускні методичні розробки (проєкти, дидактичні системи, поурочні плани), створені під час курсів. Проводиться колегіальне обговорення ефективності застосування інтерактивних методів (мозковий штурм, метод "6 капелюхів мислення", "фішбоун") на уроках інформатики при вивченні складних тем програмування. Розглядаються інструменти організації автоматизованої перевірки робіт учнів (наприклад, платформи Eolymp, Replit Teams) та віртуальні середовища для підтримки змішаного навчання.

Зміст занять та практичного заняття: Захист слухачами авторських проєктів. Рефлексія професійного зростання. Аналіз типових помилок та розробка стратегій їх подолання в практичній діяльності. Обговорення критеріїв оцінювання проєктної діяльності учнів відповідно до оновлених вимог Міністерства освіти і науки України. Підбиття підсумків навчання, анкетування щодо якості реалізації освітньої програми.

 

КОНТРОЛЬНІ ЗАХОДИ ТА СИСТЕМА ОЦІНЮВАННЯ

Оцінювання результатів навчання слухачів курсів підвищення кваліфікації здійснюється на основі компетентнісного підходу і є прозорим, об'єктивним та різнобічним. Система контролю включає три основні рівні: діагностичний (вхідний), поточний (формувальний) та підсумковий контроль.

Вхідне діагностування: проводиться у формі короткого онлайн-опитування (Google Форми) на початку курсу з метою визначення базового рівня ІТ-компетентності педагогів та їхнього попереднього досвіду програмування мовою Python, що дозволяє викладачам адаптувати складність практичних кейсів.

Поточний (формувальний) контроль: здійснюється в процесі виконання практичних завдань до кожної теми в Google Classroom. Оцінюється правильність написання коду, його відповідність стандартам оформлення PEP 8, оптимальність обраних структур даних та логічна архітектура програми. Формувальний контроль реалізується через розгорнуті коментарі викладача та механізм саморефлексії слухача у спеціальних картах просування.

Підсумковий контроль: складається з двох обов'язкових компонентів:

Комплексне підсумкове тестування: автоматизований тест на платформі Google Classroom, що містить 20 тестових завдань (закриті питання, завдання на відповідність, аналіз фрагментів коду) з метою перевірки засвоєння теоретичного матеріалу щодо властивостей структур даних та складності алгоритмів. 

Захист випускної залікової роботи: індивідуальна методична розробка, яка включає детальний поурочний план (або навчальний проєкт) з теми «Структури даних у Python» для обраного класу НУШ, супроводжуваний повністю робочим авторським кодом програми, дидактичними матеріалами та чіткими критеріями оцінювання для учнів.

Критерії оцінювання випускної залікової роботи слухача

Залікова робота оцінюється за 100-бальною шкалою. Для успішного завершення курсів та отримання сертифіката слухач має набрати сумарно не менше 60 балів за підсумковий тест та залікову роботу.

 

Критерій оцінюванняОпис вимог та показники якостіМакс. балів
Програмно-технічна коректність кодуКод програми є повністю працездатним, відсутні синтаксичні та логічні помилки. Програма коректно обробляє критичні та неправильні вхідні дані від користувача. Дотримано вимог стандарту оформлення коду PEP 8 (правильні відступи, зрозумілі назви змінних та функцій, наявність коментарів до складних блоків).30
Обґрунтованість вибору структур данихВ архітектурі програми доцільно та ефективно використано списки, кортежі, словники або множини. Слухач може чітко пояснити переваги обраної структури для розв'язання конкретної підзадачі з точки зору швидкодії та використання оперативної пам'яті комп'ютера.20
Методична цінність та відповідність НУШМетодична розробка уроку або проєкту чітко орієнтована на вимоги Державного стандарту базової середньої освіти та чинні модельні програми НУШ. Прописано очікувані результати навчання, спрямовані на розвиток обчислювального мислення та ключових компетентностей учнів. Матеріали мають високий потенціал для практичного використання.25
Дидактичний дизайн та оцінюванняРозробка містить різнорівневі завдання (базовий, достатній, високий рівні) для реалізації диференційованого підходу. Представлено чіткі, зрозумілі для учнів критерії оцінювання результатів роботи, інструменти формувального оцінювання або картки саморефлексії учнів.15
Якість презентації та захистуСлухач упевнено, логічно та аргументовано презентує свою роботу під час підсумкового семінару (круглого столу). Чітко відповідає на запитання колег та керівника курсів, демонструє глибоке розуміння предметної області та високий рівень педагогічної культури.10
ЗАГАЛЬНА 100

 


 

 

Очікувані результати підвищення кваліфікації

Знання й розуміння:

концептуальних засад та вимог Державного стандарту базової середньої освіти щодо формування інформатичної освітньої галузі;

архітектурних та логічних відмінностей між мутабельними (змінюваними) та імутабельними (незмінюваними) типами даних у Python;

синтаксису та методів роботи зі списками (lists), кортежами (tuples), словниками (dictionaries), множинами (sets);

теоретичних основ базових алгоритмів пошуку та сортування (лінійний та бінарний пошук; сортування бульбашкою, вибором, вставками);

принципів побудови та реалізації абстрактних типів даних (стек, черга) на основі вбудованих структур мови Python;

критеріїв та інструментів формувального, поточного й підсумкового оцінювання результатів навчання учнів з теми «Алгоритми та програмування».

Уміння й навички (розвинені практичні вміння):

ефективно застосовувати структури даних мови Python для розв’язання прикладних, логічних та дослідницьких завдань;

розробляти інтерактивні навчальні проєкти (наприклад, текстові квести, символьні калькулятори, шифратори повідомлень) для учнів середньої та старшої школи;

диференціювати та індивідуалізувати завдання з програмування, адаптуючи їх під різні рівні навчальних досягнень здобувачів освіти;

організовувати проєктну та командну діяльність учнів із використанням систем контролю версій або хмарних платформ спільного кодингу, зокрема, з використанням ШІ;

проводити критичний аналіз та аудит учнівського програмного коду, знаходити та пояснювати логічні й синтаксичні помилки зокрема, з використанням ШІ;

створювати електронні освітні ресурси, інтерактивні робочі аркуші, тести та вікторини для підтримки навчання програмуванню в умовах дистанційної освіти.

Установки (ціннісно-орієнтовані):

усвідомлення важливості розвитку алгоритмічної культури учнів як передумови успішної самореалізації в сучасному високотехнологічному суспільстві;

неухильне дотримання правил академічної доброчесності під час розробки, використання та оцінювання цифрових продуктів;

орієнтація на підтримку креативності, ініціативності та впевненості учнів у процесі створення власних програмних рішень;

прагнення до безперервного професійного самовдосконалення, інноваційної діяльності та активної участі в трансформації української освіти.