BibTeX for papers by David Kotz; for complete/updated list see https://www.cs.dartmouth.edu/~kotz/research/papers.html @Article{kotz:jdapple, author = {David Kotz}, title = {{A DAta-Parallel Programming Library for Education (DAPPLE)}}, journal = {Computer Science Education}, year = 1996, volume = 6, number = 2, pages = {141--159}, publisher = {Ablex Publishing}, copyright = {Ablex Publishing}, DOI = {10.1080/0899340950060203}, URL = {https://www.cs.dartmouth.edu/~kotz/research/kotz-jdapple/index.html}, abstract = {In the context of our goal to bring parallel computing into the undergraduate curriculum, we needed a parallel-programming language that was accessible to students and independent of any particular hardware platform. Finding nothing appropriate, we chose to design our own language. The result, DAPPLE, is a C++ class library designed to provide the illusion of a data-parallel programming language on conventional hardware and with conventional compilers. DAPPLE defines \emph{Vector} and \emph{Matrix} classes, with most C++ operators overloaded to provide elementwise arithmetic, and supports data-parallel operations like scans, permutations, and reductions. DAPPLE also provides a parallel if-then-else statement to restrict the scope of the above operations to partial vectors or matrices. In this article we describe the DAPPLE language, the pedagogical decisions that went into its design, and our experience using DAPPLE in the classroom. DAPPLE is freely available on the Internet.}, }