Рассматриваются вопросы формирования профессиональной ИКТ-компетентности будущих учителей информатики и IT-специалистов при изучении программирования. Представлена методика организации эффективного обучения программированию на основе положений проблемно-семиотического подхода, современных IT-технологий и системы упражнений в рамках STEM-образования. Приведены результаты эксперимента по внедрению описанной методики на базе кафедры ИИТиМОИ ЮУрГГПУ (г. Челябинск).
The Formation of Professional ICT-Competence in Teaching Programming to Future Teachers of Informatics and IT-Experts.pdf В настоящее время наблюдается тенденция перехода к информационному обществу. Информатизация проникает во все области профессиональной деятельности. В 2017 г. Правительством Российской Федерации при поддержке успешных российских высокотехнологических компаний была разработана и утверждена программа по созданию условий для перехода страны к цифровой экономике [1]. Большинство организационных структур используют достижения информационных технологий (ИТ, IT) для обеспечения бесперебойной работы департаментов своих подразделений (кадры, финансы, производство и безопасность), которые могут находиться на другом конце света. Активное применение средств информационно-коммуникационных технологий (ИКТ) ведет к существенному повышению эффективности работы организаций. Сфера образования не является исключением. Еще в 2004 г. началась реализация масштабного федерального проекта «Информатизация системы образования», благодаря которому сегодня персональные компьютеры с доступом в интернет стали одним из основных средств осуществления образовательного процесса. Зарождается новая система подготовки кадров для четвертой промышленной революции, которая получила название «Индустрия 4.0». «Индустрия 4.0» - это новая парадигма глобального внедрения киберфизических систем и инструментов в производственные и социальные процессы, быт, досуг, трудовые отношения. С высокой вероятностью такое внедрение повлечет за собой коренные изменения в экономике, промышленности и человеческом социуме в целом. Иными словами, это концепция массового использования киберфизических систем для обеспечения нужд человеческого общества. Реализация концепций данной парадигмы в рамках перехода к цифровой экономике и информационному обществу ставит перед существующей системой образования задачу постоянной подготовки высококвалифицированных специалистов в области IT, в частности программистов. Проблема подготовки программистов существует с середины XX в. Причиной ее возникновения являлась автоматизация и механизация производства и, как следствие, острая нехватка операторов персональных компьютеров (ПК) [2. С. 13-18]. Сегодня обучение программированию является серьезным вызовом, продиктованным нуждами IT-индустрии, испытывающей нехватку профессионалов, обладающих необходимыми знаниями, навыками и опытом. Основная проблема заключается в сопоставимости срока жизненного цикла технологии со сроком обучения специалиста. Угроза утраты актуальности полученных в ходе обучения знаний и навыков на момент окончания учебного заведения становится все более ощутимой. Так, образовательный процесс должен постоянно перестраиваться с точки зрения актуализации учебных программ и переосмысления традиционных подходов к обучению в соответствии с текущими требованиями к специалистам сферы информационных технологий [3. С. 14-19]. Подготовка будущих учителей и IT-специалистов невозможна без высококвалифицированных преподавателей компьютерных наук, обладающих знаниями и навыками применения средств ИКТ в образовательном процессе. Использование достижений информационно-коммуникационных технологий в качестве эффективного средства обучения требует от преподавателя дополнительных знаний и умений - ИКТ-компетентности. Под ИКТ-компетентностью понимают уверенное владение всеми составляющими навыками ИКТ-грамотности для решения задач учебной деятельности [4]. В свою очередь, ИКТ-грамотность - это использование цифровых технологий, инструментов коммуникации и / или сетей для получения доступа к информации, управления ею, ее интеграции, оценки и создания для функционирования в современном обществе [5]. Выделяют следующие уровни овладения ИКТ-компетентностями: 1) базовый - накапливаются базовые знания, умения и владение, необходимые для знакомства с компьютерной грамотностью (минимальное применение ИКТ-средств); 2) технологический - информационно-коммуникационные технологии становятся инструментом в осуществлении прикладной деятельности, например, при оценке качества, средств и форм представления в глобальной сети Интернет программно-технологического и информационного обеспечения; 3) профессиональный - способность преподавателя решать свои профессиональные задачи с использованием ИКТ [6. С. 189-191]. Очевидно, что овладение ИКТ-компетентностями на профессиональном уровне должно стать одним из приоритетных направлений при подготовке будущих преподавателей информатики. Однако одно лишь наличие пользовательских навыков работы с персональным компьютером и мультимедиа-средствами для преподавателя на сегодняшний день не является достаточным. Профессиональную ИКТкомпетентность в соответствующей области профессиональной деятельности (в данном случае в преподавании компьютерных наук) отражает предметно-педагогическая ИКТ-компетентность. В профессиональном стандарте педагога один из элементов компетентности предметно-педагогического компонента обозначен следующим образом: «Конструирование виртуальных и реальных устройств с цифровым управлением (технология, информатика)» [7]. Очевидно, что для создания устройств с цифровым управлением преподавателю необходимы навыки программирования. Более того, перед системой образования на сегодняшний день стоит задача подготовки высококвалифицированных программистов, что означает необходимость формирования у студентов соответствующих специальных компетенций. Учитель должен владеть этими компетенциями, в противном случае подготовка студентов к будущей профессиональной деятельности разработчиков будет носить поверхностный характер, что приведет к существенному разрыву между содержанием обучения и реальными требованиями, предъявляемыми к программисту на рабочем месте. Таким образом, целесообразно включить в понятие «предметно-педагогическая ИКТ-компетентность» владение профессиональными компетенциями, формируемыми при углубленном изучении программирования, которое советский ученый, пионер теоретического и системного программирования, создатель Сибирской школы информатики Андрей Петрович Ершов определил как вторую грамотность [8]. В свою очередь, известнейший теоретик в области разработки языков программирования, профессор компьютерных наук Швейцарской технической школы и создатель языков программирования Паскаль, Модула-2 и Оберон Никлаус Вирт в своей приветственной речи на открытии Международной конференции по преподаванию информатики ITiCSE высказал идею о том, что программирование является, возможно, самой важной дисциплиной постиндустриальной эры. Изучение программирования на углубленном уровне дает будущему преподавателю возможность использования языков программирования как инструмента для решения своих профессиональных задач, например, для организации личного информационного пространства и разработки электронного учебно-методического комплекса. Необходимым условием для этого является сформирован-ность ряда специальных компетенций у будущих учителей информатики, основными из которых являются: 1) СК-2: способность использовать математический аппарат, методологию программирования и современные компьютерные технологии для решения практических задач получения, хранения, обработки и передачи информации; 2) СК-5: способность использовать современные информационные и коммуникационные технологии для создания, формирования и администрирования электронных образовательных ресурсов [9]. Развитие данных компетенций происходит в процессе изучения таких дисциплин, как: 1) информационные системы; 2) основы математической обработки информации; 3) программирование; 4) web-дизайн и др. Федеральные государственные образовательные стандарты высшего образования по направлениям подготовки «Информационные системы и технологии» и «Педагогическое образование» определяют, что выпускник обязан владеть знаниями, умениями и практическим опытом в области объектно-ориентированного, логического и web-программирования [10. С. 45-48]. Такой опыт позволяет будущему преподавателю лучше разбираться в тонкостях реального процесса разработки программных продуктов и, соответственно, качественнее обучать программированию студентов (будущих IT-специ-алистов). Более того, учитель, занятый параллельно практикой в области программирования, безусловно, владеет наивысшим уровнем ИКТ-компетентности. Однако сформировать необходимый для профессионального программирования уровень знаний и навыков при подготовке преподавателя информатики очень непросто. Проблема заключается в противоречиях между существующими образовательными программами, на основе которых построено обучение программированию, и реальными задачами, которые ставятся перед специалистами по программированию, имеющими профессиональную занятость в современной IT-индустрии. Для устранения этих противоречий необходимо провести переосмысление существующих методик обучения программированию с точки зрения отражения в содержании обучения аспектов реального процесса создания программного продукта и действий, выполняемых профессиональными программистами в ходе этого процесса. Существует множество различных методик обучения программированию. Высшие учебные заведения аккумулируют многолетний опыт ведения учебной деятельности для разработки эффективных образовательных программ. Например, в основе подготовки профессиональных программистов на базе Томского государственного университета лежат следующие основные принципы: фундаментальность (ориентированность на концептуальные долговременные закономерности), профессионализм (развитие определенного подхода к решению профессиональных задач), широта образовательного профиля (расширение набора специализаций с учетом нюансов местного рынка труда), а также развитие общего культурного уровня (общая эрудиция, способность к эффективной коммуникации и т.д.) [11. С. 8-16]. Помимо общих подходов к обучению программированию, в достаточной степени используются инновационные, заключающиеся в применении различных технологий. Так, обучение программированию в Томском государственном педагогическом университете проходит с использование системы Ejudge [12. С. 109-111]. Данное средство позволяет автоматически проверять корректность разработанных программ. Программное обеспечение устанавливается на сервере и имеет web-интерфейс, позволяющий работать с системой из любого места с доступом в интернет. В Ejudge встроены компиляторы для большинства популярных языков программирования. Также имеется возможность задавать предельные значения на время работы программы и использовать память, что позволяет наряду с правильностью выходных данных проверить эффективность программы. Методика обучения программированию базируется на научном подходе. В настоящее время в обучении программированию применяются такие подходы, как системный, деятельностный, когнитивный, проблемный, семиотический и др. Положения каждого из перечисленных подходов частично или полностью находят свое отражение при построении учебного процесса, однако проблемный и семиотический подходы в силу ряда причин могут быть признаны основополагающими [13. С. 216-217]. Суть проблемного подхода заключается в решении неких «проблемных» ситуаций (задач), т.е. данный подход в полной мере опирается на практическую составляющую. Безусловно, в процессе профессиональной разработки программного обеспечения ставится некая общая цель, для достижения которой формулируются задачи, декомпозирующиеся, в свою очередь, на подзадачи. Соответственно, суть деятельности специалиста-разработчика сводится к решению этих подзадач. Применение семиотического подхода продиктовано знаковой природой языков программирования. Без знания синтаксиса языка программирования и понимания его семантики не получится написать даже простейшую программу. Суть применения семиотического подхода сводится к развитию у обучающихся специальных знаково-символических действий (замещение, кодирование, схематизация и моделирование), необходимых как для будущего специалиста в области разработки программного обеспечения, так и для будущего учителя. Умение выделять алгоритмические структуры из рассуждений в формулировках задач (детализировать процесс перевода алгоритма решения с естественного языка на формальный язык программирования и выделять его подэтапы) также является определяющим в процессе программирования. Важнейшим условием, влияющим на качество обучения программированию, является раскрытие реального процесса разработки программного обеспечения. Процесс программирования не может быть раскрыт только с помощью статичных обучающих материалов (учебники, слайд-презентации, конспекты лекций и др.). Они могут быть полезны во время представления законченной программы, но не для демонстрации динамического процесса ее разработки. Для этой цели лучше всего подходят видеозаписи работы профессионального программиста в ходе решения некоторой задачи (захват изображения на экране монитора с комментариями). Просматривая такие видеозаписи, обучающиеся видят, как опытный специалист среди возможных методов решения задачи выбирает оптимальный, обращается к онлайн-докумен-тации, осуществляет отладку и оптимизацию программы для получения эффективного и хорошо читаемого программного решения. Для создания видеозаписей могут быть использованы такие программы, как FlashBack Express или OBS Studio. Они не имеют ограничений по длительности записи и не накладывают на видео в качестве водяного знака свой логотип. Также имеются встроенные средства обработки видео. Обучение с использованием видеозаписей целесообразно осуществлять через реализацию такой модели смешанного обучения, как «перевернутый класс». Данная модель позволяет минимизировать объяснение материала непосредственно на аудиторном занятии. Студенты, используя персональные электронные устройства, получают доступ к учебным видеозаписям в любом месте и в удобное им время. Таким образом, на занятиях в компьютерных лабораториях появляется возможность для лучшей реализации интерактивных форм обучения, например для ведения проектной деятельности [14]. В настоящее время существуют специализированные сервисы для создания, хранения, обработки учебно-методических материалов, адаптированных к обучению по технологии «перевернутых классов», например Panopto Video Platform. Данный сервис позволяет не только создавать видео с помощью различных устройств (имеются приложения как для настольных ОС, так и для мобильных устройств), но и добавлять к нему интерактивные элементы, создавать опросы с разными типами ответов, совмещать видео с изображениями или графиками в режиме разделения экрана, генерировать отчеты для руководителей процесса обучения. Аналогичный функционал может быть достигнут с использованием бесплатного ПО для захвата экрана, а видео могут быть размещены на бесплатном видеохостинге (специализированные сервисы предоставляют решения «все-в-одном»). С помощью видеозаписей, применяемых в рамках курса «Разработка web-портала», наглядно демонстрируются: 1) приемы создания адаптивной верстки на основе Bootstrap 3 (фреймворка для разработки адаптивных и мобильных web-проектов); 2) использование менеджера пакетов (утилиты командной строки, позволяющей быстро сформировать структуру проекта со всеми необходимыми файлами); 3) настройка редактора кода для быстрой и комфортной разработки; 4) разработка компонентов на PHP для формирования содержимого web-страницы; 5) написание кода на JavaScript/jQuery для манипулирования элементами страницы и др. Обучение программированию целесообразно осуществлять в соответствии с трендами современного технического образования. Одним из ведущих образовательных направлений в настоящее время является Science, Technology, Economics, Mathematics (STEM), которое основывается на идее обучения четырем специальным дисциплинам: науке, технологии, инженерному делу и математике (в междисциплинарном и прикладном подходе). Принципиальное отличие STEM от традиционных образовательных подходов заключается в наличии интегрированной среды обучения, которая демонстрирует студентам применение научных методов в повседневной жизни, развивает аналитическое мышление и фокусируется на решении задач, имеющих практическую значимость. На основе инновационных подходов парадигмы STEM возможно провести переосмысление традиционных подходов к обучению программированию: подготовка будущих специалистов по разработке программного обеспечения должна иметь акцент на активном (эмпирическом) обучении, развитии критического мышления и навыка работы в команде, а также на решении прикладных задач. Каждая категория STEM может быть задействована при обучении программированию [15]. Методика обучения программированию должна базироваться на научном подходе («Наука»), и таковым может являться описанный ранее проблемно-семиотический подход. Содержание обучения должно включать в себя освоение современных технологий, используемых при разработке программного обеспечения («Технология»). Таковыми могут являться: новые языки программирования, популярные библиотеки (фреймвор-ки), новые подходы к проектированию программных продуктов и др. Для запоминания основных конструкций языка программирования хорошо подходит решение задач на реализацию, например, математических моделей неких физических процессов или же просто математических задач. Кроме того, применение знаний из математики происходит при оценке сложности алгоритмов и способов их оптимизации («Математика»). Разработка программного обеспечения сама по себе является инженерной деятельностью (профессия «инженер-программист», «инженерное дело»). Исследование эффективности методики обучения программированию, построенной на основе проблемно-семиотического подхода с использованием технологии «перевернутых классов» и системы упражнений, согласованной с категориями STEM, проводилось при внедрении в курс «Разработка web-портала средствами PHP» на базе кафедры информатики информационных технологий и методики обучения информатике. Обучающиеся - студенты 4-го курса (будущие преподаватели информатики) физико-математического факультета Южно-Уральского государственного гуманитарно-педагогического университета (2017-2018 уч. г.). Для качественной оценки применялся подход, при котором основным критерием измерения служит характеристика продвижения на более высокие уровни развития профессиональной ИКТ-компетентности, включающей владение специальными компетенциями, которые, в свою очередь, декомпозированы на знания, умения и владение (табл. 1). Каждый следующий уровень включает в себя содержание всех предыдущих уровней. Декомпозиция уровней разв! Таблица 1 я специальных компетенций Компетенция Уровень I Уровень II Уровень III Профессиональная ИКТ-компетентность СК-5: способность использовать современные информационные и коммуникационные технологии для создания, формирования и администрирования электронных образовательных ресурсов Знать понятия проектирования ИС и проектирования ПО Уметь формулировать алгоритм решения поставленной задачи Владеть методами описания структуры программы с помощью блок-схемы Знать основные подходы к разработке ПО (функциональный, объектно-ориентированный) Уметь составлять проект решения задачи и выбирать наиболее оптимальный подход, создавать макет web-сайта с использованием Adobe Photoshop Владеть методами сборки системы из готовых модулей Знать процессы жизненного цикла ПО Уметь составлять прототип web-сайта с использованием Axure RP Владеть основными технологиями проектирования ПО СК-2: способность использовать математический аппарат, методологию программирования и современные компьютерные технологии для решения практических задач получения, хранения, обработки и передачи информации Знать базовые концепции и технологии программирования, основные конструкции одного-двух языков программирования, основы языка разметки HTML Уметь решать задачи пониженного уровня, корректировать структуру программы Владеть основными средствами IDE Знать основные веб-технологии, основные структуры / конструкции PHP / JS / jQuery Уметь решать задачи базового уровня, корректировать существующий функционал в соответствии с требованиями Владеть основными положительными практиками при написании кода, основными средствами отладки программ Знать принципы работы с БД с помощью API Уметь решать задачи продвинутого уровня, писать код в соответствии с заданными стандартами Владеть основными приемами написания отказоустойчивого кода, приемами разработки программных модулей и шаблонов для CMF Wordpress Выделение уровней позволит формализовать выбор критериев для оценки сформированное™ выбранных компетенций. Определение уровня знаний и умений конкретного студента целесообразно проводить с помощью качественного анализа результатов выполнения лабораторных работ и индивидуальных заданий, а также индивидуального опроса. Уровень I. Студент в состоянии сформулировать, описать и реализовать алгоритм решения задачи пониженного уровня. Знание теории поверхностное, как и подход к выполнению практических заданий. Присутствуют в незначительной степени или отсутствуют вовсе следующие составляющие: соблюдение стандартов написания программного кода, тенденция к исправлению ошибок, применение положительных практик. На первом уровне развития специальных компетенций зачастую находится большинство студентов, проходящих обучение по специальностям, подразумевающим изучение программирования, но не ориентированным на подготовку будущих разработчиков (выпускники-специалисты с навыками программирования). К таким профилям относятся «Информатика-экономика», «Информационные технологии в образовании» и др. Развить знания и умения для перехода с первого уровня на второй помогает реализация положений проблемно-семиотического подхода и использование системы упражнений в рамках STEM-образования. Выполнение специально подобранных практических заданий позволяет устранить пробелы в знании синтаксиса и понимании семантики изучаемого языка программирования, а также развить умение формулировать алгоритм решения задачи на естественном языке и переводить его на формальный язык, понятный вычислительной машине. Уровень II. Студент в состоянии сформулировать, описать и реализовать алгоритм решения задачи базового уровня. Хорошее знание теории веб-разработки, в том числе основных особенностей используемых языков программирования. Обучающийся способен быстро внести изменения в программный код для новых условий функционирования программы. Решение практических задач обдуманно, рассмотрены различные подходы к реализации. Задания выполнены добротно, с применением основных положительных практик при написании кода. Для перехода на третий уровень развития специальных компетенций целесообразно использовать в обучении видеозаписи работы профессиональных программистов в ходе решения некоторых задач. Данный вид обучающего материала помогает раскрыть студентам особенности реального процесса разработки, показать основные трудовые действия на рабочем месте, минимизируя тем самым разрыв между учебным и профессиональным программированием. Видеозаписи также служат средством мотивации обучающихся, так как на них показано, как профессионалы прибегают к «шпаргалкам» в виде онлайн-документации, допускают и исправляют ошибки, многократно пересматривают уже написанный код с целью оптимизации. Дополнительная реализация обучения по методике «перевернутых классов» позволяет студентам изучать видеозаписи в удобном темпе, пересматривая их столько раз, сколько необходимо для полного понимания, а на аудиторных занятиях больше времени посвящать практической работе под руководством преподавателя. Уровень III. Студент в состоянии сформулировать, описать и реализовать алгоритм решения задачи продвинутого уровня. Досконально знает теорию веб-разработки, самостоятельно обращается к общедоступной документации для языков программирования. В состоянии использовать в разработке не только нативные средства, но и различные библиотеки. Программные решения являются отказоустойчивыми и эффективными с точки зрения использования ресурсов сервера, вводимые пользователем данные проходят проверку безопасности. На наш взгляд, нахождение на третьем уровне развития специальных компетенций свидетельствует о достаточности имеющихся у обучающегося знаний и умений для того, чтобы считаться разработчиком начального уровня. В данном контексте это означает сформированность профессиональной ИКТ-компетентности и возможность для будущего преподавателя более качественно обучать программированию студентов, а также разрабатывать собственные проекты в рамках профессиональной самореализации. Для апробации методики обучения программированию на основе описанных ранее условий были сформированы две группы студентов: контрольная (22 человека) и экспериментальная (18 человек). Контрольная группа студентов проходила традиционное обучение, а экспериментальная - на основе новой методики обучения программированию. Всего в эксперименте на этом этапе приняли участие 40 человек. Данные, полученные в ходе эксперимента, представлены в табл. 2. Таблица 2 Результаты апробации новой методики обучения программированию Уровень развития Количество студентов знании и умении Экспериментальная Контрольная группа группа Уровень I 3 (17%) 8 (36,4%) Уровень II 9 (50%) 14 (63,6%) Уровень III 6 (33%) 0 Итого 18 студентов Итого 22 студента Достижение студентами третьего уровня знаний и умений может свидетельствовать о повысившейся эффективности обучения. Такой уровень был полностью или частично достигнут 6 студентами (33%) экспериментальной группы. 9 студентов (50%) достигли второго уровня компетенций, а 3 (17%) остались на первом. Более того, у абсолютного большинства студентов экспериментальной группы осталось положительное впечатление от прохождения курса. Было отмечено улучшение успеваемости и увеличение уровня мотивации к дальнейшему изучению программирования. Большинство студентов контрольной группы, проходящих обучение по традиционной программе, при выполнении итоговых заданий показали второй уровень знаний и умений (14 человек / 63,6%), остальные (8 человек / 36,4%) выполняли задания в соответствии с критериями первого уровня. Для установления значимости различий развития профессиональной ИКТ-компетентности в экспериментальной и контрольной группах использовался критерий х2 (хи-квадрат), применяемый для сравнения распределений объектов двух совокупностей на основе измерений по шкале наименований в двух независимых выборках. При этом была введена шкала наименований, соответствующая трем ранее описанным уровням развития специальных компетенций (табл. 3). °2/ " «2 • 01i ) («1 1 набл набл «1 • «2 Ткрит). Найдем значение статистики Выполняется условие Тнабл > Ткрит (9, 050186 > 5,99), следовательно, различие не является случайным. Отмечается более высокий уровень развития специальных компетенций у студентов контрольной группы. Полученные результаты свидетельствуют о верности выдвинутой гипотезы. Таким образом, эффективному обучению программированию способствует соблюдение следующих условий: применение положений проблемно-семиотического подхода, современных IT-технологий и использование системы упражнений, построенной в соответствии с категориями STEM. Учитель информатики, приобретший в свое время высокий уровень знаний и навыков для ведения практики в программировании, имеет наивысший уровень овладения ИКТ-компетентностями (профессиональный) и способен не только разрабатывать качественные авторские учебно-методические материалы и создать в рамках профессиональной самореализации, например, собственный сайт, но и более качественно обучать программированию. Значит, обучающиеся будут иметь высокую мотивацию для выбора в дальнейшем специальностей, связанных с информационными технологиями, что крайне необходимо для IT-индустрии в рамках перехода к цифровой экономике и информационному обществу.
Распоряжение Правительства Российской Федерации № 1632-р от 28 июля 2017 г. об утверждении программы «Цифровая экономика Российской Федерации». М., 2017. URL: http://static.government.ru/media/files/9gFM4FHj4PsB79I5v7yLVuPgu4bvR7M0.pdf (дата обращения: 30.04.2019).
Shvartzburd S.I. Our Experience With Ninth Graders Qualifying as Computer Programming Assistants // Soviet Education. 1961. Vol. 3. P. 13-18.
Поднебесова Г. Б. Система профессиональной подготовки будущих учителей информатики // Современная высшая школа : инновацион ный аспект. 2012. № 2. С. 14-19.
Бурмакина В.Ф., Фалина И.Н. ИКТ-компетентность учащихся. URL: http://www.sitos.mesi.ru/ (дата обращения: 04.08.2018).
Захарова И.Г. Информационные технологии в образовании : учеб. пособие. М. : Издательский центр «Академия», 2003. 192 с.
Поднебесова Г.Б. Формирование профессиональной ИКТ-компетентности педагогических кадров // Информатизация образования: исто рия, состояние, перспективы : сб. материалов Междунар. науч.-практ. конф. Омск : Омск. гос. пед. ун-т, 2012. С. 189-191.
Приказ Минтруда России от 18.10.2013 № 544н (ред. от 05.08.2016) «Об утверждении профессионального стандарта "Педагог (педагоги ческая деятельность в сфере дошкольного, начального общего, основного общего, среднего общего образования) (воспитатель, учитель)"» // СПС КонсультантПлюс. URL: http://www.consultant.ru/document/cons_doc_LAW_155553/ (дата обращения: 30.04.2019).
Ершов А.П. Программирование - вторая грамотность // Архив академика А.П. Ершова. URL: http://ershov.iis.nsk.su/ru/second_ litera cy/article (дата обращения: 04.08.2018).
Основная профессиональная образовательная программа по направлению 44.03.05 «Педагогическое образование» (Южно-Уральский государственный гуманитарно-педагогический университет). Челябинск, 2017. URL: ftp://ftp.cspu.ru/upload/sveden/education/ 440305_P0_N0.Inf/N/00P_44.03.05_P0_N0.Inf_0_30.08.17.pdf (дата обращения: 30.04.2019).
Газейкина А.И. Обучение программированию будущего учителя информатики // Педагогическое образование в России. 2012. № 5. С. 45-48.
Гладких Б.А. История, современное состояние и проблемы подготовки специалистов по информатике в Томском государственном университете // Вестник Томского государственного университета. 2002. № 275. С. 8-16.
Горчаков Л.В., Стась А.Н., Карташов Д.В. Обучение программированию с использованием системы Ejudge // Вестник Томского государственного педагогического университета. 2017. № 9 (186). С. 109-112.
Гафуанов Я.Ю. Проблемно-семиотический подход при обучении программированию // Мир Науки, Культуры, Образования. Горно-Алтайск : МНКО, 2018. № 2. С. 216-217.
Гафуанов Я.Ю. Использование метода перевернутых классов при обучении программированию // XX Всероссийская студенческая научно-практическая конференция Нижневартовского государственного университета : сб. ст. Нижневартовск : Изд-во НВГУ, 2018.
Гафуанов Я.Ю. Реализация концепций STEM в преподавании программирования // Информатизация образования: проблемы и перспективы : сб. науч. ст. IV Всерос. науч.-практ. интернет-конф., посвящ. памяти Д.Ш. Матроса / под ред. Г.Б. Поднебесовой. Челябинск : Изд-во ЮУрГГПУ, 2018.