🐱 Бесплатный демо-урок

Попробуйте прямо сейчас

Пройдите один урок ниже — и сразу поймёте, как устроен марафон. Это бесплатно, без регистрации и обязательств.

16 занятий
5 разделов
30 дней доступ
Начать демо-урок →
Анимированный
урок 3–5 мин
Автопроверка
заданий
Похвала
от Матроскина
Матроскин ведёт урок математики
Демо-урок · Занятие 1

Счёт предметов от 1 до 10

Смотрите видео, выполняйте 3 задания и получайте похвалу от Матроскина.

▶ Демо-урок

Занятие 1. Считаем банки с вареньем

Шаг 0 из 4

1 Видео от Матроскина

Матроскин пересчитывает банки с вареньем, но сбивается со счёта. Посмотрите и узнаете, как помочь ему.

🥫
🎬 3 мин 24 сек

2 Задание 1. Расставь по порядку

Помоги Матроскину: перетащи банки с цифрами в правильном порядке от 1 до 5.

Счёт:
Банки:

3 Задание 2. Найди знак

В корзине А — 6 морковок, в корзине Б — 4. Какая корзина тяжелее? Выбери знак.

🥕 А — 6 морковок    🥕 Б — 4 морковки
6
?
4

4 Задание 3. Впиши цифру

Впиши пропущенную цифру: 1, 2, _, 4, 5, _, 7, 8, _, 10. Нажми «Проверить».

1, 2, , 4, 5, , 7, 8, , 10
Первая пропущенная:

🐱🎉

Урок пройден!

Матроскин тобой гордится. В марафоне таких занятий ещё 15 — и каждое такое же увлекательное.

Что внутри марафона

Полная программа

5 разделов, 16 занятий, 4 недели мягкого повторения всей программы 1 класса.

🎬

Видеоуроки

Анимированные ролики с Матроскиным — короткие и понятные.

🎮

Интерактивы

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

🏆

Похвала

Тёплая обратная связь от Матроскина за каждый шаг.

📋

Чек-листы и д/з

Прогресс по навыкам + нескучные задания для дома.

5 разделов · 16 занятий

От счёта — к задачам

От простого к сложному: числа → арифметика → задачи → фигуры → работа с данными.

1

Числа и величины

Числа 1–20, ноль, десяток, сравнение и измерение длины.

2

Арифметические действия

Сложение и вычитание в пределах 20, с переходом и без.

3

Текстовые задачи

Условие, вопрос, выбор действия. Задачи на + и −.

4

Пространство и фигуры

Слева/справа, фигуры, отрезки, см и дм.

5

Математическая информация

Группировка, закономерности, таблицы, верные утверждения.

Запишитесь на полный марафон

Оставьте заявку — пришлём приглашение и подарим бонусный чек-лист «Лето без потерь» для мягкого входа в 2 класс.

3 000 ₽2 500 ₽

Единый платёж за весь марафон. Без подписок и доплат.

16 уроков с автопроверкой Доступ 30 дней в любое время Бонусный чек-лист в подарок Поддержка от команды

Заявка на участие

Заполните форму — мы свяжемся с вами в течение часа.

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

' + '

Матроскин уже считает!

' + '

«Так, раз банка… два банка… три… ой, я сбился! Сколько же их у меня на полке?»

' + '
' + '🥫1🥫2🥫3🥫4🥫5🥫6' + '
' + ''; completed[1] = true; setTimeout(updateUI, 800); }); } // ============= STEP 2: DRAG & DROP ============= const pool = document.getElementById('mm-pool'); const slots = document.getElementById('mm-slots'); if (pool && slots) { // Build slots 1-5 for (let i = 1; i <= 5; i++) { const s = document.createElement('div'); s.className = 'mm__slot'; s.dataset.value = String(i); s.textContent = '?'; slots.appendChild(s); } // Build shuffled chips 1-5 const numbers = [1, 2, 3, 4, 5].sort(() => Math.random() - 0.5); numbers.forEach(n => { const chip = document.createElement('div'); chip.className = 'mm__chip'; chip.draggable = true; chip.dataset.value = String(n); chip.textContent = String(n); pool.appendChild(chip); }); let draggedChip = null; let draggedSource = null; function handleDragStart(e) { draggedChip = e.target; draggedSource = e.target.parentElement; e.target.classList.add('is-dragging'); try { e.dataTransfer.setData('text/plain', e.target.dataset.value); } catch (err) {} } function handleDragEnd(e) { e.target.classList.remove('is-dragging'); document.querySelectorAll('.mm__slot').forEach(s => s.classList.remove('is-target')); } pool.addEventListener('dragstart', handleDragStart); pool.addEventListener('dragend', handleDragEnd); // re-bind for chips added later pool.addEventListener('dragstart', function (e) { if (e.target.classList && e.target.classList.contains('mm__chip')) handleDragStart(e); }); function makeDropTarget(el) { el.addEventListener('dragover', function (e) { e.preventDefault(); el.classList.add('is-target'); }); el.addEventListener('dragleave', function () { el.classList.remove('is-target'); }); el.addEventListener('drop', function (e) { e.preventDefault(); el.classList.remove('is-target'); if (!draggedChip) return; // If slot already has a chip, move it back to pool const existing = el.querySelector('.mm__chip'); if (existing && draggedSource !== el) { pool.appendChild(existing); } el.appendChild(draggedChip); el.classList.add('is-filled'); el.textContent = ''; el.appendChild(draggedChip); // Check checkDrag(); }); } document.querySelectorAll('.mm__slot').forEach(makeDropTarget); // Pool also accepts drops to return chips pool.addEventListener('dragover', function (e) { e.preventDefault(); }); pool.addEventListener('drop', function (e) { e.preventDefault(); if (!draggedChip) return; // If from a slot, return to pool if (draggedSource && draggedSource.classList.contains('mm__slot')) { pool.appendChild(draggedChip); draggedSource.classList.remove('is-filled'); const v = draggedSource.dataset.value; draggedSource.textContent = '?'; } checkDrag(); }); function checkDrag() { const filledSlots = document.querySelectorAll('.mm__slot .mm__chip'); if (filledSlots.length < 5) return; let allCorrect = true; filledSlots.forEach(chip => { const slot = chip.parentElement; if (chip.dataset.value === slot.dataset.value) { slot.classList.add('is-correct'); slot.classList.remove('is-wrong'); } else { slot.classList.add('is-wrong'); slot.classList.remove('is-correct'); allCorrect = false; } }); if (allCorrect) { completed[2] = true; setTimeout(updateUI, 400); } } // Also support click: tap a slot to pick it up, then tap a chip or another slot slots.addEventListener('click', function (e) { const slot = e.target.closest('.mm__slot'); if (!slot) return; const chip = slot.querySelector('.mm__chip'); if (!chip) return; // Return to pool pool.appendChild(chip); slot.classList.remove('is-filled', 'is-correct', 'is-wrong'); slot.textContent = '?'; checkDrag(); }); } // ============= STEP 3: CHOOSE SIGN ============= const signChoose = document.getElementById('mm-sign-choose'); if (signChoose) { signChoose.addEventListener('click', function (e) { const btn = e.target.closest('.mm__choose-btn'); if (!btn || btn.disabled) return; const chosen = btn.dataset.sign; const correct = '>'; if (chosen === correct) { btn.classList.add('is-correct'); completed[3] = true; setTimeout(updateUI, 400); // disable siblings signChoose.querySelectorAll('.mm__choose-btn').forEach(b => b.disabled = true); } else { btn.classList.add('is-wrong'); setTimeout(() => btn.classList.remove('is-wrong'), 800); } }); } // ============= STEP 4: INPUT ============= const inputSubmit = document.getElementById('mm-input-submit'); const inputField = document.getElementById('mm-input1'); const inputHint = document.getElementById('mm-input-hint'); if (inputSubmit && inputField) { const checkInput = function () { const val = inputField.value.trim(); if (val === '3') { inputField.classList.add('is-correct'); inputField.classList.remove('is-wrong'); inputHint.textContent = '🎉 Правильно! Молодец.'; inputHint.classList.add('is-correct'); inputHint.classList.remove('is-wrong'); completed[4] = true; setTimeout(updateUI, 400); } else { inputField.classList.add('is-wrong'); inputField.classList.remove('is-correct'); inputHint.textContent = 'Подумай ещё: между 2 и 4 стоит какое число?'; inputHint.classList.add('is-wrong'); inputHint.classList.remove('is-correct'); } }; inputSubmit.addEventListener('click', checkInput); inputField.addEventListener('keydown', function (e) { if (e.key === 'Enter') { e.preventDefault(); checkInput(); } }); } // ============= NAV ============= prevBtn.addEventListener('click', function () { goToStep(currentStep - 1); }); nextBtn.addEventListener('click', function () { goToStep(currentStep + 1); }); updateUI(); })();
Made on
Tilda