Teaching Parallel Computing and Dependence Analysis with Python

2019 
Languages with a high level of abstraction, such as Python, are becoming popular among programmers and are being adopted as the primary programming language in pedagogy. A potential drawback of using such languages is that the architectural aspects, such as data layout in memory, get completely hidden. Therefore, the students have difficulty in understanding advanced computer science topics such as Parallel Computing. Computer architectures have evolved to allow multiple levels of parallelism. From mobile devices to supercomputers, a lot of tasks are done in parallel. Parallel Programming models have become ubiquitous and computer science graduates should know how to take advantage of those models. Therefore, it becomes necessary to expose students to the concepts of parallel programming early in the curriculum. This work describes a lesson plan for teaching Parallel Computing, using Data Dependence analysis and Loop transformations, to Python Programming students. We analyze our teaching experience, evaluation of students' understanding and likelihood of using parallel programming in introductory courses in the future.
    • Correction
    • Source
    • Cite
    • Save
    • Machine Reading By IdeaReader
    12
    References
    3
    Citations
    NaN
    KQI
    []