מבוא לפיסיקה חישובית, 2023
Topic outline
-
-
Zoom Meetings (online classes) External tool
-
Games in C
2023
Yogev Klienberger Space Invaders - winner
(a/d for left/right; w to shoot)Itamar Haskel Eyal Ezra Dinosaur - winner
(up/down arrows to jump/duck)
Maor Furman Dinosaur - most challenging Tal Alon (w/s to jump/duck)
Gil Nadler Dinosaur - medium level
(w/s to jump/duck)
Hadas Dekel Dinosaur - easy level Tamir Lankri (w/s to jump/duck)
2022
Ofir Netanel Yitzhak
Dor Ezra HaikaPacman
(a/d - left/right, w/s - up/down)
-
2023 Winner (Bar Segura)
2022 Winners (Matan Yosef & Yuval Arnon):
2021 Winner (Ben Shpigel):
-
"Computers are useless. They can only give you answers."
- Pablo Picasso
- Overview of general-purpose programming languages: Fortran, C, C++, Python
- Programing basics: variables, control flow, data objects, algorithms
- Overview of interpreted languages: Matlab, Mathematica
- Numerics: accuracy, precision, stability, bottlenecks, computer structure
- Numerical differentiation and integration; Runge Kutta methods
- Interpolation and extrapolation: polynomial, spline, Laplace
- Minimization and maximization: Brent, Newton, simulated annealing
- Statistical description of data: modeling, comparing distributions
- Monte Carlo simulations
- (Time permitting) Ordinary differential equations: finite differences, shooting, relaxation
- (Time permitting) Partial differential equations: reduction, relaxation, multi-grid
Lecture Topic Read Blank notes Class notes Links & extra 1 Course Intro, programming languages, C basics, Mathematica
demo including neural networkstutorials draft1 Lec1 Networks2.nb 2 C workflow, Variable representation, precision, accuracy, loss of precision, random walk NR1 draft2 Lec2 Roundoff disasters
One-liners 20103 Mathematical recursion, numerical stability, functions, scope of variables, passing variables by value/reference NR1 draft3 Lec3 Variable scope 4 Pointers, dynamical programming, continued fractions, interpolation and extrapolation: intro NR3 draft4 Lec4 C referencing
Golden ratio5 Searching an ordered list, reading NR codes, Interpolation: polynomial, rational, spline; P vs. NP NR3 draft5 Lec5 Interpolation in Python, P vs. NP 6 Interpolation in multiple dimensions; Integration: Newton-Cotes formulae, Richardson extrapolation NR4 draft6 Lec6 Quadrature in Mathematica 7 Newton-Cotes algorithms, Richardson extrapolation, Romberg's method, improper integrals NR4 draft7 Lec7 Quadrature in Python 8 Improper integrals 2, integration in multiple dimensions, statistics recap, Monte Carlo, sampling from a distribution, fractals NR7.6-7.8draft8_part
draft8_fullLec8 Monte Carlo examples
Logistic map9 MC distribution, MC examples, variance reduction, fractal dimension, quasi-MC, importance+stratified sampling, diffusion with interaction NR
7.6-7.8draft9 Lec9 Randomness
Fractal winners10 Working with data, moments of a distribution, Pitfalls in statistics, estimating the significance of sample statistics, Student t-test NR14 draft10 Lec10 Simpson's paradox 11 Chi-squared test, MC in statistics, KS-test, MC simulation as an integral, Maximal likelihood, Chi-squared minimization NR14-15draft11 Lec11 Lies, damn lies, and statistics 12 Maximal likelihood, Chi-squared minimization NR 15 draft12 Lec12 13 Non-mandatory (pre-recorded + reception hour): Root finding: bracketing, bisection, secant, false position, Brent, Newton-Raphson NR 9 draft13 Lec13 Hilbert to Turing
2D bracket14 Non-mandatory (pre-recorded + reception hour): Root finding in multiple dimensions: Newton-Raphson, Broyden; optimization: bracketing; ODEs: Euler, Runge-Kutta, explicit vs. implicit methods, stiff equations, adaptive step, Bulirsch-Stoer, shooting NR 10+16 draft14 Lec14 ODEs in gaming 15 Review draft review -
- Numerical recipes, by William H. Press, Saul A. Teukolsky, William T. Vetterling, Brian P. Flannery; Publisher: Cambridge University Press; 3 edition (September 10, 2007).
- Computational physics, by Morten Hjorth Jensen; Publisher: CreateSpace Independent Publishing Platform (January 12, 2015)
- A survey of computational physics, by Rubin H. Landau, Jos? P?ez, Cristian C. Bordeianu; Publisher: Princeton University Press; Har/Cdr edition (July 21, 2008)
-
Office Hours
Name Day Hours Building/Room Email* Uri Keshet Thursday 17:00 54/214 ukeshet@bgu.ac.il David Uzan Wednesday 14:00 54/319 daviduz@post.bgu.ac.il Lecture/Tutorial
Group What? Name Day Hours Building/Room 1 Lecture Uri Keshet Tue 14:10 - 17:0032/206 11 Tutorial David Uzan Thu 15:10- 17:00 28/205
-
-
Give yourself an appropriate grade
-
Give yourself an appropriate grade
-
Give yourself an appropriate grade
-
Give yourself an appropriate grade
-
Give yourself an appropriate grade
-
Give yourself an appropriate grade
-
Give yourself an appropriate grade
-
Give yourself an appropriate grade
-
Give yourself an appropriate grade
-
Give yourself an appropriate grade
-
Tools:
- Lectures teach some C and Mathematica. Tutorials and assignments are in Python.
- Visual C, Python, Mathematica, and Matlab are installed on most BGU computers.
- Mathematica and Matlab are available within BGU campus and dorms on any mobile device through https://apps.bgu.ac.
il/ . - VPN to access the above - https://in.bgu.ac.il/computing/Pages/vpn-service.aspx ).
- We mainly run Python using Google Collab or Jupyter. A more professional IDE: PyCharm. Feel free to use any workspace convenient for you.
- C codes in this course are generally short, and can be compiled online e.g. on onlineGDB, ideone.com,
or codepad.org. - You may wish to compile C on your machine, which would be faster, much more powerful, and independent of web connection. You may need to install a compatible free compiler. For Windows, use command-line compilation (invoke "Command Prompt" from the start button). You may need to install Visual Studio first. A lighter alternative is MSYS2 installation.
- Before the course begins, we recommend refreshing your Python using some basic interactive guide (1, 2, 3, etc.), and becoming familiar with the Numpy, Scipy and Matplotlib libraries, which are used in the course.
- A C tutorial is also available and highly recommended.
- Euler Project is a nice project that has plenty of mathematical problems you could solve only by programming, and could help you learn coding in a more interesting way.
- Guido van Robot is a nice visual programming language that helps junior programmers understand the logic of coding. Recommended for students with no background in coding.
-
- A weekly lecture (3 hours) and a weekly tutorial (2 hours).
- A weekly problem set. Submit all (except maybe one) sets on time to attend the exam.
- Self-grade your problem set within a week after the solutions are posted; we will sample the grades. Final grade: 70% exam, 30% problem sets.