PROBLEMS OF ORGANIZING THE LEARNING ENVIRONMENT FOR LOW-LEVEL PROGRAMMING

Authors

DOI:

https://doi.org/10.32782/cusu-pmtp-2025-1-1

Keywords:

low-level programming, assembler, compiler, linker, library, code editor, integrated development environment

Abstract

The article presents the results of a study on methods of organizing a working environment for teaching the basics of low-level programming. Emphasis is placed on the use of simple and accessible software development tools. Due to the discontinuation of support for 16-bit programs, it is proposed to organize a working environment based on the MASM32 assembler with the Irvine32 input/output library. In the computer architecture course, more attention is paid to the principles of computer systems functioning and the assembler programs buildings.Scientific publications on the organization of programming education for beginners, low-level programming training, and the use of development environments in the educational process were analyzed. Based on the analysis, requirements for editors/programming environments were formulated.Teaching the fundamentals of low-level programming is proposed to be carried out in stages. At the initial stages, students become familiar with the organization of a programming learning environment based on the chosen assembler, learn the principle of program translation using console commands and batch command files. At the next stages, it is proposed to use text editors with a set of programming support functions, automation of the compilation and debugging process.According to the requirements for software development environments, the functionality of the simple editor HiEditor and the more advanced editor Notepad++ were analyzed. It was found that although the considered editors do not have all the desired functions, they can be added by creating user commands to call third-party programs, including the assembler, linker, and debugger. An analysis of the capabilities of the professional IDE Visual Studio showed that it can also be used for assembler programming, but this requires numerous settings.

References

Баранюк О. Пошук шляхів підвищення ефективності вивчення мови асемблера. Наукові записки.

Серія : Проблеми методики фізико-математичної і технологічної освіти. 2011. Вип. 2. С. 18–26.

Баранюк О. Розробка навчальної бібліотеки підпрограм для низькорівневого програмування. Наукові записки. Серія : Проблеми методики фізико-математичної і технологічної освіти. 2015. Вип. 7(2). С. 9–15.

Жалдак М. І. Проблеми інформатизації навчального процесу в середніх і вищих навчальних закладах. Комп’ютер в школі та сім’ї. 2013. № 3. С. 8–15.

Agarwal K. K., Agarwal A. Do we need a separate assembly language programming course? Journal of Computing Sciences in Colleges. 2004, № 19 (4). p. 246–251.

Computer Science Curricula 2023 / ACM; IEEE-CS; AAAI. New York: CM, 2023. 459 p. URL: https:// dl.acm.org/doi/pdf/10.1145/3664191.

Gomes A., Mendes A.J. Learning to Program – Difficulties and Solutions. International Conference on Engineering Education. ICEE, 2007. p. 283–287.

Hyde R. Why Learning Assembly Language Is Still a Good Idea. 2004. URL: https://bixoft.nl/english/ hyde.htm

Irvine K. Assembly language for x86 processors. 7th ed. Upper Saddle River : Pearson Education, 2015. 868 p.

Khan A. W. Mastering Assembly Language. 2024. URL: https://blog.ahmadwkhan.com/mastering-as-sembly-language

Requirements for an Online Integrated Development Environment for Automated Programming Assessment Systems / Frankford E., Crazzolara D., Sauerwein C. et al. Proceedings of the 16th International Conference on Computer Supported Education: CSEDU. 2024. Vol. 1. Angers : SciTePress. p. 305–313. DOI: 10.5220/0012556400003693

Robins A., Rountree J., Rountree N. Learning and Teaching Programming : A Review and Discussion. Computer Science Education. 2003. Vol. 13. No. 2. p. 137–172.

Satav S. K., Satpathy S. K., Satao K. J. A comparative study and critical analysis of various integrated development environments of C, C++, and Java languages for optimum development. Universal Journal of Applied Computer Science and Technology. 2011. No. 1. p. 9–15.

Sotnik S., Lyashenko V., Schakurova T. Modern Integrated Software Development Environments International Journal of Academic and Applied Research (IJAAR). 2021. Vol. 5(10). p. 157–161. URL: https://openarchive.nure.ua/handle/document/18022

The MASM32 SDK Uncompromised capacity for the professional programmer. URL: https://masm32.com

Timbó R. Integrated Development Environments: Definition, What Is, and Purpose. 2024. https://www.revelo.com/blog/integrated-development-environments.

Winslow L. Programming Pedagogy : A Psychological Overview. SIGCSE Bulletin. 1996. № 28 (3). p. 17–22.

Published

2025-05-27