Scientific journal
Modern problems of science and education
ISSN 2070-7428
"Перечень" ВАК
ИФ РИНЦ = 1,006

COMPONENTS OF COMPETENCY OF BACHELOR APPLIED INFORMATICS IN OBJECT-ORIENTED PROGRAMMING

Shkarban F.V. 1
1 State Educational Institution of Higher Education of the Republic of Crimea "Crimean Engineering and Pedagogical University"
The article describes the components of the professional competence of bachelors of applied informatics in the field of object-oriented programming. The content, functions and characteristics of the motivational-value, organizational-content, cognitive-operational and personality-reflexive components of the said competence are disclosed. It is determined that the motivational-value component of competence in the field of object-oriented programming is a set of motives for the professional development of computer programs. This aspect of student preparation is revealed in the aspect of forming the student's psychological readiness for studying programming and creating computer programs. The organizational and content component of the competence in the field of object-oriented programming is a set of theoretical knowledge and cognitive activity necessary for the implementation of the process of learning object-oriented programming. The formation of this component refers to the discipline of the introduction to object-oriented programming («Programming for Beginners», «Visual Programming» or others). The cognitive-operational component of the competence of the bachelor of applied informatics in the field of object-oriented programming, indicates the degree of mastering the theory of object-oriented programming and the ability to use this knowledge in professional activity. The formation of this component belongs to the discipline of object-oriented programming technologies using a specific language («Computer Science and Programming», «Object-Oriented Programming» or others). The personal-reflective component of competence in the field of object-oriented programming consists in the fact that the bachelor of applied computer science has its own style, the ability to evaluate its own activity and its results, improve knowledge in the field of modern programming, realize its own importance in the team, and also self-actualize in professional activity using modern Information Technology.
competence
the bachelor of applied informatics
object-oriented programming
the motivational-value component
the organizational-content component
the cognitive-operational component
the personality-reflective component.

Современная система высшего образования требует совершенствования процесса подготовки бакалавров прикладной информатики, повышения уровня их профессиональной компетентности в процессе обучения объектно ориентированному программированию. Актуальность проблемы формирования компетенции бакалавров прикладной информатики в области объектно ориентированного программирования продиктована требованиями, которые характерны современному информационному обществу, для эффективного функционирования в котором специалисту недостаточно только изучать и понимать учебные дисциплины по программированию.

В настоящее время в педагогической и методической литературе практически отсутствуют фундаментальные исследования, посвященные формированию компетенции бакалавров прикладной информатики в области объектно ориентированного программирования. Данная компетенция представляет собой совокупность взаимосвязанных смысловых ориентаций, знаний, умений, навыков и опыта деятельности, определяющих способности бакалавра прикладной информатики разрабатывать, внедрять и адаптировать прикладное программное обеспечение.

Компетенция в области объектно ориентированного программирования относится к блоку профессиональных компетенций бакалавров прикладной информатики, так как требования современных стандартов по данному направлению подготовки предполагают достижение интегрированного конечного результата образования, в качестве которого рассматривается формирование у выпускника профессиональной компетентности как целостности обобщенных знаний и умений, универсальных способностей и готовности к решению различных задач, в том числе – к профессиональному программированию средствами объектно ориентированной методологии.

Раскроем подробнее содержание подготовки бакалавра прикладной информатики по компонентам компетенции в области объектно ориентированного программирования: мотивационно-ценностному, организационно-содержательному, когнитивно-операционному и личностно-рефлексивному.

Мотивационно-ценностный компонент компетенции в области объектно ориентированного программирования представляет собой совокупность мотивов к профессиональной разработке компьютерных программ. Данный аспект подготовки студента раскрывается в аспекте формирования психологической готовности студента к изучению программирования и созданию компьютерных программ.

Е.И. Машбиц, анализируя психолого-педагогические проблемы компьютеризации обучения, выделяет два подхода к пониманию сути психологической готовности студента: функциональный и личностный. Функциональный подход предполагает исследование готовности к деятельности как определенного состояния психологической функции, при котором достигается высокий уровень в определенной деятельности. Личностный подход предполагает результат подготовки к определенной деятельности. То есть психологическая готовность – это интегральное образование личности, включающее ряд компонентов (мотивационный, когнитивный, эмоционально-волевой) и совокупность знаний, умений, навыков и личностных качеств, адекватных требованиям содержания и условиям деятельности. Существует глубокая взаимосвязь функционального состояния готовности и готовности как устойчивой характеристики личности. «Эта готовность включает в себя мотивы и цели деятельности человека, работающего с ЭВМ, ее функциональное состояние и работоспособность» [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) владеть навыками объектно ориентированного программирования.

Личностно-рефлексивный компонент компетенции в области объектно ориентированного программирования заключается в наличии у бакалавра прикладной информатики собственного стиля, способности оценивать собственную деятельность и ее результаты, совершенствовать знания в области современного программирования, осознавать собственную значимость в коллективе, а также самореализовываться в профессиональной деятельности, используя современные информационные технологии.

Данные аспекты профессиональной подготовки бакалавров прикладной информатики раскрываются в трудах, где анализируются особенности формирования профессионализма и профессионального мастерства программиста, особых личностных качеств, присущих профессиональным программистам.

Таким образом, личностно-рефлексивный компонент компетенции в области объектно ориентированного программирования подразумевает формирование навыков самосовершенствования и самореализации бакалавров прикладной информатики. Это возможно путем вырабатывания определенного набора профессиональных знаний, умений и навыков в области объектно ориентированного программирования и развития таких качеств, как работа в команде, лидерские качества, индивидуальность, способность к рефлексии, способность к самостоятельному обучению и освоению новых технологий в течение жизни, самообразование, планирование деятельности, логическое, алгоритмическое и объектно ориентированное мышление, целеустремленность, настойчивость, умение самостоятельно принять решение, быстро адаптироваться к новым задачам.

Формирование указанных качеств должно осуществляться в рамках всей системы подготовки бакалавров прикладной информатики в области объектно ориентированного программирования. Логика развертывания данной линии подготовки бакалавра прикладной информатики будет зависеть не столько от содержания, сколько от методов, форм и средств учебной деятельности, применяемых на дисциплинах введения в объектно ориентированное программирование («Программирование для начинающих», «Визуальное программирование» или др.), а также изучения технологий объектно ориентированного программирования с использованием конкретного языка («Информатика и программирование», «Объектно ориентированное программирование» или др.).

Таким образом, формирование описанных выше компонент компетенции бакалавра прикладной информатики в области объектно ориентированного программирования будет способствовать формированию профессиональной компетентности в целом. Предложенная структура компетенции может служить основой проектирования содержательных и процессуальных компонент учебных курсов объектно ориентированного программирования в структуре образовательных программ прикладной информатики. Перспективным направлением дальнейших исследований является разработка методики обучения основам объектно ориентированного программирования бакалавров прикладной информатики с использованием визуальных учебных сред.