This textbook is written for the first introductory course on scientific computing. It covers elementary numerical methods for linear systems, root finding, interpolation, numerical integration, numerical differentiation, least squares problems, initial value problems and boundary value problems. It includes short Matlab and Python tutorials to quickly get students started on programming. It makes the connection between elementary numerical methods with advanced topics such as machine learning and parallel computing.