"Computational Physics 2 Spring 2023" course is taught by Prof. Sal Rappoccio of the University of Buffalo starting on January 30, 2023-May 12, 2023. The course will be taught at the University of Buffalo (**PHY411**) and remotely on videoconference.

The class will meet on **MWF 1-1:50 PM (central time)**, from January 30, 2023 - May 12, 2023. Classes are held by videoconference for remote participants- please check __LPC b____ulletin__ and/or __timetable__ for any adjustments in schedule. Recordings will be posted on the indico agenda.

This course is the second in a sequence of two courses in Computational Physics that integrates numerical analysis and computer programming in C++ and python (and their combination), to study a variety of problems in physics. (1) Partial Differential Equations, (2) Probabilistic Methods, (3) Quantum MC methods, (4) Proteins and Neurons, (5) Machine Learning. There will also be a required coding project that will take at least a month of time.

__Prerequisites: __

You are required to have taken PHY 410/505 or equivalent, and have familiarity with the C++ and python programming languages. This course assumes familiarity with undergraduate physics at the junior/senior level. You should have passed PHY 301, PHY 401, and PHY 403, or equivalent courses, or be taking them concurrently. If you are not a physics major, a strong background in undergraduate mathematics or computer science should suffice if you spend extra time to learn the physics background required for each topic, although you should be familiar with ordinary and partial differential equations at the very least.

See __Syllabus2__ for more information about this course.

"Computational Physics 1 Fall 2022" course is taught by Prof. Sal Rappoccio of the University of Buffalo starting on August 29, 2022. The course will be taught at the University of Buffalo (**PHY410**) and remotely on videoconference (monitored by the LPC).

The class will meet on **MWF 1-1:50 PM (central time)**, from August 29, 2022 until December 9, 2022. Classes are held by videoconference for remote participants- please check LPC bulletin and/or timetable for any adjustments in schedule.

Consult the syllabus for more up to date information, including required and recommended textbooks.

This course is the first in a sequence of two courses in Computational Physics. This course integrates numerical analysis and computer programming in C++, with python as an optional second language, to study a variety of problems in classical, quantum, and statistical physics. The course will cover numerical algorithms for root finding, interpolation, matrix inversion, numerical differentiation, and quadrature, data analysis, Fourier transformation, and computer graphics. If time permits, we will also have an introduction to quantum computing. Numerical analysis topics will include solution of linear and nonlinear differential equations, boundary-value and eigenvalue problems, and Monte Carlo simulation. The computational content of the course will be organized in the following topics: (1) Data Analysis, (2) Basic Numerical Algorithms, (3) Linear Algebra, (4) Solving Nonlinear Equations, (5) Ordinary Differential Equations, (6) Partial Differential Equations, (7) Probablistic Methods, and (8) Quantum Computing. Depending on the preparation of the class, the topic may be pushed to the second semester to make more room for introductory programming practice.

The software for this course will be hosted on github.

__Prerequisites: __This course assumes familiarity with undergraduate physics at the junior/senior level. Familiarity with a modern programming language is required (C++/Java/Fortran/python/etc). Programming mainly with C++ and python will be covered in the first 4-8 weeks of lecture. If you are not familiar with C++ or python you should spend extra time very early in the course to bring yourself up to speed. Depending on experiences of the class, we will spend more or less time on introductions to programming. We will discuss how to compile and execute your code on your chosen platform. For instance, it will be helpful to have familiarity with bash, tcsh, or zsh for Linux/Unix/Macintosh, or cygwin for Windows. We will discuss how to combine C++ and python with existing tools such as SWIG.

__Registration Options (PLEASE READ CAREFULLY)____ __We are offering various ways that students can choose to take this class, please consider your options carefully and let us know if you have any questions. **Registration closes September 2, 2022**.

- Students can opt to take the course for official university transfer credit from University at Buffalo (
**at a cost**) by registering at https://registrar.buffalo.edu/nondegree/. The class will use the Buffalo Blackboard LMS for the class (called "UBLearns"), and any student who registers directly will have access to this system.

- We will work with students and their advisors to arrange for university credit at their own institutions to be given upon successful completion of the course, if allowed by the student’s institution.

- Students can choose to audit the class and receive no credit. For these students, homework solutions will be provided, but coursework will not be graded.

Students choosing option 2 or 3 should register on this indico page in "Registration" or "Apply Now" and indicate if they are taking the course for credit at their university or auditing only. This indico page will be used for communication and for assignments.

__Links:__

__Syllabu____s1____Syllabus2__- PHY410/411 (this page):
__https://indico.cern.ch/e/LPCCompPhy_2022_2023__ - Zoom link: https://buffalo.zoom.us/j/93672312560