The Python programming language has become more and more popular in Scientific Computing. In this course, we will talk about the best practices in Python and in scientific computing in general. We will also introduce the concept of concurrent and parallel programming, distributed programming, and GPU programming. During the hands-on session, you will experience how these are done in Python on the Dutch National Supercomputer Cartesius. You will also learn how to use libraries such as numba, PyCUDA and mpi4py.