Приложение № 1 Дополнительная общеобразовательная (общеразвивающая) программа «Основы программирования на языке Python (углублённый уровень)»

Это старая версия документа, которая прекратила свое действие. Действующая версия размещена по адресу: https://yandex.ru/legal/lyceum_python_programming.

Категория учащихся: учащиеся 8-11 классов средней школы и студенты 1-2 курсов средних специальных учебных заведений

Срок освоения программы: 144 часа

(в редакции № 2 от 28.01.2019)

Авторы программы:

Гребенникова И.А., методист

Паволоцкий А. В., к. п. н.

1. Пояснительная записка

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

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

Опираясь на уникальный опыт преподавания программирования в Школе анализа данных Яндекса (АНО ДПО «Образовательные технологии Яндекса») и на факультете компьютерных наук НИУ ВШЭ, была подготовлена данная программа. В ней большое внимание уделяется практической работе на компьютере, самостоятельному написанию кода.

Изучение основных принципов программирования невозможно без регулярной практики написания программ на каком-либо языке. Для обучения был выбран язык Python. Данный выбор обусловлен тем, что синтаксис языка достаточно прост и интуитивно понятен, а это понижает порог вхождения и позволяет сосредоточиться на логических и алгоритмических аспектах программирования, а не на выучивании тонкостей синтаксиса. При этом Python является очень востребованным языком; он отлично подходит для знакомства с различными современными парадигмами программирования и активно применяется в самых разных областях от разработки веб-приложений до машинного обучения.

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

Знания и умения, приобретённые в результате освоения курса, могут быть использованы обучающимися при сдаче ЕГЭ, при участии в олимпиадах по программированию, при решении задач по физике, химии, биологии, лингвистике и другим наукам, а также они являются фундаментом для дальнейшего совершенствования мастерства программирования.

В основу курса «Основы программирования на языке Python (углублённый уровень)» заложены принципы модульности и практической направленности, что обеспечит вариативность обучения. Содержание учебных модулей направлено на:

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

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

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

Курс «Основы программирования на языке Python (углублённый уровень)» рассчитан на 144 часа и предназначен для учеников 8-го и 9-го классов школ разного уровня подготовки и с разной степенью мотивации.

Целью курса является создание условий для изучения методов программирования на языке Python; рассмотрение различных парадигм программирования, предлагаемых этим языком (процедурная, функциональная, объектно-ориентированная); подготовка к использованию как языка программирования, так и методов программирования на Python в учебной и последующей профессиональной деятельности в различных предметных областях.

Настоящий курс направлен на решение следующих задач:

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

По окончании курса ученик приобретает следующие компетенции:

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

2. Новизна данной образовательной программы

Программа курса:

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

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

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

3. Общая характеристика курса «Основы программирования на языке Python (углублённый уровень)»

3.1. Основные разделы программы

Модуль 1. Введение в программирование. Базовые конструкции языка Python

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

Основные понятия программирования: исполнитель, система команд, алгоритм, программа, среда разработки, интерпретатор, код программы и редактор кода.

Ввод-вывод в программе, условный оператор, оператор цикла с предусловием. Простейшие программы с использованием условного оператора if, оператора циклов while и операторов ввода-вывода. Знакомство с циклом for. Устройство циклов for. Основные управляющие конструкции циклического алгоритма в Python. Простейшие циклы и циклы с переменными.

Технология разработки программы.

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

Модуль 2. Коллекции в языке Python

Работа со списками, строками, множествами и кортежами в Python. Понятие множества. Основные функции и методы для работы со множествами. Записи основных команд, функций и методов. Строковый тип данных. Работа с отдельными элементами строки. Индексация в строке. Срезы для строкового типа данных. Списки. Индексация элементов. Изменение элементов. Создание списков. Генераторы. Списочные выражения. Знакомство со срезами и диапазонами. Равенство и совпадение объектов. Методы для обработки списков и строк. Вложенные списки. Словари. Методы обработки словарей. Преобразование коллекций.

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

Модуль 3. Функции в Python

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

В качестве дополнительных уроков предлагается изучить итераторы, генераторы и рекурсивные функции.

Модуль 4. Библиотеки в Python

Подключение и использование модулей стандартной библиотеки. Модульный принцип компоновки программы. Работа с документацией в стандартной библиотеке. Понятие репозитория различных пакетов Python. Работа с внешними библиотеками Python и утилитой pip.

Внешние библиотеки для обработки звука, графики. Работа с документами. Работа с текстом. Анализ текста. Анализ слов.

Модуль 5. Введение в ООП в Python

Основы ООП. Основные понятия ООП. Объекты, классы, методы. Полиморфизм. Определение операторов. Наследование. Проектирование и разработка классов.

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

3.2. Формы организации учебных занятий

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

Единицей учебного процесса является блок уроков (модуль). Каждый такой блок охватывает отдельную информационную технологию или её часть. Внутри блоков разбивка по времени изучения производится учителем самостоятельно, но с учётом рекомендованного календарно-тематического плана. С учётом регулярного повторения ранее изученных тем темп изучения отдельных разделов блока определяется субъективными и объективными факторами.

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

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

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

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

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

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

При организации занятий по курсу «Основы программирования на языке Python (углублённый уровень)» для достижения поставленных целей и решения поставленных задач используются формы проведения занятий с активными методами обучения:

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

Формы и методы контроля:

  • тестирование;
  • устный опрос;
  • самостоятельные и контрольные работы;
  • участие в проектной деятельности.

Общая характеристика учебного процесса:

  • при изучении курса используются практические и самостоятельные работы;
  • курс обучения заканчивается написанием программы для решения одной из задач.

4. Личностные, метапредметные результаты освоения курса «Основы программирования на языке Python (углублённый уровень)»

Личностные результаты:

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

Метапредметные результаты:

  • умение самостоятельно ставить и формулировать для себя новые задачи, развивать мотивы своей познавательной деятельности;
  • умение самостоятельно планировать пути решения поставленной проблемы для получения эффективного результата; понимание, что в программировании длинная программа не всегда лучшая;
  • умение критически оценивать правильность решения учебно-исследовательской задачи;
  • умение корректировать свои действия, вносить изменения в программу и отлаживать её в соответствии с изменяющимися условиями;
  • владение основами самоконтроля, способность к принятию решений;
  • умение создавать, применять и преобразовывать знаки и символы, модели и схемы для решения учебно-исследовательских и проектных работ;
  • формирование и развитие компетентности в области использования информационно-коммуникационных технологий (ИКТ-компетенция);
  • умение организовывать учебное сотрудничество и совместную деятельность с учителем и сверстниками в процессе проектной и учебно-исследовательской деятельности.

Предметные результаты:

  • умение определять результат выполнения алгоритма при заданных исходных данных, узнавать изученные алгоритмы обработки чисел и числовых последовательностей, создавать на их основе несложные программы анализа данных, читать и понимать несложные программы, написанные на выбранном для изучения универсальном алгоритмическом языке высокого уровня;
  • формирование представлений об основных предметных понятиях («информация», «алгоритм», «исполнитель», «модель») и их свойствах;
  • развитие логических способностей и алгоритмического мышления, умения составить и записать алгоритм для конкретного исполнителя, знакомство с основными алгоритмическими структурами — линейной, условной и циклической;
  • умение выполнять пошагово (с использованием компьютера или вручную) несложные алгоритмы управления исполнителями и анализа числовых и текстовых данных;
  • навыки и опыт разработки программ в выбранной среде программирования, включая тестирование и отладку программ; умение использовать основные управляющие конструкции объектно-ориентированного программирования и библиотеки прикладных программ, выполнять созданные программы;
  • умение разрабатывать и использовать компьютерно-математические модели, оценивать числовые параметры моделируемых объектов и процессов, интерпретировать результаты, получаемые в ходе моделирования реальных процессов, анализировать готовые модели на предмет соответствия реальному объекту или процессу;
  • формирование умения соблюдать нормы информационной этики и права.

5. Тематический план

Модуль 1. Введение в программирование. Знакомство

Тип

Темы

Часы

Комбинированный урок

Понятия кода, интерпретатора, программы. Интегрированные среды, исполнение кода и отладка. Переменные, основные операторы. Базовые типы данных (числа, строки), конструкции ветвления. Циклы. True, False, Break, Continue. Вложенные циклы.

16

Самостоятельная работа

Решение задач по пройденным темам

8

Запасные уроки

Резервное время

2

Итого

26

Модуль 2. Коллекции в Python

Тип

Темы

Часы

Комбинированный урок

Множества. Строки. Индексация срок. Срезы. Списки. Индексация и срезы в списках. Кортежи. Преобразование коллекций. Методы split и join. Методы списков и строк. Списочные выражения. Генераторы. Вложенные списки. Словари.

18

Самостоятельная работа

Решение задач по пройденным темам

9

Комбинированный урок

Самостоятельная работа №1

2

Запасные уроки

Резервное время/ дополнительная тема «Работа с графикой»

8

Контрольная работа

Контрольная работа №1 по темам 1-го и 2-го модулей

2

Итого

39

Модуль 3. Функции в Python

Тип

Темы

Часы

Комбинированный урок

Функции. Возвращение значений из функций. Области видимости переменных. Передача параметров. Функции с переменным числом аргументов. Функции как объект. Лямбда –функции. Обработка коллекций. Потоковый ввод.

14

Самостоятельная работа

Решение задач по пройденным темам

7

Запасные уроки

Резервное время/ дополнительные темы «Итераторы. Декораторы. Рекурсия»

6

Комбинированный урок

Самостоятельная работа №2

2

Итого

29

Модуль 4. Библиотеки в Python

Тип

Темы

Часы

Комбинированный урок

Стандартные библиотеки. Библиотеки для обработки графики и звука. Библиотека для работы с текстом. Библиотека для работы с документами.

10

Самостоятельная работа

Решение задач по пройденным темам

5

Запасные уроки

Резервное время/ дополнительная тема «Библиотека Numpy».

2

Комбинированный урок

Самостоятельная работа №3

2

Итого

19

Модуль 5. Введение в ООП в Python

Тип

Темы

Часы

Комбинированный урок

Введение в ООП. Полиморфизм. Определение операторов. Наследование. Проектирование и разработка классов.

14

Самостоятельная работа

Решения задач на пройденные темы

7

Запасные уроки

Резервное время на решение задач

8

Контрольная работа

Контрольная работа №2 по всем темам курса

2

Итого

31

6. Список литературы

Литература, использованная при подготовке программы

  1. К. Ю. Поляков, Е. А. Еремин. Информатика. Углублённый уровень. Учебник для 10 класса в 2 частях. М.: БИНОМ. Лаборатория знаний, 2018.
  2. М. Лутц. Изучаем Python. СПб.: Диалектика, 2019.
  3. Задачи по программированию. Под ред. С. М. Окулова, М.: БИНОМ. Лаборатория знаний, 2020.
  4. С. М. Окулов. Основы программирования. М.: Бином. Лаборатория знаний, 2020.

Литература, рекомендованная обучающимся

  1. М. Лутц. Изучаем Python. СПб.: Диалектика, 2019.
  2. Информатика и ИКТ. Задачник-практикум в 2 частях. Под ред. И. Г. Семакина и Е. К. Хеннера. М.: БИНОМ. Лаборатория знаний, 2018.
  3. Златопольский Д.М. Основы программирования на языке Python. М.: ДМК Пресс, 2017.

Ресурсы в интернете

  1. Материалы и презентации к урокам в LMS Яндекс.Лицея.
  2. Сайт pythonworld.ru — «Python 3 для начинающих».
  3. Сайт pythontutor.ru — «Питонтьютор».
  4. Официальная документация языка Python (http://docs.python.org).
  5. https://www.youtube.com/playlist?list=PLJOzdkh8T5kpIBTG9mM2wVBjh-5OpdwBl — Лекции А.В. Умнова, прочитанные в Школе Анализа Данных Яндекса.

Дата публикации: 15.06.2023

Предыдущая версия документа https://yandex.ru/legal/lyceum_python_programming/16012023/.

Предыдущая версия документа https://yandex.ru/legal/lyceum_python_programming/12052022/.