Программирование на Python (начальный уровень)
Дополнительная общеобразовательная программа «Программирование на Python» (144 ак. часа) от МФТИ разработана для школьников 8-11 классов и студентов СПО, желающих освоить основы анализа данных с использование языка программирования Python в рамках проекта «Код будущего». Обучение бесплатное.
Программа «Программирование на Python» (начальный уровень) направлена на знакомство с базовыми понятиями и элементами языка Python (операторы, числовые и строковые переменные, списки, условия и циклы, функции) и формирование компетенций в области решения задач по программированию. Курс является вводным и лучше всего подойдет слушателям, не имеющим опыта написания программ ни на одном из языков программирования. Содержит множество разнообразных задач по базовым конструкциям языка, что позволяет получить практические навыки программирования на языке Python для решения типовых задач математики и информатики и использовать полученные знания в дальнейшей учебной и профессиональной деятельности.
Программа включает 4 модуля:
- Введение в Python (36 ак.ч.)
- Базовые конструкции (36 ак.ч.)
- Знакомство с коллекциями (36 ак.ч.)
- Функции (36 ак.ч.)
Цель программы — формирование познавательной активности обучающихся в области функционального программирования, приобретение навыков работы c базовыми структурами языка в интегрированных средах разработки, получение навыков самостоятельного написания кода и разработки эффективных алгоритмов и программ.
Актуальность программы:
Способность написать программу или код постепенно становится базовым навыком. Программирование и вычислительное мышление расширяют возможности и становятся обязательным требованием к любому специалисту. Способность читать и понимать компьютерный код становится более востребованной, поэтому программирование переходит из специального знания в универсальную грамотность.
Указом Президента Российской Федерации от 07.05.2018 г. № 204 «О национальных целях и стратегических задачах развития Российской Федерации на период до 2024 года» поставлена национальная цель – обеспечение ускоренного внедрения цифровых технологий в экономике. В условиях широкого внедрения онлайн -сервисов, электронных услуг, развития цифровой экономики актуальной является проблема подготовки кадров, в том числе в области программирования на языке Python. Отечественные компании испытывают потребность в квалифицированных кадрах, способных решать прикладные задачи на языке программирования Python. Язык программирования Python доступен для освоения лицами любого возраста и профессии. Он позволяет решать широкий круг практических задач: его можно использовать для анализа данных и машинного обучения, бэкенда, веб -разработки, системного администрирования, создания игр и т.д. Программа имеет техническую направленность, в её основу заложены принципы модульности и практической направленности, что обеспечит вариативность обучения. Содержание учебных модулей предполагает детальное изучение алгоритмизации, реализацию межпредметных связей, организацию проектной и исследовательской деятельности обучающихся.
Требования:
Требования к уровню подготовки: отсутствуют.
Требования к статусу обучающегося: школьники 8-10 классов общеобразовательных организаций.
Требования к оборудованию для самостоятельной работы обучающихся: персональные компьютеры/ноутбуки, Visual Studio, доступ в Интернет.
Требования к программному обеспечению для самостоятельной работы: операционная система (желательно Windows); браузеры: Yandex Browser, Chrome, Chrome Mobile, Firefox, Opera, Safari, Mobile Safari, Edge, Python; среда Wing IDE 101 (версии 6 или выше); среда PyCharm Community Edition.
Рекомендации для обучающихся: до начала обучения по программе необходимо установить оборудование и программное обеспечение; своевременно выполнять задания для самостоятельной работы, которые будут размещены на цифровой платформе МФТИ в соответствии с изучаемыми темами.
Задачи:
- сформировать ответственное отношение к учению, готовности и способности, обучающихся к саморазвитию и самообразованию на основе мотивации к обучению и познанию, осознанному выбору и построению дальнейшей индивидуальной траектории образования на базе ориентировки в мире профессий и профессиональных предпочтений, с учётом устойчивых познавательных интересов
- сформировать умение соотносить свои действия с планируемыми результатами, осуществлять контроль своей деятельности в процессе достижения результата, определять способы действий в рамках предложенных условий и требований, корректировать свои действия в соответствии с изменяющейся ситуацией
- сформировать умение определять понятия, создавать обобщения, устанавливать аналогии, классифицировать, самостоятельно выбирать основания и критерии для классификации, устанавливать причинно-следственные связи, строить логическое рассуждение, умозаключение (индуктивное, дедуктивное и по аналогии) и делать выводы
- сформировать умение организовывать учебное сотрудничество и совместную деятельность с учителем и сверстниками; работать индивидуально и в группе: находить общее решение и разрешать конфликты на основе согласования позиций и учёта интересов; формулировать, аргументировать и отстаивать своё мнение
Результаты:
- знание необходимой терминологии («информация», «алгоритм», «исполнитель», «модель»), смысла этих понятий и умение применять полученные знания на практике
- умение соблюдать сетевой этикет, другие базовые нормы информационной этики и права при работе с компьютерными программами и в сети Интернет
- умение выполнять созданные программы, осуществлять их разработку, тестирование и отладку, используя изученный язык программирования
- развитие умений составить и записать алгоритм для конкретного исполнителя
- формирование знаний об алгоритмических конструкциях— линейной, условной и циклической, логических значениях и операциях
- навыки пошагового выполнения алгоритмов, умение осуществлять данные операции как вручную, так и с использованием компьютера
- умение определять результат выполнения алгоритма при заданных исходных данных
- знание основных понятий и этапов проектной деятельности
Программа носит практико-ориентированный характер. Все занятия включают как теоретический блок, так и практическую работу для формирования практических навыков в области программирования. Закрепление навыков происходит в процессе самостоятельной работы обучающихся, которые предусмотрены при изучении всех тем. Для практической работы будут использоваться дата сеты от индустриальных партнеров МФТИ.
Календарный учебный график
Введение в Python
Модуль включает 6 тем. В конце модуля проводится промежуточная аттестация.
Цели:
- знакомство со средой разработки Python
- изучение основных типов данных, команд ввода-вывода
Задачи:
- познакомить с процессом установки интерпретатора Python
- познакомить со средой разработки и исполнением кода
- познакомить с функцией print() и именованными аргументами sep и end
- рассмотреть понятие переменной и требования к ней
- познакомить с оператором присваивания, множественным присваиванием
- познакомить с функцией input() и научить вводить данные с клавиатуры
- показать устройство памяти и ссылок в Python
- познакомить с представлением целых чисел в памяти компьютера
- познакомить со встроенными числовыми типами и строками
- научить использовать арифметические операции над числами и строками
Тема 1. Установка языка Python. Среда разработки. (5 ак.ч.)
- знакомство с процессом установки интерпретатора Python
- знакомство со средой разработки и исполнением кода
- организация личного кабинета, поиск и выкладывание материалов
- знакомство с системой автоматизированной проверки задач
Тема 2. Вывод данных (5 ак.ч.)
- понятие о языке высокого уровня Python
- структура программы, функция print() именованными аргументами sep и end
- стандарт PEP8
Тема 3. Типы данных и переменные (5 ак.ч.)
- понятие константы
- понятие переменной и требования к ней
- оператор присваивания, множественное присваивание
- функция input(), ввод данных с клавиатуры
- устройство памяти и ссылок в Python
Тема 4. Арифметика строк (5 ак.ч.)
- представление строк в памяти компьютера
- арифметические операции над строками
Тема 5. Арифметика чисел (6 ак.ч.)
- представление чисел в памяти компьютера
- арифметические операции над числами
- «утиная типизация» в Python
Тема 6. Обработка цифр числа (6 ак.ч.)
- алгоритм получения цифр n-значного числа
Промежуточная аттестация (4 ак.ч.)
Базовые конструкции
Модуль включает 6 тем. В конце модуля проводится промежуточная аттестация.
Цели:
- знакомство с условными логическими конструкциями языка Python, итерационными и условными циклами
Задачи:
- познакомить с логическим типом данных
- научить составлять сложные логические условия с использованием операторов and, or, not
- познакомить с особенностями «ленивых» логических выражений в Python
- познакомить с конструкцией «ветвление»
- научить записывать полную и неполную форму ветвления с помощью условного оператора
- познакомить с многообразием способов записи ветвления, каскадным ветвлением
- познакомить с конструкцией «цикл»
- научить записывать цикл с известным количеством повторений с помощью оператора for, читать
- последовательности с помощью for
- показать назначение и способы использования переменной цикла внутри циклической конструкции
- познакомить с разными способами использования функции range(), с отрицательным шагом, циклом по строке
- научить записывать цикл с известным условием продолжения работы с помощью оператора while и способами досрочного выхода из цикла
- познакомить с причинами возникновения бесконечного цикла
- научить обрабатывать последовательности с помощью циклов
Тема 1. Логический тип данных. Логические операции. Условный оператор. (5 ак.ч.)
- логический тип данных, запись логических условий на языке Python
- условный оператор
- неполный условный оператор
Тема 2. Составные условия. Каскадный условный оператор. (5 ак.ч.)
- составление сложных логических условий с использованием операторов and, or, not
- особенности выполнения сложных логических условий в Python
- многообразие способов записи ветвления – каскадное ветвление
Тема 3. Цикл с параметром for (5 ак.ч.)
- синтаксис оператора for, особенности записи цикла
- чтение последовательности
- итерирование по объектам
- фильтрация
- функция next от iterable-объекта
- функция enumerate
Тема 4. Переменная цикла for (5 ак.ч.)
- функция range()
- переменная цикла
- использование переменной цикла
- изменение переменной
- изменение переменной в цикле
- выражения с числами от 1 до n
Тема 5. Варианты цикла for (6 ак.ч.)
- разные виды range
- шаг в range
- отрицательный шаг
- использование шага цикла
- цикл по строке
Тема 6. Цикл while. Организация разветвлений в цикле. (6 ак.ч.)
- синтаксис оператора while
- операторы досрочного выхода из цикла continuе, break, pass
- условие после выхода из цикла
- бесконечный цикл
- причины бесконечного цикла
- обработка последовательностей
Промежуточная аттестация (4 ак.ч.)
Знакомство с коллекциями
Модуль включает 6 тем. В конце модуля проводится промежуточная аттестация.
Цели:
- познакомить с коллекциями в Python: строками, списками, кортежами и приемами работы с ними
Задачи:
- рассмотреть такие коллекции, как строки, списки, кортежи, множества, словари
- познакомить со способами их создания и операциями для работы с ними
Тема 1. Работа со строками. Индексы, срезы строк (5 ак.ч.)
- знакомство с типом данных str
- индексация строки, особенности индексов, отрицательные индексы
- срезы строк, срезы с отрицательными индексами
- сокращенная запись среза
- первые и последние n символов
- срез с шагом
- разные типы срезов
Тема 2. Сравнение строк, методы строк (5 ак.ч.)
- операции со строками
- сравнение букв
- сравнение слов
- перестановка строк
- латинские буквы
- сравнение произвольных символов
- стандарт ASCII, таблица ASCII
- сравнение произвольных строк
- прописные буквы
- сравнение строк с числами
- методы строк: find(), rfind(), count(), replace()
- форматированные строки
- f-строки
Тема 3. Списки. Методы списков (5 ак.ч.)
- структура данных – списки, особенности данной структуры
- понятие элемента списка, индекса элемента, значения элемента, срезы
- заполнение списка
- вывод списка
- обработка списка
- последовательный поиск, сортировка: метод sort(), функция sorted()
- методы списков: append(), index(), pop(), split(), метод строки join()
Тема 4. Списочные выражения. Кортежи (5 ак.ч.)
- способ создания списков: list comprehension, примеры использования
- считыванием входных данных
- условия в списочном выражении
- вложенные циклы
- структура данных – кортеж, примеры кортежей
- кортеж с одним элементом
- особенности кортежей, зачем использовать кортежи вместо списков
- индексация кортежей, срезы
- операция конкатенация и умножение на число
- встроенные функции sum(), min(), max()
- методы index(), count()$
- перебор кортежей, распаковка
- сортировка кортежей, сравнение
- преобразование кортежей в список и строку и наоборот
Тема 5. Множества (6 ак.ч.)
- множества в математике: конечные и бесконечные множества, равенство множеств, подмножество и надмножество, пустое множество
- структура данных – множество в python
- создание множества, пустое множество
- вывод множества
- дубликаты при создании множеств
- приемы работы с множествами: функция len(), оператор принадлежности in, встроенные функции sum(), min(), max()
- методы множеств
- операции над множествами
Тема 6. Словари (6 ак.ч.)
- структура данных – словарь
- отличия словарей от списков
- создание словарей, обращение по ключу, создание словарей на основе списков и кортежей
- пустой словарь
- вывод словаря
- особенности словарей
- встроенные функции len(),sum(),min(),max()
- оператор принадлежности in
- перебор словарей
- распаковка словаря
- форматированный вывод словарей
- сравнение словарей
- методы keys(), values() и items()
- добавление и изменение элементов в словаре, удаление элементов из словаря
- методы get(), update(), рop(), popitem(), clear(), copy()
Промежуточная аттестация (4 ак.ч.)
Функции
Модуль включает 6 тем. В конце модуля проводится промежуточная аттестация.
Цели:
- познакомить с парадигмами программирования
- научить использовать функции и их комбинации для решения сложных задач
Задачи:
- познакомить с синтаксисом простых функций, особенностями возвращаемых значений и аргументов
- научить использовать анонимную (лямбда) функцию, а также локальные и глобальные переменные
Тема 1. Функции. Обязательные параметры. Значения функций (5 ак.ч.)
- синтаксис функции, назначение функции
- функции без параметров
- функции с параметрами
- локальные и глобальные переменные
Тема 2. Функции. Необязательные параметры (5 ак.ч.)
- позиционные, необязательные аргументы
- именованные аргументы, целесообразность применения именованные аргументы
- комбинирование позиционных и именованных аргументов
- изменяемые типы в качестве значений по умолчанию
Тема 3. Функции с переменным числом аргументов (5 ак.ч.)
- переменное количество аргументов
- передача аргументов в форме списка и кортежа
- получение и передача именованных аргументов в виде словаря
- keyword-only аргументы
Тема 4. Функции как объекты (5 ак.ч.)
- функции как объекты
- функции в качестве аргументов других функций
- встроенные функции, принимающие функции в качестве аргументов
- функции в качестве возвращаемых значений других функций
Тема 5. Функции высшего порядка map(), zip(), filter(), reduce() (6 ак.ч.)
- функции высшего порядка
- самописные функции map(),zip(), filter(), reduce()
- модуль operator
Тема 6. Анонимные функции (6 ак.ч.)
- определение анонимных функций
- условный оператор в теле анонимной функции
- передача аргументов в анонимную функцию
- ограничения анонимных функций
Промежуточная аттестация (4 ак.ч.)