Современная система высшего образования требует совершенствования процесса подготовки бакалавров прикладной информатики, повышения уровня их профессиональной компетентности в процессе обучения объектно ориентированному программированию. Актуальность проблемы формирования компетенции бакалавров прикладной информатики в области объектно ориентированного программирования продиктована требованиями, которые характерны современному информационному обществу, для эффективного функционирования в котором специалисту недостаточно только изучать и понимать учебные дисциплины по программированию.
В настоящее время в педагогической и методической литературе практически отсутствуют фундаментальные исследования, посвященные формированию компетенции бакалавров прикладной информатики в области объектно ориентированного программирования. Данная компетенция представляет собой совокупность взаимосвязанных смысловых ориентаций, знаний, умений, навыков и опыта деятельности, определяющих способности бакалавра прикладной информатики разрабатывать, внедрять и адаптировать прикладное программное обеспечение.
Компетенция в области объектно ориентированного программирования относится к блоку профессиональных компетенций бакалавров прикладной информатики, так как требования современных стандартов по данному направлению подготовки предполагают достижение интегрированного конечного результата образования, в качестве которого рассматривается формирование у выпускника профессиональной компетентности как целостности обобщенных знаний и умений, универсальных способностей и готовности к решению различных задач, в том числе – к профессиональному программированию средствами объектно ориентированной методологии.
Раскроем подробнее содержание подготовки бакалавра прикладной информатики по компонентам компетенции в области объектно ориентированного программирования: мотивационно-ценностному, организационно-содержательному, когнитивно-операционному и личностно-рефлексивному.
Мотивационно-ценностный компонент компетенции в области объектно ориентированного программирования представляет собой совокупность мотивов к профессиональной разработке компьютерных программ. Данный аспект подготовки студента раскрывается в аспекте формирования психологической готовности студента к изучению программирования и созданию компьютерных программ.
Е.И. Машбиц, анализируя психолого-педагогические проблемы компьютеризации обучения, выделяет два подхода к пониманию сути психологической готовности студента: функциональный и личностный. Функциональный подход предполагает исследование готовности к деятельности как определенного состояния психологической функции, при котором достигается высокий уровень в определенной деятельности. Личностный подход предполагает результат подготовки к определенной деятельности. То есть психологическая готовность – это интегральное образование личности, включающее ряд компонентов (мотивационный, когнитивный, эмоционально-волевой) и совокупность знаний, умений, навыков и личностных качеств, адекватных требованиям содержания и условиям деятельности. Существует глубокая взаимосвязь функционального состояния готовности и готовности как устойчивой характеристики личности. «Эта готовность включает в себя мотивы и цели деятельности человека, работающего с ЭВМ, ее функциональное состояние и работоспособность» [1, с. 40].
В связи с этим в структуре мотивационно-ценностного компонента компетенции бакалавра прикладной информатики в области объектно ориентированного программирования можно выделить два типа готовности:
– готовность к освоению базовых концепций, теории, технологий и конкретных средств объектно ориентированного программирования;
– готовность к использованию знаний, умений, навыков и личностных качеств в области объектно ориентированного программирования для решения профессиональных задач по разработке компьютерных программ.
Формирование готовности первого типа в полной мере можно отнести к дисциплине введения в объектно ориентированное программирование («Программирование для начинающих», «Визуальное программирование» или др.), а готовности второго типа – к дисциплине, ориентированной на изучение технологий объектно ориентированного программирования с использованием конкретного языка («Информатика и программирование», «Объектно ориентированное программирование» или др.).
Организационно-содержательный компонент компетенции в области объектно ориентированного программирования – это набор теоретических знаний и познавательной активности, необходимых для осуществления процесса обучения объектно ориентированному программированию. Формирование этого компонента относится к дисциплине введения в объектно ориентированное программирование («Программирование для начинающих», «Визуальное программирование» или др.). Конкретизируя содержание подготовки в рамках такой дисциплины, следует указать, что она должна быть нацелена на формирование определенных знаний, умений, навыков и опыта деятельности бакалавров прикладной информатики в области базовых концепций и идей объектно ориентированного программирования.
Проблемы и вопросы формирования профессиональных качеств у бакалавров прикладной информатики являются открытыми и рассматриваются как психологами, так и педагогами. В частности, А.П. Ершов [2], Ф. Брукс [3], Е. Дейкстра [4], С. Макконнелл [5], М.Л. Смульсон [6], Б. Шнейдерман [7] отмечают, что программисты имеют свои психологические и общечеловеческие черты, качества, и определяют способности и особенности мышления, которые должны быть характерными для программистов. При этом Б.С. Садулаева в своем исследовании, посвященном изучению особенностей обучения объектно ориентированному программированию, отмечает, что такое обучение способствует целостному представлению о методологии разработки программных средств, а современному студенту требуются знания не только пользовательских программных средств, но и идеологии их проектирования и разработки [8].
Проецируя результаты указанных исследований на содержание подготовки бакалавров прикладной информатики в рамках дисциплины введения в объектно ориентированное программирование, мы можем заключить, что оно должно предусматривать изучение не конкретного языка программирования, а интеграцию абстракции и элементов проектирования в учебный курс. Объектно ориентированное программирование – это построение и реализация абстракций, представление модели задачи в терминах объектов и их взаимодействия (структурирование программы и ее проектирование с помощью объектов и соответствующих классов), что не исключает предварительного анализа ее в терминах алгоритмического подхода (метод как составляющая объекта описывается как алгоритм). Алгоритмические детали и структуры данных должны базироваться на моделировании и проектировании.
Опираясь на данную позицию, а также учитывая результаты исследований Садулаевой Б.С., Прозоровой Г.В. [9], Алдашева А.А. [10], мы можем сформулировать, что в результате освоения организационно-содержательного компонента компетенции в области объектно ориентированного программирования бакалавры прикладной информатики должны:
1) знать содержание базовых понятий в области программирования;
2) знать операторы и управляющие конструкции визуальных учебных сред программирования, основные принципы объектно ориентированного программирования;
3) знать средства объектно ориентированного программирования, используемые в визуальных учебных средах;
4) уметь строить алгоритм решения задачи соответствующего уровня сложности;
5) уметь разрабатывать программу средствами визуальных учебных сред;
6) уметь редактировать программу средствами визуальных учебных сред;
7) уметь работать с визуальными учебными средами;
8) владеть опытом использования визуальных учебных сред на этапах разработки компьютерных программ (создание проекта, разработка алгоритма, разработка программы тестирование, отладка).
Когнитивно-операционный компонент компетенции бакалавра прикладной информатики в области объектно ориентированного программирования указывает на степень освоения теории объектно ориентированного программирования и способности использования этих знаний в профессиональной деятельности. Формирование этого компонента относится к дисциплине технологий объектно ориентированного программирования с использованием конкретного языка («Информатика и программирование», «Объектно ориентированное программирование» или др.).
В стандартах Computing Curricula 2016 [11] и Software Engineering 2017 [12] предлагается следующий набор требований в виде списка разделов и тем, которые должен охватить курс по основам программирования:
– основные конструкции программирования – основы синтаксиса и семантики языков высокого уровня; переменные, типы, выражения и операторы присваивания; основы ввода-вывода; операторы ветвления и цикла; функции и передачи параметров; структурная декомпозиция;
– алгоритмы и решение задач – стратегии решения задач; роль алгоритмов в процессе решения задач; стратегии отладки программ; концепция и свойства алгоритмов;
– фундаментальные структуры данных – стандартные типы; массивы; записи; строки и обработки строк; представление данных в памяти компьютера; статическое, автоматическое и динамическое выделение памяти; управление памятью во время выполнения программы; ссылки и указатели; связанные списки; методы реализации стеков, очередей и хэш-таблиц; методы реализации графов и деревьев; стратегии выбора соответствующей структуры данных;
– основы анализа алгоритмов – асимптотический анализ поведения алгоритмов в среднем и крайних случаях; нотация O-большого, О-малого, W (омега), q (тетта); стандартные классы сложности; эмпирические измерения эффективности; компромисс между временем и объемом памяти в алгоритмах; использование рекуррентных отношений для анализа рекурсивных алгоритмов;
– фундаментальные вычислительные алгоритмы – простые многочисленные алгоритмы; алгоритмы последовательного и двоичного поиска; алгоритмы сортировки с квадратичной сложностью и со сложностью О (n • log (n)); хэширование; деревья двоичного поиска; представление графов; алгоритмы поиска кратчайшего пути; транзитивное замыкание; минимальное остовное дерево; топологическая сортировка;
– алгоритмические стратегии – алгоритмы полного перебора; «жадные алгоритмы»; алгоритмы «разделяй и властвуй»; перебор с возвратом; метод ветвей и границ; эвристики; сопоставления с образцом и алгоритмы обработки текста; алгоритмы численной аппроксимации;
– проектирование программного обеспечения – фундаментальные концепции и принципы проектирования; объектно ориентированный анализ и проектирование; проектирование с целью повторного использования;
– спецификации и требования к программному обеспечению – важность спецификации в процессе создания программ;
– проверка соответствия программного обеспечения – основы тестирования; генерация тестовых примеров.
Опираясь на описание требований указанных стандартов, в результате освоения когнитивно-операционного компонента компетенции в области объектно ориентированного программирования бакалавры прикладной информатики должны (дисциплина «Информатика и программирование»):
1) знать понятие алгоритма и свойств, различные записи формы алгоритма;
2) знать операторы и управляющие инструкции языка программирования С++, основные принципы объектно ориентированного программирования, правила определения классов, их назначение и использование;
3) знать средства объектно ориентированного программирования с использованием языка программирования С++;
4) знать методику объектно ориентированного анализа и проектирования;
5) уметь применять алгоритм решения задачи соответствующего уровня сложности;
6) уметь создавать консольное приложение, реализующее разработанный алгоритм – программу на языке программирования С++;
7) уметь использовать отладчик для поиска логических ошибок;
8) уметь работать с инструментальной средой программирования Microsoft Visual Studio 2012/15.
9) владеть навыками объектно ориентированного программирования.
Личностно-рефлексивный компонент компетенции в области объектно ориентированного программирования заключается в наличии у бакалавра прикладной информатики собственного стиля, способности оценивать собственную деятельность и ее результаты, совершенствовать знания в области современного программирования, осознавать собственную значимость в коллективе, а также самореализовываться в профессиональной деятельности, используя современные информационные технологии.
Данные аспекты профессиональной подготовки бакалавров прикладной информатики раскрываются в трудах, где анализируются особенности формирования профессионализма и профессионального мастерства программиста, особых личностных качеств, присущих профессиональным программистам.
Таким образом, личностно-рефлексивный компонент компетенции в области объектно ориентированного программирования подразумевает формирование навыков самосовершенствования и самореализации бакалавров прикладной информатики. Это возможно путем вырабатывания определенного набора профессиональных знаний, умений и навыков в области объектно ориентированного программирования и развития таких качеств, как работа в команде, лидерские качества, индивидуальность, способность к рефлексии, способность к самостоятельному обучению и освоению новых технологий в течение жизни, самообразование, планирование деятельности, логическое, алгоритмическое и объектно ориентированное мышление, целеустремленность, настойчивость, умение самостоятельно принять решение, быстро адаптироваться к новым задачам.
Формирование указанных качеств должно осуществляться в рамках всей системы подготовки бакалавров прикладной информатики в области объектно ориентированного программирования. Логика развертывания данной линии подготовки бакалавра прикладной информатики будет зависеть не столько от содержания, сколько от методов, форм и средств учебной деятельности, применяемых на дисциплинах введения в объектно ориентированное программирование («Программирование для начинающих», «Визуальное программирование» или др.), а также изучения технологий объектно ориентированного программирования с использованием конкретного языка («Информатика и программирование», «Объектно ориентированное программирование» или др.).
Таким образом, формирование описанных выше компонент компетенции бакалавра прикладной информатики в области объектно ориентированного программирования будет способствовать формированию профессиональной компетентности в целом. Предложенная структура компетенции может служить основой проектирования содержательных и процессуальных компонент учебных курсов объектно ориентированного программирования в структуре образовательных программ прикладной информатики. Перспективным направлением дальнейших исследований является разработка методики обучения основам объектно ориентированного программирования бакалавров прикладной информатики с использованием визуальных учебных сред.
Библиографическая ссылка
Шкарбан Ф.В. КОМПОНЕНТЫ КОМПЕТЕНЦИИ БАКАЛАВРОВ ПРИКЛАДНОЙ ИНФОРМАТИКИ В ОБЛАСТИ ОБЪЕКТНО ОРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ // Современные проблемы науки и образования. – 2018. – № 1. ;URL: https://science-education.ru/ru/article/view?id=27387 (дата обращения: 11.12.2023).