This book presents the fundamental principles of computational models from a computer science perspective and explains how to implement the models using the C programming language. Emphasizing analytical skill development and problem solving, the book helps readers understand how to reason about and conceptualize the problems, generate mathematical formulations, and computationally visualize and solve the problems. It provides the foundation to understand more advanced scientific computing, including parallel computing using MPI, grid computing, and other techniques in high-performance computing.