This Exercise Set is still a work in progress. It has not yet been submitted for peer review.
+Introduction to the Doppler Effect
Developed by Andrew Morrison
Learning goals: Students will be given the basic framework of a simulation to explore the Doppler Effect. By the end, students should understand how the basic simulation works and be able to adapt it for a variety of situations involving moving or stationary wave emitters as well as moving or stationary observers.
Students should understand an advanced glowscript language technique: object lists.
Advanced learning goal: Students will modify the code to include a frequency counter. This will allow students to explore the idea of how quickly the Doppler shift occurs as a wave source passes by an observer. Students should compare their simulation results to the predictions made by simple models in their textbooks.
Subject Areas  Waves & Optics, Astronomy/Astrophysics, and Other 

Levels  High School and First Year 
Available Implementation  Glowscript 
Learning Objectives 
Students will be able to:
* Read and understand the parts of a template for a simple model of the Doppler effect. (**Exercise 1**)
* Modify the template to make their simulation more flexible. (**Exercise 2**)
* Modify the template to include a display of the frequency measured by an observer at any location. (**Exercise 3**)
Advanced options for students to explore:
* Modification of their code to have either wave emitter or observer move. (**Exercise 4**)
* Model a reflecting surface that emitted wave reflect off of. Explore the Doppler effect from reflecting surfaces when either the wave source or reflecting surface is moving. (**Exercise 5**)

Time to Complete  120 min 
These exercises are not tied to a specific programming language. Example implementations are provided under the Code tab, but the Exercises can be implemented in whatever platform you wish to use (e.g., Excel, Python, MATLAB, etc.).
**Exercise 1:**
* Run the template that is provided to you and observe what it does.
* Read the code to get a sense of what it does.
* Determine what values you can change and observe what happens to the program when you run the code after making some changes.
* Is there a maximum frequency that is useful?
* Is there a maximum (or minimum) emitter speed that is useful?
* Is there a maximum (or minimum) wave speed that is useful?
* What do you notice?
* What questions do you have?
* What happens if the emitter speed is greater than the wave speed?
**Exercise 2:**
* Take the template from **Exercise 1** and modify it such that all the parameters are specified as variables at the top of the code. This will make it easier to modify initial values for all of the model parameters. Make sure that each variable is described appropriately with comments.
**Exercise 3:**
* Modify the code to add a frequency counter at a specific location representing the position of a stationary observer. The frequency counter should measure the time it takes for successive waves to cross the observer's position and then display the measured frequency.
* How rapidly does a frequency change occur as a wave emitter passes by an observer?
* Under what conditions does the measured frequency match the frequency predicted by the textbook equation?
* Why is there sometimes a discrepancy between measured frequency and the predicted frequency?
**Exercise 4:**
* Modify the code to allow the observer to move. Explore all possible combinations of moving or stationary emitter and observer.
* Under what conditions does the measured frequency match the frequency predicted by the textbook equation?
* Why is there sometimes a discrepancy between measured frequency and the predicted frequency?
Download Options
Credits and Licensing
The instructor materials are ©2018 Andrew Morrison.
The exercises are released under a Creative Commons AttributionNonCommercialShareAlike 4.0 license