Electronic problem book on design patterns: Implementation and use
https://doi.org/10.32517/0234-0453-2023-38-2-35-46
Abstract
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.
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.
About the Author
M. E. AbramyanRussian Federation
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
Shenzhen, China
Rostov-on-Don
References
1. Gamma E., Helm R., Johnson R., Vlissides J. Design patterns. Elements of reusable object-oriented software. Saint Petersburg, Piter; 2019. 368 p. (In Russian)
2. Freeman E., Robson E., Sierra K., Bates B. Head First Design Patterns. Saint Petersburg, Piter; 2018. 657 p. (In Russian)
3. Shevchuk A., Okhrimenko D., Kasyanov A. Design Patterns via C#. Object-oriented design techniques. Electronic edition; 2015. 288 p. (In Russian.)
4. Kasampalis S. Mastering Python Design Patterns. Packt, Birmingham-Mumbai; 2015. 214 p.
5. Olsen R. Design Patterns in Ruby. Boston, AddisonWesley; 2008. 384 p.
6. 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
7. 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
8. Stuurman S., Florijn G. Experiences with teaching design patterns. ACM SIGCSE Bulletin. 2004;36(3):151–155. DOI: 10.1145/1026487.1008037
9. 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
10. 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
11. 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
12. Babushkina I. A., Okulov S. M. Workshop on object-oriented programming. Tutorial. Moscow, BINOM. Laboratoriya znanij; 2012. 372 p. (In Russian.) EDN: RBATTD
13. Varfolomeeva T. N., Efimova I. Yu. Laboratory workshop on object-oriented programming. Moscow, FLINTA; 2019. 74 p. (In Russian.)
14. 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.)
15. 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
16. 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
17. 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
18. Mishuto K. A. Electronic laboratory practicum on discipline “Object-oriented programming”. Tochnaya Nauka. 2018;(26):116–117. (In Russian.) EDN: XRVQAX
19. 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
20. 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
21. Johnson B. Visual Studio Code: End-to-End editing and debugging tools for web developers. Indianapolis, Wiley; 2019. 192 p.
22. 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
Review
For citations:
Abramyan M.E. Electronic problem book on design patterns: Implementation and use. Informatics and education. 2023;38(2):35-46. (In Russ.) https://doi.org/10.32517/0234-0453-2023-38-2-35-46