Научим самому популярному языку программирования, охватывающему все от основ до олимпиадных задач
Очно
Самый популярный язык программирования, который используется во многих областях, начиная с задач тестирования кода и заканчивая созданием нейронных сетей (это те, которые в рекламе называют «Искусственный интеллект», но мы не в рекламе, у нас серьезный текст). В нашей школе вы сможете изучить все детали этого языка, начиная с самых азов и заканчивая задачами олимпиадного уровня. Курс включает в себя 4 модуля: 0, 1, 2, 3 (все программисты считают с 0…).
На курсе вы познакомитесь с алгоритмами шифрования; создадите бота, который расскажет вам о погоде и посоветует подходящую одежду; разработаете игру-платформер, в которой популярный водопроводчик попытается спасти принцессу; познакомитесь с фракталами и научите компьютер рисовать автоматически генерируемые деревья и многое-многое другое.
Для кого курс
- Курс предназначен для детей от 11 до 17 лет, желающих освоить основы программирования и развить логическое мышление
- Полезен для детей, планирующих карьеру в IT-сфере, а также для тех, кто хочет научиться решать реальные задачи с помощью программирования
- Идеально подходит для ребят, увлекающихся технологиями, математикой и созданием собственных проектов
- Рекомендуется учащимся, готовящимся к экзаменам по информатике, олимпиадам и проектным конкурсам
1 занятие. Первые шаги. Scratch Предварительное погружение в программирование Scratch. Создание проекта в качестве закрепления материала.
2 занятие. Алгоритмы. Блок-схемы Обсуждаем понятия «программа» и «алгоритм». Способы записи алгоритмов, виды алгоритмов. Создание алгоритмов для разных задач.
3 занятие. Перо Scratch. Python Расширение возможностей Scratch с помощью инструмента «Перо». Рисование различных узоров. Установка необходимых программ для работы с Python.
4 занятие. Условия и циклы Рассмотрение синтаксических конструкций: условия и циклы в Python. Сравнение конструкций с Scratch. Создание рисунков по определенному алгоритму.
5 занятие. Python. Практика Практические задачи по использованию Python для реализации заданного алгоритма. Советы по быстрой печати кода.
6 занятие. Python. Функции Что такое функции? Как они описываются в Python. Сравнение со Scratch. Решение практических задач.
7 занятие. Контрольный пункт Практическое выполнение контрольной задачи. Самостоятельное создание алгоритма.
8 занятие. Память. Двоичный код Как устроена память компьютера? Управление памятью в Python. Особенности работы с двоичным кодом.
9 занятие. Scratch. Python. Практика [2] Решение задач начального уровня с помощью Scratch. Попытка реализации тех же задач с использованием Python.
10 занятие. Шифрование История шифрования. Понятия криптография и стеганография. Какие бывают шифры? Использование шифров для сокрытия информации.
11 занятие. Кодирование текста Реализация программы с помощью Python в которой происходит шифрование (шифр Цезаря).
12 занятие. Python. Практика [3] Создание различных программ, используя информацию полученную в рамках курса.
Модуль 1
1 занятие. Вводное занятие Чему посвящен курс? В чем отличие интерпретатора от среды разработки. Создаем первый проект и первые программы. Как работать с ошибками? Особенности команды ptint()
2 занятие. Переменные Что такое переменная? Преобразование типов. Ввод информации в программу.
3 занятие. Типы данных Какие типы бывают? Как различные типы данных хранятся в памяти компьютера? Операции над различными типами данных.
4 занятие. Условная инструкция Какие особенности условных инструкция в Python? Что такое тернарный оператор и как его использовать?
5 занятие. Циклы. WHILE Зачем необходимы циклы? Особенности цикла while. Специальные операторы циклов. Бесконечные циклы.
6 занятие. Циклы. FOR Отличия цикла FOR от WHILE. Функция range.
7 занятие. Последовательности. Строка Чем является строка в Python? Ее особенности. Срезы. Некоторые методы для работы со строками. Специальные символы и форматирование строк.
8 занятие. Последовательности. Список Кортеж. Что такое список? Особенности хранения списков в памяти компьютера. Некоторые методы для работы со списками. Генераторы списков. Отличия кортежей от списков. Особенности кортежей.
9 занятие. Последовательности. Множество Что такое множество? Отличие множеств от других последовательностей. Методы для работы со множествами. Специальные операции над множествами.
10 занятие. Функции Что такое функции? Особенности работы с функциями. Виды аргументов. Аннотация типов.
11 занятие. Тестирование Обобщение пройденного теоретического материала. Проведение интерактивного теста по итогам курса.
12 занятие. Создание бота Работа со сторонними библиотеками. Способы подключения сторонних библиотек к проекту. API — что это? Подключение библиотеки для получения данных о погоде в конкретной точке мира. Создание бота, который реагирует на конкретные погодные условия и советует подходящую одежду.
Модуль 2
1 занятие. Ингредиенты Python Области видимости. Краткий обзор изученных на 1 модуле тем. Изучение понятия область видимости. Создание игры «Крестики-нолики»
2 занятие. Словари. Работа с файлами Изучение тонкостей работы со словарями. Основные операции для работы с файлами с помощью Python
3 занятие. Исключения. Логирование. Виды ошибок Что такое исключения? Как правильно их обрабатывать? Синтаксис исключений в Python. Для чего нужно логирование. Логирование в Python
4 занятие. Графический пользовательский интерфейс Библиотека tkinter. Знакомство с библиотекой tkinter. Рассмотрение основных виджетов для создания оконного приложения
5 занятие. Создание калькулятора с помощью библиотеки tkinter На основе полученных знаний создадим оконное приложение Калькулятор
6 занятие. Создание приложения «Поймай шар» Создание оконного приложения с помощью библиотеки tkinter
7 занятие. ООП. Наследование. Абстракция Что такое ООП? Для чего необходима эта парадигма программирования? Рассмотрение понятий «класс» и «объект». Знакомство с принципами ООП: наследование и абстракция
8 занятие. ООП. Полиморфизм. Модули и пакеты Изучение оставшихся принципов объектно-ориентированного программирования. Рассмотрение статических методов и методов класса. Как устроены модули и пакеты в Python? Документирование кода
9 занятие. Создание игры. Этап 1 Начало финального проекта по созданию игры-платформера с помощью библиотеки Pygame. Создание окна, платформ и героя
10 занятие. Создание игры. Этап 2 Анимация. Что такое спрайтовая анимация? Знакомство с библиотекой для создания анимированных спрайтов. Создание объектов-анимации для героя игры
11 занятие. Создание игры. Этап 3 Камера. Создание камеры для игры, которая следит за героем и центрируется относительно него. Создание дополнительных объектов в игре: шипы и телепорты
12 занятие. Создание игры. Этап 4 Монстры и принцесса. Добавление движущихся врагов. Создание принцессы
Модуль 3
1 занятие. Создание консольного приложения «Сражение армий» на основе ООП. Создание воинов с разными параметрами и особенностями (воины, защитники, вампиры, копьеносцы), проведение сражений между полученными объектами
2 занятие. Система контроля версий Что такое система контроля версий и для чего она нужна? Знакомство с сервисом GitHub
3 занятие. Рекурсия. Простые примеры Рассмотрение работы рекурсивных алгоритмов. На занятии рассмотрим способы создания программ, с использованием рекурсии, а также достоинства и недостатки такого решения
4 занятие. Рекурсия. Ханойские башни Детальнее рассмотрим рекурсивную задачу с ханойскими башнями. На основе этой задачи рассчитаем количество вызовов рекурсивной функции
5 занятие. Двумерные списки Рассмотрим особенности хранения двумерных списков в оперативной памяти. Изучим основные алгоритмы модификации двумерных списков
6 занятие. Встроенные алгоритмы сортировки Подробнее рассмотрим возможности сортировки стандартными методами python, а именно сортировка с помощью параметра key. Изучим алгоритм пузырьковой сортировки
8 занятие. Одномерное динамическое программирование Этапы решения задач. Ответим на вопрос: что такое динамическое программирование? Выведем план решения задач с помощью динамического программирования
9 занятие. Одномерное динамическое программирование. Продолжение Рассмотрим более сложные задачи динамического программирования. Попрактикуемся в выводе рекуррентных формул
10 занятие. Двумерное динамическое программирование Решим задачи с использованием двумерного динамического программирования. Рассмотрим основные отличия от одномерного
11 занятие. Фракталы. Простые фракталы Ответим на вопросы: что такое фракталы? Как их можно описывать? Изучим понятие L-систем
12 занятие. Создание случайных деревьев на основе фракталов На основе знаний, полученных в течение модуля, создадим программу для генерации случайных фрактальных деревьев