Course Information

  • Description: This course will take a hands-on approach to astronomical surveys. We will focus primarily on optical surveys like the Sloan Digital Sky Survey and cover topics and techniques related to data manipulation and analysis. Tasks and assignments will be conducted in Python and the course is based heavily on the Git version control software. The development of coding skills and best practices are additional goals of this course.

  • Format: This course will be in person for Spring 2024. We will meet on campus for both lecture and office hours. Asynchronous announcements will be made via email or Slack, so you should check your VU email and Slack regularly for updates.

  • Lecture Schedule: There is a schedule of lectures and other information at the bottom of this page. It is essential for you to be able to regularly access that link. Homework problems and lecture outlines will be posted there, as well as useful reading and links for each lecture.

  • Learning Requirements: This course is aimed at an understanding of how to manipulate and analyze catalog-level data from large astronomical surveys. A major focus will be use of the data and software products of the Sloan Digital Sky Survey.

  • Textbook and Required Materials: No textbook is required for this course, as I will try to provide all of the necessary information through notes and internet links. A working knowledge of Python and Git will be necessary, but we will start slow to allow students to develop a sufficient working knowledge of Python and Git in the first few weeks of the course.

  • Python: ASTR 8080 code should be written in Python 3. Some of the first week of class will be devoted to a very basic Python introduction, but if you are not proficient in Python then it will be useful to also complete the Python tutorial.

  • Git: This class will use Git to submit classwork, homework and the final exam. The basics of Git are relatively simple and so no knowledge of Git should be necessary prior to the course. Here is a useful introduction to Git. Here is a list of common Git bugs that you may encounter in the class.

  • Your goal in this course should not to get an 'A': Rather, make your goal to learn something useful and relevant for research science and other technical fields. If you currently can't code, or can't code well, then a noble goal is to learn to code better. If you don't know how to fit a model to data using a Bayesian approach, then that's also a very useful thing to know. Sure, graduate students need a 'B' to maintain good standing at the university. A 'B' should be easily achievable for a fully invested student in this class. Don't stress over the grade. Try to learn something that will help you as a research scientist.

Specific Course Requirements & Grading

Your course grade will be based on the following work:

  • Participation: Each of the lectures (outlined in the schedule) will be in the style of a workshop with a number of tasks for you to complete. At the end of each set of lecture notes there will be ~2-3 tasks outlined in red. If you make a reasonable attempt at those tasks by the end of the week (5pm Friday) in which the lecture occurs, you will receive 10 points per task. So, typically 50 points per week (starting in Week 2) and about 650 points through the entire semester. Once you have obtained 500 points, you've achieved the maximum possible score for participation.

  • Homeworks: I will set six homeworks (as outlined in the schedule). These will be posted online and the answers are due two weeks later. Answers will usually be in the form of code written by students and uploaded to a central repository using Git. The code written by all students will become accessible, on submission to the Git repository, for all other students in the class. Note, though, that the UNIX "diff" command, and logging in Git, should make it obvious to me if students have copied your homework submissions. In fact, frequently uploading your code to the Git repository as you write and develop it will make it far harder for your work to be copied than uploading it in a single submission.

    The first (zeroth) homework (HW0) is not graded. HW0 will consist of learning to upload some reasonably simple code to Git, and will focus on the importance of structuring code and commenting code so that it can be understood by multiple users of an Git repository. HW0 should be considered to be a "trial run" that you can use to make sure you understand how to structure and comment code to obtain credit for subsequent, assessed homeworks.

    There are two different sets of homeworks:

    The first four homeworks are "structural" homeworks. These are to help you to learn how to better write code. They are worth 50 points each and will be scored in the following manner. There are 5 critical categories:

    • Well-commented code - use of many informative comments to make the code more understandable
    • Well-structured code - use of sub-procedures, sub-functions, log messages, etc. to make the code more understandable
    • Optimal (compact) code - use of as few lines of code (neglecting comments) as possible. Calls to existing code from earlier homeworks is encouraged
    • Fast (quick) code - does the code run in as few seconds as possible?
    • Accurate and Precise code - does the code give results that are close to the correct answer (both when the correct answer is a number and when it is a plot)?

    Any adequate homework submission will gain a student 50/50 points. Points will be removed for e.g., missing work or code that does not execute the assigned task, with a maximum of 10 points potentially removed in each of the above categories. So, if I feel that you made no effort to comment your code and it was far longer than it needed to be and took forever to run, I might remove 8 points for commenting, 6 points for structure and 6 points for speed, resulting in a homework score of 30/50.

    The final two homeworks are "benchmark" homeworks. Each homework will include a set of benchmarks whereby you can gain points (again towards a total of 50). So, for example, one homework will require you to classify objects from an imaging survey and you can score 5 points for each object correctly classified (up to a maximum of 50).

  • Final Take-Home Exam: After the last session of the class I will assign a take-home exam that includes a series of coding tasks that assess the course material. Overall, this will be worth 200 points. It will be due on Thursday, May 2nd at 3:00PM.

  • Course Grade Components: Your grade will be computed as follows:
    Components: Letter Grades:
    ~24 x 25pts in-class tasks (500 pts maximum) A more than 899 points
    6 x 50pts homeworks every two weeks (300 pts) B 800-899 points
    Take home final (200 pts) C 700-799 points
    D 600-699 points
    Total: 1000 points F fewer than 600 points
    Average numerical grades will be rounded to the nearest whole number (that is, 799.5 is 800 and a B, 799.4 is 799 and a B). I may relax the grade boundaries but only in your favor (i.e., it might be possible that the A grade boundary ends up being 880 instead of 900...)

  • Late Submissions: You will have the opportunity to earn credit for participation tasks and the final exam that are submitted on time. Late submissions for homeworks are eligible for the following credit: up to 1 day late 37.5 points, 2 days late 25 points, 3 days late 12.5 points, more than 3 days late is not eligible for credit. Late submissions with no penalty are possible with special arrangements made well in advance of the due date.


Class Policies

  • General: This course will follow all policies outlined by the Honor System.

  • There Will be No Extra Credit: I will not be offering extra credit. This syllabus sets up the rules of the game for ASTR 8080. Read it, and carefully note how you will be assessed. I will not be changing the rules halfway through the course by offering extra credit. It would be unfair to the majority of the class who expect to be assessed as detailed in this syllabus if I offer an individual student extra credit after the course has started.

  • Absences: The opportunity to make-up missed work will be offered if the student has a genuine university conflict. Advance notice and documentation are required for approved school events (e.g., on an athletic team), religious observances, and other planned absences; the Dean's office must also be contacted in the case of unforeseen circumstances (e.g., death in the family) and an Official Absence requested. If you are ill (including COVID) and you need to miss a couple of lectures, it is perfectly acceptable to stay home. Missing a few lectures should not adversely affect your grade, particularly if you attend office hours to go over the missed material.

    This spring, coronavirus may introduce additional health, attendance, and participation issues. I encourage you to reach out and communicate with me so that we can work out an individualized plan for these circumstances.

  • Personal Accommodations: To ensure that I can help support you from the beginning, if you have a physical, learning, or psychological issue or disability and require accommodations, please let me know as soon as possible. You must register with, and provide documentation of your disability to Student Access Services.

  • (In case of) Zoom: Our class meetings and office hours will be conducted in person, but in the post-COVID world there is always a chance we will meet over to Zoom. In that event, the following considerations will be relevant.

    It can be difficult to decide whether to enable the camera during Zoom sessions; this has been a topic of much discussion among educators. Two prominent considerations are that individuals may understandably prefer to preserve their privacy by keeping the camera off, while on the other hand class meetings are much more engaging for everyone if cameras are turned on.

    This spring, I strongly encourage you to keep your camera on unless you have strong reasons not to. I will not ask you what your reasons are, and I understand that they may change on a day to day basis (e.g., because your internet is laggy one day). If your camera is turned off, please be cognizant of your attention to keep your focus on the class meeting.

  • Academic Integrity: Discussing course material with your classmates is in general a good idea, but each student is expected to do his or her own work. Any instance of academic dishonesty (including plagiarism) will be dealt with according to university regulations. It is your responsibility to avoid complaints or appearances of impropriety. I encourage you to freely discuss any or all content of the course with your peers.....but, please, do your own work.

    Vanderbilt University is built upon a strong foundation of integrity, respect and trust. All members of the university community have a responsibility to be honest and the right to expect honesty from others. Any form of academic dishonesty is unacceptable to our community and will not be tolerated. Students should report any suspected violation of proper academic behavior to me. I will report suspected violations of standards of academic honesty to my Department Head, and/or the Dean. Complete regulations regarding academic dishonesty are here.

  • Generative Artificial Intelligence: Artificial intelligence (AI) language models, such as ChatGPT, have become readily available. However, they are not a replacement for your own thinking and comprehension. You will not master the concepts and skills in this course by relying on tools like ChatGPT to give you the answers.

    The use of ChatGPT or other AI chatbots to give complete answers for any assignments in this course is prohibited. However, you may treat it like an expert colleague to help resolve misunderstandings, provide additional examples or explanations, or other things that supplement the learning process. In these cases, you must provide an appropriate citation for the tools that you have used. If you have any doubt as to whether you are using an online learning support platform appropriately in this course, I encourage you to discuss your situation with me.

    As a final word of caution, remember that these tools can be wrong (and often in subtle ways)! Engage with the feedback that they give you so that you weight it appropriately.

Lecture Schedule

There is a tentative lecture schedule below. The [links] are to documents that should be read prior to each lecture. This information may not make sense at first, but as we discuss it in the lecture it will hopefully become clearer. The [pdf] next to each lecture name link to the lecture notes in PDF format.

Links to homeworks are posted in the "Homeworks" column. Homeworks are issued before the lecture they are posted beside and are due by uploading code to the Git repository two weeks later, before class at Tuesday at 11:00AM. Git is a public collaboration tool...all students' code (but not the grade that it achieved) will always be available to all other students in the class Git repository. If you are worried about other students copying your homework (and other) submissions, note that a simple "diff" in UNIX, and/or logging via "git diff", will make it obvious to me if another student has directly copied your submission. In fact, frequently uploading your code to the Git repository as you write and develop it will make it far harder for your work to be copied than uploading it in a single submission.

My hope is that you will learn collaboratively from each other's approaches. Science is a collaborative endeavor: This statement is fair warning that your work will be freely available to all other students in the class. Sharing knowledge and expertise in this way is intended in the spirit of scientific collaboration among your classmates.


Calendar

Date Topic Reading Homeworks
WEEK 1
January
T 9NO LECTURE - AAS
R 11NO LECTURE - AAS

WEEK 2
T 16Computing, Structures in Python -- zoom[pdf][links]HW0 Available
R 18Survey Observations[pdf][links]

WEEK 3
T 23Git[pdf][links]HW0 due at 11AM, HW1 Available
R 25Coordinate Transforms[pdf][links]

WEEK 4
T 30Dust Maps[pdf][links]
February
R 1Map Projections[pdf][links]
WEEK 5
T 6Distances on the Sphere[pdf][links]HW1 due at 11AM, HW2 Available
R 8Areas on the Sphere and HEALPix[pdf][links]

WEEK 6
T 13Spherical Caps[pdf][links]
R 15Mangle[pdf][links]

WEEK 7
T 20General Masking[pdf][links]HW2 due at 11:00AM, HW3 Available
R 22SQL Queries[pdf][links]

WEEK 8
T 27Cross-matching Surveys[pdf][links]
R 29Sweeps Workshop[pdf][links]

WEEK 9
March
T 5Magnitude Systems[pdf][links]HW3 due at 11:00AM, HW4 Available
R 7Forced Photometry[pdf][links]

WEEK 10
T 12NO LECTURE - SPRING BREAK
T 14NO LECTURE - SPRING BREAK

WEEK 11
T 19Classification in Imaging[pdf][links]
T 21Flagging Bad Data[pdf][links]

WEEK 12
T 26Time Domain Surveys: Variability[pdf][links]HW4 due 3/27 11:00AM, HW5 Available
R 28NO LECTURE - LSST Workshop

WEEK 13
April
T 2Time Domain Surveys: Proper Motion[pdf][links]
R 4MCMC from scratch[pdf][links]

WEEK 14
T 9MCMC from scratch[pdf][links]HW5 due 11:00AM, HW6 Available
R 11MCMC with emcee[pdf][links]HW5R Available

WEEK 15
T 16Spectroscopy: downloading data[pdf][links]
R 18Spectroscopy: science ready spectra[pdf][links]

Final Available, due May 2 3PM