PHYS 210: Introduction to Computational Physics

Citrus College Course Outline of Record

Citrus College Course Outline of Record
Heading Value
Effective Term: Fall 2023
Credits: 1
Total Contact Hours: 54
Lab Hours: 54
Hours Arranged: 0
Total Student Learning Hours: 54
Prerequisite: PHYS 201 or PHYS 201H.
Transferable to CSU: Yes
Transferable to UC: No
Grading Method: Standard Letter

Catalog Course Description

This course introduces students to modern computational methods for modeling and visualization used in solving complex scientific problems. Common data manipulation and numerical analysis techniques will be introduced, with a focus on teaching students how to select tools to solve problems, rather than to teach all the details of specific tools. The skills gained in this course are highly valued in the broad scientific and industrial workplace. Students who successfully complete this course will be prepared for upper division coursework in physics and related fields and have useful skills for internships and other entry-level positions. 54 lab hours.

Course Objectives

  • Use data analysis techniques to fit data to a function, display data with error bars and estimate parameter uncertainties.
  • Use numerical techniques such as the Euler-Cromer method and Runge-Kutta methods to analyze physical systems that do not have an analytic solution.
  • Solve systems of linear equations using matrix methods.
  • Modify and create an EXCEL spreadsheet for data analysis and visualization as well as numerical analysis.
  • Modify Python and vPython code for numerical analysis and visualization.
  • Implement coding best practices (code is well-documented, variable names make sense, etc.)
  • Use Jupyter notebooks or equivalent for coding projects.

Lab Content

  1. Introduction to Coding
    1. Spreadsheets
    2. Jupyter Notebooks (Anaconda/CoLab)
    3. Investigating Code Efficiency
  2. Numerical Methods
    1. Euler and Euler-Cromer Methods
    2. Runge-Kutta 2 Method
  3. Lab skills: Curve Fitting
    1. Re-Calibrating Data
    2. Fitting Data to Commonly Used Functions (Linear, Power & Exponential Functions)
    3. Fitting Data to Arbitrary Functions
    4. Error Bars and Estimates of Parameter Uncertainties
  4. Lab Skills: Error Propagation
    1. Error Propagation
    2. Monte Carlo Methods
  5. Numerical Implementation of Fourier transforms
    1. Discrete Fourier Transform Algorithm
    2. Fast Fourier Transform Algorithm
  6. Solving Systems of Linear Equations: Matrix Methods (resistor networks/optical systems) 

Suggested Reading Other Than Required Textbook

Instructor provided materials; websites with Python or Python library documentation such as https://docs.scipy.org/doc/

Examples of Required Writing Assignments

Lab Reports submitted as Jupyter notebooks that include in addition to the code, tables and figures; a brief summary of the nature of the physical system, the basic numerical method or algorithm, and the interesting or relevant questions; a summary of results, explaining them in simple physical terms and addressing specific questions raised in the assignment; a summary of the important physical concepts for which you gained a better understanding and the numerical or computer techniques you learned; and suggestions for future work or possible extensions.

Examples of Outside Assignments

Practice using Jupyter notebooks with assignments to modify sample code. Answer questions such as: "The data set calibration.txt shows the reported position of a rotational sensor (in units of 1/1024 of a rotation) after N revolutions. If the rotational sensor is properly calibrated, this should be a horizontal line at 0, but it’s not. What type of curve fit (linear, power or exponential) would be most appropriate to determine the mis-calibration of the sensor? Explain.

Instruction Type(s)

Lab, Online Education Lab