Phys 540 — Spring 2023
Department of Physics & Astronomy
Instructor: Dr. Kevin Beach
Office: 206 Lewis Hall

Catalog description

This course is designed for graduate students and advanced undergraduates in the physical sciences, mathematics, and other quantitative disciplines. It teaches the practical skills that students will need in their graduate studies and that most scientists are expected to use in their technical careers. It focuses on algorithms and numerical methods, is largely language agnostic, and assumes only limited familiarity with programming. Examples will be drawn from problems in physics, chemistry, biology, engineering, and epidemiology.

3 credit hours

Where and when

Lecture times: M W F 11:00–11:50 in Lewis Room 104
Office hours: by appointment


None. Some basic familiarity with computer programming is recommended, however.

Learning goals

The goal of this course is to provide a general understanding of fundamental concepts in scientific computing and to impart the specific skills students need to solve numerical problems in their research and other course work. Sample codes will be provided in C/C++, Rust, Julia, and Python; all are widely adopted languages with a major foothold in key areas of science. The course will introduce students to scientific programming with an emphasis on code correctness and good programming style. Students will also develop familiarity with commonly used open-source tools that are relevant in academia and industry. The graduates students enrolled will learn to apply the techniques of scientific programming to explore various physical phenomena and to solve other meaningful scientific problems that are beyond the reach of analytical tools.

Topics to be covered

A variety of basic algorithms and numerical methods will be taught, including (but not limited to) regression, interpolation, polynomial and spline fitting, Fourier analysis, numerical integration and differentiation, matrix manipulation, eigenvector problems, root finding, optimization, relaxation methods, Runge-Kutta methods, and techniques to solve coupled ordinary differential equations. Some instructional time will be devoted to floating-point numbers, especially numerical precision and error issues, and to the graphical representation of data. At the instructor’s discretion, and time permitting, students may be introduced to more advanced topics, such as parallel computing, time series analysis, partial differential equations, and user-interface programming.

Required course materials

There is no textbook for this course. All instructional material will be freely available online. Completing the course work will require the use of an internet-connected computer, either the student’s own or a university machine in a computing lab on campus. Students may be asked to set up an appropriate programming environment under UNIX, MacOS, or Windows and to create and configure accounts on external services such as Bitbucket.

Grading scheme

The course grade will be based on the cumulative points earned from assignments, in-class activities, and two projects, weighted as follows for undergraduate and graduate students. The weighting reflects the additional emphasis placed on independent, project-based work for the graduate students. Their projects will be more open-ended and will exceed in scope and complexity those of the undergraduates.

Weighting for undergraduate students

Assignments: 40%
In-class activities: 20%
Midterm project: 20%
Final project: 20%

Weighting for graduate students

Assignments: 30%
In-class activities: 10%
Midterm project: 30%
Final project: 30%

The numerical score (out of 100) will be converted to a letter grade with a corresponding grade point value, following the UM +/– grading system adopted in Fall 2011. The conversion is carried out by matching to the ranges shown in the table below.

Letter grade Grade point value Numerical score range
A 4.0 ≥ 90
A– 3.7 [85,90)
B+ 3.3 [80,85)
B 3.0 [75,80)
B– 2.7 [70,75)
C+ 2.3 [65,70)
C 2.0 [60,65)
C– 1.7 [55,60)
D 1.0 [50,55)
F 0 < 50

Class attendance — Regular attendance (in-person or virtual) is strongly encouraged.

Assignments — The course puts great emphasis on students’ developing technical mastery in a variety of important computational techniques. Students will be regularly asked to attempt problems and to turn in solutions in the form of working computer code. Assignments are to be submitted electronically for grading (as a shared git repository). A complete assignment consists of well-commented program files, an explanatory document (plain text or pdf), and any required figures (pdf, eps, png, or tiff). Incomplete assignments submitted for partial credit should at the very least compile and run. Students may work co-operatively at the level of discussing algorithms and general approaches, but each student should implement his or her own, independent solution. Late assignments will be penalized at the rate of 20% per day.

In-class activities — Regular in-class activities, possibly including problems, quizzes, and group exercises, will test students’ understanding of the material covered in recent lectures and assignments.

Projects — Two longer-term programming projects will be due in the middle and at the end of the semester. These are meant to be more substantial in scope and ambition than the weekly assignments. For each project, students will work on a topic of their own choosing, either in their own field of study or from a list of suggestions drawn up by the instructor. Project topics are subject to the instructor’s approval. Expectations for the project will be set at different levels for undergraduate and graduate students, as reflected in the grading scheme. Undergraduate projects will be narrow in scope, addressing a well-defined technical problem, and may build on skeleton code provided by the instructor. Graduate projects will require significant, independent work, and must touch on some interesting phenomenon or other important scientific question.


January 23: Classes begin
M Jan 23 Lecture 1
W Jan 25 Lecture 2
F Jan 27 Lecture 3
January 27: Students may add courses on a space available basis through this date
M Jan 30 Lecture 4
W Feb 1 Lecture 5
F Feb 3 Lecture 6
February 3: Last day to register or add classes (between January 28 and February 3 may add only with instructor’s approval); last day for course withdrawals with refund
M Feb 6 Lecture 7
W Feb 8 Lecture 8
F Feb 10 Lecture 9
February 13: Automatic drop date for non-attendance
M Feb 13 Lecture 10
W Feb 15 Lecture 11
F Feb 17 Lecture 12
M Feb 20 Lecture 13
W Feb 22 Lecture 14
F Feb 24 Lecture 15
M Feb 27 Lecture 16
W Mar 1 Lecture 17
F Mar 3 Lecture 18
M Mar 6 Lecture 19
W Mar 8 Lecture 20
F Mar 10 Lecture 21
March 10: Deadline for course withdrawals without refund
March 11-19: Spring Break
M Mar 20 Lecture 22
W Mar 22 Lecture 23
F Mar 24 Lecture 24
M Mar 27 Lecture 25
W Mar 29 Lecture 26
F Mar 31 Lecture 27
M Apr 3 Lecture 28
W Apr 5 Lecture 29
April 7: Good Friday holiday
M Apr 10 Lecture 30
W Apr 12 Lecture 31
F Apr 14 Lecture 32
M Apr 17 Lecture 33
W Apr 19 Lecture 34
F Apr 21 Lecture 35
M Apr 24 Lecture 36
W Apr 26 Lecture 37
F Apr 28 Lecture 38
M May 1 Lecture 39
W May 3 Lecture 40
F May 5 Lecture 41
May 5: Classes end

Attendance verification

The university requires that all students have a verified attendance at least once during the first two weeks of the semester for each course. Students whose attendance is not verified will be dropped from the course and any financial aid will be adjusted accordingly. Please see for more information.

Academic integrity and honesty

Students are expected to adhere to the University of Mississippi Creed and the Standards of Honesty as described in Policy Code ACA.AR.600.001 and the M Book.

Students are reminded that cheating in any form will not be tolerated. Performance on all tests and assignments shall represent the individual work of the student. Those who violate the Standards of Honesty will be reported and subject to the appropriate sanction, which may include expulsion from the University.

Nondiscrimination policy

The University complies with all applicable laws regarding affirmative action and equal opportunity in all its activities and programs and does not discriminate against anyone protected by law because of age, color, disability, national origin, race, religion, sex, sexual orientation, handicap, or status as a veteran or disabled veteran.

Policies and procedures for students with disabilities

It is University policy to provide, on a flexible and individual basis, reasonable accommodations to students who have disabilities that may affect their ability to participate in course activities or meet course requirements. Students with disabilities should contact the Office of Student Disability Services (662-915-7128 or to discuss their individual needs.

Examinations and last week of class

Regulations governing all examinations — A student’s failure to appear for an examination without an acceptable excuse,inability to present valid identification,absence from the room during the course of an examination without the consent of the examiner, or attempting any portion of an examination without submitting his or her answers shall result in failure of the examination. Tardiness beyond 15 minutes forfeits a student’s right to an examination.

Final examinations — A final examination, to be given at the time posted in the examination schedule, is required in each undergraduate course, unless the appropriate chair and dean have approved an exception. A student who has three or four final examinations in one day may arrange with the course instructor to take the noon or 7:30 p.m. examination at another time. In order to give a final examination at any time other than that shown in the posted examination schedule, an instructor must have prior approval of the department chair and dean.

Last week of class — The following guidelines exist to allow sufficient time for students and instructors to prepare for final examinations. These guidelines apply to the week preceding final examinations for undergraduate courses held during Fall and Spring semesters.

  • During the period of Wednesday through Friday of the last week of class, instructors are not to give exams, tests, or quizzes that contribute more than 10% of the final grade for a class. An instructor can obtain approval of the department chair and dean to give an exam, test, or quiz, of this weight, during this three day period. Instructors should return graded work and/or inform students of their grades on exams, tests, or quizzes prior to the beginning of finals week.

  • Exceptions to the above statement are automatically made for lab-based courses, technical writing courses, seminar courses that assign a term paper, and senior design courses that assign a multi-faceted project in lieu of a final exam. Major projects of the above types, which contribute more than 10% of the final grade and which are due during this Last Week period, should be assigned in the syllabus at the beginning of the semester and any substantial change in the assignment should be made known to students before the drop deadline.