ASTR 5160: Astronomical Techniques II - Data Mining in Large Astronomical Surveys, Spring 2017


Instructor: Adam Myers
Office: 328 Physical Sciences Building
Office Hours: During or after class (i.e. 11AM-noon, T/R)

Home page

Course Information

  • Lectures: TR, 9:35-10:50AM, 227 Physical Sciences

  • 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 SVN will be necessary, but most students find that they can develop a sufficient working knowledge of Python and SVN in the first few weeks of the course.

  • Python: ASTR 5160 code should be written in Python. 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 used to also complete the Python tutorial.

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

  • Your goal as a grad student is not to get an 'A': Your main goal is to learn something useful and relevant for research science. 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 graduate 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 in which the lecture occurs, you will receive 10 points per task. So, typically 50 points per week (starting in Week 2) and about 600 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 SVN. The code written by all students will become accessible, on submission to the SVN repository, for all other students in the class. Note, though, that the UNIX "diff" command, and logging in SVN, should make it obvious to me if students have copied your homework submissions. In fact, frequently uploading your code to the SVN 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 SVN, and will focus on the importance of structuring code and commenting code so that it can be understood by multiple users of an SVN 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 obviously terrible submissions, 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 Tuesday, May 9th at 12:15PM.

  • Course Grade Components: Your grade will be computed as follows:


    ~24 x 25pts in-class tasks (500 pts maximum)
    6 x 50pts homeworks every two weeks (300 pts)
    Take home final (200 pts)

    Total: 1000 points
    Letter Grades:

    A more than 899 points
    B 800-899 points
    C 700-799 points
    D 600-699 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...)

    Class Policies

  • General: This course will follow all policies in the Student Code of Conduct.

  • There Will be No Extra Credit: This syllabus sets up the rules of the game for ASTR 5160. 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. I will not be offering extra credit.

  • 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 oberservances, 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 and you need to miss a couple of lectures, it is perfectly acceptable to stay home and not infect other students. Missing a few lectures should not adversely affect your grade, particularly if you come to see me during office hours to go over the missed material.

  • Personal Issues: To ensure that concerns are properly addressed 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 University Disability Support Services (UDSS in SEO, Knight Hall.)

  • 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.

    The University of Wyoming 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.

    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. These will be posted no later than Sunday at noon before each week of lectures.

    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 SVN repository two weeks later, before Saturday at 4PM. SVN 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 SVN 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 "svn diff", will make it obvious to me if another student has directly copied your submission. In fact, frequently uploading your code to the SVN 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. If you do not wish your code to be available to, and visible to, other students, then please drop the course.

    Date                                                  Topic ReadingHomeworks
    WEEK 1
    T 24                  SVN Repositories [pdf] [links] HW0 Available
    R 26                  Introduction to Python [pdf] [links]
    WEEK 2
    T 31                  Structures in Python [pdf] [links]
    R 2                   Survey Observations [pdf] [links] HW0 due (Saturday 4PM), HW1 Available
    WEEK 3
    T 7                   Coordinate Transforms [pdf] [links]
    R 9                   Dust Maps [pdf] [links]
    WEEK 4
    T 14                 Map Projections [pdf] [links]
    R 16                 Distances on the Sphere [pdf] [links] HW1 due (Saturday 4PM), HW2 Available
    WEEK 5
    T 21                 Areas on the Sphere and HEALPix [pdf] [links]
    R 23                 Spherical Caps [pdf] [links]
    WEEK 6
    T 28                 Mangle [pdf] [links]
    R 2                  General Masking [pdf] [links] HW2 due (Saturday 4PM), HW3 Available
    WEEK 7
    T 7                  SQL Queries [pdf] [links]
    R 9                  Cross-matching Surveys [pdf] [links]
    T 14                NO LECTURE - SPRING BREAK
    R 16                NO LECTURE - SPRING BREAK HW4 Available
    WEEK 9
    T 21                 Forced Photometry [pdf] [links] HW3 due (Tuesday 7PM)
    R 23                Magnitude Systems [pdf] [links]
    WEEK 10
    T 28                 Classification in Imaging [pdf] [links]
    R 30                 Flagging Bad Data [pdf] [links] HW4 due (Saturday 4PM), HW5 Available
    WEEK 11
    T 4                  Photometric Redshifts [pdf] [links]
    R 6                  Deconvolution [pdf] [links]
    WEEK 12
    T 11                Time Domain Surveys: Variability [pdf] [links]
    R 13                Time Domain Surveys: Proper Motion [pdf] [links] HW5 due (Saturday 4PM), HW6 Available
    WEEK 13
    T 18                Fitting a line: χ2 [pdf] [links]
    R 20                Fitting a line: χ2 with correlated data [pdf] [links]
    WEEK 14
    T 25                Likelihood Functions and MCMC [pdf] [links]
    R 27                Sampling: The MCMC hammer [tutorial] [links] HW6 due (Saturday 4PM), Final Exam Available
    T 9, 12:15PM                 Final take-home exam due (University Scheduled)

    Department of Physics & Astronomy, 
    University of Wyoming, 
    1000 E. University, Dept. 3905, 
    Laramie, WY 82071, USA

    Tel: 307-766-6244 (direct)
    Fax: 307-766-2652 (group)
        Page maintained (and updated)