Статья опубликована в рамках: CXXXI Международной научно-практической конференции «Научное сообщество студентов XXI столетия. ГУМАНИТАРНЫЕ НАУКИ» (Россия, г. Новосибирск, 13 ноября 2023 г.)
Наука: Педагогика
Скачать книгу(-и): Сборник статей конференции
дипломов
ПРОФЕССИОНАЛЬНЫЕ КОМПЕТЕНЦИИ БУДУЩИХ ПРОГРАММНЫХ ИНЖЕНЕРОВ В ОБЛАСТИ ШАБЛОНОВ ПРОЕКТИРОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ: МЕТОДЫ ПРЕПОДАВАНИЯ
PROFESSIONAL COMPETENCIES OF FUTURE SOFTWARE ENGINEERS IN THE FIELD OF SOFTWARE DESIGN PATTERNS: TEACHING METHODS
Aigerim Berdimurat
Master’s student, Faculty of Computer Science and Engineering, Astana IT University,
Kazakhstan, Astana
АННОТАЦИЯ
Развитие профессиональной компетенции студентов в изучении шаблонов проектирования программного обеспечения является важной задачей в современной информационной эпохе, где навыки программирования и анализа данных имеют критическое значение. В данной статье мы исследуем, как изучение шаблонов проектирования программного обеспечения может способствовать формированию профессиональной компетенции у студентов, а также какие ключевые аспекты этого процесса следует учитывать. Мы рассмотрим, какие навыки и знания необходимы студентам при работе с шаблонами проектирования программного обеспечения, какие ресурсы доступны для их обучения, и как оценивать достижение профессиональной компетенции. В данной статье предоставлены практические рекомендации и советы для преподавателей и студентов, которые стремятся развивать профессиональную компетенцию через изучение шаблонов проектирования программного обеспечения.
ABSTRACT
Developing students' professional competence in the study of software design patterns is an important task in the modern information age, where programming and data science skills are of critical importance. In this article, we will explore how the study of software design patterns can contribute to the formation of professional competence among students and what key aspects of this process should be taken into account. We will look at what skills and knowledge students need when working with software design patterns, what resources are available for their training and how to evaluate the achievement of professional competence. This article provides practical recommendations and tips for teachers and students who seek to develop professional competence through the study of software design patterns.
Ключевые слова: шаблоны проектирования программного обеспечения, профессиональная компетенция, информационные технологии (ИТ), методы обучения, программная инженерия.
Keywords: software design patterns, professional competence, IT, teaching methods, software engineering.
В современном мире, где информационные технологии проникают во все сферы жизни, владение навыками программирования и обработки информации становится неотъемлемой частью образования. Однако для студентов, начинающих свой путь в мире информационных технологий, важно не только овладеть языком программирования, но и развить профессиональную компетенцию - способность эффективно и критически выполнять определенные профессиональные задачи, а также развивать такие качества, как навыки коммуникации, лидерства, адаптивности и умение решать проблемы.
Быстро развивающиеся информационные технологии требуют от личности постоянного изучения знаний и готовности решать нестандартные задачи. Поэтому на рынке труда всегда востребованы не только квалифицированные специалисты, а профессионалы, стремящиеся к профессиональному росту с профессиональной компетенцией.
Следовательно, изучение шаблонов проектирования программного обеспечения предоставляет студентам уникальную возможность развития профессиональной компетенции. Целью статьи является донесение важности знания шаблонов проектирования программного обеспечения для будущих программистов и определение ключевых навыков, которые студенты приобретают при изучении этого урока с использованием опроса. В данной статье мы рассмотрим, как оценивать уровень профессиональной компетенции студентов и предоставим советы по использованию ресурсов и методов обучения.
Профессиональная компетенция в контексте образования и карьерного развития в области информационных технологий представляет собой неотъемлемый аспект, объединяющий не только технические знания и навыки, но также навыки мягкого взаимодействия, профессиональное этическое поведение, способность решать сложные проблемы и адаптироваться к быстро меняющемуся информационному ландшафту. Профессиональная компетенция подразумевает не только умение работать с технологиями, но и развивать, применять и обновлять знания и навыки для успешного справления с профессиональными вызовами в динамичной области информационных технологий.
Профессиональная компетенция студентов, особенно в области информационных технологий (ИТ), имеет ключевое стратегическое значение. Поскольку область ИТ стремительно меняется, профессиональные компетенции помогают студентам сохранять актуальность своих знаний и навыков, что критически важно в быстро развивающейся сфере. Профессиональные компетенции также повышают конкурентоспособность выпускников на рынке труда, поскольку работодатели часто ищут специалистов с широким спектром навыков и знаний. Кроме того, важно обладать навыками анализа, критического мышления и решения проблем, а также способностью обучаться и адаптироваться для справления с новыми технологиями и требованиями компаний. Тем более, знание наличия необходимых навыков и знаний укрепляет уверенность в себе и предоставляет возможность продвижения и развития профессиональной карьеры.
В целом профессиональная компетенция является фундаментальным элементом успешной профессиональной карьеры в области информационных технологий и важной составляющей личного и профессионального развития. Она объединяет технические и мягкие навыки, а также подчеркивает важность непрерывного обучения и адаптации к изменяющимся требованиям отрасли.
Следует отметить, что студенты, будущие специалисты, обладают потенциалом оказать значительное воздействие на отрасль, предоставив свое профессиональное развитие и мастерство в выбранной области. Рассмотрим формирование профессиональной компетенции у студентов направления "Инженерия программного обеспечения" на примере изучения дисциплины "Шаблоны проектирования программного обеспечения".
Для студентов инженерии программного обеспечения, будущих разработчиков, важно знание шаблонов проектирования. Поскольку они предоставляют способы организации кода и придают более ясную структуру приложениям. Концепция шаблона проектирования зародилась в работах архитектора Александера и др. [1], в то время как его определение шаблона выражается следующим образом: "Каждый шаблон описывает проблему, которая возникает снова и снова, и затем описывает суть решения этой проблемы таким образом, что вы можете использовать это решение миллион раз, ни разу не проделав одно и то же дважды ". Это повторно используемые решения, которые помогают создавать более эффективные, расширяемые и поддерживаемые программные продукты. Эхуд Ламм [5] отмечает, что целью курса по проектированию программного обеспечения является развитие навыков проектирования программного обеспечения путем обучения основным концепциям разработки программного обеспечения, необходимым для изучения и анализа альтернативных программных проектов. Он также помогает создавать более устойчивые и масштабируемые архитектуры, что важно, как для бэкенд-серверов, так и для мобильных клиентов для решения часто встречающихся проблем при проектировании программных систем.
Джохан ван Никерк и Линн Футчер [6] отмечают, что шаблон проектирования предоставляет концептуальную модель лучшего решения, которую, в свою очередь, используют разработчики для создания конкретной реализации своей задачи. Использование шаблонов проектирования имеет ряд преимуществ: 1) шаблон предоставляет руководство по передовым практикам; 2) использование шаблона предоставляет разработчикам общий "словарь" для простого и ясного обсуждения сложных концепций проектирования.
Самые важные преимущества шаблонов проектирования — это согласованность и стандартизация, что способствует формированию профессиональной компетенции, поскольку они предоставляют стандартные решения для распространенных задач, что облегчает коммуникацию между членами команды и согласованное проектирование. Более того, они обеспечивают ясность и структуру кода, что делает его более понятным, читаемым для разработчиков, работающих над одним проектом, а также для тех, кто будет его поддерживать, что упрощает совместную работу.
Шаблоны проектирования обеспечивают повторное использование кода, позволяют более эффективно использовать существующий код и компоненты. Это упрощает разработку и экономит время. Это снижает вероятность ошибок и упрощает обслуживание приложений.
Использование шаблонов проектирования позволяет разрабатывать программное обеспечение быстрее, поскольку многие аспекты проектирования уже решены и задокументированы. Они также способствуют созданию более гибких и модульных архитектур, что упрощает внесение изменений и адаптацию к новым требованиям. Это снижает операционные расходы и риски.
Уровень знаний и умение применять шаблоны проектирования считаются важными показателями профессионального развития в области разработки. Это способствует обмену знаний и опытом между разработчиками и помогает создать более единый язык общения в команде. Поскольку это помогает членам команды лучше понимать и согласовывать архитектуру приложения, что упрощает совместную работу. Кроме того, это помогает развивать профессиональные компетенции, такие как коммуникативные способности, адаптивность и умение решать проблемы.
Знание шаблонов проектирования также упрощает общение и сотрудничество с разработчиками бэкенда, поскольку общие шаблоны могут использоваться для создания последовательной архитектуры приложения.
Изучение шаблонов проектирования способствует развитию ряда технических навыков у студентов. Гамма и др. [2] описывают шаблоны проектирования программного обеспечения как "описания взаимодействующих объектов и классов, настроенных на решение проблем проектирования в конкретном контексте." Хэмилтон младший и Мёртаг [3] описывают организацию проектно-ориентированного обучения, определяя следующие желаемые результаты обучения для студентов: студенты должны использовать знания предыдущих курсов по информатике для разработки средней сложности компьютерных проектов на основе ясных, последовательных и достаточно полных требований к проектной задаче. Кроме того, они будут знать использование и важность, а также преимущества и недостатки каждого шаблона. Студенты учатся создавать объекты с использованием шаблонов создания объектов (Creational Patterns), таких как Singleton, Factory Method, Abstract Factory и другие. Изучение структурных шаблонов, таких как Decorator, Adapter, Composite, помогает студентам понять, как объединять объекты для создания более сложных структур. Эти поведенческие шаблоны (например, Observer, Strategy, Command) обучают студентов контролировать поведение объектов в системе. Также это способствует развитию навыков рефакторинга кода для улучшения его качества и читаемости, а также изучению анализа архитектурных решений и оценке их эффективности с точки зрения производительности, масштабируемости и обслуживаемости. Студенты учатся анализировать существующий код и определять, какие шаблоны можно применить для его улучшения, коммуницировать с коллегами, обосновывать свои архитектурные решения и участвовать в обсуждениях. Эти навыки помогают студентам стать более квалифицированными разработчиками, способными создавать более эффективные, устойчивые и поддерживаемые программные продукты, развивая профессиональную компетенцию.
На первом этапе обучения студентам была предоставлена информация о важности применения шаблонов проектирования и принципов SOLID, сопровождаемая практическими примерами, для более глубокого понимания их функциональных особенностей. Этот этап был направлен на формирование концептуальных основ и убеждений студентов в ценности этих концепций в контексте разработки программного обеспечения.
На следующем этапе учебного процесса были выбраны наиболее актуальные шаблоны проектирования для дальнейшего углубленного изучения. В частности, были выбраны шаблоны "Singleton" и "Strategy". Этот выбор основывался на их важности и применимости в реальных проектах, а также на потребностях разработчиков в понимании их структуры и использования.
Далее было предоставлено подробное описание выбранного шаблона, включая его цели, структуру и методологию применения. Этот этап обучения включал в себя подробные объяснения и демонстрации того, как выбранный шаблон может быть интегрирован в реальные программные проекты. В этот период студентам предоставлялись примеры и практические задания, которые позволяли им применить свои знания на практике.
Таким образом, этот образовательный процесс структурирован и направлен на предоставление студентам глубокого понимания и навыков применения шаблонов проектирования, что способствует их более эффективному участию в разработке программного обеспечения и решении сложных проблем в области информационных технологий.
Для закрепления изученных знаний каждому студенту предоставляется задача реализации выбранного шаблона на собственной теме или проекте с соблюдением принципов SOLID и написания чистого кода при выполнении задачи. Это позволяет закрепить и углубить полученные знания в процессе обучения. В ходе практики, особенно при решении сложных проблем, развивается критическое мышление. Студенты учатся анализировать, сравнивать, искать альтернативные решения и выбирать наиболее эффективные. В результате регулярной практики формируется профессиональная и информационная компетенция, делая студентов более подготовленными к успешной карьере в области информационных технологий.
Более того, студентам предоставлены ресурсы и поддержка, чтобы они могли успешно реализовать шаблоны. Эти ресурсы и методики обогатят их знания и способствуют пониманию шаблонов проектирования с более глубокой научной перспективы. Книга "Head First Design Patterns" Эрика Фримена, Берта Бейтса, Кэти Сьерра предоставляет более глубокое и структурированное изложение материала. Включает в себя примеры, иллюстрации и кейс-стади, которые помогают лучше понять шаблоны. Видеолекции на YouTube по шаблонам проектирования с Кристофером Окрави, предоставленные опытными разработчиками и профессорами, могут быть полезны для более визуального изучения шаблонов. Они также предоставляют материалы бесплатно, что делает их доступными для широкой аудитории. Веб-сайты, такие как https://refactoring.guru/design-patterns, предоставляющие интерактивные ресурсы и задания по шаблонам проектирования, могут помочь студентам применять свои знания на практике. Кто-то предпочтет учиться из книг, другие предпочтут визуальное обучение с помощью видеоуроков, а третьи могут предпочесть интерактивные задачи и практику на веб-сайтах. Независимо от выбора, главное - постоянно обучаться и практиковаться в изучении шаблонов проектирования. Регулярное обучение и практика в области шаблонов проектирования помогут им развивать необходимые навыки.
В дальнейшем, при оценке работ студентов учитывается соблюдение шаблона, принципов SOLID и чистоты кода, также предоставляется конструктивная обратная связь, в которой указываются области для улучшения.
Студенты пишут заключительный отчет, документируя проектные планы, процесс разработки, архитектурные и детальные проектные решения. Преподаватель оценивает студентов по качеству проектирования, умению оценивать проектные решения и обосновывать свой выбор с учетом заявленных качественных характеристик - возможности повторного использования, расширяемости и эффективности стратегии оценки запроса [4, с. 37–38].
Опрос, проведенный среди студентов, принес интересные исследовательские результаты в контексте мотивации и стресса при изучении программирования. Оказалось, что два фактора оказывают наибольшее воздействие на мотивацию студентов: любовь к программированию и технологиям, а также перспективы будущей карьеры и высокие заработные платы. Согласно нашему исследованию, эти факторы действительно мотивируют студентов и делают процесс изучения программирования менее стрессовым.
Однако стоит отметить, что студенты также выделили два аспекта, вызывающих у них стресс при изучении программирования. Во-первых, неудачные попытки решения задач и второстепенные проблемы с соблюдением сроков. Как показал опрос, эти факторы могут быть источником стресса для студентов.
С точки зрения психологии обучения студенты выделили несколько методов, которые они считают наиболее эффективными. Практические занятия и лабораторные работы, а также групповое обучение и обсуждение оказались наиболее предпочтительными стилями обучения. Эти методы позволяют студентам изучать материал более эффективно и снижать уровень стресса в процессе обучения.
Важным результатом опроса также является выявление того, что студенты считают использование шаблонов проектирования важным аспектом создания и поддержания программных продуктов. Они применяют изученные шаблоны проектирования на практике и видят значительное улучшение в результате. Студенты также подчеркивают, что преимущества и недостатки сбалансированы в использовании шаблонов проектирования и считают изучение этих шаблонов неотъемлемой частью профессионального развития разработчика.
Таким образом, результаты данного исследования говорят о важности мотивации, эффективных методов обучения и использования шаблонов проектирования в контексте изучения программирования и развития профессиональных навыков студентов.
Изучение шаблонов проектирования программного обеспечения предоставляет студентам возможность развивать профессиональную компетенцию, что является критически важным в современном мире. Важно помнить, что формирование профессиональной компетенции — это процесс, требующий времени и усилий. Преподаватели и студенты могут сотрудничать, используя рекомендации и ресурсы, представленные в данной статье, для достижения успешных результатов в развитии профессиональной компетенции через изучение шаблонов проектирования программного обеспечения. Освоив навыки эффективной работы с информацией и применения программирования на практике, студенты смогут добиться успеха в учебе и будущей карьере в области информационных технологий.
Список литературы:
- C. Alexander, S. Ishikawa, M. Silverstein, M. Jacobson, I. Fiksdahl-King, S. Angel, A Pattern Language, Oxford University Press, 1977.
- Gamma, E., R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1994.
- Hamilton, Jr J A and Murtagh J L 2000 Teaching a real world software design approach within an academic environment 2000 Annual Conference 10.18260/1-2–8739 (St. Louis, Missouri: ASEE Conferences) p5.577.1–5.577.8 https://peer.asee.org/8739
- Jarzabek S 2013 Teaching advanced software design in team-based project course 2013 26th International Conference on Software Engineering Education and Training (CSEE T) pp 31–40 URL https://doi.org/10.1109/CSEET.2013.6595234
- Lamm E 2003 Booch’s Ada vs. Liskov’s Java: Two approaches to teaching software design Reliable Software Technologies — Ada-Europe 2003 ed Rosen J P and Strohmeier A (Berlin, Heidelberg: Springer Berlin Heidelberg) pp 102–112 ISBN 978-3-540-44947-8 URL https://doi.org/10.1007/3-540-44947-7_7
- van Niekerk J and Futcher L 2015 The use of software design patterns to teach secure software design: An integrated approach Information Security Education Across the Curriculum ed Bishop M, Miloslavskaya N and Theocharidou M (Cham: Springer International Publishing) pp 75–83 ISBN 978-3-319-18500-2 URL https://doi.org/10.1007/978-3-319-18500-2_7
дипломов
Оставить комментарий