Спецкурс | Тессеракт | ||
Основная информация | |||
№ | Пункт | Содержание | |
1 | Направление | Третий Путь | |
2 | Класс | 9 - 11 | |
3 | Тип курса | зачётный только для 9-11-ти классников | |
4 | Преподаватели | Кузнецов Дмитрий, Моисеева Елизавета | |
5 | Стажёры | Нет | |
6 | Время проведения | Четверг 18:55 - 20:15 | |
7 | Цель курса | Познакомить школьников с основами программирования и алгоритмами, на которых строятся компьютерные игры и симуляции | |
8 | Задачи курса | 1. Освоить базовые конструкции языка программирования
Python 2. Изучить устройство компьютерных, а также цифровых вариантов настольных игр с точки зрения логики 3. Освоить библиотеку arcade и создание игровых прототипов с её помощью |
|
9 | Особенности курса | Курс обучает многим аспектам программирования, которых нет в школьных курсах. Мы делаем акцент на функционале, который необходим для написания компьютерных игр и симуляций. | |
10 | Формат проведения занятия (включая использование classroom) | Занятия по Python проводятся в формате леминара. Занятия по теме конкретного алгоритма/игры проводятся в виде интерактивной лекции: описание идеи, лежащей в основе алгоритма, примеры использования, обсуждение программного кода, демонстрация работы. За участие в обсуждении темы на паре школьники получают баллы. | |
11 | Целевая аудитория | Школьники, желающие научиться базовым аспектам программирования, а также интересующиеся математическими моделями и компьютерными/настольными играми. | |
12 | Краткое описание курса | Курс программирования начального уровня о создании двухмерных компьютерных игр и симуляций на языке Python. | |
13 | Количество слушателей | от 10 до 20 человек | |
14 | Отбор | Школьникам предлагается вступительный тест на эрудицию в математике и информатике, а также анкетирование с целью узнать опыт учащихся в компьютерных играх. В случае, если на курс придёт много желающих, вступительный тест станет отборочным. | |
15 | Формы
контроля и система отчётности |
В обоих семестрах: Посещаемость: 15% Работа на семинаре: 20% Домашние задания: 30% Проект: 35% Проектом в первом полугодии является написание простого симулятора эволюции. После занятия 08.12 будет проведена предварительная оценка работы. Защита проектов проводится на занятии 15.12, пересдача — на занятии 22.12. Проект второго полугодия предполагает написание клеточного автомата "Жизнь". После занятия 13.04 будет проведена предварительная оценка работы. Защита проектов проводится на занятии 20.04, пересдача — на занятии 27.04. Проекты выполняются в командах по 2-3 человека, но, при желании, ученик может делать проект в одиночку. |
|
16 | Формат курса: онлайн/оффлайн/гибрид. В случае онлайн, какие платформы используются? | Курс проводится офлайн. В случае онлайн-обучения учащиеся будут подключаться к занятию в Discord и работать с языком программирования на своих домашних компьютерах. | |
20 | Дополнительная информация о курсе | На компьютерах ЭФ для программирования будет использоваться
онлайн-компилятор repl.it, на котором можно писать необходимые базовые
конструкции Python. Для занятий в режиме онлайн, а также выполнения домашних заданий требуется домашний компьютер с 4 ГБ оперативной памяти и набор программ для использования языка Python. В течение первой недели занятий учащиеся должны установить на свой компьютер Python 3.9 или выше и IDE PyCharm 2022.2 или выше. Необходимые инструкции для установки будут выложены в группе курса ВКонтакте и в Discord. |
|
Позанятийный план | |||
№ занятия | Дата (Четверг) | Тематический блок | План занятия |
1 | 06.10.2022 | Введение | Знакомство с учениками. Вступительный тест для на эрудицию в математике и информатике. Мини-лекция о содержании курса, демонстрация игр и симуляторов. |
2 | 13.10.2022 | Основы Python | Начало знакомства с языком Python. Настройка среды для работы с Python. Переменные, оператор присваивания, математические и логические операторы, циклы. |
3 | 20.10.2022 | Основы Python | Продолжаем знакомиться с Python. Кортежи, массивы, словари, множества. |
4 | 27.10.2022 | Основы Python | Осваиваем более сложные понятия. Определение функций. Библиотеки os, math, random, time. |
5 | 03.11.2022 | Основы Python | Укрепляем знания о Python. Системы координат. Практикум по предыдущим темам. |
6 | 10.11.2022 | Python | Объектно-ориентированный подход в программировании. Классы, атрибуты и методы. |
7 | 17.11.2022 | Основы arcade | Введение в arcade. Шаблон проекта. События клавиатуры и мыши. Рендер простой геометрии и шрифтов. Создаём "крестики-нолики". |
8 | 24.11.2022 | Основы arcade | Работа со спрайтами. Поиск в интернете, обработка и рендеринг изображений. Дорабатываем крестики-нолики при помощи полученных знаний. |
9 | 01.12.2022 | Разработка алгоритмов | Алгоритмы, на которых строятся игры. Подготовка к написанию проекта простого симулятора "Чашка Петри" |
10 | 08.12.2022 | Разработка алгоритмов | Разработка шахмат. Поведение фигур. Просчитывание компьютером возможных ходов. Игра вдвоём на одном компьютере. |
11 | 15.12.2022 | Защита проектов | Защита проектов по созданию симулятора. |
12 | 22.12.2022 | Чаепитие | Пересдача и чаепитие. |
29.12.2022 | |||
05.01.2023 | |||
12.01.2023 | |||
13 | 19.01.2023 | Python | Продолжаем изучать Python. Построение графиков функций и диаграмм при помощи mathplotlib. |
14 | 26.01.2023 | Алгоритмы и игры | Алгоритмы поиска пути. Создание генератора уровней. Применение алгоритма Дейкстры для прохождения лабиринтов. |
15 | 02.02.2023 | Графика и рендеринг | Вид сбоку или вид сверху? А может, изометрия? Квадраты или хексы? Графический дизайн 2D-игр. Виды графики в двухмерных играх. Движение камеры. |
16 | 09.02.2023 | Алгоритмы и игры | Процедурная генерация. Как шум Перлина позволяет создавать бесконечные миры. Феномен rogue-like. |
17 | 16.02.2023 | Алгоритмы и игры | Применение ООП при написании игр. Юниты, предметы и снаряды. Структурирование данных в файлах сохранения. |
23.02.2023 | |||
18 | 02.03.2023 | Алгоритмы и игры | Физические движки. Обработка столкновений. Скорость и ускорение объектов, игровые тики. |
19 | 09.03.2023 | Графика и рендеринг | Как создаются 3D-модели. Анимация 2D и 3D-персонажей. Смена анимаций. Немного о хитростях 3D-графики. |
20 | 16.03.2023 | Графика и рендеринг | Как графический интерфейс в играх помогает игровому опыту. Диалоговые окна и сценарии. |
21 | 23.03.2023 | Алгоритмы и игры | Способности и модификаторы юнитов. Как устроены игры жанра MOBA с точки зрения кода. |
22 | 30.03.2023 | Системный дизайн | Игровая экономика и баланс. Как создаются идеальные пошаговые стратегии и стратегии в реальном времени. |
23 | 06.04.2023 | Разработка алгоритмов | Лекция об устройстве клеточного автомата «Игра "Жизнь"». Подготовка к написанию проектов. |
24 | 13.04.2023 | Графика и рендеринг | Дизайн уровней. Как создать реалистичный игровой мир при помощи оптических иллюзий. |
25 | 20.04.2023 | Защита проектов | Защита проектов по созданию клеточного автомата. |
26 | 27.04.2023 | Чаепитие | Пересдача и чаепитие. |
Список литературы | |||
1 | Лучано Рамальо. «Python. К вершинам мастерства» | ||
2 | Tynan Sylvester. «Designing Games. A guide to engineering experiences» | ||
3 | Сид Мейер. «Жизнь в мире компьютерных игр» | ||
4 | Документация Python. // Интернет-источник: https://pydocs.ru/ | ||
5 | Документация arcade // https://api.arcade.academy/en/latest/ | ||
6 | Как создаются изометрические миры // https://habr.com/ru/post/332922/ | ||
7 | Простое объяснение алгоритмов поиска пути и A* // https://habr.com/ru/post/444828/ | ||
8 | Шум Перлина // https://habr.com/ru/post/342906/ | ||
9 | Линейная алгебра для разработчиков игр // https://habr.com/ru/post/131931/ |