Course Materials
Physics 129 Course Information
Homework Guidelines Handout
Please note: the recorded lectures, and in some cases the lecture notes, are several years old. While the content they contain is still useful, you must refer to the course web page for the current versions of due dates, assignment guidelines, and course rules and procedures.
Slides
Probability distributions
Finite difference method
Laplace's equation
Unpack your Raspberry Pi
Password security
Homework overview
Course philosophy and computer history
Numbers and files
The shell and some common commands
Files, processes, and more about the shell
Formatting and mounting a flash drive
Processors, languages, and Python
Programming in Python, part 1
Programming in Python, part 2
Programming in Python, part 3, process control, and links
Command line arguments This is a short excerpt from
next week's first lecture that you will need to solve
the Fibonacci Numbers problem.
Optimization, precedence, multidimensional arrays, and plotting
Raster graphics, complex numbers, FIFOs and stacks, vector graphics
Mandelbrot zoom video by Daniel Schultz
Mandelbrot set image by Wolfgang Beyer
Choosing a project
Warning: many changes have
been made to the project guidelines handout.
You are responsible for the one on the course web page
(above), not the one in the video.
Networking, part 1
Networking, part 2
Object-oriented programming and data acquisition
Sampling, convolution, and Fourier transforms
In the lecture on sampling, convolution, and Fourier
transforms, there is a mistake in the convolution
and signal recovery illustration starting at 9:08.
I left out a factor of π in the argument of the
sine function and the denominator of g(τ).
You may wonder how the signal recovery worked
so well even though I did this. It turns
out that although most people define the sinc
function as sin(x)/x, some use a normalized
sinc function, which is sin(πx)/(πx).
The NumPy library happens to use the normalized
version, so when I called np.sinc(τ/T), I
got sin(πτ/T)/(πτ/T), which is the
correct function. It is easier to use np.sinc()
than np.sin(x)/x, since np.sinc() will prevent
division by zero if x = 0. You can see the corrected
illustration by running this
program.
Random numbers, Monte Carlo methods, and LaTeX
fork(), exec(), and system call tracing
Discrete integration
Probability distributions and nonuniform random numbers
The error function and integer histograms
Finite difference method for ordinary differential equations
Finite difference method for partial differential equations: Laplace's
equation
Homework 1 — problems due Saturday, October 4, at 11:55 PM via Gradescope.
Homework 2 — problems due Saturday, October 11, at 11:55 PM via Gradescope.
Homework 3 — problems due Saturday, October 18, at 11:55 PM via Gradescope.
Homework 4
— problems due Saturday, October 25,
at 11:55 PM via Gradescope.
Homework 5
— problems due Saturday, November 1,
at 11:55 PM via Gradescope.
Seth will hold lab and office hours in SSMS 1303.
Attendance in lab is optional, and you are welcome at any
time, regardless of which section you are in.
Seth's hours will be as follows:
Tuesdays and Thursdays from 5:00–6:50 PM
Fridays from 2:00 PM–4:00 PM
Raspberry Pi installation (txt)
Flash drive procedures (txt)
I2C wiring procedures
Contents
Tutorial
Library Reference
Matplotlib
Requests library
Beautiful Soup
The Linux Command Line, Sixth Internet Edition
by William E. Shotts, Jr.
PostScript Language Tutorial and Cookbook
PostScript Language Reference Manual
Julian day handout
Raspberry Pi GPIO pin diagram
Raspberry Pi 5 I2C wiring photo
MCP9808 wiring diagram