Автор |
Сообщение |
03.07.2016 08:47:05
Тема: Re:Как нам реорганизовать [рабкрин] обучение программированию сначала
|
Михаил Долинский
Темы: 2072
Сообщений: 49900
Мой профиль
|
Написал на С++ авторские решения всех задач "Ускоренного курса 2013".
Он содержит 8 тем
- введение в программирование
- одномерный массив
- двумерный массив
- геометрия
- сортировка
- строки
- текстовые задачи
- исследование
Подробнее о содержании и аргументации
Для каждой темы 3 подраздела:
- техминимум (задачи покрывающие и иллюстрирующие необходимый минимум теории)
- олимпиады 1-4 классов
- олимпиады 5-8 классов
Курс линейный
- каждый должен решить каждую задачу.
Для большинства учеников это очень даже подходит.
Но для самых сильных бывает много "лишней" работы.
И в моей практике был уже не один случай,когда человек (6-7 класс) приходит, решает в первый день 30 задач,
и больше не приходит. Возможно, потому что ему показалось всё слишком простым.
Кроме того, некоторые олимпиадные задачи по сложности "выбиваются из общего ряда"
и с большинством учеников мы просто пропускаем их при первой встрече.
Это тоже неудобство
- ученик может в этом месте "надолго застрять"
- приходится объяснять, как это делается.
С другой стороны, есть очень много случаев, когда человек прошёл "Ускоренный курс-2013"
(то есть сдал все задачи из него - многие с помощью учителя или учеников), но не научился.
То есть не может решить даже те задачи, которые сдавал,
не говоря уже о задачах на те же темы,
(то есть, задачи которые не требуют новой теории)
например
- одномерный массив
- двумерный массив
- геометрия
- строки
из олимпиад 9-11 классов или
из олимпиад BY/GO (республиканских и областных олимпиад, готовящихся в Минске).
В связи с вышеизложенным создал новый курс
"Ускоренный курс 2016"
который содержит те же темы, но внутри каждой темы подразделы такие
Техминимум
Контроль (олимпиады 5-8 классов)
Контроль* (вышеупомянутые сложные задачи)
Обучение (олимпиады 1-4 классов)
Предполагается в будущем поддержать на подобных материалах такие
Стратегии обучения
Уже поддерживаются
- Нет «Не знаю» , можно пропускать
- Есть «Не знаю»
- Индивидуальное управление «Не знаю»(нет/есть) для различных пакетов заданий (автовыдач)
Нужны
- Линейная
- для каждого человека фиксируется и пополняется список задач, по которым нажималось «Не знаю»
- при выходе из папки в корне (ВвП, 1мас, 2мас …)
предлагаются в случайном порядке все задачи из списка «Не знаю» - для этого человека
если снова нажимал «Не знаю» - задача остаётся в списке
переход к следующей теме осуществляется только после очистки списка «Не знаю»
- Ускоренная
- в каждой корневой папке (ВвП, 1мас, 2мас …) имеются 4 подпапки : Техминимум, Контроль, Контроль*, Обучение
- в Контроле нет «Не знаю» - не может решить – автоматом отправляется в обучение
в любой момент ученик может вернуться в Контроль (не получится решить – обратно в обучение)
в Обучении действует линейная модель
только если оттуда выйдет – в контроле открывается «Не знаю» и включается линейная модель
если выйдет из контроля – открывается Контроль* с «Не знаю» и линейной моделью (а можно и пропускать эти задачи)
- Дифференцированное обучение
- каждая задача в «Контроле» связывается [названием?] с группой (?деревом) задач в обучении
- если не может решить задачу в Контроле, его перенаправляют на решение именно этой группы (?дерева) задач
- Динамическое построение уровней сложности
- редактор курса указывает градации сложности (возможно для каждой темы свои, для каждого ученика?)
– Контроль * и другие уровни сложности строятся «на лету»
- Диагностика (для входного/выходного/промежуточного контроля учеников)
- из Контроля каждой (пройденной для промежуточного) темы случайно выбираются 5 (параметр) задач в порядке возрастания сложности
- задачи можно пропускать
- время может быть ограничено
Дополнительные "технические" хотелки
- в одной подтеме выстраивать задачи по возрастанию/убыванию сложности и отмечать (цветом/баллами) уже сданные задачи
- делать тоже самое для нескольких подтем темы (формируя общий список, игнорируя подтемы)
- после сдачи задачи дать возможость посмотреть авторские решения / все полные решения / все ошибочные решения / все свои решения
С точки зрения развития содержания обучения на С++ далее предполагается следующая работа
1. Краткое описание выбранного подмножества языка С++
попутно сделаю конспекты опорных схем С++-лекций для первокурсников, аналоги соответствующих Паскаль-лекций
Сентябрь
1. Введение в программирование + Отладчик
2. Одномерный массив стандартные алгоритмы
3. Одномерный массив - нестандартные алгоритмы
Октябрь
4. Двумерный массив - стандартные алгоритмы
5. Геометрия
6. Строки - Элементарные алгоритмы
7. Строки - Встроенные функции
Ноябрь
8. Строки - Пользовательские функции и процедуры
9. Сортировка
10. Очередь - конь
11. Очередь - куски
2. Дать в руки "экскаваторы вместо лопат".
То есть, сделать анонсы и примеры применения (ссылки на задачи, идеи и исходники решений)
наиболее полезных функций STL.
Хотя бы так, как это сделано Пашей Голубом для:
set
Вот список того, что было у меня "на слуху"
Преимущества C++ (STL) перед Паскалем
vector
heap
qsort
lower_bound
upper_bound (for binary search)
nth_element
next_permutation
priority_queue
map
set (balanced binary search tree)
multiset
|
04.07.2016 05:12:47
Тема: Re:Как нам реорганизовать [рабкрин] обучение програмированию сначала
|
Михаил Долинский
Темы: 2072
Сообщений: 49900
Мой профиль
|
From: Vadim Kopichenko
Sent: Sunday, July 03, 2016 7:18 PM
To: Michael Dolinsky
Subject: Re: FW: Confluence: DL Руководство пользователя > CPP
Дополнил http://confluence.newit.gsu.by/display/dldoc/CPP
Можно выложить эту ссылку на форуме
|
07.07.2016 11:17:01
Тема: Re:Как нам реорганизовать [рабкрин] обучение програмированию сначала
|
Михаил Долинский
Темы: 2072
Сообщений: 49900
Мой профиль
|
Краткое описание выбранного подмножества С++
Конспекты опорных схем для первокурсников
Введение в программирование
Одномерный массив
Двумерный массив
Геометрия
Сортировка
Строки to_string
Функции и процедуры
Очередь knight.cpp knight_2.cpp cell.cpp cell_2.cpp
Полезные факты о С++
Шпаргалка по С++
vector
set
multiset
map
multimap
map & multiset
hash_set, hash_map, хеш-функция +1
priority_que +1 +2
lower_bound
next_permutation
n-th_element
Работа на С++ в 1-1
Искать ошибки в программах можно тремя способами
1) Перечитать программу и попытаться "мысленно выполнить её"
2) Вставлять отладочную печать в программу на ideone.com
3) Научиться работать в отладчике CodeBlocks на собственной машине
CodeBlocks-17.12 (157 Мб zip)
CodeBlocks-16.01(+MinGW 5.3.0).zip
Краткая инструкция по установке и использованию
Подробнее
Быстрое погружение в язык C++
Доп.информация на DL
Хорошая дока по STL на английском
Collection of prepared algorithms (C++)
Online compilers
Ловим глупые ошибки вместе с GCC
Введение в программирование на C++ (Stepik)
|
11.07.2016 23:11:45
Тема: Re:Как нам реорганизовать [рабкрин] обучение програмированию сначала
|
Роман Стриженков
Темы: 5
Сообщений: 129
Мой профиль
|
Здравствуйте Михаил Семенович!
Переговорил с директором школы (где младший будет учиться с сентября)по поводу создания бесплатного кружка по программированию с использованием Вашего сайта дистанционного обучения. Просят программу образовательную написать(пояснительная записка, цели, задачи, результат, календарное планирование, ради чего все это организовано...). Немного в затруднении с написанием. Ни разу не составлял)) Не могли бы чем-то помочь с программой для первого класса(наверное решимся на С++)? Может у Вас или у кого-то из педагогов, которые с вами работают есть программы, которыми они готовы поделиться?
Роман Стриженков
|
12.07.2016 05:33:40
Тема: Re:Как нам реорганизовать [рабкрин] обучение програмированию сначала
|
Михаил Долинский
Темы: 2072
Сообщений: 49900
Мой профиль
|
Не нравится мне такое начало.
У меня такого нет.
Спросил по почте у учительницы, которая ведёт занятия в начальной школе.
Есть ли у неё, и если есть - готова ли поделиться.
Жду ответа.
Но важно понимать,
наша система в принципе противоречит такому планированию.
В ней каждый учится с той скоростью, на которую способен.
И потому в каждый момент времени дети находятся в разных точках учебного материала.
Более того - у каждого может получиться собственная образовательная траектория.
Способные (или лучше подготовленные и/или более работящие) двигаются по учебному материалу быстрее.
И, в отличие от стандартного обучения, никто не переходит к новой теме
"потому что пришёл её календарный срок по плану"
Только после полного выполнения заданий предыдущей темы.
P.S. Я бы подумал об альтернативах.
Вам нужно только помещение?
Дети, скорей всего, могут работать на собственных ноутбуках.
Я бы поискал место, где не будут требовать планы, а потом ещё и мучать проверками и отчётами.
P.P.S. Если план всё-таки придётся писать - ориентируйтесь в нём ТОЛЬКО на курс "Учимся думать".
По нашему опыту для большинства первоклассников (и по способностям, и по затраченному времени) это предел на первый год.
Ну а если получится больше у кого-то (или даже у всех, всё-таки, Питер не Гомель )
- так и будете заниматься дальше.
Моя книжка по теме (на правах рекламы )
А эта планируется к изданию (она как раз "Учимся думать" и описывает)
Развивающее дифференцированное Internet-обучение дошкольников
|
12.07.2016 09:37:35
Тема: Re:Как нам реорганизовать [рабкрин] обучение програмированию сначала
|
Михаил Долинский
Темы: 2072
Сообщений: 49900
Мой профиль
|
Вот её ответ
From: Оля Савицкая
Sent: Tuesday, July 12, 2016 9:33 AM
To: Michael Dolinsky
Subject: Re: А у тебя такое есть? Можешь поделиться?
У нас в школе образовательная программа факультатива "развивающая информатика", утвержденная мин образования. И только её разрешили использовать, она есть в свободном доступе в интернете, по ней и составляется приблизительный календарный план, разбив план на уроки. У меня в школе должен быть план этот, если не смогут найти, то я тогда заеду посмотрю у себя.
|
12.07.2016 10:46:42
Тема: Re:Как нам реорганизовать [рабкрин] обучение програмированию сначала
|
Михаил Долинский
Темы: 2072
Сообщений: 49900
Мой профиль
|
Она сама нашла и прислала программу по почте (я переложил на DL)
Программа факультатива
|
12.07.2016 20:11:32
Тема: Re:Как нам реорганизовать [рабкрин] обучение програмированию сначала
|
Роман Стриженков
Темы: 5
Сообщений: 129
Мой профиль
|
Здравствуйте Михаил Семенович!
Спасибо за информацию. На основе данного материала напишу программу.
Роман Стриженков
|
12.07.2016 20:16:48
Тема: Re:Как нам реорганизовать [рабкрин] обучение програмированию сначала
|
Роман Стриженков
Темы: 5
Сообщений: 129
Мой профиль
|
Здравствуйте Михаил Семенович!
Начал читать Вашу книгу "Развивающее дифференцированное Internet-обучение дошкольников". В конце курса "Учимся думать"(на картинках видно) встречаются уже служебные слова языка Паскаль. Основной курс "Информатика 2015-2016" стройный и последовательный. И наверное должен соблюдаться порядок его изучения. Следующие курсы "Пропедевтика слов", "Учим слова (медленно)" и некоторые другие пока завязаны на Паскаль. Будет ли это меняться? Вопрос в том, что если мы пойдем по этому пути допускаю, что кто-то из ребят к середине учебного года закончит "Учимся думать". Будет ли куда нам идти дальше?
Роман Стриженков
|
13.07.2016 05:29:27
Тема: Re:Как нам реорганизовать [рабкрин] обучение програмированию сначала
|
Михаил Долинский
Темы: 2072
Сообщений: 49900
Мой профиль
|
В принципе обучение в Ускоренном курсе-2016 уже поддерживает очень многое из того, что было в "Пропедевтике" и "Учим слова медленно" (но, конечно не всё). И даже если больше ничего не сделается, можно переходить из "Учимся думать" непосредственно в УК-2016.
Но мы планируем добавить аналоги для выработки навыка работы с клавиатурой вообще и набора необходимых слов в частности.
Когда это произойдёт, я пока не знаю.
|
13.07.2016 06:08:03
Тема: Re:Как нам реорганизовать [рабкрин] обучение програмированию сначала
|
Михаил Долинский
Темы: 2072
Сообщений: 49900
Мой профиль
|
Написал такое письмо учительнице в начальной школе Оле Савицкой.
Жду ответа.
1) Как ты думаешь - нужны ли какие-то аналоги "Пропедевтики слов" и "Учим слова(медленно)" для слов С++?
- какие именно?
2) Насколько трудоёмко (сколько времени может занять) сделать их средствами Юриного конструктора?
3) Знаешь ли ты (можешь ли посмотреть) как перенастроить на новые слова задания Саши Громыко с клавиатурой-подсказкой?
4) Можешь ли ты придумать какими должны быть пакеты заданий "Пропедевтика слов" и "Учим слова (медленно)" для С++
- можем попросить Андрея, который развивает DS2 для C++ сделать их
у него практически всё есть (сравнение, словарь), только клавиатуры нет.
- наверно это будет одно задание (или кнопка с любого задания)
На обучение набору слов
Или просто добавить в имеющееся обучение к каждой задаче режим/задание, где клавиатура подсвечивается?
5) Как быть с первыми двумя строками (они очень длинные для первоклассников наверно)?
Может попросить Андрея сделать режим (для первоклассников?) в котором они отображаются всё время, но набирать их не нужно?
Он ведь сделал автоотсылку (Ты видела? Пользуешься? Твоё мнение?) и может добавлять их автоматически.
6) Кстати, мне кажется НА ТВОЁ УСМОТРЕНИЕ надо ли всех первоклашек
Переводить на обучение С++. (Чтобы не мучать лишнего тебя и детей)
Мне кажется, достаточно разумным альтернативным решением в СШ 27 в 1-4 классах оставить всё как было (всё-таки у нас фронтальные занятия, "и жук, и жаба" приходят).
А в С++ переходить начиная с 5-го класса.
А вот всех "пришлых" (получается избранные, как минимум мотивированы родители, как правило выше средних способностей) отправлять в С++, а если - будет сложно - возвращать в Паскаль.
Минусы такого "половинчатого подхода", которые я сейчас вижу
- нам придётся "работать на два фронта" - будет медленнее получаться опыт в С++
- для наших лучших, например, как Костя Коновал, может оказаться много потерянного времени.
Я смотрю сейчас по Морозову Данику и другим ребятам, которые перешли в С++.
Логических проблем у них нет. НО
А) переделать 500+ заданий УК - это много времени требует
Б) простые ошибки вызывают трудности в поиске и много зря потраченного времени
Последний пример Яша Шаповалов (вчера)
5 раз подряд получил ошибку компиляции
Последняя отсылка:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int a[10],min,n,nom;
cin >> n;
for (int i=0; i<n; i++) cin>>a[i];
min=a[0]; nom=0;
for (int i=1; i<n; i++)
if (a[i]<min) {min=a[i]; nom=i;};
cout << max << " " << nom+1;
}
(в последней строке max вместо min)
Хотя при компиляции это легко выясняется
- почему он её не сделал - непонятно.
|
13.07.2016 10:01:40
Тема: Re:Как нам реорганизовать [рабкрин] обучение програмированию сначала
|
Михаил Долинский
Темы: 2072
Сообщений: 49900
Мой профиль
|
Михаил Долинский :
5) Как быть с первыми двумя строками (они очень длинные для первоклассников наверно)?
Подменил шаблон в поставке
CodeBlocks-16.01(+MinGW 4.9).zip
Получается теперь если работа ведётся с нашего архива (или в нашей школе), то не придётся детям
эти первые две длинные строки набирать - они есть и правильно написаны.
Теперь при запуске автоматически открывается такая программа main.cpp
#include <bits/stdc++.h>
using namespace std;
int main()
{
int s;
cin >> s;
cout << s;
}
То есть наша первая программа
ввести и вывести число
Вместо стандартной
#include <iostream>
using namespace std;
int main()
{
cout << "Hello world!" << endl;
return 0;
}
|
13.07.2016 18:27:45
Тема: Re:Как нам реорганизовать [рабкрин] обучение програмированию сначала
|
Михаил Долинский
Темы: 2072
Сообщений: 49900
Мой профиль
|
Вот ответ Оли Савицкой
From: Оля Савицкая
Sent: Wednesday, July 13, 2016 4:26 PM
To: Michael Dolinsky
Subject: Re: О С++
1. Мне кажется, что для учащихся 5ых классов это не нужно, но можно было бы в начале курса добавить задания на работу с клавиатурой, как сейчас стоят в курсе "число". Просто чтобы начинать писать первую программу со словами, которые хотя бы немного запомнили.
2. Это не долго и не трудно. Вопрос о времени будет стоять тогда, когда будем точно знать, что делать из заданий и сколько.
3. Если я правильно понимаю, про какие задания идет речь, то их перенастраивать не нужно, что указано писать, то и будет подсвечиваться... Я делала только одно такое задание, копировала в DL мастере, открывала и заменяла на свой текст.
4. Да, хорошо, придумаем.
5.
а) А в чем сложность научить детей печатать эти строки? Ну страшные они с первого взгляда, но ничего сверхъестественного... К тому же я не думаю, что было бы правильно обучать детей с 1го класса С++... Всё же Паскаль больше подходит для введения в программирование.
б) Я не знаю что за автоотсылка, может и пользуюсь, но не знаю что это она)
6. Яша ведь наверное в блокноте печатал без компилятора...
Давайте следующий год попробуем работать в Си только с 5ым классом?Получим немного опыта, попробуем в течении года разработать курсы для малышей в Си, если всё же решимся с ними работать.
А олимпиады на каком языке дети должны будут писать?
|
13.07.2016 18:28:46
Тема: Re:Как нам реорганизовать [рабкрин] обучение програмированию сначала
|
Михаил Долинский
Темы: 2072
Сообщений: 49900
Мой профиль
|
А это мой ответ Оле Савцикой
Я перенес твоё письмо и свои ответы в форум
А ты читала всю тему сначала?
http://dl.gsu.by/NForum/posts/topicshow/2567.dl?postid=63895#63895
Предлагаю отвечать там, если захочешь.
1. Мне кажется, что для учащихся 5ых классов это не нужно, но можно было бы в начале курса добавить задания на работу с клавиатурой, как сейчас стоят в курсе "число". Просто чтобы начинать писать первую программу со словами, которые хотя бы немного запомнили.
[MD] Питерец хочет работать с первоклассниками. Я хочу ему помочь.
Да и у нас дети разные бывают даже в 5-ых классах.
И я намерен пробовать работать в С++ со всеми новичками, которые придут.
Чтобы получить опыт, нужно реально работать.
Логических проблем там не больше, чем в Паскале.
А всё остальное зависит от нас.
И есть человек, который ПИШЕТ, что просим, он в следующем году последний год учится.
«Завтра» (на следующий год) может оказаться «поздно».
4. Да, хорошо, придумаем.
[MD] Да вот это нужно сделать и желательно срочно.
Чтобы раньше знать, что просить у Андрея.
Сейчас я придумал такую идею.
В каждом задании может появиться кнопка «Клавиатура»
И тогда при её нажатии в девой части задания под условием появится «Клавиатура»,
на которой всё время будет подсвечиваться символ, который сейчас нужно нажимать.
Кроме того, в каждом задании может появиться кнопка «Слова».
На обучение набора всех слов из этого задания
- либо всех подряд от более простых к более сложным
- либо слов по выбору учителя
- либо слов по выбору ученика
И там для каждого слова будет пакет заданий, который ты придумаешь
(и скопируешь нам для образца пакет таких заданий, например, для слова begin)
- чтобы Андрей мог ВИДЕТЬ, что от него требуется
Пример «навскидку» такого пакета (сдвиг вправо означает переход по «Не знаю»)
- перенос символов на клавиатуру с подсветкой (клавиши на клавиатуре)
- перенос символов на клавиатуру без подсветки
.... - перенос символов на клавиатуру с подсветкой
- набор символов с подсветкой
- набор символов без подсветки
.... - набор символов с подсветкой
??? устанавливать временной предел на выполнение задания без подсказок
(реальные замеры сделать и вставить правильные временные переделы)
То есть если слишком медленно набирает – пусть тренируется
5.
а) А в чем сложность научить детей печатать эти строки? Ну страшные они с первого взгляда, но ничего сверхъестественного...
[MD] Просто длинные и если во всех программах одно и тоже, теряется смысл – зачем их набирать?
Но я уже решил эту проблему
http://dl.gsu.by/NForum/posts/topicshow/2567.dl?postid=63961#63961
К тому же я не думаю, что было бы правильно обучать детей с 1го класса С++... Всё же Паскаль больше подходит для введения в программирование.
[MD] Оля давай разделим это вопрос на два.
1) Чему и как учить детей, которых учишь ты, решать, безусловно, тебе.
2) Чему и как учить детей, которых учат другие учителя, должны решать сами эти учителя
(в том числе и я, и Савелий Стриженков из Санкт-Петербурга)
А Савелий НЕ ХОЧЕТ учить на Паскале, хотел бы на Питоне, но поддержки Питона нет пока у нас и поэтому он
из Паскаля и С++ выбрал С++.
Моя задача сделать так, чтобы на DL было удобно учить НА ВСЕХ ЯЗЫКАХ.
С Паскалем будем считать, уже сделано.
В данный момент мы занимаемся поддержкой С++,
стараясь при этом делать как можно больше универсальных механизмов,
которые будут работать для ВСЕХ языков (если написаны авторские решения задач)
б) Я не знаю что за автоотсылка, может и пользуюсь, но не знаю что это она)
[MD] Появилось задание, в котором если ты правильно набрал, решение автоматически отправляется на DL.
а если неправильно – можно его переделывать.
Сейчас Андрей до воскресенья обещал прикрутить ещё две фичи
- подсветку строк с ошибками, если неправильно
- если подсказкой пользовался, то после исправления всех ошибок
отправка не происходит, а предлагается сделать задание повторно с чистого экрана
6. Яша ведь наверное в блокноте печатал без компилятора...
[MD]Наверно, но я ему объяснял про ideone.com
Давайте следующий год попробуем работать в Си только с 5ым классом?Получим немного опыта, попробуем в течении года разработать курсы для малышей в Си, если всё же решимся с ними работать.
[MD] Ты предлагаешь отложить на год решение проблем.
А я предлагаю решать все проблемы СЕЙЧАС, какие мы видим.
И знаешь, задания для Паскаля на обучения словам я и для первокурсников использую ...
так что вопрос не в классе а в уровне готовности работать вообще и с компьютером в частности
Чем больше у нас такой поддержки, тем проще работать с детьми (и студентами) с любой подготовкой
А олимпиады на каком языке дети должны будут писать?
[MD] Те кто учатся на Паскале – пишут на Паскале, те кто учатся на С++ - пишут на С++.
|
13.07.2016 18:41:30
Тема: Re:Как нам реорганизовать [рабкрин] обучение програмированию сначала
|
Михаил Долинский
Темы: 2072
Сообщений: 49900
Мой профиль
|
"Спасение утопающих - дело рук самих утопающих"
Савелий - это я к Вам обращаюсь.
Вы имеете уникальную возможность ПОВЛИЯТЬ на то, каким будет обучение, которым Вы будете пользоваться.
Выскажите свои соображения.
Будет гораздо правильнее сначала ПОПРОБОВАТЬ поработать
в "Учим слова" и "Пропедевтика слов"
чтобы решить, какие из заданий Вы хотели бы видеть для С++ и сообщить об этом нам.
Аналогично можно попробовать начать работать в
"Ускоренный курс - 2016"
и также высказать свои предложения.
|
|
|