Preview

Informatics and education

Advanced search

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. Abramyan
Shenzhen MSU-BIT University; Southern Federal University
Russian 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

Views: 493


Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 License.


ISSN 0234-0453 (Print)
ISSN 2658-7769 (Online)