Training object-oriented programming of bachelor applied informatics: implementation of the model of training based on two agreed disciplines

Cover Page

Abstract


The article describes the model of teaching object-oriented programming for students of junior courses of IT specialties of higher educational institutions within the framework of two agreed disciplines, one of which is aimed at the formation of basic concepts of the object-oriented paradigm, and the second is aimed at mastering a specific object-oriented language. The peculiarities of the corresponding methodology are revealed, the choice of the visual training media Alice and Scratch is substantiated, the methodical aspects of realization of each of the two specified disciplines are described. The results of a pedagogical experiment conducted at the Crimean Engineering and Pedagogical University, which confirms the effectiveness of the proposed methodology for teaching bachelors of applied computer science, are presented.


Обучение программированию является неотъемлемой частью подготовки в области информатики и информационных технологий учащихся школ и студентов профильных специальностей вузов. Несмотря на значительный опыт, который имеется в данной сфере в нашей стране и за рубежом, актуальность такой подготовки и разработки новых подходов остается высокой, что связывается с усложнением парадигм программирования, увеличением количества языков и соответствующих им инструментальных сред. В профессиональной сфере востребовано постоянное повышение уровня подготовки специалистов, способных вести разработку все более сложных программных систем [6]. В этой связи возникает проблема, связанная с несоответствием уровня и существующих методик обучения программированию в общеобразовательной школе и вузе, а также повышением требований к специалистам и усложнением предметного содержания. Одним из вариантов решения указанной проблемы видится разработка методики обучения объектно-ориентированному программированию студентов младших курсов ИТ-специальностей вузов, предполагающая разделение содержания обучения объектно-ориентированному программированию на две части, связанные с базовыми концепциями объектно-ориентированной парадигмы, а также реализацией этих концепций в конкретных языках [7]. Такое обучение адекватно реализуется в рамках двух самостоятельных, но согласованных друг с другом дисциплин, нацеленных на обучение в области базовых концепций объектно-ориентированного программирования (основой обучения здесь могут стать визуальные учебные среды, направленные на обучение программированию), а также на изучение конкретного объектно-ориентированного языка. Соответствующая методика была разработана нами и апробирована при обучении студентов бакалавриата прикладной информатики в Крымском инженерно-педагогическом университете. В нашем случае была предложена дисциплина «Программирование для начинающих», которая выступала в качестве «поддерживающей» для изучения объектно-ориентированного языка в рамках традиционной дисциплины «Информатика и программирование» [7]. Дисциплина «Программирование для начинающих» изучается в первом семестре. Учебным планом предусмотрено проведение 36 часов аудиторных занятий, которые разделены на две равные части - занятия лекционного типа, а также лабораторные занятия. Содержанием дисциплины было предусмотрено изучение понятий объектов и классов, моделирования и структурирования цикла разработки программы, формального определения классов и их реализации, переменных и методов вызова процедур и функций, передачи параметров. Лабораторные занятия проводились в компьютерных классах, где полученные знания в области базовых концепций объектно-ориентированного программирования применялись на практике в виде разработки программ и проектов с использованием визуальных учебных сред Alice и Scratch. Alice и Scratch - это визуальные учебные среды, позволяющие рассматривать объектно-ориентированное программирование через построение и реализацию абстракций [1; 9]. Данные среды достаточно широко используются в школьном образовании при обучении основам программирования. Однако архитектура данных учебных сред позволяет вести разработку и сложных проектов, основанных на идеях объектно-ориентированного программирования [2; 5]. Представление модели в указанных средах происходит в терминах объектов и их взаимодействия, что позволяет формировать знания и базовые умения обучающихся об объектноориентированном программировании, не обращаясь к разработке программ с использованием профессиональных языков. Студенты, таким образом, получают возможность изучить базовые концепции объектно-ориентированного программирования еще до изучения конкретного языка. Дисциплина «Информатика и программирование» является традиционной в программах подготовки бакалавров прикладной информатики. В нашем случае эта дисциплина изучалась в течение первого, второго и третьего семестров. Первый семестр - это изучение императивной парадигмы программирования, когда студенты осваивают такие традиционные понятия, как переменная, тип данных, выражение, условный переход, цикл, подпрограмма и др. Изучение объектно-ориентированного языка программирования - это второй семестр, который следует непосредственно по завершении «поддерживающей» дисциплины «Программирование для начинающих». Следовательно, в начале второго семестра, обучающиеся владеют императивным языком программирования, а также базовыми понятиями объектно-ориентированной парадигмы. Это служит основой эффективного изучения конкретного объектно-ориентированного языка программирования. В качестве такого языка нами использовался язык C++, который является наиболее распространенным языком программирования на протяжении нескольких последних десятилетий [3]. Языку программирования С++ характерны такие свойства, как лаконичность, мощность, гибкость, мобильность, возможность доступа ко всем функциональным средств системы [4]. В рамках третьего семестра дисциплины «Информатика и программирование» осуществляется работа с методами и средствами объектно-ориентированного анализа и проектирования программных систем различного назначения. Для подтверждения эффективности предложенной модели обучения нами был проведен педагогический эксперимент, в котором приняли участие 255 студентов Крымского инженерно-педагогического университета. Эксперимент предполагал выделение контрольной и экспериментальных групп, где обучение велось по традиционной и разработанной нами методикам. Традиционная методика не предполагала изучение дисциплины «Программирование для начинающих» - концепции объектно-ориентированного программирования формировались в рамках дисциплины «Информатика и программирование» на примере изучения объектно-ориентированного языка. Эффективность методики оценивалась по уровню сформированности компетенции в области объектно-ориентированного программирования бакалавров прикладной информатики, рассматриваемой нами как определяющей способности разрабатывать, внедрять и адаптировать прикладное программное обеспечение в структуре профессиональной компетентности бакалавра прикладной информатики, а также включающей в свой состав мотивационно-ценностный, организационно-содержательный, когнитивно-операционный и личностно-рефлексивный компоненты [8]. Критерии оценивания уровня сформированности каждого из компонентов компетенции по шкале «достаточный-средний-высокий» представлены в табл. 1. Сформированность компонент компетенции бакалавров прикладной информатики в области объектно-ориентированного программирования оценивалась на основе тестов, а также анализа выполненных обучающимися проектных работ. Тесты включали в себя вопросы, относящиеся к темам объектно-ориентированного программирования (объекты, классы, свойства отношений и т.д.). Проектные работы обучающимися выполнялись на основе заданий, которые были связаны с разработкой программ на языке C++. В качестве таких заданий нами предлагались задания-упражнения, задания на усвоение учебного материала, на составление тестовых вопросов, задания-исследования и задания на разработку программных продуктов. Примеры таких заданий для дисциплины «Информатика и программирование», соотнесенные с аналогичным заданиями, выполнявшимися в рамках «поддерживающей» дисциплины «Программирование для начинающих», приводятся в табл. 2. Уровни сформированности компетенции бакалавра прикладной информатики в области объектно-ориентированного программирования Мотивационно-ценностный компонент Организационно-содержательный компонент Когнитивно-операционный компонент Личностно-рефлексивный компонент достаточный уровень Перестройка ценностно-мотивационной сферы студентов; ощущение необходимости изучения объектно-ориентированного программирования для повышения своего профессионального уровня Понимание принципов работы, возможностей объектно-ориентированной парадигмы; умение использовать средства объектно-ориентированного программирования при решении профессиональных задач Знание принципов объектно-ориентированного программирования и умение использовать принципы объектноориентированного программирования при решении профессиональных задач Умение использовать полученные знания для решения задач в области объектно-ориентированного программирования на основе самоанализа и саморегуляции средний уровень Проявление качеств ответственности, организованности, целеустремленности; способность к самовоспитанию; готовность применять на практике полученные знания Знание технологии программирования объектно-ориентированной парадигмы; знание и умение конкретных способов ее реализации Стремление к углубленному программированию в области объектно-ориентированной парадигмы; умение практически использовать полученные знания в условиях современного программирования Способность разносторонне подходить к анализу ситуаций при решении объектно-ориентированных задач в зависимости от целей и условий высокий уровень Четкая мотивационная позиция в необходимости изучения объектно-ориентированного программирования для повышения профессионального уровня; проявление ценностных ориентаций, мотивов, адекватных целям и задачам деятельности Способность классифицировать задачи по типам и выбирать соответствующее и наиболее подходящее решение для реализации программного кода Знание методологии объектно-ориентированной парадигмы, возможностей современных информационных технологий, стремление к обретению профессиональных компетенций Умение анализировать и оценивать эффективность использования объектно-ориентированного программирования в профессиональной деятельности, наличие профессионального опыта и определенной профессиональной позиции Шкарбан Ф.В. Вестник РУДН. Серия: Информатизация образования. 2018. Т. 15. № 4. С. 388-397 392 ПРЕПОДАВАНИЕ ИНФОРМАТИКИ Примеры заданий по дисциплинам «Программирование для начинающих» и «Информатика и программирование» Таблица 2 Дисциплина «Программирование для начинающих» Дисциплина «Информатика и программирование» Программная среда Alice Программная среда Scratch Язык программирования С++ задания-упражнения Ознакомиться с методами (процедуры и функции), которые являются частью классов, используемых в анимации. Обратить внимание, что в Alice объекты представлены с набором встроенных процедур Создать проект, в котором реализован поворот объекта по часовой стрелке при нажатии на кнопку мыши Построить класс Worker (рабочий) без потомков, содержащий объявления полей данных (name - фамилия, worker_id - код, salary - размер зарплаты рабочего) и определения метода класса - функцию вне класса (Show_worker () - вывод информации о работнике в консольном режиме) задания на усвоение учебного материала Создать мир и программно реализовать: дельфин (Dolphin) плавает в океане; на некотором расстоянии летает птица (Falcon); через некоторое время птица возвращается к дельфину, а затем летит от него и возвращается к нему (на некотором расстоянии) Реализовать программно следующий алгоритм: Объект Кот издалека подходит к мячу, а затем ударяет по нему и мяч улетает. Объект Кот кричит: «Yes!». Применить эффекты приближения и удаления Создать программу, которая объявляет класс с тремя полями данных (name, воркер_id, salary) и функцией-членом (show_ worker ()), которая реализована вне класса. Все элементы класса объявим как общедоступные. В программе необходимо создать два объекта для класса worker, предоставить значение элементам данных и с помощью функции show_worker () вывести информацию о рабочих в консольном режиме задания на составление тестовых вопросов Подготовить тестовые вопросы и варианты ответов к ним по теме «Структура программы в среде Alice» Подготовить тестовые вопросы и варианты ответов к ним по теме «Интерфейс Scratch» Подготовить тестовые вопросы и варианты ответов к ним по теме «Проектирование классов и создание объектов. Реализация программы» задания-исследования Подготовьте доклад по предложенной теме. Примерные темы докладов: 1. История развития и использования программной среды Alice. 2. Интерфейс программной среде Alice. 3. Создание рабочего мира в программной среде Alice. Подготовьте доклад по предложенной теме. Примерные темы докладов: 1. Базовые программные конструкции и их реализация в среде Scratch. 2. Разветвления в Scratch. 3. Циклы в Scratch. Подготовьте доклад по предложенной теме. Примерные темы докладов: 1. Парадигмы программирования. 2. Основные понятия программирования. 3. Интегрированная среда разработчика C++. задания по разработке программного продукта Создать программу, с помощью которой реализуется фрагмент сказки «Алиса в стране чудес» Создать программу, с помощью которой реализуется игра «Тетрис» Создать программу, с помощью которой реализуется приложение «Калькулятор» Проведенный эксперимент показал, что студенты экспериментальной группы, изучавшие основы объектно-ориентированного программирования с использованием визуальных учебных сред Alice и Scratch, показывают более высокие результаты при выполнении заданий на языке C++ в рамках дисциплины «Информатика и программирование», чем студенты контрольной группы, изучавшие основы объектно-ориентированного программирования непосредственно при освоении C++. Для них характерно то, что они лучше знают и понимают планируемые результаты выполнения программы, состав и назначение требуемых классов и объектов, информационное содержание и функциональную нагрузку каждого объекта, способы взаимодействия объектов между собой. Качественные характеристики, полученные нами на основе анализа выполненных обучающимися проектных работ, подтверждаются и числовыми данными, полученными на основе тестов. Так, тестирование сформированности всех компонент компетенции бакалавров прикладной информатики в области объектно-ориентированного программирования показало, что средний балл сформированности мотивационно-ценностного компонента в экспериментальной группе возрос до 1,92 по сравнению с 1,88 у контрольной. Количество обучающихся с высоким уровнем сформированности этого компонента в экспериментальной группе возросло по сравнению с контрольной, а количество обучающихся со средним уровнем, наоборот, снизилось. Средняя сформированность организационно-содержательного компонента в экспериментальной группе нами была оценена в 1,84 балла, что значительно выше такого же показателя в контрольной группе, где он составил 1,53. Еще более заметна разница в плане оценки сформированности когнитивно-операционного компонента, где средний балл для экспериментальной и контрольной группы составил соответственно 1,84 и 1,47 баллов. Менее заметным, но все же существенным, оказался прирост уровня сформированности личностно-рефлексивного компонента - у экспериментальной группы этот показатель составил 1,98, а у контрольной 1,69. Рисунок. Сформированность компетенции бакалавра прикладной информатики в области объектно-ориентированного программирования у обучающихся экспериментальной и контрольной групп Указанные числовые данные показывают, что у студентов экспериментальной группы возросла заинтересованность в приобретении новых знаний и умений, ярко выразились потребности и интерес к изучению объектно-ориентированного программирования. Знания студентов, относящиеся к основам объектно-ориентированного программирования, а также правилам составления алгоритмов с использованием конкретного объектно-ориентированного языка, характеризуются полнотой и системностью. Общий уровень сформированности компетенции бакалавров прикладной информатики в области объектно-ориентированного программирования у обучающихся экспериментальной и контрольной групп наглядно представлен на рисунке. Подробные данные о сформированности компонент указанной компетенции, полученные нами в ходе эксперимента, представлены в табл. 3. В таблице указано процентное соотношение обучающихся с достаточным, средним и высоким уровнями сформированности каждого компонента. Среднее значение сформированности вычислялось по формуле (Д*1 балл + С*2 балла + В*3 балла)/n, где Д - количество студентов с достаточным уровнем сформированности компонента компетенции; С - количество студентов со средним уровнем сформированности компонента компетенции; В - количество студентов с высоким уровнем сформированности компонента компетенции; n - это общее количество студентов в группе. Таблица 3 Уровни сформированности компетенции бакалавра прикладной информатики в области объектно-ориентированного программирования на формирующем этапе Компоненты компетенции Экспериментальная группа (131 человек) Контрольная группа (124 человека) Уровни, % Среднее значение, балл Уровни, % Среднее значение, балл достаточный средний высокий достаточный средний высокий Мотивационно-ценностный 33,14 42,12 24,74 1,92 30,06 52,26 17,68 1,88 Организационно-содержательный 29,82 56,14 14,04 1,84 53,44 39,66 6,90 1,53 Когнитивно-операционный 31,30 53,44 15,27 1,84 54,20 36,64 3,82 1,47 Личностно-рефлексивный 26,23 49,36 24,41 1,98 49,17 41,31 9,52 1,60 Анализ результатов исследования показывает, что после проведения работы по формированию компетенции бакалавра прикладной информатики в области объектно-ориентированного программирования в экспериментальной группе наблюдалось заметное улучшение уровня подготовки обучающихся в сравнении с контрольной группой. Это подтверждается через анализ качественных характеристик, а также через сравнение числовых данных, полученных на основе тестов (достоверность нами проверена средствами математической статистики с помощью критерия Пирсона χ2). Результаты исследования позволяют заключить, что внедрение в учебный процесс методики обучения основам объектно-ориентированного программирования в рамках двух согласованных дисциплин с использованием визуальных учебных сред повышает уровень профессиональной подготовки бакалавров прикладной информатики.

Fatima Vitalievna Shkarban

Volgograd State Socio-Pedagogical University

Author for correspondence.
Email: shkarban3009@gmail.com
27 Prospekt imeni V.I. Lenina, Volgograd, 400066, Russian Federation

post-graduate student of Volgograd state socio-pedagogical university

  • Andrianova A.A. Ob”ektno-orientirovannoe programmirovanie na S++ [Object-oriented programming in C++]. Kazan’: Kazanskij federal’nyj universitet, 2010. 230 p.
  • Dejtel H., Dejtel P. Kak programmirovat’ na S/S++ [How to program in C/C++]. Moscow: BinomPress, 2008. 1036 p.
  • Shkarban F.V. Obuchenie programmirovaniyu bakalavrov prikladnoj informatiki: povyshenie kachestva podgotovki na osnove trebovanij professional’nyh standartov [Programming training bachelors applied computer science: improving the quality of training based on the requirements of professional standards]. Ehlektronnoe obuchenie v nepreryvnom obrazovanii 2018 [E-learning in lifelong education 2018]: sbornik nauchnyh trudov V Mezhdunarodnoj nauchno-prakticheskoj konferencii. Ul’yanovsk, 2018. Pp. 336—345.
  • Shkarban F.V. Soderzhanie i ehtapy formirovaniya kompetencii bakalavrov prikladnoj informatiki v oblasti ob”ektno-orientirovannogo [The contents and stages of formation of competence of the bachelors of applied Informatics in the field of object-oriented]. Izvestiya Volgogradskogo gosudarstvennogo pedagogicheskogo universiteta [Proceedings of Volgograd State Pedagogical University]. 2018. No. 1(124). Pp. 35—41.
  • Shkarban F.V. Urovni sformirovannosti kompetencii bakalavrov prikladnoj informatiki v oblasti ob”ektno-orientirovannogo programmirovaniya [Levels of formation of competences of bachelors of applied science in the field of object-oriented programming]. Prioritetnye napravleniya razvitiya sovremennogo obrazovaniya [The priority directions of development of modern education]: sbornik statej II Mezhregional’noj nauchno-prakticheskoj konferencii. Astrahan’: Astrahanskij universitet, 2018. Pp. 136—141.
  • Johnsgard K., McDonald J. Using Alice in overview courses to improve success rates in Programming I. Proceedings Software Engineering Education Conference. 2008. Pp. 129—136. URL: https://www. scopus.com/inward/record.uri?eid=2-s2.0-51749114679&doi=10.1109%2fCSEET.2008.35&pa rtnerID=40&md5=85a6aee957e9f7a75c5076a136a81e44/ (accessed: 10.07.2018).
  • Maloney J., Resnick M., Rusk N., Silverman B., Eastmond E. The Scratch programming language and environment. ACM Transactions on Computing Education. 2010. 10(4). No. 16. URL: https:// www.scopus.com/inward/record.uri?eid=2-s2.0-78650495486&doi=10.1145%2f1868358.18683 63&partnered=40&md5=ee4242e05a2a07590b99d778056ab147/ (accessed: 10.07.2018).
  • Utting I., Cooper S., Kölling M., Maloney J., Resnick M. Alice, Greenfoot, and Scratch — A discussion. ACM Transactions on Computing Education. 2010. 10(4). No. 17. URL: https://www. scopus.com/inward/record.uri?eid=2-s2.0-78650490609&doi=10.1145%2f1868358.1868364&p artnerID=40&md5=b740506ccdbf74a4f7087052390dd40f/ (accessed: 10.07.2018).
  • Fincher S., Cooper S., Kölling M., Maloney J. Comparing Alice, Greenfoot & Scratch. SIGCSE’10 — Proceedings of the 41st ACM Technical Symposium on Computer Science Education. 2010. Pp. 192—
  • URL: https://www.scopus.com/inward/record.uri?eid=2-s2.0-77952167618&doi=10.1145 %2f1734263.1734327&partnerID=40&md5=08c01e275d9e9447be6503304fb12bc2/ (accessed: 10.07.2018).

Views

Abstract - 74

PDF (Russian) - 24

PlumX


Copyright (c) 2018 Shkarban F.V.

Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License.