Visually Introducing Freshmen to Low-Level Java Abstractions for Creating, Synchronizing and Coordinating Threads

Visually Introducing Freshmen to Low-Level Java Abstractions for Creating, Synchronizing and Coordinating Threads
复制标题

DOI:
10.1109/hipcw.2019.00022
复制
发表时间:
2019-12
期刊:
2019 26th International Conference on High Performance Computing, Data and Analytics Workshop (HiPCW)
影响因子:
--
通讯作者:
P. Dewan
P. Dewan
中科院分区:
其他
文献类型:
--
作者:
P. Dewan

文献摘要

被引文献

相似文献

我们已经开发和实验的方法来教低级别的Java并发抽象在我们的第一个CS专业必修课程,它假设过程编程的知识。驾驶问题是对运动中的多个物理对象的可视化模拟,这些物理对象可以(a)被限制在共享空间中并且(B)彼此协调。这种模拟不需要任何特定领域的知识,如排序和图像处理,以驱动问题和练习,其实现展示了基于对象的编程的好处。它们允许专注于并发的性能和可编程性优势,为并发概念的抽象独立解释提供类比,并可用于增量激励所有低级别并发抽象,并可视化使用和不使用这些抽象的效果。分层模拟为基础的工作示例说明了抽象,并在实现这种方法的课程的多个产品中容易理解。学生们根据这些抽象实现了非平凡的任务,即使它们是可选的,也没有因为视觉错误反馈而面临重大障碍,并且对并发感到兴奋,因为他们觉得这使他们能够尽早实现任意应用程序。
We have developed and experimented with an approach to teach low-level Java concurrency abstractions in our first required course for CS majors, which assumes knowledge of procedural programming. The driving problems are visualized simulations of multiple physical objects in motion that may (a) be confined to a shared space and (b) coordinate with each other. Such simulations do not require any domain-specific knowledge such as sorting and image processing for driving problems and exercises, and their implementation demonstrates the benefits of object-based programming. They allow focus on both the performance and programmability benefits of concurrency, provide analogies for an abstraction-independent explanation of concurrency concepts, and can be used to incrementally motivate all low-level concurrency abstractions and visualize the effect of using and not using these abstractions. Layered simulation-based worked examples illustrating the abstractions were presented and easily understood in multiple offerings of a course that implemented this approach. Students implemented non-trivial assignments based on these abstractions, even when they were optional, did not face major obstacles because of visual error feedback, and were excited by concurrency as they felt it empowered them to implement arbitrary applications early.