Table of Contents Author Guidelines Submit a Manuscript
Scientific Programming
Volume 2015 (2015), Article ID 820803, 18 pages
http://dx.doi.org/10.1155/2015/820803
Research Article

Teaching Scientific Computing: A Model-Centered Approach to Pipeline and Parallel Programming with C

1Informatics Methodology Department, Institute of Mathematics and Informatics, Vilnius University, Akademijos Street 4, LT-08663 Vilnius, Lithuania
2Department of Software Development, Faculty of Electronics and Informatics, Vilniaus Kolegija University of Applied Sciences, J. Jasinskio Street 15, LT-01111 Vilnius, Lithuania
3Department of Didactics of Mathematics and Informatics, Faculty of Mathematics and Informatics, Vilniaus University, Naugarduko Street 24, LT-03225 Vilnius, Lithuania
4Operational Research Sector at System Analysis Department, Institute of Mathematics and Informatics, Vilniaus University, Akademijos Street 4, LT-08663 Vilnius, Lithuania

Received 25 July 2014; Revised 24 February 2015; Accepted 7 March 2015

Academic Editor: Beniamino Di Martino

Copyright © 2015 Vladimiras Dolgopolovas et al. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.

Abstract

The aim of this study is to present an approach to the introduction into pipeline and parallel computing, using a model of the multiphase queueing system. Pipeline computing, including software pipelines, is among the key concepts in modern computing and electronics engineering. The modern computer science and engineering education requires a comprehensive curriculum, so the introduction to pipeline and parallel computing is the essential topic to be included in the curriculum. At the same time, the topic is among the most motivating tasks due to the comprehensive multidisciplinary and technical requirements. To enhance the educational process, the paper proposes a novel model-centered framework and develops the relevant learning objects. It allows implementing an educational platform of constructivist learning process, thus enabling learners’ experimentation with the provided programming models, obtaining learners’ competences of the modern scientific research and computational thinking, and capturing the relevant technical knowledge. It also provides an integral platform that allows a simultaneous and comparative introduction to pipelining and parallel computing. The programming language C for developing programming models and message passing interface (MPI) and OpenMP parallelization tools have been chosen for implementation.