I've volunteered to give an introduction to Python programming to some fellow physicists who normally use MATLAB. Rather than treat them like complete beginners, I'm trying to think of ways to pitch the material in terms of what they already know from their experience with MATLAB. They want to know how to do with Python the things they currently do with MATLAB: mainly analysis, manipulation and plotting of lab data. They also expressed interest in learning "how to program", i.e. they judge their current abilities to resemble "hacking" more than programming, and want to learn a language that employers would be interested in. However, they do understand some of the basic concepts about programming, like variables, loops, if/else blocks, mathematical operations, loading serialised data, etc.I thought I'd start by showing them the basic syntax differences, then move on to the equivalent tools in Python to manipulate and plot arrays (Numpy and Matplotlib). However, at some point I also want to introduce lists, dictionaries, functions, defensive programming, and other key concepts that are often ignored by course that teach scientists how to analyse and plot their data.

Has anyone given, seen or had a course that was aimed at MATLAB users that I could adapt or use as inspiration? Should I treat them like absolute beginners, or can I pitch some of these concepts in terms of their existing experience?