View on GitHub

Astro 9

Python Programming in Astronomy
UC Berkeley

Final Project


Assignment
Instead of a final exam, we will work on final projects to wrap up the course. The idea behind the final project is to take some element of what we learned in class and take it a little further; try to apply some technique in a new context, or study some related topic and apply it to some problem. The final projects should be centered on creating Python code to implement your idea.

We want you to provide a lab-report style write-up for the final project. If you’d like to do this with the Jupyter Notebook that is fine, but if you are uncomfortable using MarkDown in the Notebook, you can also submit a standard document. If you do submit a standard document as your lab-report, please submit it as a .pdf file. If you write your document with Microsoft Word, you can do this via “Print/Save As PDF”. The expectation is that the final report (with figures) should be at least 3 pages long with double-spaced text and 1-inch margins (think two pages of text and 1 page of figures). You should also submit your Python code along with the write-up.

Over the weekend, think about things you are interested in pursuing, and make sure you check in with me about the scope of your project before you start working so we can assess whether the project is either over or under-ambitious for the time allotted. In terms of the amount of work, think around ~1-1.5 times of a homework. If you are at a loss of what to pursue in your final project, you can look at some example projects I’ve devised.

Other important info:

Example Projects

1. ODE: Apply our ODE solver to the NonLinear Double Pendulum and make a visualization

2. ODE: Apply our ODE solver to the gravitational 3-body problem, and make a visualization

3. ODE: Write a symplectic ODE integrator (aka leapfrog integrator) for the 2-body comet-Sun problem.

4. FT: Use Fourier Transforms to do an audio analysis of human speech. Use filtering to compress the data, and visualize the speech with spectrogram plots.

5. FT: Use 2D Fourier Transforms for image analysis. Write functions to blur and sharpen the image using different convolution kernels.

6. Root Finding: Explore methods other than binary search for root finding. Compare the relaxation method, Newton’s method and binary search for different kinds of non-linear equations.

7. Integration: Explore higher-order integration methods, like Romberg integration or Gaussian Quadrature. Compare them against lower-order methods like trapezoidal and simpsons methods.