Access the full text.
Sign up today, get DeepDyve free for 14 days.
Brett Becker (2016)
An Effective Approach to Enhancing Compiler Error MessagesProceedings of the 47th ACM Technical Symposium on Computing Science Education
Scratch
https://scratch.mig.edu.
Peter H. Welch, Jo R. Aldous, Jon Foster (2002)
CSP networking for Java (JCSPnet). In International Conference on Computational Science. Springer
He Zhang, M. Babar, Paolo Tell (2011)
Identifying relevant studies in software engineeringInf. Softw. Technol., 53
B. Kitchenham, P. Brereton, D. Budgen, M. Turner, J. Bailey, S. Linkman (2009)
Systematic literature reviews in software engineering - A systematic literature reviewInf. Softw. Technol., 51
Peter Welch, Neil Brown, James Moores, K. Chalmers, B. Sputh (2007)
Integrating and Extending JCSP
S. Needleman, C. Wunsch (1970)
A general method applicable to the search for similarities in the amino acid sequence of two proteins.Journal of molecular biology, 48 3
Quorum: Programming Languages and Learning
https://quorumlanguage.com/evidence.html.
Michael Coblenz, R. Seacord, B. Myers, Joshua Sunshine, Jonathan Aldrich (2015)
A course-based usability analysis of Cilk Plus and OpenMP2015 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC)
F. Filho, J. Oliveira, André Santos (2011)
Software transactional memory vs. locking in a functional language: a controlled experiment
Neil C. C. Brown, Amjad Altadmri (2016)
Novice Java programming mistakes: Large-scale data vseducator beliefs. ACM Transactions on Computing Education (TOCE) (2016).
Antti-Juhani Kaijanaho (2015)
Evidence-based programming language design : a philosophical and methodological exploration
The CONSORT Group (2009)
9 Dec 2009CONSORT 2010 Statement: Updated guidelines for reporting parallel group randomised trials. Section 8b. Randomisation: Type. http://www.consort-statement.org/checklists/view/32--consort-2010/87-randomisation-type., 2010
David Weintrop, N. Holbert (2017)
From Blocks to Text and Back: Programming Patterns in a Dual-Modality EnvironmentProceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education
(2017)
The Go Programming Languages: FAQ: Origins
Paul Denny, Andrew Luxton-Reilly, E. Tempero (2012)
All syntax errors are not equal
Harry M. Marks (2000)
The Progress of Experiment: Science and Therapeutic Reform in the United States, 1900-1990Cambridge University Press.
C. Rossbach, O. Hofmann, E. Witchel (2010)
Is transactional programming actually easier?
D. Cantor (2002)
The progress of experiment: science and therapeutic reform in the United States, 1900–1990Medical History, 46
(2016)
Empirical Study of Concurrency Programming Paradigms
David Weintrop, U. Wilensky (2015)
Using Commutative Assessments to Compare Conceptual Understanding in Blocks-based and Text-based ProgramsProceedings of the eleventh annual International Conference on International Computing Education Research
Rahim Ramezanian (1978)
Communicating sequential processesCommun. ACM, 21
Erlang Programming Language
https://www.erlang.org/.
U.S. Department of Education Institute of Education Sciences (2010)
What Works Clearinghouse Procedures and Standards Handbook (2U.S. Department of Education.
P. Welch, Jo Aldous, Jon Foster (2002)
CSP Networking for Java (JCSP.net)
The Scala Programming Language
https://www.scala-lang.org/.
Amjad AlTadmri, Neil Brown (2015)
37 Million Compilations: Investigating Novice Programming Mistakes in Large-Scale Student DataProceedings of the 46th ACM Technical Symposium on Computer Science Education
J. Siegmund, Christian Kästner, Jörg Liebig, S. Apel, Stefan Hanenberg (2014)
Measuring and modeling programming experienceEmpirical Software Engineering, 19
T. Price, Neil Brown, Dragan Lipovac, T. Barnes, Michael Kölling (2016)
Evaluation of a Frame-based Programming EditorProceedings of the 2016 ACM Conference on International Computing Education Research
occam-pi in a nutshell
http://pop-users.org/occam-pi/.
V. Pankratius, Ali-Reza Adl-Tabatabai (2011)
A study of transactional memory vs. locks in practice
Neil Brown, Amjad AlTadmri (2017)
Novice Java Programming MistakesACM Transactions on Computing Education (TOCE), 17
The Go Programming Languages: FAQ: Design
https://golang.org/doc/faq#csp.
A. Stefik, Susanna Siebert (2013)
An Empirical Investigation into Programming Language SyntaxACM Trans. Comput. Educ., 13
Christopher J. Rossbach, Owen S. Hofmann, Emmett Witchel (2010)
Is transactional programming actually easier?ACM Sigplan Notices 45, 5 (2010), 47--56Is transactional programming actually easier?ACM Sigplan Notices
Neil Brown, Amjad AlTadmri (2014)
Investigating novice programming mistakes: educator beliefs vs. student data
G. Lewandowski, D. Bouvier, R. McCartney, Kate Sanders, B. Simon (2007)
Commonsense computing (episode 3): concurrency and concert tickets
Victor Pankratius, Ali-Reza Adl-Tabatabai (2011)
A study of transactional memory vslocks in practice. In Proceedings of the 23rd Annual ACM Symposium on Parallelism in Algorithms and Architectures. ACM
Neil Brown, Michael Kölling, Davin McCall, I. Utting (2014)
Blackbox: a large scale repository of novice programmers' activityProceedings of the 45th ACM technical symposium on Computer science education
Alice
http://alice.org.
Fernando Castor, João Paulo Oliveira, André L. M. Santos (2011)
Software transactional memory vslocking in a functional language: A controlled experiment. In Proceedings of the Compilation of the Co-located Workshops on DSM’11, 2011
There are many paradigms available to address the unique and complex problems introduced with parallel programming. These complexities have implications for computer science education as ubiquitous multi-core computers drive the need for programmers to understand parallelism. One major obstacle to student learning of parallel programming is that there is very little human factors evidence comparing the different techniques to one another, so there is no clear direction on which techniques should be taught and how. We performed a randomized controlled trial using 88 university-level computer science student participants performing three identical tasks to examine the question of whether or not there are measurable differences in programming performance between two paradigms for concurrent programming: threads compared to process-oriented programming based on Communicating Sequential Processes. We measured both time on task and programming accuracy using an automated token accuracy map (TAM) technique. Our results showed trade-offs between the paradigms using both metrics and the TAMs provided further insight about specific areas of difficulty in comprehension.
ACM Transactions on Computing Education (TOCE) – Association for Computing Machinery
Published: Sep 9, 2020
Keywords: Parallel programming
Read and print from thousands of top scholarly journals.
Already have an account? Log in
Bookmark this article. You can see your Bookmarks on your DeepDyve Library.
To save an article, log in first, or sign up for a DeepDyve account if you don’t already have one.
Copy and paste the desired citation format or use the link below to download a file formatted for EndNote
Access the full text.
Sign up today, get DeepDyve free for 14 days.
All DeepDyve websites use cookies to improve your online experience. They were placed on your computer when you launched this website. You can change your cookie settings through your browser.