опыта работы с языками программирования, путаются в составных задачах. то есть, в рамках темы или конкретной функции они могут все сделать и понимают, как. а вот придумать, как совместить несколько выражений и операций - уже теряются.
например, цитата студента: ", по отдельности понятно, что дает функция, но крайне тяжело получается использовать их вместе, поэтому трачу много времени на попытки все правильно расположить в R".
собственно, вопрос. как с этим работать?
я вроде и даю составные задачки, и учу декомпозировать на выражения. но, видимо, недостаточно, либо все равно сложно.
ИМХО тут с алгоритмикой проблемы. Я помню детские книги про семейку с котом и какими-то еще животными, где на пальцах объясняли, как заставить робота почистить картошку. Если такое мышление еще не выработано, то х.з. М.б. с блок-схем можно начать
да, именно, с алгоритмикой. я плохо понимаю, как этому учить. но ведь как-то учат же, наверное
я на этот счет читал занимательную дискуссию именно педагогов. Раньше считалось, что школота может в программирование где-то к 12-13 годам. Это как-то увязывалось с развитием абстрактного мышления и подходящими по сложности темами в уроках математики. А потом вдруг внезапно открылось, что чуть ли не детсадовцы (по крайней мере младшие школьники) вполне в состоянии двигать черепах по квадратным полям, расставляя последовательность стрелок. В итоге парадигма сдвинулась и сначала учат детей именно алгоритмике как навыку сложить задачи в цепочку и уже только через N лет переходят непосредственно к языкам. Меня лично в школе учили блок-схемам, и это было уныние, т.к. по сути надо было еще и псевдокод учить. В итоге прорыв случился в QBASIC-е, когда отец объяснил, как рисовать рисунки. Тогда уже стало понятно, как куски кода друг за другом идут. Я бы от ползающих черепах не отказался, но не знаю, какие есть аналоги для студентов. М.б. можно в качестве домашки задавать играть в "7 billion humans" - там принцип вроде похожий 😂😂😂
Мне кажется, у многих есть плохая привычка со школы, что нужно найти алгоритм, по которому решается задача и его использовать. Нужно отдельно объяснять, что таких алгоритмов в реальности нет, точнее, их как раз и нужно создать и объяснить компьютеру. А если решение задачи сводится к какой-то рутине, то это, наоборот, красный флаг того, что что-то идет не так
Я бы попробовал не с векторизации а циклов начинать. Очень хорошая струтура прослеживается: берем 1 элемн считаем А затем полученный результат приводим к Б.
и потом они везде будут делать циклы, угу. мне тут вместо ifelse уже хотели цикл сделать, а ля питон. я циклы вообще в курсе даю в самом конце, когда сайт скрапим - там проще циклом пройти по набору страниц. а в других местах как-то и без них хорошо %)
Ну вот кстати это "если вы хотите пишите цикл, значит вы пишите не так" в Р может быть даже вредным. Не так страшны циклы, как пуш в вектор и всё вот это вот, о чём тут недавно писалось. Если хочется плавно ввести в векторизацию, попробуйте через фильтры датасетов или веторов по результатам вызовов функций. Ну там банальное что-то вроде: выведете в консоль все элементы х, меньшие медианы. А вообще может упор на 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 стоит ... сейчас же много таких решений... в детстве же все книжки с картинками были ))
Я бы сначала проверил, действительно ли есть понимание того, что даёт функция. Ну, то есть, попросил бы написать какую-нибудь композицию, выводя каждый результат и объясняя его. Нудно, но работает.
Слушай, а вот на такую наработку навыков интерактивные упражнения не работают? Типа розетты или что там еще есть похожее. Чтобы они сами имели возможность быстро методом проб и ошибок учиться. И могли правильные решения посмотреть.
это какие? http://www.rosettacode.org/, боюсь, сложная будет а swirl в R мне не очень понравился
мне тоже не очень понравился. Но жить с этим можно, Джулия Сильге недавно сделал в шайни очень классный интерактив. https://juliasilge.shinyapps.io/learntidytext/
Честно говоря, я не очень слежу за темой, но был уверен, что сейчас много онлайн-образовалок с интерактивом
Обсуждают сегодня