Physics 129 Course Handouts, Lectures, Homework, and Software

Course Information

Course Materials

Physics 129 Course Information

Homework Guidelines Handout

Project Guidelines Handout



Lectures

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.

Lecture Notes (PDF)

Slides
Probability distributions
Finite difference method
Laplace's equation

Unpack your Raspberry Pi
Configure your RPi and install the Phys 129 software
Password security
Homework overview

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

Homework 1problems due Saturday, June 29, at 11:55 PM via Gradescope.

Homework 2problems due Saturday, July 6, at 11:55 PM via Gradescope.

Homework 3problems due Saturday, July 13, at 11:55 PM via Gradescope.

Homework 4problems due Saturday, July 20, at 11:55 PM via Gradescope.
Email to Prof. Lipman due Wednesday, July 17.

Homework 5problems due Saturday, July 27, at 11:55 PM via Gradescope.

Homework 6problems due Saturday, August 3, at 11:55 PM via Gradescope.



Lab / TA office hours

To be announced.



Software

update_physrpi



Procedures

Raspberry Pi installation (txt)
Flash drive procedures (txt)
I2C wiring procedures



Python 3.11 Documentation

Contents
Tutorial
Library Reference
Matplotlib

Requests library
Beautiful Soup



Other Material

The Linux Command Line, Fifth 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
Raspberry Pi 400 I2C wiring photo
MCP9808 wiring diagram



UCSB logo