"The purpose of computing is insight, not numbers."

- Richard Hamming

> __Class and extra material:__

Lecture | Topic | Class notes | Links & extra |

1 | Course Intro, programming languages, C basics | Lec 1 | Snake in 5 minutes, Dinosaurs in 3 minutes |

2 | Variable representation, precision, accuracy, stability, variable scope 1 | Lec 2 | Golden ratio, Roundoff disasters |

3 | Variable scope 2, referencing, arrays, recursion, dynamical programming, interpolation and extrapolation motivation | Lec 3 | C (de) referencing, scope |

4 | Polynomial and rational interpolation, searching an ordered table, reading NR codes | Lec 4 | Interpolation in Matlab |

5 | Interpolation: spline, and multiple dimensions; Integration: Newton-Cotes formulae | Lec 5 | Integration in Matlab |

6 | Newton Cotes algorithms, Richardson extrapolation, Romberg open+closed methods, improper integrals, using Gaussian quadrature | Lec 6 | P vs. NP |

7 | Orthogonal polynomials, Gaussian quadrature, integration in multiple dimensions, Monte Carlo 1 | Lec 7 | Monte Carlo examples |

8 | Monte Carlo 2: generalizations, examples, variance reduction, importance and stratified sampling | Lec 8 | Mandelbrot zoom: short, long Randomness |

9 | Diffusion problems with MC, working with data, moments of a distribution, Student t-test | Lec 9 | Student t-test |

10 | MCMC, pitfalls in statistics, chi-squared test, KS-test, maximal likelihood | Lec 10 | Simpson's paradox |

11 | Chi-squared minimization, root finding: bracketing, bisection, secant, false position, Brent, Newton-Raphson | Lec 11 | 2D bracket |

12 | Root finding in multiple dimensions: Newton-Raphson, Broyden; Optimization: bracketing, golden-section, Brent, steepest descent | Lec 12 | Newton optimization |

13 | Optimization: conjugate vectors, quasi-Newton, simulated annealing. ODEs: Euler, Runge-Kutta, explicit vs. implicit methods, stiff equations, adaptive step, Bulirsch-Stoer | Lec 13 | ODEs in gaming |

14 | Review | Review |

- Visual C, Matlab, and Mathematica are installed on most BGU computers.
- Matlab and Mathematica are available within BGU campus and dorms on any mobile device through https://apps.bgu.ac.il/.
- Compile C online using onlineGDB or ideone.com or codepad.org.
- To compile C on your machine, first install a compatible compiler. For Windows machines, use command line compilation (invoke "Command Prompt" from the start button; you may need to install Visual Studio first).
- For those who wish to strengthen their skills in Matlab, we suggest the Onramp tutorial. You will be asked to create a (free) account for Mathworks-online and invent a login name. Parts 1-10 provide the basic skills needed for the course.

Another self-tutorial may be found here. And if you're still looking for more, try this. - A C tutorial is also available.

- Moed 2019B: Questions, Solution
- Moed 2019A: Questions, Solution
- Moed 2018B: Questions, Solution
- Moed 2018A: Questions, Solution
- Sample exam 2018: Questions, Solution