DESIGNING VISUAL ENVIRONMENT FOR TRAINING STUDENTS PARALLEL PROGRAMMING
The article highlights the approach to teaching students parallel programming by means of a visual learning environment for the development of parallel programs. The author highlights the problems that arise when teaching students parallel programming in laboratory work. Today, higher education institutions do not begin to teach parallel programming until the student develops knowledge of sequential programming. This practice leads to the fact that when developing parallel programs, students first write a sequential program. The author proves that the development of parallel programs by students in laboratory work on parallel programming requires a sufficiently high level of proficiency in the programming language and methods of working with data. This is due to the use of dynamic arrays of the C ++ programming language and the library of parallel and distributed MPI programming. To proceed with the development of parallel code, the student must first develop a part of the program related to the declaration of variables and arrays and a description of working with dynamic arrays. Also, the development of parallel algorithms is complicated by the fact that students have already developed the skills to create sequential algorithms, and these skills hinder the development of parallel algorithms. To solve the problem, the author proposes to develop a visual learning environment. To do this, the author formulates the basic requirements for the design of the visual environment and develops a formal language that will be used in a parallel environment. This language will help to simplify the stage of program development related to the preparation of data for parallel processing and focus on parallel installments. In conclusion, the author argues that the learning visual environment will help students develop parallel code and visually track its implementation, which in turn will help students learn parallel programming more effectively.
2. Карпов А. Введение в проблематику разработки параллельных программ. URL: https://www.viva64.com/ru/a/0016/.
3. Adams J., Brown R., Shoop E. Patterns and Exemplars: Compelling Strategies for Teaching Parallel and Distributed Computing to CS Undergraduates. J. 2013 IEEE International Symposium on Parallel & Distributed Processing, Workshops and Phd Forum.
4. Breuer A., Bader M. Teaching Parallel Programming Models on a Shallow-Water Code. 11th International Symposium on Parallel and Distributed Computing. 2012.
5. Franczak T., Nkansahz A., Marrinan T., Papka M.E. A Path from Serial Execution to Hybrid Parallelization for Learning HPC. Workshop on Education for High-Performance Computing ser. EduHPC’17. 2017.
6. Gregg C., Tychonievich L., Cohoon J., Hazelwood K., EcoSim J. A language and experience teaching parallel programming in elementary school, in SIGCSE’12. 2012, pp. 51–56.
7. Kuhail M.A., Cook S., Neustrom J.W., Rao P. Teaching Parallel Programming with Active Learning. IEEE International Parallel and Distributed Processing Symposium Workshops. 2018.
8. Sitsylitsyn Y. Methods, tools for teaching parallel, distributed computing in universities: a systematic review of the literature. ICHTML 2020: SHS Web of Conferences 75. 2020.