AST 5765/4762 (Advanced) Astronomical Data Analysis

AST 4762/5765 teaches basic data analysis as applied in astronomy and planetary science. It is an intense, hands-on, programming-based lab course. The class covers probability and the theory of measurement uncertainties, astronomical detectors and data formation, photometry, spectroscopy, research paper writing and the publication process, and a sampling of numerical methods. Most assignments involve programs written by the student, who must bring their own computers to each class. The last five homework assignments are a single data analysis coded in stages. The final project is a second data analysis, including a paper in the style of The Astrophysical Journal.  Several undergraduates who have completed the class have gone on to submit first-author articles in that journal presenting their own research.

This is a very challenging class. If you are thinking of taking this class, please read this entire page!

Class files are here.  See the handouts directory for syllabi.  The rest of what students need in the class (data, routines, etc.) is in the online materials accessible via Linux login to students in the class.

Dr. Harrington cannot read email on the main UCF system due to Linux incompatibility!  You must email him at or he will not see your message.

AST 4762/5765 satisfies part of the Physics BS lab requirement, by petition.

Is this class for me?

AST 4762/5765 are the undergrad and grad versions of a class in basic data analysis, using real astronomical data and methods.  If you will be doing research in astronomy, this class is for you.  It has a longer-than-normal class time because we integrate the lab exercises into the lecture, front-loading lecture at the start of the semester and emphasizing project work toward the end.  Please see the syllabi, handouts, and assignments, available at the link above, to get an idea for what’s involved.

WORKLOAD: AST 4762 is really an undergrad registration option for a grad class, with a somewhat-easier final project.  The workload is high, higher than Senior Design in Engineering (according to students who have taken both).  Other classes say you will need to spend 6-10 hours a week.  For this class, it’s really true, every week.  Ask students who have taken the class, or see below.  Also, you need to be comfortable programming a computer.

FORMAT: Both undergrads and grads sit in the same lecture, but the homework has extra work for the grads and the final project, worth 40% of the grade, is more challenging for the graduates.  I encourage undergraduate students who have had some data analysis experience, who can program well, and who have the time, to take the grad version.  It will look good on a grad school application and you will learn much more.  But it is more work, especially the project.

The math needed for this class is not too challenging – just differential equations for error analysis and calculus or algebra for the rest.  However, this is an intense class, because most of the work is programming assignments and it takes time to make good programs that run well.  We will discuss methods that make it quicker, but even so you can expect an average of 6-10 hours a week outside of class, and up to 15 if you are struggling.  The final project is all that is due in finals week, and it is assigned about a month before it is due (there is no exam).

PREREQ: Ability to program a computer.

The single best predictor of course success is ability to program a computer WELL on the first day of the course, so programming ability is a formal prerequisite. Taking PHZ 3150 Introduction to Numerical Computing satisfies this prerequisite.

Most students who come in without programming ability have struggled in the course.  Several have failed, and many have dropped.  We use the Python language, and spend the first 2 weeks getting up to speed in Python.  That’s reasonable if you know how to program in another language, but it’s very fast if you’ve never programmed.  Having taken computer classes, especially in the distant past, is not enough.  You actually need to have put that knowledge to use and be comfortable with programming.  Conversely, if you can program, you don’t need to have taken any class.  If you cannot write a program (right now, no looking at notes or other sources of help) to read a file of numbers, calculate the mean and standard deviation, and print the results, do not take this course.

If you’re not a confident programmer in a real programming language already (e.g., C, C++, FORTRAN, Python, Java, MATLAB, IDL, Ruby, PHP, etc., but not markup languages like HTML), learn Python before the course starts.  Python is one of the easiest languages to learn, and there are several good books on it.  Here is the handout we use in the first 2 weeks of the course.  Working through even the easiest of the books on the first page should prepare you well.  If you get into the fun stuff on the second page, you’re working ahead, which is great.  All that’s needed is basic skills: using variables well, loops and conditionals, functions, and getting your program to run in an operating system.

Linux Working Environment

For the class, we will provide you with computer accounts on a Linux system.  For your own use until then, you can install a scientific Python environment such as Anaconda (it’s free).

You do not have to do all your work in the Linux environment, but you will need to learn enough about Linux to navigate and manipulate files because you will need to pass in homework by placing it in a certain directory, and it needs to run in our environment.  Most students therefore choose to use our environment.  There are handouts on learning Linux in the class files, linked above, and many other resources online.

Also, it is necessary to have a laptop and bring it to class.  We use VNC and SSH to get into our Linux machine securely, so you will need to install these on the first day of class or before.  There are several install recipes available in the class files, linked above.  You are responsible for managing your own computer during the class.  These recipes are provided on an as-is basis only.  You will not need to install Linux on your own machine and only a few students do.

What Students Say

“To be fair, all professors say to expect to spend 6-10 hours on their material outside of class. This was the first time it was actually true.” – CT, senior majoring in Mechanical Engineering, 2014

If you have any questions, please ask!

Prof. Joseph Harrington
PSB 441
(321) 696-9914