Teaching High Performance Computing through Parallel Programming Marathons | IEEE Conference Publication | IEEE Xplore