169 похожих чатов

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

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

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

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

16 ответов

2 просмотра

ИМХО тут с алгоритмикой проблемы. Я помню детские книги про семейку с котом и какими-то еще животными, где на пальцах объясняли, как заставить робота почистить картошку. Если такое мышление еще не выработано, то х.з. М.б. с блок-схем можно начать

Philipp-Upravitelev Автор вопроса
Ed P
ИМХО тут с алгоритмикой проблемы. Я помню детские ...

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

Philipp Upravitelev
да, именно, с алгоритмикой. я плохо понимаю, как э...

я на этот счет читал занимательную дискуссию именно педагогов. Раньше считалось, что школота может в программирование где-то к 12-13 годам. Это как-то увязывалось с развитием абстрактного мышления и подходящими по сложности темами в уроках математики. А потом вдруг внезапно открылось, что чуть ли не детсадовцы (по крайней мере младшие школьники) вполне в состоянии двигать черепах по квадратным полям, расставляя последовательность стрелок. В итоге парадигма сдвинулась и сначала учат детей именно алгоритмике как навыку сложить задачи в цепочку и уже только через N лет переходят непосредственно к языкам. Меня лично в школе учили блок-схемам, и это было уныние, т.к. по сути надо было еще и псевдокод учить. В итоге прорыв случился в QBASIC-е, когда отец объяснил, как рисовать рисунки. Тогда уже стало понятно, как куски кода друг за другом идут. Я бы от ползающих черепах не отказался, но не знаю, какие есть аналоги для студентов. М.б. можно в качестве домашки задавать играть в "7 billion humans" - там принцип вроде похожий 😂😂😂

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

Я бы попробовал не с векторизации а циклов начинать. Очень хорошая струтура прослеживается: берем 1 элемн считаем А затем полученный результат приводим к Б.

Philipp-Upravitelev Автор вопроса
Aleksandr Pidtykan
Я бы попробовал не с векторизации а циклов начинат...

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

Philipp Upravitelev
и потом они везде будут делать циклы, угу. мне тут...

Ну вот кстати это "если вы хотите пишите цикл, значит вы пишите не так" в Р может быть даже вредным. Не так страшны циклы, как пуш в вектор и всё вот это вот, о чём тут недавно писалось. Если хочется плавно ввести в векторизацию, попробуйте через фильтры датасетов или веторов по результатам вызовов функций. Ну там банальное что-то вроде: выведете в консоль все элементы х, меньшие медианы. А вообще может упор на data.table сыграл злую шутку и "лапша" из тайди помогла бы въехать студентам в тему? Я боюсь опять начинать этот холивар (сам использую и дата тейбл и тайди), но "прокидывание" результатов выполнения одной функции в другую может и правда хорошо вправить мозг на предмет построения каких-то дата пайплайнов и этих всяких флоу. А уж дальше пересаживаемся на дата тейбл и радуемся жизни)

Дмитрий Володин
Ну вот кстати это "если вы хотите пишите цикл, зна...

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

Пытался объяснять, что R - это конструктор, а функции - детальки. И из деталек надо собрать что-нибудь полезное. Но такое объяснение совсем не работало. Вариант, который, как показалось, более-менее работает, но идеологически вредный. Говорить, что R - это как Excel. Все всегда думают, что они хороши в Экселе - значит и в R должно получится. R и Excel, действительно, если есть воображение, очень похожи. Только в Excelе кто-то уже заботливо и бестолково назвал для вас все переменные, а в R это надо делать самому. data.frame - это рабочий лист. В экселе,чтобы к листу обратится, надо писать восклицательный знак, а в R - доллар. А посчитать формулы внутри листа - тут либо mutate, либо dt[]. Ну и так далее. Экселевский если - ifelse и т. д. В экселе почему-то у людей декомпозиция на цепочки вложенных формул получается лучше. Однажды я видел, что человек сначала пишет на Экселе, потом практически дословно переводит на R:( Но результат, кстати правильный был. Главное, начинать с тем и задач, которые действительно сходным образом делаются. Это разные расчеты, фильтрация, агрегирование, а не графика и статистика. Если на этом рука немного набивается, то страх перед R/RStudio проходит и новые концепции даются легче.

Тут идеально SPSS выручает. Я показываю сразу Syntax файл, говорю: вот смотрите, набор буков, но по строчкам разбивается на следующую коллекцию задач. А теперь смотрите, через какое количество аргументов я делаю то же самое в R. В моем случае самая большая проблема — объяснить студентам искусство выборки данных по переменным и кейсам [#, #]. Остальное более менее понятно.

Я помню как в детстве жаловался учителю, что буквы понимаю, но вместе их сложить в слова и прочесть - не могу((( А потом как-то получилось. Сейчас мне кажется научится делать модели на tidyverse проще чем в excel, хотя я сам в R пришёл из excel и SPSS. Может действительно проще давать материалы с каким то GUI ??? за которым R стоит ... сейчас же много таких решений... в детстве же все книжки с картинками были ))

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

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

Philipp-Upravitelev Автор вопроса
Andrey C.
Слушай, а вот на такую наработку навыков интеракти...

это какие? http://www.rosettacode.org/, боюсь, сложная будет а swirl в R мне не очень понравился

Philipp Upravitelev
это какие? http://www.rosettacode.org/, боюсь, сло...

мне тоже не очень понравился. Но жить с этим можно, Джулия Сильге недавно сделал в шайни очень классный интерактив. https://juliasilge.shinyapps.io/learntidytext/

Philipp Upravitelev
это какие? http://www.rosettacode.org/, боюсь, сло...

Честно говоря, я не очень слежу за темой, но был уверен, что сейчас много онлайн-образовалок с интерактивом

Похожие вопросы

Обсуждают сегодня

Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
55
Вопрос по WIN32: Насколько я понимаю то все функции win32 привязаны к объектам операционной системы. Например консоль, файл, кисть, окна итд. Следовательно функции win32 упра...
Tommy Vercetti
6
Hello, can I install macOS and run flutter on a virtual machine? Is it possible to print for iphone?
Mazones
11
кто-то пользуется компонентами rx ? как их лучше ставить, через OPM? (lazarus)
Iluha Companets
15
В смысле более затратная? Общая стоимость владения лошадью меньше, чем автомобиля. В среднем.
Sergej R
10
подскажите пожалуйста, как мне освободить результат записанный в переменную result? в чем проблема подскажите если МОЖЕТЕ?
Михаил Helper
28
есть тут кто-то , кто только начал изучать си? если проходите курс на степике или как-то сами изучаете, пишите, может, скооперируемся?..
Eule
25
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Слушайте, ещё такая интересная задачка. Сделан аудит действий пользователей через триггеры в базе, соответственно каждый пользователь имеет свой логин и пароль в базе. Это пре...
Сергей Бычков
12
Скажите, тут нет проблемы? IMyInterface1 = interface function GetInterface2: IInterface2; ... function TMyInterface.GetInterface2: IInterface2; begin Result := TI...
Ruslan aka DUDE
18
Карта сайта