This course is a systematic introduction to a computing environment (python with jupyter notebooks) suited for applications to science and engineering. It consists of three Modules: 1. Basics: essential elements of computing: types of variables (integer, floating, logical), lists, arrays, basic operations (for, while loops, if statement), definition of functions, file handling and plotting. 2. Elementary: numerical differentiation, root finding, series expansions, numerical integration, fitting of curves and error analysis, plotting and simulating in higher dimensions (contours). 3. Advanced: solving simple first and second-order ordinary differential equations, solving partial differential equations, use of random numbers for sampling and simulations, such as Monte Carlo integration and modeling realistic problems, like the spread of the COVID-19 pandemic. The course work consists of attending lectures and labs, weekly homework assignments, a mid-term project and a final project; all work is developed in small groups, but assignments must be written by students individually.