Как составить свою программу для тренажера


Один из вариантов мини-IDE в интерфейсе урока

Привет! Меня зовут Павел Свиридов, я руководитель группы разработки в Яндекс Практикуме. Сегодня я вместе со своим коллегой, разработчиком Владимиром Лукьяновым, хочу рассказать о том, как наша команда развивала онлайн-тренажёры в вебе — это такие маленькие среды разработки, встроенные в курсы Практикума. Основное внимание уделю тренажёрам Python и С++, а о других языках скажу пару слов в самом конце и покажу на примере, как создать тренажёр для языка Go.

Но сначала обсудим, для чего вообще нам понаобился тренажёр внутри образовательной платформы? Ведь студенты могут установить, например, Python себе на компьютер и выполнять задания локально. Могут, но такой подход не решит несколько важных задач и создаст несколько серьёзных проблем.

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

Вторая задача — обеспечить доступность курсов на разных устройствах. Так студенты могут читать и решать задания в любой удобный момент. Поэтому всё окружение должно быть развернуто у нас, чтобы учащиеся использовали свои «тонкие» клиенты.

Третья задача отчасти связана с первыми двумя — нам необходима одинаковая среда для запуска заданий. Даже если студент, который видит код второй-третий раз в жизни, установит себе IDE, не факт, что у него сразу получится настроить окружение как надо. Скорее всего, у него будут не те зависимости (своя ОС или версия интерпретатора) и какое-то своё окружение, что может привести к возникновению кастомных ошибок.

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

И, наконец, четвёртая не самая очевидная задача, которую мы решаем, создавая свой онлайн-тренажёр — дать студентам возможности, недоступные локально. К примеру, для обучения нейросети в курсе для специалистов по Data Science мы предоставляем машину с GPU, так что процесс, который мог бы занимать сутки и более, сокращается до нескольких часов.

Первый подход к снаряду: пробуем опенсорсное решение

Сначала мы решили не изобретать велосипед, а взяли в качестве тренажёра по Python опенсорсную библиотеку, которую написали Stepic. Она называется Epic Box. Запускать её предстояло на своих серверах, поэтому мы завернули библиотеку в сервис и раскатили у себя. Успешно пользовались ей полтора года — на старте проекта Epic Box нам очень помогла. Библиотека стабильно работала на небольшом количестве запросов, но не подходила для решения всех наших задач, например, для языка C++, где многие задания были интерактивными.

Также обнаружилась ещё одна проблема — задержки при запуске. В Epic Box код студента изолирован в докер-контейнере, и когда требуется его запустить, система поднимает контейнер, распаковывает, выполняет код и возвращает результат обратно. Таким образом, подготовка контейнера для выполнения задания студента начинается только после того, как студент нажимает кнопочку «выполнить» или «проверить».

Практика показала, что накладные расходы на выполнение всех этих действий достаточно высоки. Это минимум плюс 1–2 секунды, а в некоторых случаях и 3–4. Казалось бы, задержки небольшие, но они очень раздражали студентов, потому что случались каждый раз после правки одной буквы или строки. Особенно мешали задержки не в тех сценариях, где учащиеся решают объёмные задания в отдельном окне, а в сниппетах: у нас есть уроки, где после куска теории идут небольшие окошки, в которых можно быстро посмотреть, как работает та или иная функция на маленьком кусочке кода.

Поэтому параллельно внутри формировалось собственное решение. Его функциональность отличалась от того, что было в Epic Box, где студент отправляет код в тренажер, код выполняется, а затем обратно передается результат. Как я уже упоминал, в курсе по C++ нужно было реализовать более сложную схему с интерактивными задачами: после отправки кода на выполнение студенты должны иметь возможность взаимодействовать с контейнером, т.е. контейнер не включается после выполнения задания, а остаётся запущенным в ожидании команд или инпута от студента, отвечает на ввод и выключается только после бездействия или перехода к другому заданию.

Переносим опыт с самописным тренажёром C++ на Python

Архитектура второй версии тренажёра подразумевала постоянное соединение по веб-сокету между клиентом и его докер-контейнером. То есть в тот момент, когда студент заходит на страницу и начинает читать теорию или текст задания, мы уже поднимаем ему контейнер, с которым устанавливается соединение. И как только студент что-то пишет и нажимает кнопку «отправить», докер уже поднят, окружение готово, и результат возвращается очень быстро.

Тренажёр C++ на такой архитектуре работал отлично, всем всё нравилось. Но этому языку учится в разы меньше студентов, чем Python. Дело в том, что Python используется не в одной профессии, а во многих: его учат дата-аналитики, специалисты по Data Science, дата-инженеры и Python-разработчики. Из-за этого нагрузка на систему кратно возрастает. Когда на платформе одновременно работает 1000 студентов, у каждого открыто своё задание, для каждого нужно поднять докер-контейнер и держать его наготове. При этом 90–99% времени контейнер простаивает, и мы только впустую греем воздух в дата-центрах и платим за это.

Здесь нужно отметить, что все запуски студенческого кода происходят вне контура Яндекса из соображений безопасности. Это изолированная среда в облаке, у которой нет доступа к пользовательским данным. В этом смысле мы работаем с Yandex Cloud как любой другой внешний заказчик. Расходы при использовании самописного решения в Python-тренажёре получались большими, хотелось их сократить.

Кроме того, из-за огромного количества виртуальных машин, которые постоянно запускались и гасли, оркестрация потихоньку сходила с ума. Swarm не справлялся и переставал работать адекватно. Студентам вылетали ошибки при запуске, реанимировать такие кластеры было невозможно, оставалась только жёсткая перезагрузка. При этом Docker Swarm считается уже устаревшей технологией, ему на смену пришёл Kubernetes. Мы проконсультировались с разными внешними экспертами по Swarm, и все отвечали нам одинаково — лучше переезжайте.

Переходим на serverless

Мы стали думать, что делать с нашей системой и обратили внимание, что в Yandex Cloud появился сервис Serverless Containers. Он умеет делать примерно то же самое, что и Epic Box, но с тем отличием, что Yandex Cloud полностью забирает на себя оркестрацию. Так появилась идея третьей версии тренажёра. Вместо поддержки собственного кластера мы делегировали работу Облаку, которое автоматически масштабировало ресурсы под загрузку.

Облако держит 1–2 контейнера заранее поднятыми (горячими), а при возрастании нагрузки поднимает дополнительные контейнеры. Задания, идущие в «горячий» контейнер, выполняются быстро, идущие в «холодный» — с задержкой, но «разогрев» (поднятие дополнительного контейнера) происходит постепенно и 75–80 % заданий попадают на «горячие» контейнеры. При уменьшении нагрузки Облако останавливает лишние контейнеры.

Благодаря такому подходу при стабильной загрузке пользователи получают ответ за 300 миллисекунд, если речь идёт о каких-то нетяжёлых операциях. Это несколько медленнее, чем было в самописном решении, но всё ещё достаточно быстро, чтобы не создавать сложностей студентам.

Протестировав решение коллег из Yandex Cloud, мы собрали образ для Serverless Containers, запустили отдельное облако и переписали клиентский код так, чтобы он отправлял задания по новому адресу. Проблемы с падениями удалось решить полностью — мы получили очень стабильный и быстрый тренажёр, а стоимость содержания инфраструктуры сократилась в несколько раз.

Результаты и перспективы

Когда мы реализовали эту историю с Python, к нам пришли другие факультеты, которые тоже захотели перейти на serverless. Для таких случаев был разработан пайплайн: мы предоставляем коллегам репозиторий, они сами пишут для него docker-файл, затем мы подключаем CI, из которого собирается докер-образ и сразу пушится в Облако. Так можно получить из коробки тренажёр на любом языке, с какими угодно зависимостями и библиотеками. Всё очень просто! Единственное ограничение — отсутствие пользовательского ввода, но даже факультет C++ хочет использовать serverless-подход в сниппетах, где input/output не требуется. В качестве примера давайте сделаем свой простой Golang-тренажёр на технологии Serverless Containers.

Создадим новый Dockerfile:

FROM python:3.9-slim

# Создаём отдельного пользователя для запуска кода
RUN useradd -rm -d /home/student -s /bin/bash -u 1001 student

# Установим Golang, ведь нам предстоит компилировать и запускать код на Go!
RUN apt-get update && 
apt-get install -y -q --no-install-recommends golang && 
	rm -rf /var/lib/apt/lists/

RUN pip install --no-cache-dir --upgrade pip
WORKDIR /agent
COPY launch.py /agent/launch.py

Теперь нужно создать простой лаунчер — так мы называем веб-сервер, который принимает запрос по HTTP на выполнение пользовательского кода и возвращает результат. Он будет иметь всего один endpoint /run/.

import asyncio
import logging
import os
import subprocess
from types import SimpleNamespace
from typing import List
 
from aiohttp import web
from serverhub_agent.utils.filesystem import TempFileManager
 
 
AGENT_PORT = os.getenv("PORT")
TIMEOUT = int(os.getenv("TIMEOUT"))
TESTS_PATH = "/home/student/tests/"
 
 
async def run(request: web.Request) -> web.Response:
   body = await request.json()
   files = [
       SimpleNamespace(name=f["name"], content=f["content"]) for f in body["files"]
   ]
   timeout = False
   stdout = b""
   stderr = b""
   return_code = 1
   oom_killed = False
 
   async with run_lock:
       with TempFileManager(directory=TESTS_PATH, files=files) as manager:
           try:
               proc = subprocess.run(
                   (
                       f"chown -R student {manager.directory} "
                       f"&& chown -R student /tmp/ "
                       f"&& chown -R student /home/student/ "
                       f"&& su - student -c "cd {manager.directory} && {body['command']}" "
                   ),
                   capture_output=True,
                   timeout=TIMEOUT,
                   shell=True,
               )
               stdout = proc.stdout
               stderr = proc.stderr
               return_code = proc.returncode
           except subprocess.TimeoutExpired:
               timeout = True
 
   result = {
           "exit_code": return_code,
           "stdout": stdout.decode(),
           "stderr": stderr.decode(),
           "oom_killed": oom_killed,
           "timeout": timeout,
           "duration": 0,
   }
 
   return web.json_response(result)
 
 
def setup_routes(app: web.Application) -> None:
   app.router.add_post("/run/", run)
 
 
app = web.Application()
run_lock = asyncio.Lock()
setup_routes(app)
logging.basicConfig(level=logging.DEBUG)
 
 
web.run_app(
   app,
   host="0.0.0.0",
   port=AGENT_PORT,
)

Структура запроса /run/ будет такой:

{
    "command": "my command",
    "files": [
       {"name":  "blah", "content":  "balh"},
       {"name":  "blah2", "content":  "balh2"},
       ...
    ]
}

Теперь можно собрать и запустить локально докер-контейнер.

docker build -f Dockerfile -t local/serverless-golang:latest ./
docker run -p 3000:3000 --rm local/serverless-golang:latest python3 /agent/launch.py

Проверим, что наш лаунчер работает.

curl --location --request POST 'http://localhost:9999/run/' 
	--header 'Content-Type: application/json' 
	--data-raw '{
		"command": "go run main.go",
		"files": [
			{
				"name": "main.go",
				"content": "package mainnimport "fmt"nfunc main() {fmt.Println("Hello 世界!!!")}"
			}
		]
}'

Получаем в ответ результат.

{
  "exit_code": 0,
  "stdout": "Hello 世界!!!n",
  "stderr": "",
  "oom_killed": false,
  "timeout": false,
  "duration": 0
}

Отлично, лаунчер работает. Теперь соберём докер-образ и загрузим его в Container Registry в Yandex Cloud.

docker build cr.yandex/crp1gs30bam49ookc3cc/serverless-golang-testing:latest .
docker push cr.yandex/crp1gs30bam49ookc3cc/serverless-golang-testing:latest

В интерфейсе Облака создадим Serverless Container, как показано на скриншотах ниже.

После создания контейнера Облако вернёт нам ссылку, по которой можно к нему обратиться. Например, https://bbaboup6o35p650rctf1.containers.yandexcloud.net/.

Попробуем повторить тестовый запрос, но добавим авторизацию.

curl --location --request POST 'https://bbaboup6o35p650rctf1.containers.yandexcloud.net/run/' 
	--header 'Content-Type: application/json' 
	--header 'Authorization: Api-Key ...' 
	--data-raw '{
		"command": "go run main.go",
		"files": [
			{
				"name": "main.go",
				"content": "package mainnimport "fmt"nfunc main() {fmt.Println("Hello 世界!!!")}"
			}
		]
}'

Получаем тот же результат, что и при локальном запуске.

{
  "exit_code": 0,
  "stdout": "Hello 世界!!!n",
  "stderr": "",
  "oom_killed": false,
  "timeout": false,
  "duration": 0
}

У бэкенда практикума уже написан код интеграции с Serverless Container, поэтому всё, что нам осталось сделать — это создать новый конфиг для урока и привязать его к конкретному заданию.

In [10]: task.meta["coderun_config"] = {'cpu': 1,
    ...:  'memory': 1024,
    ...:  'command': 'go run main.go',
    ...:  'timeout': 10,
    ...:  'serverless': True,
    ...:  'docker_image': {'tags': ['latest'],
    ...:  'full_name': 'https://bbaboup6o35p650rctf1.containers.yandexcloud.net/'}}


In [11]: task.save()

Готово! Можем запускать код на Go в интерфейсе тренажера Практикума.

Вот и всё. Надеюсь, вам было интересно, а также удалось почерпнуть из статьи что-то новое и полезное. Делитесь мыслями в комментариях — мы обязательно ответим.

Как самому составить программу тренировок в тренажёрном зале

Часто ко мне обращаются с вопросом: «Помогите мне составить себе тренировки». Я немного отрицательно отношусь к такой самодеятельности, но понимаю, что это было, есть и будет. Так как далеко не у всех есть деньги на тренера. А есть также люди, которые принципиально хотят всё делать сами. И есть залы, где просто нет ни одного тренера. Либо нет ни одного толкового тренера (что не такая уж и редкость).

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

Поэтому таким людям я рекомендую использовать уже готовые программы с этого сайта. Ну а все остальные, кто хочет поиграть в игру «сам себе тренер», начнём потихоньку. И первое что вы должны сделать:

I. Определиться с главной целью тренировок

Всего тренировки в тренажёрном зале могут преследовать 5 основных целей:

  • Увеличение мышечной массы и силы;
  • Похудение;
  • Увеличение силы (без изменения массы тела);
  • Рельеф (без изменения массы тела);
  • Поддержание достигнутой формы.

В каждом из этих направлений можно ещё выделить или сделать акцент на отдельные части тела. Но это уже нюансы. В целом же вы должны избрать для себя только одну цель. Так как не получится преследовать несколько целей одновременно (допустим, ноги уменьшить, а руки увеличить). Вы будете просто гнаться за несколькими зайцами и ни одного не поймаете.

II. Определиться с количеством тренировок в неделю

Количество тренировок определяется вашей целью и вашими возможностями (наличием свободного времени, денег и сил). Если вы просто хотите поддержать форму, то достаточно и 2-х тренировок в неделю. Если хотите увеличить массу и / или силу, то желательно не меньше 3-х тренировок (хотя я знаю случаи, когда люди и при 2-х тренировках отлично росли). Ну а при похудении или рельефе должно быть как минимум 3 тренировки. А в идеале 4 – 5.

Но как бы там ни было, люди, как правило, вынуждены отталкиваться от наличия свободного времени. Только не нужно себя обманывать. Трезво оцените свои возможности и прикиньте, как часто вы сможете посещать тренажёрный зал. Ведь если вы составите себе план на 4 тренировки в неделю, а будете ходить только 2 – 3 раза, то вам заново придётся переделывать план.

III. Определите метод выполнения упражнений

Лично я выделяю 6 методов выполнения упражнений:

  • Раздельный (подходит для роста силы и / или массы);
  • Метод одного подхода (подходит для роста силы и / или массы);
  • Суперсеты (подходит для роста массы, похудения и рельефа);
  • Чередующиеся суперсеты (подходит для роста массы, похудения и рельефа);
  • Круговой (подходит для похудения);
  • Комбинированный (подходит для похудения и рельефа).

Каждый метод подходит для одной, 2-х или даже 3-х целей и абсолютно не подходит для остальных. Но вместе с тем на каждую цель есть 2 — 3 подходящих метода. Допустим, худеть можно и суперсетами, и по круговому методу, и комбинированными тренировками. А вот массу растить или раздельным методом, или суперсетами. А для силы (без роста массы) подходит только раздельный метод.

IV. Определитесь с набором упражнений

Как самому составить программу тренировок в тренажёрном зале

Выпишите все упражнения, которые вы хотите делать на тренировках. Причём лучше сразу отсортировать их по группам мышц. Если у вас недостаточно опыта, то с этим могут возникнуть проблемы из-за элементарного незнания анатомии и биомеханики. Ну, в качестве подсказки можете посмотреть статью: Какие упражнения являются базовыми. Или воспользоваться МЕНЮ – УПРАЖНЕНИЯ. Где они уже отсортированы по частям тела.

Количество упражнений может сильно варьироваться исходя из ваших целей и количества тренировок. Допустим, если вы тренируетесь 2 раза в неделю для поддержания формы комбинированным методом, то вам вполне хватит 10 основных упражнении (по 5 за тренировку). Если же вы активно худеете суперсетами по 5 тренировок в неделю, то тут количество упражнений может быть 40 и даже больше.

V. Раскидайте упражнения по тренировкам

После того как вы выписали все упражнения, нужно раскидать их по тренировкам. Как раскидывать – зависит от цели.

При наборе массы и / или силы – 1 – 3 мышечные группы за тренировку (зависит от количества тренировок). Не больше. То есть не нужно стараться на каждой тренировке качать все мышцы. В качестве подсказки можете почитать: Как разделять группы мышц при тренировке на массу.

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

Рельеф – возможно разделение по типу, как при наборе массы, так и по типу, как при похудении. Это зависит от метода выполнения тренировки, от особенностей вашего организма и от направленности вашей диеты.

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

VI. Определите порядок выполнения упражнений

Далее, нужно прописать порядок выполнения упражнений, который тоже играет большую роль. Особенно при наборе массы. При похудении – меньше, но всё же не стоит пренебрегать этим этапом.

При наборе массы и / или силы – можно ставить упражнения блоком по 2 – 3 упражнения друг за другом на одну группу мышц. А можно чередовать мышцы – антагонисты (бицепс – трицепс, грудь – спина и т. д.). В любом случае в конце тренировки вы должны максимально забить именно те мышцы, которые наметили на сегодня.

Похудение – здесь «блок» не нужен и даже вреден. Нужно просто чередовать верх – низ. Можно чередовать антагонисты. Но, ни в коем случае, не блоком. Нагрузка должна скакать с одних мышц на другие в процессе всей тренировки. Только так вы сможете нагрузить всё тело.

Рельеф – можно как блоком, так и чередовать мышцы-антагонисты. В некоторых случаях подходит чередование верх-низ. Но это, на мой взгляд, немного не подходящий вариант для рельефа.

Поддержание достигнутой формы – любой вариант. Опять-таки, зависит от того, как вы к этой форме пришли.

VII. Определите количество подходов и повторений

Очень важный параметр. Ведь он напрямую влияет на интенсивность ваших тренировок. Чем больше веса и меньше количество повторений, тем ниже интенсивность тренировок и меньше энергии вы тратите. Обычно я распределяю подходы (с учётом разминки) и повторения так:

При наборе массы – 3 – 5 подходов по 6 – 12 повторений в базовых упражнениях. И 3 — 4 подхода по 10 — 15 повторений в подсобных упражнениях.

При увеличении силы — 4 – 5 подходов по 2 – 6 повторений в базовых упражнениях. И 3 подхода по 8 — 12 повторений в подсобных упражнениях.

Похудение – 2 — 4 подхода по 12 – 20 повторений везде.

Рельеф – 2 – 4 подхода по 12 – 15 повторений везде.

Поддержание достигнутой формы – 3 – 4 подхода. Количество повторений зависит от вашей предыдущей цели.

VIII. Спланируйте изменение веса снарядов на тренировках

Ну и последний этап – определить, как же будут меняться ваши веса и количество повторений от тренировки к тренировке. В случае поддержания формы, рельефа или похудения это не так актуально (хотя тоже имеет значение). А вот если вы хотите увеличивать массу или силу мышц, то это очень важный параметр. И здесь всё, увы, настолько индивидуально и непредсказуемо, что заочно я посоветовать ничего конкретного не могу.

Почитайте статьи: Принципы изменения веса снарядов при тренировках в тренажёрном зале и Как менять количество повторений в течение тренировочной программы. Там вы сможете понять базовые принципы, как это всё делается.

Вывод

Да, как вы сами убедились, составление тренировочного плана очень непростой процесс с кучей нюансов и различных вариантов. За свою жизнь я составил более 1000 тренировочных программ. Хотя это очень примерная цифра. Но я никогда не составляю план для человека, пока лично не потренирую его хотя бы месяц без программы. Только через 1 – 2 месяца я уже более-менее точно знаю, что больше подойдёт тому или иному человеку.

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

Ну а тем, кто не хочет заморачиваться, я могу составить индивидуальную программу тренировок. Все подробность здесь. Удачи!

Похожие статьиЛучшие статьиНовые статьи

  • Нехватка здоровой пищи опаснее, чем избыток вредной
  • Как выбрать магний и какая форма лучше
  • Правда ли, что жир горит лучше при определённом пульсе?
  • Выпады на беговой дорожке
  • Топ 7 привычек, забирающих у вас энергию
  • Как генетика влияет на рост мышц и силы?
  • Коллаген гидролизованный (низкомолекулярный) или обычный: какой лучше?
  • Дневной сон и его влияние на тренировки
  • Влияние алкоголя на тренировки и набор мышечной массы
  • Мышечная память: как быстро удастся восстановить утраченную форму
  • Индивидуальный подбор комплекса упражнений
  • Программа тренировок для новичков — девушки
  • План тренировок для новичков — мужчины
  • Тренировки в домашних условиях, или — как накачаться дома
  • Счётчик потребления калорий
  • Калькулятор расхода калорий за сутки
  • Комплекс упражнений для похудения
  • Женская диета для похудения
  • Программа упражнений на похудение для мужчин
  • Тренировки для девушек на рельеф с упором на бёдра и ягодицы
  • Принципы изменения тренировочного плана
  • Когда нужно менять программу тренировок?
  • Как часто надо тренироваться в тренажёрном зале
  • Как правильно вести дневник тренировок
  • Сколько упражнений выполнять за тренировку?

Если хотите создать идеальную тренировку, подходящую под ваши цели, распорядок дня и тренировочный опыт, то вам стоит дочитать эту статью.
Создание тренировочной программы может стать сложной задачей. И на то есть ряд причин.

Есть много переменных, которые нужно учитывать: индивидуальные особенности, цели, распорядок дня, образ жизни, предпочтения, стаж занятий и т. д.
Существует множество точек зрения относительно того, что лучше всего подходит для наращивания мышц и силы, потери жира и улучшения спортивной работоспособности. И многие из этих мнений противоречат друг другу. Неудивительно поэтому, что в спортзалах везде полно людей, которые следуют всевозможным странным и неэффективным программам.

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

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

Из всех возможных знаний о диете и физических упражнениях, 20% принесут 80% результатов.

И поэтому нет смысла обсуждать все существующие сплиты и методики. Слишком много информации часто приводит к «бездействию в результате анализа».

Рассмотрим варианты, которые лучше всего подходят для большинства людей и распорядков дня.

Как построить недельную тренировочную программу

Эффективная тренировочная программа обычно соответствует следующим критериям:

  1. Включает от 3 до 6 тренировок в неделю.
  2. Каждое занятие длится от 25 до 75 минут.
  3. Включает в себя как силовые, так и кардио нагрузки.

Таким образом, если у вас есть 4-6 часов в неделю, чтобы тренироваться, Вы в игре.

Если времени не хватает, попробуйте 2-х и 1-дневные программы для поддержания мышц с минимальными упражнениями.

Итак, давайте посмотрим на несколько проверенных временем программ, которые позволят вам достичь цели.

3-дневные тренировочные программы

Тяни-толкай программа

Она существует очень давно и не теряет своей актуальности из-за простоты и эффективности.

Вот как она выглядит:

  • День 1 — толкать. В этот день тренируете грудь, плечи и трицепсы.
  • День 2 — тянуть. В этот день тренируете спину и бицепс.
  • День 3 — ноги. Я думаю, вы знаете, что это значит.

Что касается недельного планирования, лучше всего установить один день отдыха между посещениями тренажерного зала, например:

понедельник — толкать, среда — тянуть, пятница — ноги

Или два дня отдыха между тренировками и упражнениями на ноги, например:

понедельник — толкать, вторник — тянуть, пятница — ноги

тяни-толкай тренировка

Картинка кликабельна

Если вы воспользуетесь этим последним графиком, Ваши ноги будут более свежими в пятницу, так как «тяговый день» включает тяжелую становую тягу, которая нагружает бедра.

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

Грудь и трицепсы, спина и бицепсы, ноги и плечи (трехдневный сплит)

Это популярная программа, которая выдержала испытание временем.

  • 1 день — грудь и трицепсы. Трицепсы в значительной степени участвуют в тренировках грудной клетки, поэтому имеет смысл тренировать их напрямую.
  • 2 день — спина и бицепсы. Сочетание спины и бицепсов является зеркальным отражением груди и трицепсов, поэтому они обычно комбинируются.
  • 3 день — ноги и плечи. Очевидно, что эти группы мышц совершенно не связаны друг с другом, но это то, что осталось, поэтому они объединяются. И они завершают расписание занятий.

трехдневный сплит грудь ноги

Картинка кликабельна

Какое 3-дневное расписание лучше?

Это зависит от личных предпочтений и тренировочного опыта.

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

4-дневное расписание занятий

  • День 1 — грудь и трицепс. Это то же самое, что и в 3-дневной программе.
  • День 2 — спина и бицепсы.
  • День 3 — плечи. Плечи получают свой день, что помогает дать им дополнительную нагрузку, необходимую для пропорционального роста.
  • День 4 — ноги. Тренировка ног на сегодняшний день является самой трудной и самой изнурительной, поэтому и для нее отводится собственный день.

Подробнее о 4-дневной программе

Частота нагрузок — это серьезная полемика в наши дни, и мнения есть самые разные.

Смысл заключается в следующем:

Независимо от частоты тренировок, вы можете тренировать мышцы до тех пор, пока нагрузка не станет контрпродуктивной.

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

Об этом вряд ли кто-нибудь станет спорить. Но есть много споров о том, когда лучше всего делать эти еженедельные повторы: за одну тренировку или разделить на две, три или больше?

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

Когда тренируете каждую мышечную группу один раз в неделю, с достаточным количеством повторений — можно достичь внушительных результатов.

Хорошо спланированное разделение на части тела, наиболее подходит продвинутым, опытным атлетам, так как позволяет максимально нагружать каждую группу мышц. При тренировке одной и той же группы мышц 2 или 3 раза в неделю, возникает необходимость комбинировать ее с нагрузкой на другие мышечные группы. От этого тренировки становятся тяжелее и невозможно дать максимальную нагрузку (останавливается прогрессия). Это относится и к фулбоди программе.

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

Еще один аргумент против — большинство из нас очень ограничены во времени (работа, семья, социальные обязательства).

5-дневная тренировочная программа

  • День 1 — грудь
  • День 2 — спина
  • День 3 — руки
  • День 4 — плечи
  • День 5 — ноги

Подробнее о 5-ти дневной программе

Каждое занятие занимает около 45 минут, каждая группа мышц получает максимальную стимуляцию, мышцы и центральная нервная система получают достаточно времени для восстановления, и она отлично вписывается в расписание большинства людей (с понедельника по пятницу с отдыхом в выходные дни).

5-дневное расписание дает возможность добавить дополнительные подходы на отстающие мышечные группы.

Например, парни жалуются на недостаточный рост грудных мышц, поэтому могут добавить 3 подхода в жиме штанги на наклонной скамье к дню №4, (делать его перед тренировкой плеч).

Девчат больше интересует тренировка ягодиц и ног. Они могут добавить 3 подхода приседаний во 2-й день (после становой тяги) и 3 подхода ягодичный мостик в день №5 после тренировки на ноги.

Лучшие упражнения для набора мышечной массы и силы

Существует два основных вида упражнений: базовые и изолирующие.

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

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

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

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

Какие конкретные упражнения лучше всего подходят для наращивания мышц и силы?

Лучшие упражнения на грудь

  1. Наклонный жим штанги
  2. Наклонный жим гантелей
  3. Жим лежа на горизонтальной скамье
  4. Жим гантелей на горизонтальной скамье
  5. Отжимания на брусьях (широко расставив локти)

Лучшие упражнения для спины

  1. Становая тяга
  2. Тяга нижнего блока к поясу (широкий и узкий хват)
  3. Тяга гантели к поясу одной рукой
  4. Подтягивания
  5. Тяга верхнего блока широким и узким хватом
  6. Вертикальная тяга Т-образной штанги
  7. Тяга штанги к поясу в наклоне
  8. Шраги со штангой

Лучшие упражнения на плечи

  1. Армейский жим (стоя и сидя)
  2. Жим Арнольда или жим гантелей сидя
  3. Махи гантелей в стороны согнувшись
  4. Тяга блока к лицу
  5. Тяга штанги на задние дельты
  6. Подъем гантелей вперед

Лучшие упражнения для ног

  1. Приседания со штангой
  2. Жим ногами
  3. Румынская тяга
  4. Выпады со штангой (прогулка или на месте)
  5. Выпады с гантелями
  6. Фронтальные приседания
  7. Сгибание и разгибание голени (лежа или сидя)

Тренировка ног очень проста. Есть три правила.

  • Правило № 1: Всегда приседать.
  • Правило №2: Всегда приседать.
  • Правило № 3: Ну Вы поняли смысл…

Лучшие упражнения на бицепс

  1. Подъем штанги на бицепс
  2. Подъем EZ штанги на бицепс
  3. Подъем гантелей на бицепс
  4. Сгибание рук в стиле молота с гантелями
  5. Подтягивания обратным хватом

Это все, что нужно для создания больших бицепсов.

Лучшие упражнения на трицепс

  1. Жим штанги узким хватом
  2. Жим гантелей из-за головы
  3. Отжимания на брусьях (локти прижаты к туловищу)
  4. Разгибание рук со штангой лежа (французский жим)
  5. Разгибание на трицепс на верхнем блоке

Основные выводы к упражнениям

Говоря попросту больше никаких других упражнений не требуется, для того, чтобы создать сильную, красивую фигуру. Важно не разнообразие движений, а прогрессирование на правильных тяжелых упражнениях.

Сколько нужно делать повторений

Большинство людей фанатично следуют предписанным 8-10 или 10-12 повторений в подходе для набора мышечной массы. Это одна из причин, почему не удается достичь результата.

Вот простое этому объяснение:

  • Если хотите, чтобы у вас были крупные мышцы, необходимо постоянно добавлять вес на снаряде — прогрессивно увеличивать нагрузку на мышцы.
  • Если хотите постоянно добавлять вес на штангу, необходимо постоянно становиться сильнее.
  • Если хотите становиться сильнее, необходимо акцентировать внимание на малом количестве повторений. Конечно мы могли бы обсудить технические детали и поговорить о таких вещах, как миофибриллярная и саркоплазматическая гипертрофия, но достаточно запомнить три пункта, упомянутых выше. Именно поэтому, как правило, самые большие парни в тренажерном зале почти всегда самые сильные. Именно поэтому у большинства людей перестают расти мышцы, когда они перестают набирать силу.

Вот некоторые цифры.

Лучшие количества повторений для мужчин

Начинающие атлеты должны сфокусироваться на подходах в 4-6 повторений. Это означает, что поднимаемые веса должны составлять 80-85% от одноповторного максимума (1ПМ).

Более опытные, продвинутые атлеты, могут включать низко и высокоповторные тренировки (это называется периодизация).

Лучшие количества повторений для девушек

Женщины, которые являются новичками в силовом спорте, должны тренироваться в диапазоне 8-10 повторений в подходе. Это означает, что нужно поднимать веса от 70 до 75% от 1ПМ. Этот диапазон необходим для того, чтобы создать базовый фундамент силы и прочности, прежде чем безопасно и эффективно переходить к работе с более тяжелыми весами.

Наиболее эффективно через несколько месяцев включать в тренинг подходы на 4-6 повторений, но с более тяжелыми весами.

Как составить программу тренировок

Теперь мы готовы составить программу.

Если стремитесь набрать мышечную массу, но не удается тренироваться 5 раз в неделю, то вполне можете справиться за 3-х или 4-дневную тренировку. Просто 5-дневная наиболее эффективна.

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

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

Для роста мышц и силы

Если вы эктоморф и стремитесь набрать вес и стать крупнее, лучше всего подойдет 5-дневная тренировка.

Также следует ограничить кардио тренировки до 1 часа в неделю. Если набор массы не происходит — сократить кардио до нуля.

Рост мышц и сжигание жира

Да, рост мышц и сжигание жира одновременно, возможны.

Но при определенных условиях.

К примеру, если Вы новичок в силовом спорте, или если вы раньше тренировались (мышечная память). В этом случае 5-дневная программа тренировок также наиболее эффективна. Она позволяет максимизировать «рост новичка» даже при дефиците калорий. Также большую помощь может оказать кардио. Особенно когда речь идет о высокоинтенсивный интервальной тренировке.

Наиболее эффективно делать три 25-минутных ВИИТ сессий в неделю, в дополнение к силовому тренингу.

Кардио можно делать в день силовых тренировок или в выходные. Но не забывайте брать хотя бы один день полностью выходной для общего восстановления.

Для сжигания жира и сохранения мышц

Если вас устраивают ваши мышцы, и просто хотите согнать лишний жир, лучше всего подойдет 3-дневная тренировочная программа. Только добавьте три 25-минутных ВИИТ в неделю, но не забывайте про 1 день полного отдыха.

Основные выводы

Составление программы тренировок требует обдумывания и некоторых расчетов, но результат того стоит. Вы сохраняете большое количество времени и энергии, концентрируетесь на том, что наиболее эффективно для тела и получаете удовольствие от процесса. Не забывайте о чувстве удовлетворения. На самом деле, даже если вы занимаетесь по самой худшей программе на свете, в конечном итоге вы достигнете такого момента, когда будете удовлетворены результатом. Цель хорошей программы — достичь этого результата быстрее!

Итак, теперь Вы знаете все необходимое для составления эффективной программы тренировок! Используйте эти знания с пользой, а если появятся вопросы, спрашивайте в комментариях ниже!

Успехов!

Создание тренажёра

  • Авторы
  • Руководители
  • Файлы работы
  • Наградные документы

Яналиев М.Э. 1


1МБОУ школа №27

Сергеева С.А. 1


1МБОУ школа № 27


Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке «Файлы работы» в формате PDF

Введение

Счет и вычисления – основы порядка в голове.

Иоганн Генрих Песталоцци

Умеете ли вы считать?

Каждый, конечно, скажет «Да!». Умение правильно считать – одно из самых важных для человека в жизни. Возможно, ребенок не знает, кем он будет в будущем, но хорошо понимает, что без умения правильно считать — не обойтись. Это и покупки в магазине, и расчет своего бюджета. Если ты учишься в школе, то без правильного счета невозможно решать задачи, уравнения, а также успешно изучать не только математику, но и другие предметы. Кроме того, после 9 и 11 классов необходимо сдать успешно экзамены. Качество вычислительных умений зависит от того, знает ли ученик правила вычислений и умеет ли правильно выбрать подходящее правило.

На уроках математики мы изучали положительные и отрицательные числа, а также действия с ними. И вот тут у моих одноклассников возникла масса проблем. Ребята неверно выполняют действия (заменяют одно действие другим), «теряют» знаки или наоборот ставят там, где не нужно. Допускается много ошибок при выполнении вычислений, появляются сложности при устном счете. Конечно, в настоящее время на помощь всем приходят всевозможные калькуляторы. Поэтому я решил создать программу, которая поможет ребятам и потренироваться в решении примеров, и проверить свои умения выполнять действия с положительными и отрицательными числами, но также позволит больше заинтересовать ребят в получении правильного результата без калькулятора, так как решение заданий на компьютере значительно интереснее, чем обычное решение примеров в тетради.

Цель работы:

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

Задачи:

изучить интернет-источники и литературу по данному вопросу,

выбрать программное обеспечение для реализации проекта,

разработать интерфейс программы,

написать программный код,

протестировать программу.

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

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

Технические средства развиваются очень быстро, при этом уменьшается цена на вычислительную технику, появляются качественные и мощные системы программирования, тем самым увеличивается потребность в системах, позволяющих объективно, быстро и надежно оценивать знания учащихся, предлагая интересные формы взаимодействия с ними. [2]

Компьютерная автоматическая проверка имеет некоторые преимущества:

объективность при оценке результатов,

удобная количественная форма для выражения результатов,

повышенная устойчивость к искажению результатов,

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

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

Но вместе с перечисленными достоинствами такой проверки существуют и некоторые недостатки:

негативные психологические реакции,

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

автоматический контроль не способствует развитию устной и письменной речи учащихся;

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

Выбор программного обеспечения

Для создания приложения проверки и тренировки вычислительных умений была выбрана программа Lazarus.

Lazarus — это специальная программа со свободной средой для разработки любых проектов на основе Free Pascal. Lazarus — программа с полностью открытым исходным кодом, т.е. его коды доступны для изучения и изменения каждому. Еще говорят, что среда Lazarus – это RAD (Rapid Application Development) – среда Быстрой Разработки Приложений. Скачать программу можно на официальном сайте производителя, после чего программа устанавливается на компьютер.

Среда Lazarus подходит для всех разработчиков. Интерфейс программы очень простой. Все необходимые компоненты просто перетаскиваются в специальное окно, которое называется формой. Все компоненты располагаются на панели инструментов. Как только компонент размещается на форме, для него сразу создается программный код. Затем уже вручную программируются те действия, которые будет выполнять приложение.

Основная часть

Первая часть работы – это установка приложения. Далее всю работу можно разделить на несколько этапов.

Создание графического интерфейса – расположение всех необходимых элементов на форме.

Написание программного кода, который определит, что делает созданный компонент.

Отладка программы.

Графический интерфейс тренажера

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

Так как создаваемая программа будет проверять умения выполнять вычисления, то необходимы следующие компоненты (рис. 1):

кнопка «Новый пример» для генерации случайного числа и поле, в котором будет прописан этот пример,

метка, в которую будет вводиться ответ,

кнопка «Проверить» по нажатию, которой можно будет понять верно или неверно решен пример,

метка, в которой будет результат проверки,

кнопка «Итого»,

метка для вывода результата: сколько решено всего примеров и сколько из них правильных.

Рис. 1. Первоначальная форма проекта

Все кнопки и метки размещаются на форме, свойства которой можно настроить в инспекторе объектов (рис. 2). Форма нужна для того, чтобы увидеть каким будет окно будущего приложения.

Рис. 2. Инспектор объектов

Кнопка – это элемент управления, предназначенный для запуска каких-то действий. На панели в разделе Standart есть компонент TButton (рис. 3).

Рис. 3. Компонент TButton на панели в разделе Standart и на форме.

Этот компонент был использован для создания управляющих кнопок. Для каждой из кнопок в инспекторе объектов настраиваются свойства:

Caption – текст, отображаемый на кнопке,

Color – цвет кнопки,

Font – все, что относится к настройкам шрифта

Enabled – доступность кнопки

Для отображения нового примера, показа результатов проверки использовался компонент TLabel (рис. 4). Для ввода ответа – компонент TEdit. Основные свойства этих компонентов такие же, как и для кнопок.

Рис. 4. Компоненты TLabel и TEdit на панели в раздале Standart и на форме.

Программный код компонентов

Следующий этап – основная часть работы – это написание программного кода для работы каждого элемента на форме.

Работа с кнопками. Щелчок по кнопке вызывает событие OnClick. Чтобы кнопка работала необходимо написать программный код, который определит, что должно происходить по нажатию кнопки. Кнопка «Новый пример» предназначена для генерации слагаемых для каждого нового примера вида a + b, где a и b – случайные целые положительные и отрицательные числа.

Формула случайного числа из отрезка [a, b]

x:= random (b – a +1) + a.

Процедура для кнопки «Новый пример» предназначена для генерации примера со случайными слагаемыми (программный код в приложении 1)

Процедура для кнопки «Проверить» (приложение 2) предназначена для сравнения введенного ответа с правильным результатом и вывода результата «Верно» или «Неверно». Кроме того, если введен правильный ответ, то этот ответ накапливается в счетчике правильных ответов и кнопка «Проверить» становится недоступной, чтобы невозможно повторно подсчитать правильно введенный ответ. Если введенный ответ неверный, то можно еще раз дать ответ, неправильные ответы тоже подсчитываются. Сумма правильных и неправильных ответов дает общее количество попыток в решении примеров.

Для перечисленных действий были объявлены переменные: a, b, pr_rez, nv_rez, vs_prim. Все эти переменные используются в разных процедурах, поэтому объявляются в начале программы и являются глобальными. А переменные x, sum нужны только в процедуре для кнопки «Проверить», поэтому они объявлены в начале кода процедуры и являются локальными.

В процедуре для кнопки «Проверить» для ввода ответа использовался компонент TEdit. Так как ввод ответа осуществляется в виде текста, а программа сравнивает числа необходимо число-строку преобразовать в непосредственно число, для этого используется функция StrToInt.

Для вывода результата использовался компонент TLabel и его свойство Caption. С его помощью можно задать текст надписи, например Label4.Caption:=’Верно’.

Процедура для кнопки «Итого» (приложение 3) предназначена для вывода результатов в следующем виде: выводится количество правильных ответов и общее количество ответов.

Процедура для кнопки «Завершить» (приложение 4) предназначена для окончания работы с приложением. Эта процедура закрывает текущее окно.

Отладка программы

Если введен правильный ответ, то можно было нажимать сколько угодно раз кнопку «Проверить», при этом срабатывал счетчик правильных ответов, и, не решая новый пример можно было получить баллы за уже решенный пример любое количество раз. Поэтому необходимо было после получения правильно ответа сделать кнопку «Проверить» недоступной. Для этого необходимо настроить свойство Button2.Enabled:=false – кнопка неактивна, а при нажатии на кнопку «Новый пример» свойство Button2.Enabled:=true – кнопка вновь активна. Еще было решено добавить вывод сообщения о том, что пользователь должен выбрать новый пример или проверить свой результат, нажав кнопку «Итого». Для этого была использована команда ShowMessage (‘Выберите новый пример или нажмите кнопку ИТОГО’).

При выполнении программы возникала ошибка, когда вместо ответа-числа введен ответ-строка или оставлено пустое поле и нажата кнопка «Проверить». Для решения этой проблемы вместо функции StrToInt(Edit1.Text) была использована функция StrToIntDef(Edit1.Text,0).

После того, когда была выполнена эта часть работы, было решено на форму добавить таймер для подсчета затраченного времени на решение примеров. Для работы таймера был использован невидимый компонент таймер и объявлена переменная Counter: Integer = 0; после создается процедура для работы таймера.

Процедура для работы таймера (приложение 5).

Таймер – это счетчик, который запускается при нажатии на кнопку «Новый пример» Timer1.Enabled:=true; и останавливается при нажатии на кнопку «Проверить» Timer1.Enabled:=false.

Следующее усовершенствование созданной программы касалось работы с меню. Было решено создать на каждой форме меню «Тема» (рис. 5), в котором можно было сделать выбор действия с помощью подменю «Сложение чисел», «Вычитание чисел», «Умножение чисел».

Рис. 5. Меню для выбора действия

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

Для того, чтобы каждый раз новая форма была показана на экране, в том же месте, что и предыдущая, в инспекторе объектов для всех форм было настроено свойство Position со значением poDesktopCenter для того, чтобы окно выводилось в центре экрана (рис. 6).

Рис. 6. Настройка свойства Position

Для осуществления связи между тремя созданными формами была создана новая форма (рис. 7). С появлением новой – первоначальной формы стало возможно сразу выбрать необходимое действие.

Рис. 7. Начальная форма для выбора действия

Для этого в разделе implementation были добавлены связи между всеми формами usesu_f1,u_f2,u_f3;

На этой форме созданы кнопки, при нажатии на которые происходит выбор действия. Для показа окна с каждым действием использовались команды:

u_f1.itogo.ShowModal;

u_f2.itogos.ShowModal;

u_f3.itogoes.ShowModal;

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

В процессе работы я предложил моим одноклассникам поработать с тренажером и решить несколько примеров. Сначала это были 10 примеров на сложение и вычитание положительных и отрицательных чисел. С тренажером ребята работали 2-3 недели по 2-3 раза в неделю. Результаты проверки представлены на диаграмме (рис. 8).

Рис. 8. Диаграмма «Результаты проверки»

Заключение

В результате проведенной работы я:

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

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

Интернет-источники и литература:

Алексеев Е.Р., Чеснокова О.В., Кучер Т.В. «Самоучитель по программированию на FreePascal и Lazarus»/ — Унитех, 2011

Автоматизация контроля результатов обучения учащихся [Электронный ресурс]-https://studbooks.net/2037482/pedagogika/vvedenie – статья в интернете.

Мансуров К.Т. Основы программирования в среде Lazarus. Учебник для студентов и преподавателей, а также для школьников и лиц, самостоятельно изучающих программирование на языке Паскаль, 2010 г.

Сайт-форум по работе в Lazarushttp://www.cyberforum.ru/lazarus/

Сайт-форум по работе во FreePascalhttp://www.freepascal.ru/forum/

Приложения

Приложение 1

Программный код для кнопки «Новый пример»

procedure Titogo.Button1Click(Sender: TObject); //Titogo — названиеформы

begin

randomize;

a:=random(100)-40; //генерация первого слагаемого

b:=random(90)-50; //генерация второго слагаемого

{Преобразование числа в строку и вывод примера в компонент TLabel}

if (b<0) then //вывод примера, если число отрицательное, то добавляем ( )

Label1.Caption:=IntToStr(a) + ‘+’ + ‘(‘ + IntToStr (b) + ‘)’

Else // иначе вывод без скобок ( )

Label1.Caption:= IntToStr (a) + ‘+’ + IntToStr (b);

Button2.Enabled:=true; //Кнопка «Проверить» становится активной

end;

Приложение 2

Программный код для кнопки «Проверить»

procedure Titogo.Button2Click(Sender: TObject);

varx, sum: integer;

begin

x:=StrToIntDef(Edit1.Text,0);//читаем введенный ответ и переводим его в числовой тип

sum:=a+b; //подсчет правильной суммы

if (x=sum) then //если ответ совпадает с правильной суммой

begin

pr_rez:=pr_rez+1; //счетчик правильных ответов +1

Label4.Caption:=’Верно’; //пишем результат

ShowMessage (‘Выберите новый пример или нажмите кнопку ИТОГО’);

Button2.Enabled:=false; //кнопка «Проверить» становится недоступной

end

else

begin

nv_rez:=nv_rez+1;

Label4.Caption:=’Неверно’; //пишем результат

end;

vs_prim:= pr_rez+ nv_rez;

end;

Приложение 3

Программный код для кнопки «Итого»

procedure Titogo.itogoClick(Sender: TObject);

var it_r: integer;

begin

it_r:=0;

it_r:=it_r+pr_rez;

it.caption:=inttostr(it_r) + ‘ из ‘ + inttostr(vs_prim);

end;

Приложение 4

Программный код для кнопки «Завершить»

procedure Titogo.Button3Click(Sender: TObject);

begin

close;

end;

Приложение 5

Программный код для работы таймера

procedure Titogo.timerClick(Sender: TObject);

begin

Counter:=Counter+1;

timer.Caption:=IntToStr(Counter);

end;

Просмотров работы: 482

Старший преподаватель, выпускница школы наставников «Сколково», методолог проекта PlaySkills Лаборатории геймификации при ПАО «Сбербанк».

Кандидат исторических наук, доцент, почётный работник высшего образования, методолог проекта PlaySkills Лаборатории геймификации при ПАО «Сбербанк».

Интерактивный тренажёр, или игровой симулятор, — это обучающий инструмент, разработанный на основе специализированной методики, который используют для развития и корректировки навыков.

Интерактивный тренажёр выполняет несколько функций:

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

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

Наиболее популярные сейчас интерактивные тренажёры можно классифицировать следующим образом:

  • По цели использования: парциальные (направлены на развитие одного проявления навыка) и многоцелевые, или комплексные (направлены на развитие нескольких проявлений навыков).
  • По форме: аудиальные, текстовые и визуальные.

Один из самых распространённых видов тренажёров — диалоговый симулятор. Он используется для оценки и развития коммуникативных навыков и может быть парциальным или многоцелевым, аудиальным, текстовым или визуальным. Как правило, в основе тренажёра лежит разветвлённый сценарий диалога пользователя и персонажа. Возможные ответы пользователя оцениваются как верные, частично верные или неверные, а выбор того или иного варианта меняет исход диалога и развитие сюжета.

В качестве примера комплексного аудиовизуального тренажёра можно привести британский проект Bodyswaps — он использует методику диалоговых симуляций с опорой на саморефлексию и работает в VR. Примером парциального аудиального тренажёра может служить голосовой диалоговый тренажёр Dialog Simulator, который встраивается в электронные курсы. В корпоративном обучении сейчас есть примеры диалоговых симуляций в формате чат-бота в Telegram.

По сравнению с традиционными методами обучения интерактивные тренажёры обладают рядом преимуществ. Это подтверждают результаты исследований (их можно найти, например, в пособии Татьяны Паниной и Лидии Вавиловой «Современные способы активизации обучения»), а также опыт авторов этой статьи. Вот чем полезны игровые симуляторы в обучении:

  • учитывают индивидуальные особенности пользователей: темп работы, интересы, уровень подготовки и так далее;
  • сокращают время на тренировку навыка;
  • повышают мотивацию к обучению;
  • повышают объективность оценки;
  • позволяют оперативно проверять уровень сформированности навыка;
  • снижают нагрузку на преподавателя или T&D-специалиста.

Но есть и ряд ограничений или даже недостатков тренажёров:

  • высокие трудозатраты на разработку и необходимость привлекать высококвалифицированных специалистов (в том числе методологов);
  • высокая стоимость разработки;
  • технические ограничения для использования (у интерактивных тренажёров есть программные и иные требования, например как минимум наличие интернет-связи).

В целом стоит учитывать, что эффективность тренажёра вряд ли оправдает затраченные ресурсы, если его разработчик не обладает достаточно высоким уровнем методологической подготовки и если нет возможности привлечь к созданию этого инструмента опытных сценаристов и программистов. А если планируется создать визуальный симулятор, то понадобится также работа профессиональных иллюстраторов.

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

На этом этапе нужно определить базовую модель матрицы компетенций — то есть структурированный набор ключевых навыков, которые необходимы для успешного и эффективного выполнения той деятельности, с которой связано обучение. В такой модели каждый навык разбивается на составляющие — индикаторы и проявления.

Например, навык эффективного общения можно разделить на такие индикаторы: установление и поддержание контактов, восприятие информации, ответные действия, дипломатичность. В свою очередь, каждый индикатор раскладывается на конкретные проявления в мыслительной или практической деятельности, которые можно наблюдать и измерять. Так, индикатор «восприятие информации» может состоять из проявлений «Я не отвлекаюсь на внешние раздражители» и «Я запоминаю информацию благодаря пониманию контекста».

Также в разработанной матрице компетенций должны быть образовательные техники — совокупности методов и приёмов, направленные на тренировку тех или иных проявлений навыка. Например, активное слушание, контекстное или ассоциативное запоминание.

Матрицу компетенций не обязательно разрабатывать самостоятельно — для ключевых софт-скиллов уже созданы разнообразные модели. Среди них — модель социального и эмоционального интеллекта Рувена Бар-Она, модель управленческих компетенций Ломингера, модели матриц по функциональным обязанностям сотрудника или по уровню сформированности навыка и многие другие. Как правило, их можно найти в литературе, посвящённой управлению персоналом.

Грамотно выбранная или разработанная матрица компетенций — один из важнейших элементов разработки тренажёра.

Пример кластерной модели компетенций в процессе составления
Инфографика: Майя Мальгина для Skillbox Media

Этот этап необходим, чтобы определить, какие именно индикаторы и проявления навыка будет формировать или развивать будущий тренажёр.

Методологических ограничений по числу тренируемых проявлений нет. Однако начинающему разработчику игровых симуляторов стоит начать с создания парциального тренажёра — такого, который тренирует одно проявление навыка. А уже затем, набравшись опыта, переходить к комплексным инструментам.

Выбор конкретных проявлений навыка зависит, во-первых, от уровня его сформированности у тех, кого предстоит обучать. Для диагностики можно использовать любые методы — тестирование, решение пробных заданий, собеседование, игровую психометрическую оценку. И конечно, на выбор влияют пожелания и цели заказчика обучения — какую задачу должен решить тренажёр, чему именно должны научиться сотрудники.

Контекст тренажёра — это те ситуации (формальные или неформальные), в рамках которых будет тренироваться проявление навыка.

На данном этапе важно учитывать специфику навыка и особенности целевой аудитории — чтобы обучение было вовлекающим, контекст должен быть интересен ей. Так, навык деловых переговоров не обязательно развивать исключительно в контексте офиса. Современная практика показывает, что формирование и развитие софт-скиллов успешно проходят в неформальных или даже нереальных условиях, будь то контекст зомби-апокалипсиса или полёта в космос.

Например, Соммер Митчелл из Университета Южной Флориды рассказала о пользе использования поп-культуры в обучении. По её мнению, подобные примеры снижают порог вхождения в новые темы — учащимся проще понять и запомнить сложную концепцию, если её объяснение связано с тем, что им хорошо знакомо. Свою роль играет и интерес — студенты вряд ли заскучают, если на занятии обсуждается вселенная популярного сериала или фильма. Также «нереальный» контекст уменьшает влияние предубеждений и помогает рассматривать тему непредвзято. Поэтому, считает Соммер Митчелл, вполне оправданно изучать, например, сложные социальные механизмы и проблематику отношений между людьми в контексте «Ходячих мертвецов» или «Голодных игр». И наконец, по мнению автора статьи, подобный подход учит студентов внимательнее относиться к потреблению любого контента, в том числе развлекательного, анализировать его и искать смысл, замечать логические ошибки.

Дальше нужно продумать структуру тренажёра, причём в двух аспектах — компетентностном и композиционном.

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

Пример компетентностной структуры интерактивного тренажёра
Инфографика: Майя Мальгина для Skillbox Media

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

Пример такой структуры — сценарий тренажёра на упомянутой выше платформе Bodyswaps. Он состоит из следующих элементов:

  • Прослушивание диалога, фиксация позитивных и негативных моментов.
  • Разговор с выбором заданных вариантов ответа.
  • Разговор без заданных ответов.
  • «Смена тела»: наблюдение за собственным участием в диалоге.
  • Семантическая и поведенческая аналитика в симуляции.
  • Обратная связь от живого тренера по результатам тренировок (в корпоративных программах обучения).

Задание — это активность пользователя, с помощью которой можно тренировать выбранные проявления навыка. Так же, как и в других учебных активностях, в тренажёрах используют разные типы заданий:

  • по способу взаимодействия — индивидуальные и групповые;
  • по направленности — творческие, аналитические, исследовательские, экспериментальные и прочие;
  • по уровню сложности — простые, средней сложности, повышенной сложности;
  • по способу ответа — закрытые (выбор из заданных вариантов ответа) и открытые (пользователь формулирует ответ и вписывает его в выделенное поле).

Выбор активности зависит от выбранной образовательной техники. Например, у навыка эффективного общения такое проявление, как «Я не отвлекаюсь на внешние раздражители», можно развивать при помощи техники контекстного запоминания. В одном из тренажёров, который мы разработали, пользователю нужно прослушать небольшой текст. В процессе его намеренно отвлекают всплывающие уведомления, таймер, посторонние звуки и другие факторы. А после прослушивания пользователь должен выбрать из предложенного списка ту формулировку темы, которая наиболее точно отражает содержание текста (то есть проверяется, сосредоточился он на прослушивании или отвлёкся).

Если мы используем другую технику (например, концентрации внимания), то задание может быть другим. Так, в другом нашем тренажёре в одной части экрана расположен работающий секундомер, в другой — анимация. Задача пользователя — внимательно следить и за секундомером, и за анимацией, а затем ответить, через сколько секунд изменилась картинка или с какой периодичностью она меняется.

Механика — это конкретные действия, которые пользователь выполняет в тренажёре. Например, выбирает или вводит ответ, перемещает какие-то объекты. Механика зависит от типа задания и может быть инструментальной (когда пользователь оперирует элементами интерфейса), игровой (это возможности геймплея — то есть совокупности задач, стоящих перед пользователем-игроком, и действий, которые он может совершить) или сочетать оба вида.

Можно по-разному сочетать механики и задания, для этого нет каких-то строгих правил. В таблице ниже представлены примеры наиболее популярных комбинаций.

Техническое наименование механики Описание механики Тип заданий
Input Ввод ответа Открытые, индивидуальные, групповые
Drag-and-drop Перенос элемента Творческие, аналитические, индивидуальные, групповые, закрытые
Select Answer Выбор ответа Закрытые, индивидуальные
Touch Input Выбор объекта Творческие, открытые, закрытые, экспериментальные
Point-and-click Наведение указателя (курсора) на активную область и нажатие кнопки по этой области Любые

Например, задания на внимание тренажёра Mozgotren основаны на инструментальной механике Point-and-click. Они тренируют проявление «Я не отвлекаюсь на внешние раздражители» и развивают зрительную память. А яркий образец сочетания инструментальных и игровых механик, развивающий креативность, — игра Minecraft.

Выбрав тип задания и механики его выполнения, можно приступать к разработке конкретной ситуации и оформлению инструкции. Инструкция в этом контексте — указания по выполнению задания, которые пользователь получает в самом тренажёре.

Вот пример инструкции в игровом симуляторе, который развивает навык эффективного общения через проявление «Я не отвлекаюсь на внешние раздражители».

Описание ситуации:

Вы работаете в крупном офисе помощником руководителя. Вам необходимо согласовать повестку предстоящего совещания с директором. Во время разговора вам приходит серия сообщений от подруги со смешными мемами. Звук телефона вы не отключили.

Инструкция:

Выберите наиболее подходящий вариант дальнейших действий из предложенного перечня:

  • Продолжить разговор, несмотря на приходящие уведомления.
  • Отвлечься на телефон и ответить подруге.
  • Игнорировать уведомления.
  • Отключить звук на телефоне и продолжить разговор.

Затем нужно разработать систему оценки выполненных заданий и выбрать тип проверки — автоматизированный (для запрограммированных действий пользователя, таких как выбор ответа) или менторский (для заданий с открытым ответом).

Система оценки должна включать градацию результатов по уровню сформированности навыка или по количеству сделанных ошибок. Другими словами, необходимо разработать обоснованную балльно-рейтинговую шкалу и определить пороговые значения для каждого уровня. Например, 0–3 балла — низкий уровень, 4–6 баллов — ниже среднего, 7–9 — средний и так далее.

Ниже — пример описания системы оценки для тренажёра по корректному применению инструмента обратной связи.

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

Пользователю даётся одна попытка для решения задания (выбора варианта завершения ситуации и реплик).

При выборе реплик к завершающему варианту баллы начисляются следующим образом:

  • верный ответ — 2 балла;
  • частично верный ответ — 1 балл;
  • неверный ответ — 0 баллов.

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

На этом этапе нужно подобрать образовательные техники, другие тренажёры и дополнительные материалы, чтобы рекомендовать их учащимся по результатам работы с тренажёром. Это поможет им развивать навык дальше. Рекомендации должны соответствовать вашей оценочной системе и выделенным уровням сформированности навыка.

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

После методической разработки наступает этап технического создания игрового симулятора. На этой стадии к работе подключаются дизайнер, иллюстратор (при создании визуального тренажёра) и программист. Готовый тренажёр ещё нужно протестировать и отладить — и после этого его можно запускать в работу.

Понравилась статья? Поделить с друзьями:
  • Ваша цена яндекс маркет как найти
  • Как найти свой пнд по адресу
  • Найти сайт как заработать в интернете
  • Райдеры как составить
  • Как исправить сколиоз без корсета