2017Computer Applications in Engineering EducationRequires access

Improving the learning of parallel programming using software refactoring

Yang Zhang

Open publisher page 2 citations

Abstract

ABSTRACT 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. © 2017 Wiley Periodicals, Inc. Comput Appl Eng Educ 25:112–119, 2017; View this article online at wileyonlinelibrary.com/journal/cae ; DOI 10.1002/cae.21784

About this research paper

What this paper is about

ABSTRACT 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. © 2017 Wiley Periodicals, Inc. Comput Appl Eng Educ 25:112–119, 2017; View this article online at wileyonlinelibrary.com/journal/cae ; DOI 10.1002/cae.21784

Why it matters

OpenAlex reports 2 citations for this work. Citation counts describe recorded attention and do not establish research quality.

Key contribution

A contribution statement is not available in the OpenAlex record.

Method / approach

Method details are not available in the OpenAlex metadata.

Main findings

Findings are not separately available in the OpenAlex metadata.

Limitations

Limitations are not available in the OpenAlex metadata.

Applications

Application details are not available in the OpenAlex metadata.

Available abstract

ABSTRACT 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. © 2017 Wiley Periodicals, Inc. Comput Appl Eng Educ 25:112–119, 2017; View this article online at wileyonlinelibrary.com/journal/cae ; DOI 10.1002/cae.21784

Key concepts: Code refactoring, Computer science, Software, Benchmark (surveying), Suite, Software engineering, Task (project management), Field (mathematics)

Related papers

Back to paper searchBrowse research topicsOriginal source
Improving the learning of parallel programming using software refactoring — Research Paper | ScholarLens