<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.3 20210610//EN" "JATS-journalpublishing1-3.dtd">
<article article-type="research-article" dtd-version="1.3" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xml:lang="ru"><front><journal-meta><journal-id journal-id-type="publisher-id">infojournal</journal-id><journal-title-group><journal-title xml:lang="ru">Информатика и образование</journal-title><trans-title-group xml:lang="en"><trans-title>Informatics and education</trans-title></trans-title-group></journal-title-group><issn pub-type="ppub">0234-0453</issn><issn pub-type="epub">2658-7769</issn><publisher><publisher-name>Publishing House Education and Informatics</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.32517/0234-0453-2023-38-2-35-46</article-id><article-id custom-type="elpub" pub-id-type="custom">infojournal-961</article-id><article-categories><subj-group subj-group-type="heading"><subject>Research Article</subject></subj-group><subj-group subj-group-type="section-heading" xml:lang="ru"><subject>ИНФОРМАТИЗАЦИЯ ОБРАЗОВАНИЯ</subject></subj-group><subj-group subj-group-type="section-heading" xml:lang="en"><subject>INFORMATIZATION OF EDUCATION</subject></subj-group></article-categories><title-group><article-title>Электронный задачник по паттернам проектирования: реализация и использование</article-title><trans-title-group xml:lang="en"><trans-title>Electronic problem book on design patterns: Implementation and use</trans-title></trans-title-group></title-group><contrib-group><contrib contrib-type="author" corresp="yes"><contrib-id contrib-id-type="orcid">https://orcid.org/0000-0002-2802-6144</contrib-id><name-alternatives><name name-style="eastern" xml:lang="ru"><surname>Абрамян</surname><given-names>М. Э.</given-names></name><name name-style="western" xml:lang="en"><surname>Abramyan</surname><given-names>M. E.</given-names></name></name-alternatives><bio xml:lang="ru"><p>Абрамян Михаил Эдуардович, канд. физ.-мат. наук, доцент, доцент факультета вычислительной математики и кибернетики; доцент кафедры алгебры и дискретной математики, Институт математики, механики и компьютерных наук им. И. И. Воровича</p><p>Шэньчжэнь, Китай</p><p>г. Ростов-на-Дону</p></bio><bio xml:lang="en"><p>Mikhail E. Abramyan, Candidate of Sciences (Physics and Mathematics), Docent, Associate Professor at the Faculty of Computational Mathematics and Cybernetics; Associate Professor at the Department of Algebra and Discrete Mathematics, Institute for Mathematics, Mechanics, and Computer Science named after of I. I. Vorovich</p><p>Shenzhen, China</p><p>Rostov-on-Don</p></bio><email xlink:type="simple">mabr@sfedu.ru</email><xref ref-type="aff" rid="aff-1"/></contrib></contrib-group><aff-alternatives id="aff-1"><aff xml:lang="ru">Университет МГУ-ППИ в Шэньчжэне; Южный федеральный университет<country>Россия</country></aff><aff xml:lang="en">Shenzhen MSU-BIT University; Southern Federal University<country>Russian Federation</country></aff></aff-alternatives><pub-date pub-type="collection"><year>2023</year></pub-date><pub-date pub-type="epub"><day>03</day><month>07</month><year>2023</year></pub-date><volume>38</volume><issue>2</issue><fpage>35</fpage><lpage>46</lpage><permissions><copyright-statement>Copyright &amp;#x00A9; Абрамян М.Э., 2023</copyright-statement><copyright-year>2023</copyright-year><copyright-holder xml:lang="ru">Абрамян М.Э.</copyright-holder><copyright-holder xml:lang="en">Abramyan M.E.</copyright-holder><license license-type="creative-commons-attribution" xlink:href="https://creativecommons.org/licenses/by/4.0/" xlink:type="simple"><license-p>This work is licensed under a Creative Commons Attribution 4.0 License.</license-p></license></permissions><self-uri xlink:href="https://info.infojournal.ru/jour/article/view/961">https://info.infojournal.ru/jour/article/view/961</self-uri><abstract><p>Работа посвящена проблемам, связанным с организацией практической составляющей учебных курсов по объектно-ориентированному программированию (ООП). Дается обзор существующих обучающих ресурсов по курсам ООП и отмечается отсутствие в них учебных заданий по паттернам проектирования — одному из основных компонентов современной теории ООП. Для решения отмеченной проблемы предлагается использовать специализированный обучающий ресурс — электронный задачник по паттернам объектно-ориентированного проектирования. Подробно описываются особенности задачника по паттернам проектирования, и приводится пример его реализации: задачник Programming Taskbook for OOP, включающий в себя задания, связанные с 21 классическим паттерном проектирования, а также вводную группу заданий, посвященную принципам и приемам ООП.</p><p>Новизна описанного подхода состоит в том, что, в отличие от традиционных задачников, Programming Taskbook for OOP не только содержит формулировки заданий, но и предоставляет учебной программе исходные данные и обеспечивает автоматическую проверку правильности предложенного решения. Еще одной важной особенностью задачника является его универсальность: задания можно выполнять на любых языках и в разных средах программирования, что позволяет легко адаптировать задачник для использования в различных учебных курсах уровня бакалавриата и магистратуры. Обсуждаются результаты применения задачника при проведении курсов по ООП.</p></abstract><trans-abstract xml:lang="en"><p>The article is dedicated to the problems associated with organizing the practical component of object-oriented programming (OOP) courses. A review of current learning resources for OOP courses reveals a lack of learning assignments related to design patterns, which are essential components of modern OOP theory. To solve this problem, the author proposes using a specialized training resource — an electronic problem book on object-oriented design patterns. The features of the design patterns e-taskbook are described in detail and an example of its implementation is given: the Programming Taskbook for OOP, which includes tasks related to 21 classic design patterns, as well as an introductory group of tasks dedicated to the principles and techniques of OOP.</p><p>The article emphasizes the novelty of this approach, noting that unlike traditional problem books, the Programming Taskbook for OOP not only contains the wording of tasks, but also provides the courseware with input data and automatic verification of the proposed solution. Another important feature of the book is its versatility: the tasks can be performed in different languages and different programming environments, which allows to easily adapt the book for use in various undergraduate and graduate courses. Finally, the author presents his experience using the Programming Taskbook in OOP courses.</p></trans-abstract><kwd-group xml:lang="ru"><kwd>электронный задачник</kwd><kwd>объектно-ориентированное программирование</kwd><kwd>паттерны проектирования</kwd></kwd-group><kwd-group xml:lang="en"><kwd>electronic problem book</kwd><kwd>object-oriented programming</kwd><kwd>design patterns</kwd></kwd-group></article-meta></front><back><ref-list><title>References</title><ref id="cit1"><label>1</label><citation-alternatives><mixed-citation xml:lang="ru">Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж. Приемы объектно-ориентированного проектирования. Паттерны проектирования. СПб.: Питер; 2019. 368 с.</mixed-citation><mixed-citation xml:lang="en">Gamma E., Helm R., Johnson R., Vlissides J. Design patterns. Elements of reusable object-oriented software. Saint Petersburg, Piter; 2019. 368 p. (In Russian)</mixed-citation></citation-alternatives></ref><ref id="cit2"><label>2</label><citation-alternatives><mixed-citation xml:lang="ru">Фримен Э., Робсон Э., Сьерра К., Бейтс Б. Head First. Паттерны проектирования. СПб.: Питер; 2018. 657 с.</mixed-citation><mixed-citation xml:lang="en">Freeman E., Robson E., Sierra K., Bates B. Head First Design Patterns. Saint Petersburg, Piter; 2018. 657 p. (In Russian)</mixed-citation></citation-alternatives></ref><ref id="cit3"><label>3</label><citation-alternatives><mixed-citation xml:lang="ru">Шевчук А., Охрименко Д., Касьянов А. Design Patterns via C#. Приемы объектно-ориентированного проектирования. Электронное издание; 2015. 288 с.</mixed-citation><mixed-citation xml:lang="en">Shevchuk A., Okhrimenko D., Kasyanov A. Design Patterns via C#. Object-oriented design techniques. Electronic edition; 2015. 288 p. (In Russian.)</mixed-citation></citation-alternatives></ref><ref id="cit4"><label>4</label><citation-alternatives><mixed-citation xml:lang="ru">Kasampalis S. Mastering Python Design Patterns. Packt, Birmingham-Mumbai; 2015. 214 p.</mixed-citation><mixed-citation xml:lang="en">Kasampalis S. Mastering Python Design Patterns. Packt, Birmingham-Mumbai; 2015. 214 p.</mixed-citation></citation-alternatives></ref><ref id="cit5"><label>5</label><citation-alternatives><mixed-citation xml:lang="ru">Olsen R. Design Patterns in Ruby. Boston, AddisonWesley; 2008. 384 p.</mixed-citation><mixed-citation xml:lang="en">Olsen R. Design Patterns in Ruby. Boston, AddisonWesley; 2008. 384 p.</mixed-citation></citation-alternatives></ref><ref id="cit6"><label>6</label><citation-alternatives><mixed-citation xml:lang="ru">Вайсфельд М. Объектно-ориентированное мышление. СПб.: Питер; 2014, 304 с. Режим доступа: https://elibrary.ceiti.md/files/12/Vaysfeld_Obektno-orientirovannoe_myishlenie.pdf</mixed-citation><mixed-citation xml:lang="en">Weisfeld M. The object-oriented thought process. Saint Petersburg, Piter; 2014, 304 p. (In Russian.) Available at: https://elibrary.ceiti.md/files/12/Vaysfeld_Obektnoorientirovannoe_myishlenie.pdf</mixed-citation></citation-alternatives></ref><ref id="cit7"><label>7</label><citation-alternatives><mixed-citation xml:lang="ru">Astrachan O., Berry G., Cox L., Mitchener G. Design patterns: An essential component of CS curricula. Proc. 29th SIGCSE Technical Symposium on Computer Science Education. 1998;30(1):153–160. DOI: 10.1145/273133.273182</mixed-citation><mixed-citation xml:lang="en">Astrachan O., Berry G., Cox L., Mitchener G. Design patterns: An essential component of CS curricula. Proc. 29th SIGCSE Technical Symposium on Computer Science Education. 1998;30(1):153–160. DOI: 10.1145/273133.273182</mixed-citation></citation-alternatives></ref><ref id="cit8"><label>8</label><citation-alternatives><mixed-citation xml:lang="ru">Stuurman S., Florijn G. Experiences with teaching design patterns. ACM SIGCSE Bulletin. 2004;36(3):151–155. DOI: 10.1145/1026487.1008037</mixed-citation><mixed-citation xml:lang="en">Stuurman S., Florijn G. Experiences with teaching design patterns. ACM SIGCSE Bulletin. 2004;36(3):151–155. DOI: 10.1145/1026487.1008037</mixed-citation></citation-alternatives></ref><ref id="cit9"><label>9</label><citation-alternatives><mixed-citation xml:lang="ru">Gestwicki P., Sun F.-S. Teaching design patterns through computer game development. Journal on Educational Resources in Computing. 2008;8(1):2. DOI: 10.1145/1348713.1348715</mixed-citation><mixed-citation xml:lang="en">Gestwicki P., Sun F.-S. Teaching design patterns through computer game development. Journal on Educational Resources in Computing. 2008;8(1):2. DOI: 10.1145/1348713.1348715</mixed-citation></citation-alternatives></ref><ref id="cit10"><label>10</label><citation-alternatives><mixed-citation xml:lang="ru">Muyan-Özçelik P. A hands-on cross-platform mobile programming approach to teaching OOP concepts and design patterns. Proc. of the 1st International Workshop on Software Engineering Curricula for Millennials. 2017:33–39. DOI: 10.1109/SECM.2017.12</mixed-citation><mixed-citation xml:lang="en">Muyan-Özçelik P. A hands-on cross-platform mobile programming approach to teaching OOP concepts and design patterns. Proc. of the 1st International Workshop on Software Engineering Curricula for Millennials. 2017:33–39. DOI: 10.1109/SECM.2017.12</mixed-citation></citation-alternatives></ref><ref id="cit11"><label>11</label><citation-alternatives><mixed-citation xml:lang="ru">Azimullah Z., Young Sun An, Denny P. Evaluating an interactive tool for teaching design patterns. Proc. of the Twenty-Second Australasian Computing Education Conf. (ACE’20). 2020:167–176. DOI: 10.1145/3373165.3373184</mixed-citation><mixed-citation xml:lang="en">Azimullah Z., Young Sun An, Denny P. Evaluating an interactive tool for teaching design patterns. Proc. of the Twenty-Second Australasian Computing Education Conf. (ACE’20). 2020:167–176. DOI: 10.1145/3373165.3373184</mixed-citation></citation-alternatives></ref><ref id="cit12"><label>12</label><citation-alternatives><mixed-citation xml:lang="ru">Бабушкина И. А., Окулов С. М. Практикум по объектно-ориентированному программированию. Учебное пособие. М.: БИНОМ. Лаборатория знаний; 2012. 372 с. EDN: RBATTD</mixed-citation><mixed-citation xml:lang="en">Babushkina I. A., Okulov S. M. Workshop on object-oriented programming. Tutorial. Moscow, BINOM. Laboratoriya znanij; 2012. 372 p. (In Russian.) EDN: RBATTD</mixed-citation></citation-alternatives></ref><ref id="cit13"><label>13</label><citation-alternatives><mixed-citation xml:lang="ru">Варфоломеева Т. Н., Ефимова И. Ю. Лабораторный практикум по объектно-ориентированному программированию. М.: ФЛИНТА; 2019. 74 с.</mixed-citation><mixed-citation xml:lang="en">Varfolomeeva T. N., Efimova I. Yu. Laboratory workshop on object-oriented programming. Moscow, FLINTA; 2019. 74 p. (In Russian.)</mixed-citation></citation-alternatives></ref><ref id="cit14"><label>14</label><citation-alternatives><mixed-citation xml:lang="ru">Ашарина И. В., Крупская Ж. Ф. Язык C++ и объектно-ориентированное программирование в C++. Лабораторный практикум. М.: Горячая линия — Телеком; 2016. 232 с.</mixed-citation><mixed-citation xml:lang="en">Asharina I. V., Krupskaya Zh. F. C++ language and object-oriented programming in C++. Laboratory workshop. Moscow, Hot Line — Telecom; 2016. 232 p. (In Russian.)</mixed-citation></citation-alternatives></ref><ref id="cit15"><label>15</label><citation-alternatives><mixed-citation xml:lang="ru">Наумов В. Ю., Гостевская О. В. Объектно-ориентированное программирование на C++. Лабораторный практикум. Волгоград: ВолгГТУ; 2015. 64 с. EDN: RVFTXN</mixed-citation><mixed-citation xml:lang="en">Naumov V. Yu., Gostevskaya O. V. Object-oriented programming in C++. Laboratory workshop. Volgograd, Volgograd State Technical University; 2015. 64 p. (In Russian.) EDN: RVFTXN</mixed-citation></citation-alternatives></ref><ref id="cit16"><label>16</label><citation-alternatives><mixed-citation xml:lang="ru">Объектно-ориентированное программирование: практикум. Сост. А. А. Халидов. Казань: Казанский государственный энергетический университет; 2018. 83 с. Режим доступа: https://lib.kgeu.ru/irbis64r_15/scan/186эл.pdf</mixed-citation><mixed-citation xml:lang="en">Object-oriented programming: А workshop. Comp. A. A. Khalidov. Kazan, Kazan State Power Engineering University; 2018. 83 с. (In Russian.) Available at: https://lib.kgeu.ru/irbis64r_15/scan/186эл.pdf</mixed-citation></citation-alternatives></ref><ref id="cit17"><label>17</label><citation-alternatives><mixed-citation xml:lang="ru">Объектно-ориентированное программирование: лабораторный практикум. Сост. А. В. Щербаков. Минск: БНТУ; 2014. 38 с. Режим доступа: https://rep.bntu.by/handle/data/7771?show=full</mixed-citation><mixed-citation xml:lang="en">Object-oriented programming: Laboratory workshop. Comp. A. V. Scherbakov. Minsk, BNTU; 2014. 38 p. (In Russian.) Available at: https://rep.bntu.by/handle/data/7771?show=full</mixed-citation></citation-alternatives></ref><ref id="cit18"><label>18</label><citation-alternatives><mixed-citation xml:lang="ru">Мишуто К. А. Электронный лабораторный практикум по дисциплине «Объектно-ориентированное программирование». Точная наука. 2018;(26):116–117. EDN: XRVQAX</mixed-citation><mixed-citation xml:lang="en">Mishuto K. A. Electronic laboratory practicum on discipline “Object-oriented programming”. Tochnaya Nauka. 2018;(26):116–117. (In Russian.) EDN: XRVQAX</mixed-citation></citation-alternatives></ref><ref id="cit19"><label>19</label><citation-alternatives><mixed-citation xml:lang="ru">Абрамян М. Э. Инструменты и методы разработки электронных образовательных ресурсов по компьютерным наукам: монография. Ростов-на-Дону; Таганрог: Южный федеральный университет; 2018. 260 с. EDN: YOWZAL</mixed-citation><mixed-citation xml:lang="en">Abramyan M. E. Tools and methods for developing educational software in computer science: monograph. RostovonDon, Taganrog, Southern Federal University; 2018. 260 p. (In Russian.) EDN: YOWZAL</mixed-citation></citation-alternatives></ref><ref id="cit20"><label>20</label><citation-alternatives><mixed-citation xml:lang="ru">Абрамян М. Э. Об архитектуре универсального электронного задачника по программированию. Информатизация образования и науки. 2015;(3(27)):134–149. EDN: RWVJUI</mixed-citation><mixed-citation xml:lang="en">Abramyan M. E. On the architecture of the universal problem book on programming. Informatization of Education and Science. 2015;(3(27)):134–149. (In Russian.) EDN: RWVJUI</mixed-citation></citation-alternatives></ref><ref id="cit21"><label>21</label><citation-alternatives><mixed-citation xml:lang="ru">Johnson B. Visual Studio Code: End-to-End editing and debugging tools for web developers. Indianapolis, Wiley; 2019. 192 p.</mixed-citation><mixed-citation xml:lang="en">Johnson B. Visual Studio Code: End-to-End editing and debugging tools for web developers. Indianapolis, Wiley; 2019. 192 p.</mixed-citation></citation-alternatives></ref><ref id="cit22"><label>22</label><citation-alternatives><mixed-citation xml:lang="ru">Абрамян М. Э. Разработка компонентов электронных задачников по программированию для автоматизации проведения лабораторных занятий. Информатизация образования и науки. 2020;(4(48)):12–28. EDN: SVVAVB</mixed-citation><mixed-citation xml:lang="en">Abramyan M. E. Development of components of electronic programming problems books for automation of laboratory classes. Informatization of Education and Science. 2020;(4(48)):12–28. (In Russian.) EDN: SVVAVB</mixed-citation></citation-alternatives></ref></ref-list><fn-group><fn fn-type="conflict"><p>The authors declare that there are no conflicts of interest present.</p></fn></fn-group></back></article>
