Improving the Learning of Parallel Programming Using Software Refactoring

被引:4
|
作者
Zhang, Yang [1 ]
机构
[1] Hebei Univ Sci & Technol, Dept Comp, Sch Informat Sci & Engn, Shijiazhuang 050018, Hebei, Peoples R China
关键词
parallel programming; software refactoring; manual refactoring; automated refactoring tools; learning;
D O I
10.1002/cae.21784
中图分类号
TP39 [计算机的应用];
学科分类号
081203 ; 0835 ;
摘要
Parallel programming has become increasingly popular in the computer educational field over the past few years. Although parallel programs obtain the short execution time and the high throughput, learning how to write a well-structured and high-performance parallel program is still one of the challenges for most of students. How to let students learn parallel programming well is one of the important tasks that educators should resolve. This paper presents the learning of parallel programming using software refactoring methodologies and tools. Manual and automated refactoring are introduced to show how the learning is improved respectively. With manual refactoring, students learn how to perform the data or task decomposition and how to write a well-structured parallel software via customized programs and some benchmarks in JGF benchmark suite; with automated refactoring, students can transform the parallel parts quickly, and then evaluate the performance of a parallel software. Two automated refactoring tools are developed for educational purposes. Some of the experiences are also shared during conducting the course. (C) 2017 Wiley Periodicals, Inc.
引用
收藏
页码:112 / 119
页数:8
相关论文
共 50 条
  • [21] Visualizing software refactoring using radar charts
    Abdel-Rahman Al-Ghuwairi
    Dimah Al-Fraihat
    Yousef Sharrab
    Huda Alrashidi
    Nouf Almujally
    Ahmed Kittaneh
    Ahmed Ali
    Scientific Reports, 13 (1)
  • [22] Refactoring an Electric-Market Simulation Software for Massively Parallel Computations
    Seveso, Franco
    Marichal, Raul
    Dufrechou, Ernesto
    Ezzatti, Pablo
    HIGH PERFORMANCE COMPUTING, CARLA 2022, 2022, 1660 : 190 - 204
  • [23] Tool Support for Finding Anomalies in Refactoring Edits for Improving Software Evolution
    Nguyen, Uy
    Zeng, Xinyu
    Cho, Samuel Sungmin
    Song, Myoungkyu
    2020 IEEE INTERNATIONAL CONFERENCE ON ELECTRO INFORMATION TECHNOLOGY (EIT), 2020,
  • [24] Using Feedback for Improving the Learning Process in Programming Courses
    Alberola, Juan M.
    Garcia-Fornes, Ana
    IEEE REVISTA IBEROAMERICANA DE TECNOLOGIAS DEL APRENDIZAJE-IEEE RITA, 2014, 9 (02): : 49 - 56
  • [25] Refactoring as Meta Programming?
    Thomas, Dave
    JOURNAL OF OBJECT TECHNOLOGY, 2005, 4 (01): : 7 - 11
  • [26] Improving Learning of Programming Through E-Learning by Using Asynchronous Virtual Pair Programming
    Zin, Abdullah Mohd
    Idris, Sufian
    Subramaniam, Nantha Kumar
    TURKISH ONLINE JOURNAL OF DISTANCE EDUCATION, 2006, 7 (03): : 162 - 173
  • [27] IMPROVING THE SECURITY QUALITY OF USE CASE MODELS THROUGH THE APPLICATION OF SOFTWARE REFACTORING USING GENETIC ALGORITHM
    Mumtaz, Haris
    Alshayeb, Mohammad
    Mahmood, Sajjad
    Niazi, Mahmood
    INTERNATIONAL JOURNAL OF SECURITY AND ITS APPLICATIONS, 2020, 14 (01): : 31 - 48
  • [28] Identifying refactoring opportunities using logic meta programming
    Tourwé, T
    Mens, T
    SEVENTH EUROPEAN CONFERENCE ON SOFTWARE MAINTENANCE AND REENGINEERING, PROCEEDINGS, 2003, : 91 - 100
  • [29] Improving evolvability of genetic parallel programming using dynamic sample weighting
    Cheang, SM
    Lee, KH
    Leung, KS
    GENETIC AND EVOLUTIONARY COMPUTATION - GECCO 2003, PT II, PROCEEDINGS, 2003, 2724 : 1802 - 1803
  • [30] An Automatic Advisor for Refactoring Software Clones Based on Machine Learning
    Sheneamer, Abdullah M.
    IEEE ACCESS, 2020, 8 (08) : 124978 - 124988