УДК 681.14:378
ББК 32.973.26-018.2:74.480
И.В. Баженова
визуальное моделирование в обучении программированию
В статье рассмотрена возможность включения в содержание курса программирования элементов визуального моделирования на языке UML. Предложены задания учебной практики по программированию, предусматривающие визуальное моделирование. Самостоятельное изучение студентами языка UML организовано с помощью электронного курса, спроектированного по принципам студент-центрированного обучения.
Ключевые слова: визуальное моделирование, диаграммы UML, обучение программированию, электронный образовательный курс.
I.V. Bazhenova
visual modeling in programming training
The article considers the possibility of including elements of visual modeling, such as UML diagrams in the programming course content. The work suggests practical training tasks in programming, which involve visual modeling. Independent studies for students learning UML are organized with the help of an e-learning training course designed according to student-centered learning approach.
Key words: visual modeling, UML diagrams, programming training, electronic educational course.
Практика обучения программированию как в школе, так и в высших учебных заведениях показывает наличие определенных проблем в этой образовательной области. Обучение программированию зачастую носит формальный характер, сводится к изучению синтаксических конструкций языков программирования и запоминанию отдельных фрагментов кода без понимания сути алгоритмов, лежащих в их основе. Фактически такие знания не являются конструктивными, обучающиеся не могут применить их в новых условиях при решении прикладных задач науки и производства.
В обучении программированию необходимо делать акцент на прикладном и познавательном характере этой сферы деятельности. На наш взгляд, важно соблюдать классическую последовательность этапов решения задачи на компьютере, донести до обучающегося необходимость создания математической модели и модели решения задачи (алгоритма) до того, как приступить собственно к кодированию решения. Отсутствие ана-
лиза предметной области и адекватной, продуманной модели решения задачи скорее всего приведет к неэффективному коду и сомнительным результатам. Поэтому владение навыками программирования вкупе с навыками моделирования должно стать частью общей информационной культуры будущих абитуриентов, выбирающих технические и математические специальности. Таким образом, содержательные линии моделирования и алгоритмизации должны поддерживаться в процессе обучения программированию. В этой связи нужно отметить возрастание роли изучения программирования в интеграции с методами моделирования в школьном курсе «Информатика и ИКТ». Появилось немало хороших учебников для средней школы, где изложение учебного материала дано в последовательности: информационное моделирование, алгоритмизация, основы программирования [2; 3; 8]. Имеются и соответствующие научные исследования по данному вопросу, отметим [6]. Казалось бы, приходя в высшую школу обу-
го ш о
X
ф
X го ш
йЭ
чаться на технические и математические специальности (учебные планы которых включают дисциплину «Программирование»), абитуриенты должны владеть навыками моделирования и программирования. Между тем преподаватели высшей школы (возможно, за исключением столичных и высокорейтинговых вузов) отмечают их отсутствие у большинства первокурсников. Наблюдается большая разнородность в контингенте первокурсников в опыте практического программирования. Часть первокурсников обладает определенными знаниями и умениями, самостоятельно изучая языки программирования. Особенно в этой группе абитуриентов можно наблюдать пренебрежительное отношение к предварительному анализу решаемой задачи, выбору оптимального метода решения, представлению результатов моделирования в наглядной форме. У них уже сформировалось убеждение: «моя программа работает, следовательно, я - программист». Между тем сокращение аудиторной нагрузки и увеличение доли самостоятельной работы студентов в учебном процессе в соответствии с новыми образовательными стандартами не позволяют преподавателям дисциплины «Программирование» уделить много внимания формированию навыков моделирования у студентов. В качестве выхода из данной ситуации можно предложить тщательный отбор содержания дисциплины в части разработки лабораторных работ и проектирование электронных курсов, призванных оказать поддержку студенту в его самостоятельной работе по освоению программирования. Важно разрабатывать не только электронные курсы по изучению определенного языка программирования, но и дополнительные курсы для саморазвития компетентностной модели будущего специалиста, включающей многие смежные с программированием компетенции.
Умение построить адекватные модели, отражающие различные аспекты информационных систем, предполагает владение навыками визуализации этих моделей. Визуализация - это процесс представления информации, данных, знания в виде изображения, имеющий
целью максимальное удобство их восприятия, понимания и анализа. Визуальная модель как результат визуализации отражает сущность объекта познания. Представление результатов информационного моделирования в наглядном виде, понятном не только специалисту в конкретной предметной области, но и практически любому человеку, - важный аспект проектирования как профессиональной деятельности. Следовательно, навыки визуального моделирования, сформированные у студентов в процессе обучения программированию, станут весьма полезным инструментом в их учебной, научно-исследовательской деятельности и будущей профессии. В данной статье представлен опыт использования элементов визуального моделирования в процессе обучения программированию будущих бакалавров по направлениям подготовки 01.03.01 Математика, 01.03.02 Прикладная математика и информатика. Исследование проводилось на базе Института математики и фундаментальной информатики Сибирского федерального университета с использованием методов педагогического проектирования, опроса, тестирования, моделирования.
Анализ учебных планов по указанным направлениям выявил в них дефицит 1Т-дисциплин, относящихся к программной инженерии, что, несомненно, сказывается на профессиональной квалификации выпускников. Между тем согласно стандартам ФГОС 3+ по этим направлениям подготовки, решая задачи в будущей производственно-технологической и организационно-управленческой деятельности, выпускник должен демонстрировать способности использования методов математического и алгоритмического моделирования при решении теоретических и прикладных задач и передачи результата проведенных исследований в виде конкретных рекомендаций, выраженных в терминах предметной области изучавшегося явления. Формированию таких компетенций будет способствовать владение навыками визуального моделирования. Кроме того, включение элементов визуального моделирования в процесс обучения программированию влияет на развитие ког-
нитивных способностей обучающихся в области алгоритмического и системного мышления. По мнению Дж. Рамбо и М. Блаха, способность к моделированию напрямую связана с абстрактным мышлением: недостаточная способность мыслить абстрактно ведет к неспособности «отойти от задачи на шаг и взглянуть на нее в целом», т.е. неспособности моделировать, быстрому переходу в «режим программирования» [7, с. 467]. Заметим, что развитое абстрактно-логическое мышление - важнейшая когнитивная способность будущего бакалавра математики.
Уточним понятие «визуальное моделирование». Т. Кватрани в [4] дает следующее определение: «визуальным моделированием называется способ представления идей и проблем реального мира с помощью моделей». Это определение трактует визуальное моделирование как достаточно широкое понятие, относящееся к информационному моделированию любой системы при помощи некоторого множества графических элементов. В более узком смысле термин «визуальное моделирование» относится к разным аспектам разработки программного обеспечения: проектированию, тестированию, спецификации, документированию и т. д. Характеризуя особенности визуального моделирования в области разработки программного обеспечения, Д. Кознов в [5, с. 14] определяет его как метод, который: 1) использует графовые модели для визуализации программного обеспечения; 2) предлагает моделировать программное обеспечение с разных точек зрения; 3) применяется для создания, разработки, сопровождения и эволюции программного обеспечения.
В настоящее время признанным стандартом в области визуального моделирования является язык (нотация) UML (Unified Modeling Language - унифицированный язык моделирования) [4; 5; 7], работа над которым началась с середины 90-х годов и продолжается в настоящее время в рамках консорциума OMG (Object Management Group). Статус данного языка декларирован как открытый, что является положительным фактором для использования его в образовательных целях. Как разработчики, так и поль-
зователи данной нотации отмечают широкий спектр визуальных компонентов UML, возможность с их помощью выразить разные аспекты моделируемой системы на концептуальном и физическом уровнях, техническую поддержку в виде коммерческих и свободных программных продуктов. Хотя UML и не является языком программирования, но его нотация поддерживается многими визуальными средами программирования, в частности Microsoft Visual Studio (отметим, что данный пакет используется в учебном процессе ИМиФИ СФУ). Данный факт также говорит о целесообразности использования элементов UML при изучении дисциплины «Программирование». Нотация UML распространена в сфере моделирования и документирования бизнес-процессов, что позволит усилить профессиональную направленность обучения программированию.
Отмеченное достоинство языка UML в виде разнообразия его элементов одновременно представляет и определенный недостаток: требуется много времени для изучения всех возможностей языка. Поэтому для включения элементов UML в содержание дисциплины «Программирование» в рамках учебного процесса требуется продумать, по каким направлениям возможно это использование и какие именно диаграммы UML можно предложить для изучения студентам. В ИМиФИ СФУ программирование изучается в течение 3-х семестров (1-2 семестр - структурное программирование, 3 семестр - объектно-ориентированное программирование). Кроме того, между 1-м и 2-м курсом в учебном плане по вышеуказанным направлениям подготовки стоит летняя учебная практика по получению первичных профессиональных умений и навыков. Несмотря на объектно-ориентированный характер нотации UML, представляется возможным и целесообразным использовать некоторые диаграммы при изучении структурного программирования. Это относится прежде всего к диаграммам для описания поведения системы: деятельности и вариантов использования (прецедентов). Традиционные блок-схемы, визуализирующие процедурные программы, легко
X
го
CÛ
о
го
о с
X
ф
т
vir
о
X
го
CÛ
о
s ф
ч о
ф о
X -О
го
m
заменить диаграммами деятельности, что усилит алгоритмическую линию в содержании обучения программированию. Возможно использовать диаграммы, описывающие структуру системы (например, диаграммы классов и диаграммы компонентов) при изучении темы «Структура как составной тип данных» (речь идет о программировании на языке C/C++). В полном объеме базовые диаграммы UML можно использовать в 3-м семестре при изучении объектно-ориентированного программирования. Они в значительной мере помогут студентам в понимании основополагающих понятий и концепций ООП: «класс», «объект», «наследование», «полиморфизм» и т.д. Самым важным, на наш взгляд, является возможность включить элементы визуального моделирования в задания по учебной практике. Очевидно, что при самостоятельном выполнении этих заданий студенты должны продемонстрировать знания и умения теории и практики структурного программирования, полученные на 1-м курсе. В то же время желательно, чтобы у студентов была мотивация узнать что-то новое, например,
о возможностях нотации UML. Таким заданием может быть создание несложной базы данных (без привлечения специализированных средств). Здесь потребуется предварительное моделирование базы данных в некоторой предметной области и UML может стать полезным инструментом для визуализации результата моделирования. Дальнейшим шагом в задании будет реализация базы данных на языке программирования.
Далее возникает вопрос о той форме, с помощью которой студенты могут получить поддержку при самостоятельном изучении языка UML. Наиболее удобным инструментом поддержки является электронный образовательный курс (ЭОК). Данный проект был осуществлен в рамках бакалаврской работы, интегрирован в существующую в СФУ электронную систему обучения на базе Moodle и успешно внедрен в учебный процесс ИМиФИ СФУ.
На первоначальном этапе проектирования электронного образовательного курса «Введение в визуальное моделирование на языке UML» была разработана концептуальная модель курса (рис. 1).
го са о
х
ф
X го
L0
m
рис. 1. Концептуальная модель курса «Введение в визуальное моделирование на языке UML»
Данная концептуальная модель разработана в виде диаграммы вариантов использования и показывает функциональное назначение моделируемой информационной системы - электронного курса. Её элементами являются: 1) сущности «актеры» (стилизованное изображение человека), показывающие множество ролей субъектов, взаимодействующих с системой ЭОК; 2) сущности «прецеденты» - действия системы, приводящие к определенным результатам (изображены в виде эллипсов); 3) отношения типа «ассоциация», показывающие зависимость одной сущности от другой. Диаграмма является своего рода «визитной карточкой» электронного курса, фигурируя в качестве его описания на главной странице, т.е. представляет метаданные курса.
Отметим ещё одну особенность курса - соответствие принципам студент-центрированного обучения [9]. Главная задача курса - помощь в самостоятельном освоении студентами языка UML, причем в том объеме, который необходим в настоящий момент. Интерфейс курса настроен таким образом, чтобы первоначальная информация о диаграммах UML была получена пользователем уже на главной странице. А далее пользователь сам решает, насколько необходима ему сейчас более подробная информация или достаточно базовых определений и примеров использования, хочет ли он проверить свои знания с помощью тестов и заданий и т.д. Важный момент - наличие обратной связи с пользователями у тьютора-разработчика курса: курс открыт для оценивания и конструктивных предложений для его модернизации. Предварительные результаты использования ЭОК в учебном процессе имеют положительную динамику: студенты пользуются контентом курса (в настоящий момент у курса 43 пользователя), оценивают его и высказывают свое мнение. Дальнейшая эксплуатация и сопровождение ЭОК позво-
лят сделать выводы о его эффективности в саморазвитии у студентов навыков моделирования и грамотного использования средств визуализации при проектировании информационных систем.
В заключение отметим ещё одно перспективное направление в проектировании и использовании электронного курса по основам визуального моделирования: курс может развиваться в рамках межвузовской кооперации студентов и преподавателей разнопрофильных вузов, концепция которой была представлена в [1]. Принципы визуального моделирования обеспечивают понимание и диалог специалистов разных предметных областей при проектировании сложных систем, что отвечает идее межвузовской кооперации.
Аргументы, приведенные в данной статье, и первоначальные результаты апробации электронного курса свидетельствуют о следующем:
1. В процессе обучения программированию будущих бакалавров математики необходимо усилить содержательные линии моделирования и алгоритмизации за счет включения основ визуального моделирования на языке UML.
2. Выполнение заданий летней учебной практики с элементами визуального моделирования подготовит студентов к переходу на объектно-ориентированное программирование и даст возможность первоначального знакомства с профессиональными обязанностями специалистов 1Т-сферы, таких как аналитики и архитекторы информационных систем и баз данных.
3. Самостоятельное изучение основ UML, обусловленное отсутствием дисциплин программной инженерии в учебных планах математических направлений подготовки, может быть реализовано с помощью вариативного электронного курса, спроектированного с учетом принципов студент-центрированного обучения.
Библиографический список
1. Баженова, И.В. Развитие компетенций будущих педагогов и инженеров в условиях межвузовской кооперации [Текст] / И.В. Баженова, Г.М. Гринберг, Л.М. Ивкина // Вестник Челябинского государственного педагогического университета. - 2014. - № 2. - С. 62-69.
х
го ш о
го
О с
X
ф
т
ю о
X
го ей
о ^
^
с; ф ч о
ф о
X -О
с; го
со ^
Ш
2. Гейн, А.Г. Информатика и ИКТ. 11 класс [Текст]: учебник / А.Г. Гейн, А.И. Сенокосов. - М.: Просвещение, 2012. - 336 с.
3. Информатика [Текст]: учебник. 10-11 класс. В 2 ч. Ч. 2: Программирование и моделирование / под ред. Н.В. Макаровой. - СПб.: Питер Пресс, 2013. - 400 с.
4. Кватрани, Т. Rational Rose 2000 и UML. Визуальное моделирование [Текст] / пер. с англ. / Т. Кватрани. - М.: ДМК Пресс, 2001. - 176 с.
5. Кознов, Д.В. Основы визуального моделирования [Текст] / Д.В. Кознов. - М.: Интернет-Университет Информационных Технологий; БИНОМ. Лаборатория знаний, 2007. - 248 с.
6. Нилова, Ю.Н. Методика обучения программированию учащихся старшей школы на основе системно-деятельностного подхода [Текст]: автореф. дис. ... канд. пед. наук / Ю.Н. Нилова. - СПб., 2015. - 26 с.
7. Рамбо, Дж. UML 2.0. Объектно-ориентированное моделирование и разработка [Текст] / Дж. Рамбо, М. Блаха. - СПб.: Питер Пресс, 2007. - 544 с.
8. Семакин, И.Г. Информатика и ИКТ. Базовый уровень [Текст]: учебник для 10-11 классов / И.Г. Семакин, Е.К. Хеннер. - М.: БИНОМ. Лаборатория знаний, 2012. - 246 с.
9. Wright, G. B. Student-Centered Learning in Higher Education. International Journal of Teaching and Learning in Higher Education. 2011, Vol. 23 (3). P. 93-94.
Referencеs
1. Bazhenova I.V., Grinberg G.M., Ivkina L.M. Developing competences in future teachers and engineers in the context of inter-university cooperation. Vestnik Chelyabinskogo gosudarstvennogo pedagogicheskogo universiteta, 2014, Vol. 2. P. 62-69. [in Russian].
2. Hein A.G, Senokosov A.I. Informatics andICT. M.: Prosveshchenie, 2012. P. 336. [in Russian].
3. Informatics. 10-11 class. In 2 p. Part 2: Programming and Modeling / Ed. N.V. Makarova. St. Petersburg: Piter Press, 2013. P. 400. [in Russian].
4. Quatrani T. Visual Modeling with Rational Rose 2000 and UML.. Addison-Wesley, 1999. P. 288. [in English].
5. Koznov D.V. Fundamentals of visual modeling. M.: BINOM. Laboratoriya znanij, 2007. P. 248. [in Russian].
6. Nilova Yu.N. Methods of teaching programming to high school students, based on the systemic-activity approach. Author's abstract. Dis. ... cand. of sciences (Education). St. Petersburg, 2015. P. 26. [in Russian].
7. Rumbaugh J.R., Blaha M.R. Object-oriented modeling and design with UML. SPb.: Pearson Education, 2005. P. 477. [in English].
8. Semakin I.G., Henner E.K. Informatics and ICT. Basic level. M.: BINOM. Laboratoriya znanij, 2012. P. 246. [in Russian].
9. Wright G.B. Student-Centered Learning in Higher Education. International Journal of Teaching and Learning in Higher Education. 2011, Vol. 23 (3). P. 93-94. [in English].
ro ca о x
<u И го
Lû
od
Сведения об авторе: Баженова Нрина Васильевна,
кандидат педагогических наук, доцент базовой кафедры вычислительных и информационных технологий, Сибирский федеральный университет, г. Красноярск, Российская Федерация. Е-таИ: [email protected]
Information about the author: Bazhenova irina Vasilievna,
Candidate of Sciences (Education),
Associate Professor, Department of Computing
and Information Technologies
Siberian Federal University,
Krasnoyarsk, Russia.
E-mail: [email protected]