
Home > Courses > 4P10 
PHYS 4P10/5P10  Introduction to Scientific Computing
Latest news
 Welcome! Important announcements will show up here.

Lectures will be posted in Lectures, both as .ipynb notebooks and as [noninteractive] .html files, if you do not have jupyter installed.

This course can be taken as PHYS 5P10 or MATH 5P69, and by undergraduates as PHYS 4P10.
The courses will be differentiated by levelappropriate expectations in the preparation of reports and projects.
 Be sure to review this statement on academic integrity
 Lectures: M Th 11:0012:30 in MC H300. Note that we rescheduled the Monday class to a more reasonable time.

All lectures will be conducted in the form of a lecture/tutorial, with each
student performing the actions modeled by the instructor. If you are sick and
unable to attend in person, there is a remote video connection available on
request, via internet and a Chrome/chromium browser. The connection instructions are
here.
However, you need a Linux machine with a few extra software packages installed, to
fully participate in the class, so this is best done in H300.

You are expected to prepare your homework and reports using LaTeX. It is available on all computers in
Physics labs, and online at overleaf.com.
In preparation for the lectures students are encouraged to open overleaf accounts.
Some useful resources for writing reports are here, and will be reviewed in class.
What Brock calendar entry says (slightly revised for the current calendar):

Survey of computational methods and techniques commonly used in condensed matter physics research; graphing and visualization of data; elements of programming and programming style; use of subroutine libraries; common numerical tasks; symbolic computing systems. Case studies from various areas of computational physics. Disciplinespecific scientific writing and preparation of documents and presentations.
What do I need to bring into the course?
 This course is a core course of the MSMP program, and is recommended to all Physics graduate students. Basic familiarity with Linux is assumed, and will be reviewed briefly.
Course Goals
 to develop a working knowledge of interactions with Linux OS
 to become proficient in experimental data graphing and numerical analysis
 to gain working knowledge of program development
 to become familiar with one or several interpreted programming environments, and to acquire basic scripting skills
 to become proficient in LaTeX and use it for scientific papers and presentations
Textbook
There is no formal textbook for the course. A number of online resources are available and can be used as reference material for the lectures. Some of these are:
This list will grow as the course progresses.
Component 
% of the final mark 
Notes 
Homework 
30% 
Weekly problem sets in the first half of the course. Solutions should be submitted to the instructor during the lecture period on the due date. Late submissions are capped at 15% per day. 
Projects 
45% 
Three (or four, timepermitting) extended projects in the second half of the course. Project papers in the form of a scientific journal submission, using Elsevier or Can. J. Phys. format. 
Final presentation 
25% 
One of the three projects (selected at random) presented as a research seminar. 
This is an approximate outline. Topics not on this list may get covered as time permits.
 A common toolbox
 interacting with the OS; CLI vs GUI
 Linux as a collection of small tools + pipes between them
 the basics of programming: shell, C, scripting languages
 code development: edit, compile, run, make and Makefile structure, elementary debugging, linking to program libraries
 visualization with gnuplot and other graphing tools
 Numerical methods
 Numerical differentiation: finite differences, interpolation, root finding
 Numerical integration: special functions and quadrature
 Solution of Ordinary Differential Equations: EulerCromer, RungeKutta
 Linear algebra: methods of solving systems of equations and eigenvalue problems
 Stochastic Methods:Random number generators, importance sampling, Molecular dynamics, MonteCarlo techniques
 Case Studies/Projects
 Leastsquares problem: experimental noisy data, noise distribution and filtering, importance of baseline, assumption of Gaussian noise, chisquared; classification of LS problems, regularization and selection of lambda. Test case: a spectrum of exponential relaxation rates
 Molecular modeling: protein database data, force fields, GROMACS simulation package. Test case: a lipid bilayer with cholesterol guests (T.Harroun)
 Models of solids: Ising model, magnetic moment, temperature, heat capacity, Metropolis' algorithm. Test case: magnetic transitions in an Ising lattice (B. Mitrovic/S. Bose)
 Image Analysis: filtering to remove noise, segmentation to isolate regions and objects of interest, regional and spectral analysis to extract statistical data. Test case: spatial frequency distribution of a line image

