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

Образец цитирования: Brown NCC, Wilson G (2018) Десять быстрых советов по обучению программированию. PLoS Comput Biol 14(4): e1006023. doi:10.1371/journal.pcbi.1006023
Редактор: Фрэнсис Уэлетт. Геном Квебека, КАНАДА
Опубликовано: 5 апреля 2018 г.
Авторское право: © 2018 Brown, Wilson. Это статья открытого доступа . Распространяемая на условиях лицензии Creative Commons Attribution License, которая разрешает неограниченное использование. Распространение и воспроизведение на любом носителе при условии. Что автор и источник оригинала указаны.

Финансирование: Финансирование этой статьи не было получено.

Конкурирующие интересы: Авторы заявили. Что никаких конкурирующих интересов не существует.

Это учебная работа по вычислительной биологии PLOS.

Введение

Исследования в области педагогической психологии показывают. Что преподавание и обучение являются предметно-специфическими видами деятельности [1]: обучение программированию имеет другой набор задач и методов. Чем изучение физики или обучение чтению и письму. Вычислительная техника является более молодой дисциплиной. Чем математика. Физика или биология. И было соответственно меньше исследований о том. Как лучше преподавать ее. Существует все больше доказательств того. Что работает, а что нет. В этой статье представлены 10 кратких советов. Которые должны стать основой любого обучения программированию. Будь то формальное или неформальное.

Эти советы будут полезны всем. Кто преподает программирование на любом уровне и для любой аудитории. Более обширный список, ориентированный в первую очередь на аудиторию К–12, можно найти в [2].

Совет 1: Помните. Что гена выродка не существует

Гуздиал [3] ссылается на убеждение. Что некоторые люди рождаются программистами. А другие не являются Это часто Наш первый и самый важный совет заключается в том. Что это неправильно: компетентность в программировании не является врожденной. А является скорее приобретенным навыком. Который может быть приобретен и улучшен с практикой.

Наиболее убедительные доказательства этого приводятся в работе Patitsas et al. [4Они изучили распределение оценок на вводных курсах вычислительной техники в крупном университете и обнаружили. Что только 5,8% из них на самом деле являются мультимодальными. Более того, они обнаружили. Что преподаватели компьютерных наук с большей вероятностью будут рассматривать распределения как бимодальные. Если они думают. Что эти оценки получены из класса программирования. Чем если бы они верили. Что оценки получены из какого-то другого класса. И что эти преподаватели с еще большей вероятностью будут рассматривать распределения как бимодальные. Если они верят. Что некоторые студенты врожденно предрасположены к успеху в компьютерных науках.

Известно, что подобные убеждения оказывают мощное влияние на результаты образования [5-7]. Если инструкторы считают. Что В сочетании с культурными стереотипами о том. Кто является и не является

Совет 2: Используйте инструкции сверстников

Репетиторство один на один-это, пожалуй. Идеальная форма обучения: все внимание учителя может быть сосредоточено на одном ученике. И он может полностью адаптировать свое обучение для этого человека и адаптировать индивидуальную обратную связь и исправления. Основанные на двустороннем диалоге с ним. Однако в реальных условиях один учитель. Как правило. Должен обучать нескольких. Десятки или даже сотни учеников одновременно. Как учителя могут надеяться прояснить различные заблуждения многих учеников в этих больших условиях за разумное время?

Лучший метод. Разработанный до сих пор для более крупных классов. Называется инструктаж сверстников. Первоначально созданный Эриком Мазуром в Гарварде [8], он широко изучался в самых разных контекстах. Включая программирование [9, 10]. В упрощенной форме обучение сверстников проходит в несколько этапов:

1. Инструктор дает учащимся краткое введение в тему.

2. Затем инструктор задает учащимся вопрос с множественным выбором, который позволяет выявить неверные представления, а не просто вспомнить факты. (Пример программирования приведен в Коде 1, который относится к целочисленному сравнению и циклам.) Вопрос множественного выбора должен быть хорошо разработан. Нет смысла задавать тривиальный вопрос. На который все ученики ответят правильно. Или вопрос с бессмысленными неправильными ответами. Которые никто не выберет. Идеальные вопросы-это те. На которые 40-60% студентов. Скорее всего. Получат правильный ответ с первого раза ([11], стр. 23) и те. В которых каждый неправильный ответ соответствует неправильному представлению. Которое заставит его выбрать по крайней мере некоторых студентов.

3. Затем учащиеся голосуют за ответ на вопрос индивидуально. Тем самым формализуя свое первоначальное предсказание.

4. Затем учащимся дается несколько минут. Чтобы обсудить эти ответы друг с другом в небольших группах (обычно 2-4 студента). А затем они снова собираются и голосуют.

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

Обучение сверстников-это, по сути. Способ обеспечить индивидуальное наставничество масштабируемым способом. Групповая дискуссия значительно улучшает понимание учащихся. Поскольку заставляет их прояснить свое мышление. Чего может быть достаточно. Чтобы выявить пробелы в рассуждениях. Повторное занятие затем дает инструктору знать. Могут ли они двигаться дальше или необходимы дальнейшие объяснения. Хотя он значительно превосходит лекционное обучение в большинстве ситуаций. Он может быть проблематичным. Если уровни способностей сильно различаются (как это часто бывает на вводных занятиях по программированию из-за различного предыдущего опыта). Для смягчения этой проблемы можно использовать парное программирование (Совет 5).

Совет 3: Используйте живое кодирование

Вместо того. Чтобы использовать слайды. Инструкторы должны создавать программы перед своими учениками [12]. Это более эффективно по нескольким причинам:

1. Это позволяет преподавателям быть более отзывчивыми на вопрос вопросы. В то время как слайд-дека похожа на шоссе. Живое кодирование позволяет преподавателям идти по бездорожью и следовать интересам своих учеников или отвечать на непредвиденные вопросы.

2. Это облегчает непреднамеренную передачу знаний: студенты узнают больше. Чем инструктор сознательно намеревается научить, наблюдая. Как инструкторы делают вещи. Дополнительные знания могут быть высокого уровня (например. Написана ли программа сверху вниз или снизу вверх) или довольно низкого уровня (например. Изучение полезных ярлыков редактора).

3. Это замедляет инструктора: если инструктор должен вводить программу по ходу работы. Он может идти только в два раза быстрее. Чем его ученики. А не в 10 раз быстрее. Чем они могли бы со слайдами. Что рискует оставить всех позади.

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

5. Наблюдение за тем. Как инструкторы делают ошибки. Показывает ученикам. Что это нормально делать свои собственные ошибки [13]. Большинство людей моделируют поведение своих учителей: если преподаватель не стесняется делать ошибки и говорить о них. То и ученикам будет удобнее делать то же самое.

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

1. Инструкторы могут работать слишком медленно либо потому. Что они не умеют хорошо печатать. Либо из-за того. Что тратят слишком много времени на просмотр заметок. Пытаясь вспомнить. Что они собирались напечатать.

2. Инструкторы могут тратить слишком много времени на ввод шаблонного кода. Который необходим для урока. Но не имеет к нему прямого отношения (например. Инструкции импорта библиотеки). Это не только замедляет процесс. Но и может отвлечь учащихся от намеченной цели урока. Как Уиллингем [14] говорит: Этого можно избежать. Начав с частичного скелета. Который включает в себя шаблон. Или имея его под рукой. Чтобы скопировать и вставить. Когда это необходимо. (Из двух вариантов мы предпочитаем первый. Поскольку учащиеся могут не успевать копировать и вставлять.)

Обратите внимание. Что живое кодирование не всегда должно начинаться с пустого экрана: преподаватели могут дать студентам некоторый начальный код. Который опирается исключительно на концепции. Которые они уже освоили. А затем расширить его или изменить с помощью живого кодирования. Преподаватели. Которые используют живое кодирование. Должны убедиться. Что учащиеся имеют справочный материал. Доступный после лекций. Например учебник. Но также должны признать. Что студенты всех возрастов все чаще обращаются к сайтам вопросов и ответов. Таким как Stack Overflow. За информацией.

Совет 4: Попросите студентов делать прогнозы

Когда инструкторы используют живое кодирование. Они обычно запускают программу несколько раз во время ее разработки. Чтобы показать. Что она делает. Удивительное исследование. Проведенное в ходе обучения сверстников в физическом образовании. Показывает. Что учащиеся. Наблюдающие демонстрацию. Учатся не лучше, чем те. Кто не видел демонстрации [15], и на самом деле многие учащиеся неправильно запоминают результат демонстраций впоследствии [16]. Другими словами. Демонстрации на самом деле могут быть бесполезными или активно вредными.

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

Совет 5: Используйте парное программирование

Парное программирование-это практика разработки программного обеспечения. В которой 2 программиста используют один компьютер. Один человек (называемый водителем) печатает. В то время как другой (называемый навигатором) предлагает комментарии и предложения. Эти двое меняются ролями несколько раз в час. Парное программирование-это хорошая практика в реальном программировании [17], а также хороший способ обучения [18]. Партнеры могут не только помогать друг другу во время практических занятий. Но и прояснять заблуждения друг друга при представлении решения.

Обе стороны, участвующие в парном программировании, учатся, делая это. Более слабый получает индивидуальные инструкции от более сильного. В то время как более сильный учится. Объясняя и заставляя пересматривать вещи. О которых он, возможно. Не думал некоторое время. Когда используется парное программирование. Важно поставить всех в пары. А не только учеников. Которые могут испытывать трудности. Чтобы никто не чувствовал себя выделенным. Также важно. Чтобы люди менялись ролями в каждой паре 3 или 4 раза в час. Чтобы более сильная личность в каждой паре не доминировала в сеансе.

Совет 6: Используйте отработанные примеры с помеченными подцелями

Обучение программированию включает в себя изучение синтаксиса и семантики языка программирования. Но также включает в себя изучение того. Как создавать программы. Хорошим способом руководства студентами при построении программ является использование отработанных примеров: пошаговых руководств. Показывающих. Как решить существующую проблему.

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

Маргулие и Моррисон и др. [19-21] показали. Что учащиеся лучше работают. Когда отработанные примеры разбиты на шаги (или подцели). Которым даны имена (или метки)—пример приведен в Коде 2. Метки подцелей обеспечивают структуру. Которая позволяет учащимся видеть сходство между проблемами кодирования и более эффективно общаться со своими сверстниками и преподавателями. Затем учащиеся могут применять ярлыки к будущим задачам. Которые они пытаются выполнить самостоятельно.

Совет 7: Придерживайтесь одного языка

Принцип, который применим во всех областях образования. Заключается в том. Что перенос приходит только с овладением [22]. Поэтому курсы должны придерживаться одного языка до тех пор. Пока учащиеся не продвинутся достаточно далеко с ним. Чтобы быть в состоянии отличить лес от деревьев. В то время как опытный программист может. Например, взять то. Что он знает о циклах и вызовах функций на одном языке. И повторно использовать это понимание в языке с другим синтаксисом или семантикой. Новичок еще не знает. Какие элементы его знаний являются центральными. А какие случайными. Попытка форсировать перенос слишком рано—например. Заставить их переключиться с Python на JavaScript. Чтобы пройти курс веб—программирования в самом начале обучения. — приведет к путанице учащихся и подорвет их уверенность.

Совет 8: Используйте аутентичные задачи

Guzdial et al. оказалось. Что манипулирование учащимися изображениями. Аудио и видео в своих ранних заданиях по программированию увеличило удержание в 2 смыслах: учащиеся запомнили больше материала при повторном тестировании после задержки и с большей вероятностью оставались в вычислительных программах [23]. Это конкретный пример более широкого наблюдения: учащиеся находят аутентичные задачи более привлекательными. Чем абстрактные примеры.

Классический вопрос в компьютерном (и математическом) образовании заключается в том. Лучше ли решать задачи с контекстом (например. Найти самый высокий балл студента) или без него (например. Найти максимум списка чисел). Bouvier et al. [24] исследовали это с помощью многовузовского исследования и не обнаружили никакой разницы между ними. Они предполагают, что. Поскольку это не имеет никакого значения. Другие соображения (например. Мотивация) должны быть приоритетными.

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

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

Совет 9: Помните. Что новички не являются экспертами

Этот принцип тавтологичен. Но его легко забыть. Новички программируют иначе. Чем эксперты [26], и нуждаются в других подходах или инструментах. Если вы попросите профессионального программиста повторить список целых чисел и получить среднее значение. Он может написать код в течение нескольких секунд. Используя сохраненные знания о точном требуемом шаблоне. Новички будут подходить к этой проблеме совершенно по-разному: им нужно запомнить синтаксис для разных частей, знать. Как перебирать список, знать. Как использовать переменную аккумулятора и так далее.

Новичкам, возможно. Придется потратить время на обдумывание алгоритма на бумаге (то. Что экспертам-программистам редко нужно. Так как они обычно запоминали наиболее распространенные алгоритмические шаблоны). Им может потребоваться построить примеры в управляемых шагах. Они могут бороться. Чтобы отладить. Отладка обычно включает в себя противопоставление того. Что происходит, тому. Что должно происходить. Но понимание новичком того. Что должно происходить. Обычно хрупко.

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

Совет 10: Не просто кодируйте

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

Например, все большее число педагогов включают проблемы Парсонса в свой педагогический репертуар [20, 27]. Вместо того чтобы писать программы с нуля. Учащиеся получают строки кода. Необходимые для решения задачи. Но в беспорядочном порядке. Переупорядочение их для правильного решения задачи позволяет им сосредоточиться на освоении потока управления. Не тратя умственную энергию на вспоминание синтаксиса или специфики библиотечных функций. Они также нравятся учащимся; Ericson et al. [28] обнаружили. Что учащиеся с большей вероятностью попытаются решить проблемы Парсонса. Чем соседние вопросы с множественным выбором в электронной книге.

Вывод

10 советов, представленных здесь. Подкреплены научными исследованиями. Как и любое исследование с участием людей. Исследования компьютерного образования обязательно должны быть ограждены квалификаторами. Тем не менее. Мы знаем очень много и узнаем больше с каждым годом. Такие места. Как SIGCSE (Технический симпозиум по компьютерному образованию, http://sigcse.org/), ITiCSE (Конференция по инновациям и технологиям в образовании в области компьютерных наук, http://iticse.acm.org/), и ICER (International Computing Education Research Conference, https://icer.hosting.acm.org) представить растущее число строгих. Глубоких исследований с немедленным практическим применением. Будущая работа может опрокинуть или квалифицировать некоторые из наших 10 советов. Но они образуют прочную основу для любых образовательных усилий в меру наших текущих знаний.

Мы предлагаем вам последнее замечание: не забывайте о человеческом элементе. У программистов есть репутация тех. Кто с презрением относится к определенным инструментам программирования (например. Относится с презрением к электронным таблицам) или привратников (например. Утверждает. Что вы не можете научиться программированию. Если не начинали в молодости). Если вы учите кого-то программировать, последнее. Что вы хотите сделать. Это заставить его почувствовать. Что он не может добиться успеха или что любой существующий навык. Которым он обладает (независимо от того. Когда и как он приобрел). Бесполезен. Заставьте своих учеников почувствовать. Что они могут быть программистами. И они вполне могут ими стать.

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

for (int i = 1; i) {

    

        System.out.println(

    }

}

Сколько раз вышеприведенный код напечатает слово

а) 10

б) 5

в) 4

г) 3

Код 2. Пример маркировки подцелей

    Обычные Материалы

    1. Нажмите на кнопку

    2. Перетащите a. Когда акселерометр sensor1.Блок изменения ускорения

    3. Нажмите на кнопку

    4. Затяните вызов cowbellSound. Играйте и подключайте его после того. Как акселерометры sensor1.Ускорение изменено

    Подцельные Маркированные Материалы

    Обрабатывать события из моих блоков

    1. Нажмите на кнопку

    2. Перетащите a. Когда акселерометр sensor1.Блок изменения ускорения

    Установить вывод из моих блоков

    3. Нажмите на кнопку

    4. Затяните вызов cowbellSound. Играйте и подключайте его после того. Как акселерометры sensor1.Ускорение изменено

Подтверждения

Мы благодарны Барбаре Эриксон и Лео Портеру за их комментарии по проекту этой статьи и Лорен Маргулие за предоставленный пример. Используемый в Коде 2.

Рекомендации

  1. 1. Майер РЕ. Преподавание предмета. Ежегодное обозрение психологии. 2004;55(1):715-744. doi: 10.1146/annurev.psych.55.082602.133124. pmid:14744232
  2. 2. Lewis C. CS Teaching Tips; 2017. http://csteachingtips.org/.
  3. 3. Гуздял М. Топ-10 Мифов О Преподавании Информатики; 2015. https://cacm.acm.org/blogs/blog-cacm/189498-top-10-myths-about-teaching-computer-science/fulltext
  4. 4. Patitsas E. Berlin J. Craig M. Easterbrook S. Доказательства Того. Что Оценки По Информатике Не Являются Бимодальными. В кн.: Материалы конференции ACM 2016 года по международным исследованиям в области компьютерного образования. АЙСЕР ’16. Нью-Йорк, Нью-Йорк, США: ACM; 2016. p. 113-121. Доступно по адресу: http://doi.acm.org/10.1145/2960310.2960312
  5. 5. Альвидрез Дж.. Вайнштейн РС. Раннее восприятие учителя и более поздние академические достижения учащихся. Журнал педагогической психологии. 1999;91(4):731–746.
  6. 6. Брофи Дж. Исследование самоисполняющегося пророчества и ожиданий учителя. Журнал педагогической психологии. 1983;75(5):631-661.
  7. 7. Юссим Л., Экклз Дж.Социальное восприятие. Социальные стереотипы и ожидания учителей: точность и поиск мощного самореализующегося пророчества. Успехи экспериментальной социальной психологии, 1996;28:281-388.
  8. 8. Мазур Е. Инструкция сверстника: Руководство пользователя. Прентис-Холл, 1996.
  9. 9. Porter L. Bailey Lee C. Simon B. Cutts Q. Zingaro D. Experience Report: A Multi-classroom Report on the Value of Peer Instruction. В кн.: Материалы 16-й ежегодной Совместной конференции по инновациям и технологиям в образовании в области компьютерных наук; 2011. С. 138-142.
  10. 10. Porter L, Guzdial M. McDowell C. Simon B. Success in introduction programming: What works? Сообщения АСМ. 2013;56(8).
  11. 11. Совет NR. Охват студентов: Что говорят Исследования Об эффективном обучении в бакалавриате естественных и технических наук. Вашингтон, округ Колумбия: The National Academies Press; 2015. Доступно по адресу: https://www.nap.edu/catalog/18687/reaching-students-what-research-says-about-effective-instruction-in-undergraduate
  12. 12. Рубин М. Дж. Эффективность живого кодирования для обучения вводному программированию. В кн.: Материалы 44-го технического симпозиума ACM по образованию в области компьютерных наук. SIGCSE ’13. Нью-Йорк, Нью-Йорк, США: ACM; 2013. p. 651-656. Доступно по адресу: http://doi.acm.org/10.1145/2445196.2445388
  13. 13. Баркер Л. Дж.. Гарвин-Доксас К.. Робертс Э. Чему могут научить информатику изящные искусства? In: Proceedings of the 36th SIGCSE Technical Symposium on Computer Science Education. SIGCSE ’05. Нью — Йорк, Нью-Йорк, США: ACM; 2005. Стр. 421-425. Доступно по адресу: http://doi.acm.org/10.1145/1047344.1047482
  14. 14. Уиллингэм Д. Т. Почему студенты не любят школу?: Ученый-когнитивист отвечает на вопросы о том. Как работает ум и что это значит для аудитории. John Wiley & Sons; 2009.
  15. 15. Крауч С, Фаген А. П., Каллан Дж. П., Мазур Э. Классные демонстрации: инструменты обучения или развлечения? Американский физический журнал. 2004;72(6):835–838. doi: 10.1119/1.1707018.
  16. 16. Миллер К, Ласри Н. Чу К. Мазур Э. Роль демонстраций лекций по физике в концептуальном обучении. Phys Rev ST Phys Education Res. 2013;9:020113. doi: 10.1103/PhysRevSTPER.9.020113.
  17. 17. Hannay JE, Dybå T. Arisholm E. Sjøberg DIK. Эффективность парного программирования: метаанализ. Информационные и программные технологии. 2009;51(7).
  18. 18. McDowell C, Werner L. Bullock HE. Fernald J. Парное программирование Улучшает удержание студентов. Уверенность в себе и качество программы. Коммуникации ACM. 2006;49(8):90-95.
  19. 19. Моррисон Б. Б.. Маргулие ЛЕ. Гуздиаль М. Подцели. Контекст и отработанные примеры в обучении решению вычислительных задач. В кн.: Материалы Одиннадцатой ежегодной Международной конференции по международным исследованиям в области компьютерного образования. АЙСЕР ’15. Нью-Йорк, Нью-Йорк, США: ACM; 2015. Стр. 21-29. Доступно по адресу: http://doi.acm.org/10.1145/2787622.2787733
  20. 20. Моррисон Б. Б.. Маргулие Л. Е.. Эриксон Б.. Гуздиал М. Подцели Помогают Студентам Решать Задачи Парсонса. In: Proceedings of the 47th ACM Technical Symposium on Computing Science Education. SIGCSE ’16. Нью — Йорк, Нью-Йорк, США: ACM; 2016. Стр. 42-47. Доступно по адресу: http://doi.acm.org/10.1145/2839509.2844617
  21. 21. Margulieux LE. Guzdial M. Catrambone R. Подцельный Учебный материал Улучшает производительность и передачу при обучении разработке мобильных приложений. В кн.: Материалы Девятой ежегодной Международной конференции по международным исследованиям в области компьютерного образования; 2012. С. 71-78.
  22. 22. Гик МЛ, Холиоак Кей-Джей. Когнитивная основа передачи знаний. In: Cormier SM, Hagman JD, editors. Передача знаний: Современные исследования и приложения. Академическая пресса; 1987.
  23. 23. Гуздял М. Исследование гипотез о вычислении сред. В кн.: Материалы Девятой ежегодной Международной конференции ACM по международным исследованиям в области компьютерного образования. ICER ’13; 2013. С. 19-26.
  24. 24. Bouvier D, Lovellette E, Matta J. Alshaigy B, Becker BA. Craig M и др. Начинающие программисты и эффект описания проблемы. In: Proceedings of the 2016 ITiCSE Working Group Reports. ITiCSE ’16. Нью-Йорк, Нью-Йорк, США: ACM; 2016. p. 103-118. Доступно по адресу: http://doi.acm.org/10.1145/3024906.3024912
  25. 25. Репеннинг А. Выход за рамки синтаксиса: уроки 20-летнего программирования блоков в AgentSheets. Journal of Visual Languages and Sentient Systems. 2017;3. doi: 10.18293/VLSS2017-010.
  26. 26. Parnin C, Siegmund J. Peitek N. О природе программистской экспертизы. In: Psychology of Programming Interest Group Workshop 2017; 2017.
  27. 27. Parsons D, Haden P. Parsons Programming Puzzles: Веселый и эффективный инструмент обучения для первых курсов программирования. В кн.: Труды 8-й Австралийской конференции по компьютерному образованию—Том 52. ЭЙС ’06. Darlinghurst, Australia, Australia: Australian Computer Society. Inc.; 2006. p. 157-163. Доступно по адресу: http://dl.acm.org/citation.cfm?id=1151869.1151890
  28. 28. Эриксон Б., Мур С.. Моррисон Б.. Гуздиал М. Юзабилити и использование интерактивных функций в онлайн-книге для преподавателей КС. В: Труды Семинара по начальному и среднему компьютерному образованию. WiPSCE ’15. Нью — Йорк, Нью-Йорк, США: ACM; 2015. Стр. 111-120. Доступно по адресу: http://doi.acm.org/10.1145/2818314.2818335