This course is a systematic introduction to computing (with Python and Jupyter notebooks) for science and engineering applications. Examples of applications are drawn from a broad range of disciplines, including physical, financial, and biological-epedemiological problems. The course consists of two Modules: 1. Basics: essential elements of computing, including types of variables, lists, arrays, basic recursive operations (for, while loops, if statement), definition of functions, file handling and simple plots, numerical differentiation, fitting of curves and error analysis, plotting and visualization tools in higher dimensions. 2. Advanced: root finding, series expansions, numerical integration, solving simple ordinary and partial differential equations, use of random numbers for sampling and simulations, such as Monte Carlo integration and random walks. Course work consists of attending lectures and labs, weekly homework assignments, a mid-term project and a final project; while work is developed collaboratively, coding assignments are submitted individually.