Infusing computational science into computer science: A nifty SIMD assignment.
Keywords
Abstract
Successfully solving challenging problems arising from real-world applications in computational science and engineering frequently requires a concerted effort from different scientific disciplines. Besides leveraging knowledge of science, technology, and mathematics, it is often crucial to also harness practical skills from computer science. Therefore, it is no surprise that elements from computer science are taught in education for computational scientists. However, it is rare to turn this process around and integrate aspects of computational science in courses for computer scientists. We describe a programming assignment that has been successfully taught in classroom to provide inspiration for computational science to computer science undergraduates. The assignment is used in a course on performance engineering and consists of programming SIMD instructions to implement automatic differentiation. We describe its tasks, share corresponding solutions, and discuss student feedback.