This course is meant to be a combination of lectures and hands-on sessions on a variety of computational techniques commonly used in physics. The course will introduce basic concepts and a variety of important techniques for numerical computations and data analysis. By the end of this course, students should be able to use computational techniques to solve simple real-world physical problems, and should also have an understanding of how to choose and evaluate appropriate methods for a given problem.