This document is aimed primarily at students working with us at Berkeley SETI Research Center as part of the Breakthrough Listen internship program, but may be of interest to other audiences.
Most of the projects our interns work on require some basic astronomy knowledge as well as some programming skills, typically in Python. When working through the following material, if you are an expert Python programmer, for example, you can skip the basics, but you still may find that some of the material specifically related to how we use Python for our projects is new to you. So please skim through the parts you are familiar with, and focus more on the parts you are not.
The search for extraterrestrial intelligence is a field that bridges observational astronomy, instrument design and engineering, computing, and programming, and touches on other areas such as the search for planets and the basics of biology. Many projects at Berkeley SETI Research Center involve our work with radio telescopes, particularly the Green Bank and Parkes telescopes. Here's what we would like you to know:
The O'Reilly books are a good place to learn about many aspects of modern computing. Some institutions (including UC Berkeley) and public libraries have a subscription to electronic versions of the O'Reilly catalog, as well as other books of interest. Try accessing http://proquest.safaribooksonline.com/ or borrow the physical books from your local library. You'll find lots of books about Unix, Python, SQL, and many other topics.
Unix is the basis of the operating systems that we use on pretty much all of our computers at Berkeley SETI. If it's not Unix proper, it's a variant such as Linux or MacOS. You'll need to know how to open a terminal window, as well as basic commands like cd
, ls
, mv
, etc. and how to ssh
into a remote machine as well as how to run a VNC session (many of us use Chicken on our Macs for this). You'll also be writing shell scripts as part of your internship.
Here's a good introduction to doing all this on a Mac.
If you only have a PC running Windows, try installing Ubuntu Linux as a dual-boot system, following the instructions at https://www.ubuntu.com/download/desktop/install-ubuntu-desktop and then follow the Unix tutorial above, or a similar tutorial specifically for Ubuntu (e.g. Chapter 7 of Ubuntu: Up and Running).
You'll also need to learn how to use the git
version control system, so take a look at https://backlogtool.com/git-guide/en/intro/intro1_1.html
Many folks here edit code in vi
or emacs
but another great visual editor to try is Atom.
There are several O'Reilly books focused on learning Python (e.g. http://proquest.safaribooksonline.com/book/programming/python/9781449355722), or you can learn online at https://www.learnpython.org/, https://www.python.org/about/gettingstarted/, or a variety of other sites. Here's a tutorial focused on Python for astronomers: http://python4astronomers.github.io/index.html
If you don't have Python installed (or even if you do, for example the system Python on OSX), we recommend installing the Anaconda distribution, which comes with lots of packages that you'll need pre-installed.
Once you are familiar with Python, skills that you'll find useful for our research include familiarity with these packages:
- numpy
- matplotlib
- Jupyter
- Astropy - particularly "Core data structures and transformations", and "Connecting up: Files and I/O"
If you are familiar with all of the above, and want to dig a little deeper into visualization tools, you might be interested in Bokeh.
Many of our interns are also familiar with C++, Javascript (including D3.js), PHP, R, IDL, Matlab, and other packages. If you are just starting out, we'd suggest learning Python, but if you already have extensive experience in one of the above environments, we encourage you to develop code in the environment in which you are most comfortable.
Common tasks we find ourselves dealing with include interfacing with SQL databases, visualizing data for the web (D3 is nice for that but there are other good options too), manipulating and analyzing data files on the command line, and setting up tools to simplify how various machines talk to each other across the network. Often this involves writing code to glue aspects of code running on a variety of sub-systems together.
Can you explain the following terms in one or two sentences? Right ascension, declination, altitude and azimuth, B1950 and J2000 coordinates, arcseconds, parsecs, Galactic and equatorial coordinates, exoplanet, transit, resolving power, signal-to-noise ratio, luminosity, flux?
If not, pick up an astronomy textbook and do some background reading, or check out an astronomy course online. For example, lectures 1, 4, 11, and 21 from http://ircamera.as.arizona.edu/astr_250/class_syl.html may be useful.
Now would be a good time, if you haven't done so already, to read through the basic strategy of the Breakthrough Listen search. The material at https://seti.berkeley.edu/listen/ starts on a basic level; click through pages 1 - 4, and it gets more in-depth as you go. You don't need to read page 5, which duplicates some of the material presented here.
Now you've done a lot of background reading, you probably want to learn how to find ET. Please read carefully through the material in that document, which describes the BL search. The project you will be working on is a part of this program, and may involve data analysis, data visualization, RFI identification and mitigation, interacting with databases, or other aspects of the search for ET. If you are able to download and display some filterbank files before starting your internship, you'll be off to a great head start.
A good introduction to radio astronomy is at http://www.cv.nrao.edu/course/astr534/ERA_old.shtml - working through chapters 1 - 3 would be useful. There is also a free ebook at https://link.springer.com/book/10.1007%2F978-3-319-44431-4
Both of these radio astronomy primers go into more depth than you will need to know for your summer project, but it's still good to have a handle on the basics. Terms it would be good to be familiar with include Jansky, interferometer, sidelobe, system temperature, spectrometer, correlator, and beamformer.
- One-hour lecture by Steve Croft giving an overview of our search, aimed at general audiences: https://youtu.be/LJaQi8XYzRU
- One-hour astronomy colloquium on Breakthrough Listen by Berkeley SETI Director Andrew Siemion: https://youtu.be/vQ2sKwwhRgI?t=1m48s
We encourage you to follow us on Facebook, Twitter, Instagram, and YouTube.