Научим самому популярному языку программирования, охватывающему все: от основ до олимпиадных задач
Очно
Самый популярный язык программирования, который используется во многих областях, начиная с задач тестирования кода и заканчивая созданием нейронных сетей (это те, которые в рекламе называют «Искусственный интеллект», но мы не в рекламе, у нас серьезный текст). В нашей школе вы сможете изучить все детали этого языка, начиная с самых азов и заканчивая задачами олимпиадного уровня. Курс включает в себя 4 модуля: 0, 1, 2, 3 (все программисты считают с 0…).
На курсе вы познакомитесь с алгоритмами шифрования; создадите бота, который расскажет вам о погоде и посоветует подходящую одежду; разработаете игру-платформер, в которой популярный водопроводчик попытается спасти принцессу; познакомитесь с фракталами и научите компьютер рисовать автоматически генерируемые деревья и многое-многое другое.
Самый популярный язык программирования, который используется во многих областях, начиная с задач тестирования кода и заканчивая созданием нейронных сетей (это те, которые в рекламе называют «Искусственный интеллект», но мы не в рекламе, у нас серьезный текст). В нашей школе вы сможете изучить все детали этого языка, начиная с самых азов и заканчивая задачами олимпиадного уровня. Курс включает в себя 4 модуля: 0, 1, 2, 3 (все программисты считают с 0…).
На курсе вы познакомитесь с алгоритмами шифрования; создадите бота, который расскажет вам о погоде и посоветует подходящую одежду; разработаете игру-платформер, в которой популярный водопроводчик попытается спасти принцессу; познакомитесь с фракталами и научите компьютер рисовать автоматически генерируемые деревья и многое-многое другое.
Для кого курс
— Курс предназначен для детей от 11 до 17 лет, желающих освоить основы программирования и развить логическое мышление
— Полезен для детей, планирующих карьеру в IT-сфере, а также для тех, кто хочет научиться решать реальные задачи с помощью программирования
— Идеально подходит для ребят, увлекающихся технологиями, математикой и созданием собственных проектов
— Рекомендуется учащимся, готовящимся к экзаменам по информатике, олимпиадам и проектным конкурсам
1 занятие. "Здравствуй, мой Хозяин" Что такое программа? Знакомство с интерпретатором Python. Арифметические выражения. Строковые выражения. Логические выражения. Переменные. Типы данных. Первая программа. Автоматизация запуска программы.
2 занятие. "Cool Tanks" - танки на минималках Ввод и вывод: разбираемся с функциями. Здравствуй, IDLE.
3 занятие. "Тренажер для Марьиванны" - программы становятся умными Логический тип и ветвление по условию. Проект "Тренажер для Марьиванны".
4 занятие. "Тролль Кузя" - троллим пользователя правильно Анатомия функции. Пишем первую функцию. Делаем функцию более гибкой - добавляем параметры. Функции возвращают результат. Списки. Проект "Тролль Кузя".
5 занятие. Графика Объекты. Графика. Система координат. Первая графическая программа. Настройка окна. Размещение окна по центру. Отрисовка графики в окне. Рисование на холсте. Рисование линий. Рисование прямоугольников. Рисование овалов. Рисование текста.
6 занятие. Укрощаем графику Циклы. Использование функций в графике. Отрисовка одинаковых изображений. Отрисовка нескольких изображений из разных файлов. Отрисовка нескольких изображений из произвольных имен файлов.
7 занятие. "Логово чудовища" - подчиняем клавиатуру Основные события клавиатуры. Регистрация обработчиков событий. Обработчики событий. Первая программа, реагирующая на нажатие клавиш. Обработка других событий. Делаем бродилку "Логово чудовища".
8 занятие. "Догони меня, если сможешь" - гонки на клавиатурах Управление созданными элементами на холсте. Проект "Догони меня, если сможешь".
9 занятие. Меню Создание каркаса графического приложения. Модификация кода функции. Настройка управления пунктами меню. Настройка завершения работы программы.
10 занятие. "Проучи тролля" - обработка событий мыши Основные события мыши. Проект "Проучи тролля".
11 занятие. "Актер выходит на сцену" - анимация движения Что такое анимация? Создание каркаса графического приложения. Формирование кадров анимации. Настройка автоматической анимации. Вариации анимации.
12 занятие. "Вылетела птичка" - покадровая анимация Создание каркаса графической программы. Функция загрузки кадров. Функции покадровой анимации и анимации движения. Настройка времени в анимации.
Модуль 2
1 занятие. Классы и объекты Необходимость использования классов. Создание модулей. Создание класса. Создание объектов. Поля класса. Конструктор класса. Конструктор с параметрами. Переменные класса. Методы класса. Отрисовка с помощью разработанного класса. Обработка нажатий на клавиши. Написание программы на Python на разработку классов и создание объектов.
2 занятие. Инкапсуляция Разработка класса Хитбокс. Сокрытие полей. Открытые и закрытые атрибуты. Геттеры и сеттеры. Свойства объекта. Определение столкновений объектов. Написание программы с проверкой столкновений объектов.
3 занятие. Композиция объектов Создание класса-контейнера. Понятие делегирования. Разработка класса Танк с Хитбоксом и отображением. Плавная анимация. Контроль столкновений. Написание игры для управления танком и контролем соударений с танками противников.
4 занятие. Хитбоксы и искусственный интеллект Доработка класса Хитбокс. Написание вспомогательных методов класса Хитбокс. Создание объектов, управляемых компьютером. Разработка искусственного интеллекта для компьютерных персонажей. Практика в написании искусственного интеллекта для танка, управляемого компьютером.
5 занятие. Коллекция объектов. Преобразование глобальных координат в экранные Разработка модуля Камера. Преобразование систем координат. Управление камерой с помощью клавиатуры. Позиционирование камеры на игровые объекты. Работа со списками. Создание множества объектов и помещение их в список. Добавление объектов в коллекцию.
6 занятие. Управление текстурами. Генерация игровой карты Создание модулей. Управление текстурами в одном месте. Поддержка общих текстур игровыми объектами. Разработка карты. Управление ячейками карты. Генерация карты.
7 занятие. Выборочная отрисовка игрового мира. Добавление игровых объектов Оптимизация отрисовки графики. Оптимизация математических преобразований. Контроль столкновений с элементами карты. «Спаун».
8 занятие. Редактор уровней. Создание бонусов Загрузка данных из файла. Редактор уровней в Excel. Перенос карты из Excel в файл. Исправление ошибок при чтении из файла. Дополнительные объекты на карте. Создание бонусов. Захват бонусов игровыми объектами.
9 занятие. Наследование Наследование. Родительский класс. Дочерние классы. Переопределение методов. Расширение методов. Полиморфизм. Разработка графического проекта «Фигуры» через наследование.
10 занятие. Класс Спрайт. Анимация движения и покадровая анимация Понятие анимации. Законы равномерного прямолинейного движения. Загрузка нескольких изображений. Выстраивание анимационной последовательности. Покадровая анимация. Совмещение анимации разных видов.
11 занятие. Композиция. Моделирование танка Рефакторинг. Применение композиции и наследования. Создание Класса Юнит. Разработка нового класса Танк.
12 занятие. Моделирование снаряда и стрельба Создание класса Ракета. Коллекция ракет. Управление стрельбой. Уничтожение игровых объектов и объектов карты.
Модуль 3
1 занятие. Домашняя дискотека Tkinter или Pygame. Установка Pygame. Событийно-ориентированное программирование. Создание каркаса программы. Дополнения к каркасу. Цвета. Проект "Домашняя дискотека". Система координат. Рисование примитивов. Рисование линий. Рисование прямоугольников. Рисование эллипсов. Рисование кругов. Рисование полигонов.
2 занятие. События клавиатуры. Класс Rect Обработка нажатий на клавиши. Перемещение прямоугольника. Как узнать, какие клавиши нажаты? Класс pygame.Rect. Моделирование и отрисовка Rect. Движение прямоугольника. Методы движения - move_ip. Позиционирование прямоугольников.
3 занятие. Морской бой Проверка пересечения. Столкновение при движении. Реализация столкновений. Воспроизведение музыки и звуковых эффектов. Добавление звуковых эффектов. Управление звуком с клавиатуры. Морской бой.
4 занятие. Поверхности, тексты и картинки Surface. Шрифты и текст. Отрисовка текста. Полет в небе с облаками. Работа с изображениями.
5 занятие. Пинг-понг Задаем основные константы, настройки и элементы каркаса. Отрисовка игрового поля. Движение ракеток. Анимация движения мяча. Проверка столкновений мяча с бортиками и ракетками. Проверка забитых голов. Добавляем искусственный интеллект. Настройка параметров командной строки.
6 занятие. Обработка событий мыши Проект "Круглая кнопка". Попадание точки внутрь прямоугольника. Проект "Рисование прямоугольника с помощью мыши".
7 занятие. Движение круга за курсором Создание каркаса программы. Пошаговая настройка функций.
8 занятие. Чертилка Отображение тонкой линии при ведении курсора. Удаление нарисованных точек. Отображение точек привязки при наведении курсора мыши. Используем подсвеченные точки как точки привязки. Сохранение и загрузка точек.
9 занятие. Рисовалка Каркас программы. Рисуем на холсте. Создаем палитру выбора цвета. Куда попали: в палитру или на холст? Выбор цвета. Перемещение палитры. Сохранение изображения.
10 занятие. Пазл Загрузка случайного изображения. Разделение картинки на фрагменты. Перемешивание фрагментов пазла. Отрисовка фрагментов пазла на экране. Перемещение фрагментов пазла с помощью мыши. Отрисовываем выбранный фрагмент зеленой рамкой. Отображение игровой статистики. Проверка конца игры и отрисовка сообщения
11 занятие. Игровые состояния Создание каркаса игры. Создание класса для состояний игры. Создание заставки. Реализация конкретного состояния. Обработка игровых состояний. Создание "МЕНЮ". Настройка переходов между состояниями. Добавление других состояний и настройка переходов.
12 занятие. Доработка игровых состояний Доработка заставки. Отображение подсказки. Управление морганием подсказки. Обработка ввода от пользователя. Создание меню. Отрисовка меню. Управление пунктами меню. Обработка пользовательского ввода. Экран ввода имени. Вводим имя игрока. Отрисовка текущего имени. Игровое состояние "Игра".