Computer simulations have become a vital part of modern physics saving time and resources and giving researchers a competitive edge. Since there are so many numerical methods and approaches to computations in physics, we select a few fundamental approaches. We pay special attention to common associated difficulties and pitfalls and cover them by self-test sections for each task in the assignment. Once you complete the assignment you will have enough experience to implement other methods not covered in the course, such as RCWA, DDA, MoM, FIT, FVM, PIC. You will also have more insight when running a simulation using some available software. In research, it is vitally important to understand the underlying machinery of the numerical methods utilized. This course will help you to avoid wrong simulation results and time wasted struggling with unnecessary difficulties that would not have arisen if a more appropriate numerical method had been selected. For example, one typical error is to use a time-domain method to investigate a model with a high Q-factor, whereas in general, it is preferable to start with a frequency domain or eigenmode solver. After completing the course, you will have the experience to select the best tools to accelerate your research.