Phys 540 — First Summer 2021
Department of Physics & Astronomy
Instructor: Dr. Kevin Beach
Office: 206 Lewis Hall
Email: kbeach@olemiss.edu
Website: https://www.phy.olemiss.edu/~kbeach

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

Course dates: June 1–29, 2021
Lecture times: M T W R F 10:00–11:15 (Lewis Room 109)
Office hours: by appointment

Prerequisites

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. The course will be offered in Python or some other widely adopted scientific programming language. The course will introduce students to scientific programming in the chosen language 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 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 the virtual classroom 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.

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 http://olemiss.edu/gotoclass 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 sds@olemiss.edu) 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.