+7 (812) 703-02-02 info@hse.spbstu.ru

Программирование на Python

Любой школьный класс | 36 занятий | Очно

Длительность курса: 144 ак.часа

О чём курс

То, что школьники называют программированием – ввод текста программы на том или ином языке программирования, - в действительности является лишь частью процесса разработки программы. Она называется «кодирование». И бессмысленно осваивать кодирование, не овладев предшествующими этапами разработки программы – постановкой задачи и алгоритмизацией.

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

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

Чему научим

В результате освоения дополнительной образовательной программы обучающийся будет:

знать:

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

уметь:

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

владеть:

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

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

Тема 1.1. Программа и алгоритм

Лекции:

  • Программа как вид информационной модели.
  • Программа как информационный процесс.
  • Понятия «Данные» и «Алгоритм».
  • Алгоритм: исполнитель, система команд.
  • Свойства алгоритмов.

Практические занятия:

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

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

  • Упражнения и задания на работу с различными видами информационных моделей и их анализ, на исполнение алгоритмов, перевод словесного описания алгоритма в другую форму записи.

Тема 1.2. От алгоритма к программе

Лекции:

  • Языки программирования, обзор, классификация.
  • Python – особенности, достоинства.
  • Установка Python на компьютере.
  • Версии Python: совместимость, различия.

Практические занятия:

  • Тест по теме «Тема 1.1. Программа и алгоритм».
  • Знакомство с IDLE.
  • Настройка интерфейса.
  • Режимы работы.
  • Упражнения и задания на эксперименты с Python Shell, на ввод, сохранение и запуск программы.

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

  • Упражнения и задания на эксперименты с Python Shell, на ввод, сохранение и запуск программы.

Тема 1.3. Типы данных

Лекции:

  • Организация вычислений.
  • Понятие переменная.
  • Описание данных в алгоритме при разных формах его записи.

Практические занятия:

  • Тест по теме «Тема 1.2. От алгоритма к программе».
  • Числа и строки в Python – эксперименты и выводы.
  • «Утиная типизация», преобразование данных.
  • Операторы ввода, вывода, присваивания.
  • Упражнения и задания на разработку программ по работе с различными типами данных.

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

  • Упражнения и задания на разработку программ по работе с различными типами данных.

Тема 1.4. Линейные алгоритмы

Лекции:

  • Базовые алгоритмические структуры.
  • Понятие линейного алгоритма.
  • Входные, выходные, промежуточные данные.

Практические занятия:

  • Тест по теме «Тема 1.3. Типы данных».
  • Арифметические операции и выражения.
  • Математические функции.
  • Использование библиотеки math.
  • Синтаксис вызова функций.
  • Упражнения и задания на разработку и программирование линейных алгоритмов разной сложности.

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

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

Тема 1.5. Разветвлённые алгоритмы

Лекции:

  • Условия и выбор в алгоритмах.
  • Разветвленные алгоритмы, их описание при разных способах записи алгоритма.

Практические занятия:

  • Тест по теме «Тема 1.4. Линейные алгоритмы».
  • Условный оператор на Python.
  • Структурные операторы Python на примере условного оператора, общие правила структуризации программы.
  • Вложенность операторов.
  • Упражнения и задания на использование условного оператора.

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

  • Упражнения и задания на использование условного оператора.

Тема 1.6. Логические данные, логические операции

Лекции:

  • Алгебра логики: высказывания, логические операции.
  • Логический тип данных.

Практические занятия:

  • Тест по теме «Тема 1.5. Разветвлённые алгоритмы».
  • Логические операции Python, их применение для формулировки сложных условий.
  • Оптимизация кода.
  • Упражнения – разработка программ, реализующих линейные и разветвлённые алгоритмы.

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

  • Упражнения – разработка программ, реализующих линейные и разветвлённые алгоритмы.

Тема 1.7. Техника отладки программы

Лекции:

  • Понятие отладки.
  • Виды ошибок.
  • Способы отладки программы.

Практические занятия:

  • Тест по теме «Тема 1.7. Техника отладки программы».
  • Приёмы и инструментарий отладки в Python.
  • Упражнения и задания на отладку программ с различными типами ошибок.

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

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

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

Тема 2.1. Символы и строки

Лекции:

  • Нечисловые данные: примеры, назначение.
  • Символьные и строковые данные.

Практические занятия:

  • Операции со строковыми данными: присваивание значений, сцепление.
  • Организация дружественного интерфейса программы.
  • Упражнения и задания на программные эксперименты со строками Python, символьная графика.

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

  • Упражнения и задания на программные эксперименты со строками Python, символьная графика.

Тема 2.2. Циклические алгоритмы

Лекции:

  • Примеры ситуаций, моделируемых циклами.
  • Цикл с заданным количеством итераций, его описание в блок-схеме и на псевдокоде.
  • Циклы с условием, их реализация в блок-схеме и на псевдокоде.

Практические занятия:

  • Тест по теме «Тема 2.1. Символы и строки».
  • Оператор цикла с параметром на Python, функция range().
  • Операторы цикла с условием на Python.
  • Классические алгоритмы перебора данных с использованием цикла.
  • Счетчики и сумматоры.
  • Упражнения и задания на исполнение алгоритмов, содержащих циклы, с помощью таблицы значений; на эксперименты с операторами циклов; на распознавание циклических алгоритмов; на исполнение алгоритмов с циклами.

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

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

Тема 2.3. Математика и циклы

Лекции:

  • Алгоритмы с вложенными циклами, особенности использования.
  • Циклы и математика.

Практические занятия:

  • Тест по теме «Тема 2.2. Циклические алгоритмы».
  • Особенности использования цикла while в разных ситуациях.
  • Оператор break и continue.
  • Использование циклических конструкций для решения типовых задач: алгоритм разбиения числа на цифры, перевод между системами счисления, вычисление факториала, НОД, НОК.
  • Упражнения и задания на разработку программ, использующих циклы.

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

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

Тема 2.4. Структурированные данные

Лекции:

  • Понятие структурированных типов данных.
  • Кортеж.
  • Списки.
  • Поиск и сортировка структурированных данных: цель и алгоритмы.

Практические занятия:

  • Тест по теме «Тема 2.3. Математика и циклы».
  • Индексация элементов, перебор элементов.
  • Создание списка, доступ к элементам списка.
  • Методы списков.
  • Поиск и сортировка структурированных данных: цель и алгоритмы.
  • Упражнения и задания на разработку программ, работающих с кортежами и списками.

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

  • Упражнения и задания на разработку программ, работающих с кортежами и списками.

Тема 2.5. Многомерные списки

Лекции:

  • Понятие многомерного списка, множественная индексация данных.
  • Типовые операции с двумерными списками.

Практические занятия:

  • Тест по теме «Тема 2.4. Структурированные данные».
  • Множественная индексация данных.
  • Типовые операции с двумерными списками.
  • Упражнения и задания на разработку программ, использующих одномерные и многомерные списки.

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

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

Тема 2.6. Компьютерное моделирование

Лекции:

  • Понятие модели, цели моделирования, примеры.
  • Виды моделей.
  • Информационные модели.
  • Компьютерный эксперимент.
  • Компьютерное моделирование.

Практические занятия:

  • Тест по теме «Тема 2.5. Многомерные списки».
  • Примеры разработки информационных моделей различного назначения и их программная реализация.
  • Структурированные данные в информационных моделях.
  • Упражнения и задания на разработку информационных моделей различного назначения и их программная реализация.

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

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

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

Тема 3.1. Процесс разработки программы

Лекции:

  • Структурное программирование – школа настоящего программиста.
  • Процесс разработки программы, его организация.
  • Каскадная и спиральная схемы разработки.
  • Основные этапы разработки программы.

Практические занятия:

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

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

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

Тема 3.2. Строки и срезы

Лекции:

  • Строка как итерируемый тип данных.
  • Обращение к символу строки по индексу.
  • Срезы строк, срезы списков.

Практические занятия:

  • Тест по теме «Тема 3.1. Процесс разработки программы».
  • Переборные алгоритмы для строковых типов данных.
  • Методы строк.
  • Срез и range.
  • Упражнения и задания на работу со строками с помощью методов строк и через реализацию переборных алгоритмов, на применение срезов.

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

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

Тема 3.3. Стандартные функции Python

Лекции:

  • Понятие функции.
  • Параметры, возвращаемое значение.
  • Примеры использования функций.

Практические занятия:

  • Тест по теме «Тема 3.2. Строки и срезы».
  • Примеры использования функций.
  • Подключение библиотек.
  • Упражнения и задания на применение функций, на подключение и использование библиотек.

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

  • Упражнения и задания на применение функций, на подключение и использование библиотек.

Тема 3.4. Пользовательские функции в Python

Лекции:

  • Понятие подпрограммы.
  • Структурирование программы, примеры применения.
  • Пользовательские функции.
  • Понятие рекурсии.
  • Рекурсия в математике.

Практические занятия:

  • Тест по теме «Тема 3.3. Стандартные функции Python».
  • Возвращаемое значение.
  • Объявление и вызов функции.
  • Оператор return.
  • Формальные и фактические параметры.
  • Способы передачи параметров в функции.
  • Пространство имён.
  • Видимость данных.
  • Локальные и глобальные данные.
  • Программирование рекурсии.
  • Примеры применения рекурсии.
  • Оценка времени выполнения программ с рекурсией.
  • Способы ускорения рекурсии.
  • Упражнения и задания на создание собственных функций различного вида и назначения.

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

  • Упражнения и задания на создание собственных функций различного вида и назначения.

Тема 3.5. Программирование алгоритмов перебора

Лекции:

  • Перебор в математике и в программировании.
  • Алгоритмы перебора с помощью числового ключа.
  • Вычислительная сложность алгоритма O(f(n)).
  • Идея динамического программирования.

Практические занятия:

  • Тест по теме «Тема 3.4. Пользовательские функции в Python».
  • Перебор с параметром, индуктивный перебор.
  • Перебор данных из текстового файла.
  • Алгоритмы перебора с помощью числового ключа.
  • Упражнения и задания на решение задач различными методами перебора, на решение задач с помощью динамического программирования.

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

  • Упражнения и задания на решение задач различными методами перебора, на решение задач с помощью динамического программирования.
  • Промежуточная аттестация - тест по модулю 3 включает в себя вопросы по следующим темам: строки и срезы, стандартные функции Python, пользовательские функции в Python, списки, программирование алгоритмов перебора.

Модуль 4. Элементы функционального программирования на языке Python: более сложные приемы программирования

Тема 4.1. Парадигмы программирования

Лекции:

  • Понятие парадигмы программирования.
  • Стили программирования на Python.
  • Модули.
  • Аргументы функции: позиционные и именованные.
  • Аннотирование и документирование функций.

Практические занятия:

  • Встроенные функции.
  • Подключение модулей.
  • Аргументы функции: позиционные и именованные.
  • Аннотирование и документирование функций.
  • Упражнения и задания на решение задач в стиле структурного программирования, на планирование и разработка функций.

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

  • Упражнения и задания на решение задач в стиле структурного программирования, на планирование и разработка функций.

Тема 4.2. Особенности вызова функций в Python

Лекции:

  • Анонимные функции – lambda-выражения.
  • Списковый вызов функций.
  • Функция высшего порядка map.
  • Передача функции в качестве аргумента.
  • Функция map – подробнее. Функции filter, zip, reduce.

Практические занятия:

  • Тест по теме «Тема 4.1. Парадигмы программирования».
  • lambda-выражения.
  • Функция высшего порядка map.
  • Передача функции в качестве аргумента.
  • Функция map – подробнее. Функции filter, zip, reduce.
  • Упражнения и задания на разработку программ в функциональном стиле.

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

  • Упражнения и задания на разработку программ в функциональном стиле.

Тема 4.3. Структурированные данные: взгляд вглубь

Лекции:

  • Внутренняя реализация списка в Python.
  • Различие между списком и массивом.
  • Обобщение: итерируемые типы данных, работа с ними.

Практические занятия:

  • Тест по теме «Тема 4.2. Особенности вызова функций в Python».
  • Списковый вызов функций. «Синтаксический сахар» в Python.
  • Обобщение: итерируемые типы данных, работа с ними.
  • Упражнения и задания на работу с итерируемыми типами данных.

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

  • Упражнения и задания на работу с итерируемыми типами данных.

Тема 4.4. Библиотека NumPy и работа с массивами

Лекции:

  • Библиотеки, их подключение.
  • Массивы в NumPy.
  • Индексация в массивах.
  • Векторизованные вычисления.
  • Методы массивов.

Практические занятия:

  • Тест по теме «Тема 4.3. Структурированные данные: взгляд вглубь».
  • Массивы в NumPy.
  • Индексация в массивах.
  • Векторизованные вычисления.
  • Методы массивов.
  • Структурированные данные: взгляд вглубь».
  • Упражнения и задания на работу с массивами и подключение необходимых библиотек.

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

  • Упражнения и задания на работу с массивами и подключение необходимых библиотек.

Тема 4.5. Словари и множества

Лекции:

  • Суть и назначение словаря (ассоциативного массива).
  • Множество как набор неповторяющихся элементов.

Практические занятия:

  • Тест по теме «Тема 4.4. Библиотека NumPy и работа с массивами».
  • Создание словаря.
  • Методы словарей.
  • Операции над множествами в Python.
  • Упражнения и задания на работу со словарями и множествами.

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

  • Упражнения и задания на работу со словарями и множествами.

Тема 4.6. Практикум по решению задач

Лекции:

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

Практические занятия:

  • Тест по теме «Тема 4.5. Словари и множества».
  • Критерии качества программы.
  • Решение задач обработки данных, требующих использования эффективных алгоритмов и рационального планирования структуры данных.

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

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

Стоимость

--

Социальные скидки для многодетных и других категорий семей.
Скидки по акциям.
Можно оформить налоговый вычет по расходам на обучение - 13%.

Как поступить

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

После проверки заявления на портале Госуслуг вы сможете получить ссылку на вступительное испытание, которое представляет из себя компьютерный тест. В тесте 15 вопросов на которые нужно ответить за 60 минут. Для успешного прохождения теста нужно набрать не менее 60 баллов из 100.

Тест № ВКТ-531 Основы информатики. Математическая культура (Код Будущего)

Необходимые знания и умения для успешного прохождения тестирования:

  1. Знания курса математики за 7 классов общеобразовательной школы.
  2. Общие принципы организации и работы ЭВМ. Представление информации в памяти компьютера.
  3. Перевод чисел из одной системы счисления в другие.
  4. Знание основных логических операций.
  5. Вычисление и упрощение логических выражений.
  6. Умение анализировать и формализовать постановку задачи.
  7. Умение решать задачу в общем виде, строить математическую модель.

Как записаться на занятия

Академия информатики для школьников в цифрах

20 лет

успешной работы
в Политехническом университете Петра Великого

10

направлений обучения

83

учебные программы

2 800

школьников
проходят обучение
ежегодно

151

выпускник АИШ
в 2023 году поступил
в Политехнический университет

4

учебные площадки

36

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