ПРОГРАММА КУРСОВ / C++ И ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ

От первой строки
до своего проекта.

Одна платформа, две траектории. Выберите категорию и раскройте модуль, чтобы увидеть темы, практику и результат.

МАРШРУТ ОБУЧЕНИЯ
01 Понимаем02 Пишем код03 Проверяем04 Создаём проект

Материалы и задачи адаптируются к возрасту и подготовке группы.

Начальный маршрут / 4–8 классы

Программа по шагам

От понятных алгоритмов до собственной программы и первого знакомства с ИИ.

10 модулей
01Старт в программированииЗнакомимся с задачей, алгоритмом и инструментами разработчика.

Короткий разбор

Алгоритм — это последовательность действий для решения задачи. Исходный файл содержит текст программы; компилятор переводит его в исполняемый файл. После запуска программа выполняет инструкции из функции main.

Что изучаем

  • Как разбить задачу на понятные шаги
  • Редактор, исходный файл, компилятор и запуск программы
  • Сообщение об ошибке: как найти строку и исправить её
ПРАКТИЧЕСКОЕ ЗАДАНИЕ

Соберите и запустите программу, которая приветствует пользователя. Измените текст и объясните, что делает каждая строка.

ПРИМЕР НА C++Первая программа
#include <iostream>

int main() {
    std::cout << "Hello, C++!\n";
    return 0;
}

Попробуйте: Измените сообщение и снова соберите программу. Что произойдёт, если пропустить точку с запятой?

Что получится

Ученик самостоятельно запускает программу и исправляет простую ошибку.

Вопрос для самопроверки: Что произойдёт, если изменить текст сообщения, но не собрать программу заново?

02Переменные и ввод данныхУчимся хранить значения и получать ответы пользователя.

Короткий разбор

Переменная связывает имя с хранимым значением. Тип подсказывает, какие значения и операции допустимы: целые числа отличаются от дробных, а текст хранится в строке. Ввод даёт программе данные для работы.

Что изучаем

  • Целые и дробные числа, символы и логические значения
  • Имена переменных и присваивание
  • Ввод через cin и вывод через cout
ПРАКТИЧЕСКОЕ ЗАДАНИЕ

Напишите программу, которая спрашивает имя и число, затем выводит персональное сообщение и результат вычисления.

ПРИМЕР НА C++Переменная и ввод
#include <iostream>

int main() {
    int tasks = 0;
    std::cout << "Tasks completed: ";
    std::cin >> tasks;
    std::cout << "Points: " << tasks * 5 << '\n';
}

Попробуйте: Введите целое число 0, затем 3. Позже вы добавите проверку неверного ввода.

Что получится

Ученик различает типы значений и проверяет результат на нескольких примерах.

Вопрос для самопроверки: Какой тип подойдёт для количества попыток, а какой — для имени участника?

03Условия и решенияДобавляем в программу выбор по заданным правилам.

Короткий разбор

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

Что изучаем

  • Сравнения и логические выражения
  • Ветвления if и else
  • Проверка граничных значений
ПРАКТИЧЕСКОЕ ЗАДАНИЕ

Создайте викторину из трёх вопросов с подсчётом правильных ответов.

ПРИМЕР НА C++Выбор по условию
#include <iostream>

int main() {
    int score = 0;
    if (!(std::cin >> score)) return 1;
    if (score >= 3) {
        std::cout << "Goal reached!\n";
    } else {
        std::cout << "Keep practicing.\n";
    }
}

Попробуйте: Проверьте значения 2, 3 и 4. Добавьте отдельное сообщение для нуля.

Что получится

Программа по-разному реагирует на правильный и неправильный ответ.

Вопрос для самопроверки: Какие варианты ответа должна проверить викторина, включая неожиданное значение?

04Циклы и повторениеИзучаем повторяющиеся действия и безопасную остановку программы.

Короткий разбор

Цикл повторяет действие, пока выполняется условие, либо заданное число раз. Счётчик помогает понимать, сколько шагов уже сделано. Условие остановки защищает от бесконечного повторения.

Что изучаем

  • Циклы for и while
  • Счётчик, накопление суммы и условие завершения
  • Типичные ошибки при повторении
ПРАКТИЧЕСКОЕ ЗАДАНИЕ

Сделайте игру «Угадай число» с ограниченным количеством попыток и подсказками.

ПРИМЕР НА C++Сумма в цикле
#include <iostream>

int main() {
    int total = 0;
    for (int number = 1; number <= 5; ++number) {
        total += number;
    }
    std::cout << "Total: " << total << '\n';
}

Попробуйте: До запуска вычислите результат вручную. Измените верхнюю границу и сравните ответы.

Что получится

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

Вопрос для самопроверки: Как изменится количество попыток после каждого хода и когда игра остановится?

05Массивы и строкиХраним несколько значений и работаем с текстом.

Короткий разбор

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

Что изучаем

  • Индекс и границы массива
  • Перебор элементов
  • Строки и простая обработка пользовательского ввода
ПРАКТИЧЕСКОЕ ЗАДАНИЕ

Составьте список результатов викторины и найдите лучший результат.

ПРИМЕР НА C++Перебор результатов
#include <iostream>

int main() {
    int scores[] = {4, 7, 5};
    int best = scores[0];
    for (int score : scores) {
        if (score > best) best = score;
    }
    std::cout << "Best: " << best << '\n';
}

Попробуйте: Замените значения и проверьте случай одинаковых результатов. Почему здесь можно обратиться к scores[0]?

Что получится

Программа обрабатывает набор данных без выхода за границы.

Вопрос для самопроверки: Как найти максимальный результат и что делать, если результатов ещё нет?

06Функции и разбиение задачиВыделяем небольшие понятные части программы.

Короткий разбор

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

Что изучаем

  • Определение и вызов функции
  • Параметры и возвращаемое значение
  • Названия, которые объясняют назначение кода
ПРАКТИЧЕСКОЕ ЗАДАНИЕ

Вынесите проверку ответа и подсчёт результата викторины в отдельные функции.

ПРИМЕР НА C++Функция и результат
#include <iostream>

int points_for(int correct) {
    return correct * 10;
}

int main() {
    std::cout << "Points: " << points_for(3) << '\n';
}

Попробуйте: Вызовите функцию для разных значений. Добавьте функцию, которая проверяет допустимое число ответов.

Что получится

Ученик может вызвать функцию с разными входными данными.

Вопрос для самопроверки: Какие данные нужны функции проверки ответа и что она должна вернуть?

07Мини-игра на C++Соединяем ввод, условия, циклы и функции в одном проекте.

Короткий разбор

Состояние игры описывает, что происходит сейчас: ожидание хода, подсчёт очков или завершение. Сначала полезно составить правила на бумаге, а затем проверить каждое возможное действие игрока.

Что изучаем

  • Правила и состояния игры
  • Обработка ошибок ввода
  • Проверка сценариев победы и завершения
ПРАКТИЧЕСКОЕ ЗАДАНИЕ

Создайте текстовую игру с меню, очками и несколькими ходами.

ПРИМЕР НА C++Мини-игра с попытками
#include <iostream>

int main() {
    const int secret = 7;
    for (int attempt = 1; attempt <= 3; ++attempt) {
        int guess = 0;
        std::cout << "Your guess: ";
        if (!(std::cin >> guess)) return 1;
        if (guess == secret) {
            std::cout << "You won!\n";
            return 0;
        }
        if (guess < secret) {
            std::cout << "Higher\n";
        } else {
            std::cout << "Lower\n";
        }
    }
    std::cout << "No attempts left.\n";
}

Попробуйте: Проверьте победу и проигрыш. Затем добавьте возможность повторной игры.

Что получится

Игру можно пройти от начала до конца; правила понятны другому человеку.

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

08Знакомство с искусственным интеллектомИсследуем, как примеры и правила помогают классифицировать данные.

Короткий разбор

Признак — наблюдаемое свойство объекта, а категория — группа, к которой его относят. Правила могут давать ошибку, если примеров мало или признаки подходят сразу нескольким категориям.

Что изучаем

  • Чем данные, правило и модель отличаются друг от друга
  • Почему результат ИИ может ошибаться
  • Не передавать личные данные и проверять ответы
ПРАКТИЧЕСКОЕ ЗАДАНИЕ

Составьте небольшую таблицу признаков и придумайте правила, по которым программа предложит категорию объекта.

ПРИМЕР НА C++Простое правило классификации
#include <iostream>

int main() {
    int has_wings = 0;
    std::cout << "Wings? Enter 1 for yes, 0 for no: ";
    if (!(std::cin >> has_wings) || (has_wings != 0 && has_wings != 1)) return 1;
    std::cout << (has_wings == 1 ? "Group A\n" : "Group B\n");
}

Попробуйте: Это правило, заданное человеком, а не обученная модель. Найдите пример, где одного признака недостаточно.

Что получится

Ученик приводит пример ошибки классификации и объясняет, как её проверить.

Вопрос для самопроверки: Какой пример нарушает придуманное вами правило и почему?

09ИИ как помощник разработчикаУчимся задавать вопросы, проверять подсказки и объяснять собственный код.

Короткий разбор

ИИ может предложить объяснение или вариант кода, но ответ нужно проверять. Хороший вопрос содержит описание задачи и ошибки; имена, телефоны, пароли и другие личные данные в запрос добавлять не нужно.

Что изучаем

  • Как сформулировать задачу и ограничение
  • Почему нельзя принимать ответ без проверки
  • Проверка кода на простых и граничных примерах
ПРАКТИЧЕСКОЕ ЗАДАНИЕ

Попросите объяснить ошибку в короткой программе, предложите исправление и проверьте его запуском с преподавателем.

ПРИМЕР НА C++Проверка предложенного решения
#include <cassert>
#include <iostream>

bool is_even(int number) {
    return number % 2 == 0;
}

int main() {
    assert(is_even(0));
    assert(is_even(-2));
    assert(!is_even(3));
    std::cout << "Checks passed.\n";
}

Попробуйте: Добавьте свои проверки. Скомпилируйте без определения NDEBUG, чтобы assert выполнялись.

Что получится

Ученик объясняет исправление своими словами и показывает проверку.

Вопрос для самопроверки: Как убедиться, что предложенное исправление помогает и не ломает другие примеры?

10Итоговый проектСобираем собственную программу и готовим короткую презентацию.

Короткий разбор

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

Что изучаем

  • Идея, пользователь и правила работы
  • Разработка небольшими шагами
  • Тестирование и демонстрация результата
ПРАКТИЧЕСКОЕ ЗАДАНИЕ

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

Что получится

Есть работающий код, понятная инструкция и демонстрация результата.

Вопрос для самопроверки: Кто будет пользоваться программой, какие действия он сможет выполнить и как проверить результат?

// первый шаг

Выберите свой первый шаг

Расскажите, что интересно участнику. Мы поможем выбрать подходящую траекторию.

Записаться