This course introduces the fundamentals of scientific programming languages and techniques used by engineers to solve engineering problems. Students will be introduced to common scientific programming languages and their comparative advantages and disadvantages. Emphasis is placed on the fundamentals of programming, program design, verification, and visualization. The goal is to provide the students with the skills in scientific computing, tools, techniques that can be used to solve their own engineering problems. Students will learn to implement algorithms using a high-level programming language (e.g. MATLAB, Mathematica, FORTRAN). The programming skills acquired in this course will allow students to go beyond what is available in pre-packaged analysis tools, and code their own custom data processing, analysis, and visualization for any engineering problem.