This book presents all the computational techniques and tools needed to start doing scientific research using computer simulations. After working through this book, the reader will possess the necessary basic background knowledge, from program design, programming in C, fundamental algorithms and data structures, random numbers, and debugging, all the way to data analysis, presentation and publishing. In each of these fields, no preliminary knowledge is assumed. The reader will be equipped to successfully perform complete projects from the first idea until the final publication. All techniques are explained using many examples in C; these C codes, as well as the solutions to exercises, are readily available in the accompanying CD-ROM.The techniques in this book are independent of the fields of research, and hence they are suitable for conducting research projects in physics, chemistry, computer science, biology and engineering. This also means that no problem-dependent algorithms are introduced; therefore, this book does NOT explain molecular dynamics, Monte Carlo, finite elements and other special-purpose techniques, which would be beyond the scope of a general-purpose book.There has been no similar comprehensive book written so far. Currently, one needs many different books to learn all the necessary elements. With this book, however, one basically needs only a second book on field-specific algorithms in order to be fully equipped to perform computer simulations research.