An introductory course that will teach a Finite Volume (FV) and Finite Difference (FD) approaches to Computational Fluid Dynamics (CFD) and Heat Transfer. CFD has been an important engineering research domain as it gave researchers the ability to solve analytically intractable problems of industrial relevance. In the last two decades, the immense demand for CFD research and expertise has spawned the commercialization of software packages such as Fluent/CFX and FEMlab. Despite these readily available software packages, there is a recognized importance to user expertise, fundamental knowledge, and critical understanding of their inner workings. In addition, home spun research codes are still prominent in academia and industry. This is due in large part to the fact that commercial software packages are geared toward a broad range of research topics, and may not function as efficiently as a code designed with a specific problem in mind, and to the fact that developments in CFD are typically achieved in research before they are adopted by software companies. This course is appropriate both for students who wish to become knowledgeable users of commercial CFD programs, and students who plan to create, develop, or enhance research codes. Therefore, the overreaching goals of this course are threefold: 1) To give you an introduction to fundamental discretization and solution techniques for heat transfer and fluid dynamics problems; 2) To give you an understanding of solution methodologies, advantages, downfalls, considerations (stability, accuracy, efficiency), and the inner workings of CFD software; and 3) To have you gain experience writing programs and solving 1D and 2D problems.