"Computational Physics 1 Fall 2019” course, is taught by Prof. Sal Rappoccio of the University at Buffalo starting on August 26, 2019. The course will be taught at University at Buffalo (PHY410/PHY505) and at the LPC. The course will also be made available over videoconference for remote participants.
The class will meet on MWF 1-1:50 PM (central time), from August 26 - December 8, 2019. Finals week is Dec. 9-16, 2019. Classes at the LPC are held in Sunrise (WH11NE) - please check LPC bulletin and/or timetable for any adjustments due to conflicts.
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 that integrates numerical analysis and computer programming in C++ and python (and their combination), to study a variety of problems in physics. An introduction to technicalities of scientific programming (including git, containers like docker, pip, etc), the basics of numerical computation, and a review of numerical best programming practices in C++ and python will be covered for several weeks in the beginning of the course. The course will then cover numerical algorithms for root finding, interpolation, matrix inversion, numerical differentiation, and quadrature, data analysis, Fourier transformations, linear and nonlinear differential equations, boundary-value and eigenvalue problems. The computational content of the course will be organized in the following topics: (0) Technicalities and Basics of Numeric Computing, (1) Data Analysis, (2) Basic Numerical Algorithms, (3) Linear Algebra, (4) Solving Nonlinear Equations, (5) Ordinary Differential Equations.
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.
- 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. This may require the student's advisor to handle coursework grading.
- 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.
- PHY410 (this page): https://indico.cern.ch/e/LPCCompPhy1_2019
- Webex videoconference link: https://ub.webex.com/ub/j.php?MTID=ma2e0dbed0d4383e514c3749a6381c75d
- Webex H.323 IP: 220.127.116.11
- meeting ID: 734 068 702