Key course information¶
- Course: Physics 267
- Units: 3 (letter of credit/no credit)
- Prerequisites: Programming in Python or a similar language at the level of CS 106A. Recommended but not required: probability at the level of STATS 116, CS 109 or PHYSICS 166/266. (See the overview for what this actually means.)
- Class meetings: Mondays & Wednesdays 1:30-2:50 PM in Building 160 Room 314
- Canvas site
The course is pitched at a graduate level, albeit an unusual one (for Physics) in that it doesn't assume much in the way of previous coursework. Undergraduates are welcome to join, and have been known to use the class to satisfy the Physics major's practicum requirement (with a waiver), but are reminded that this is not officially a cross-listed undergrad/grad class. The upshot of this is that the pace is typical of a graduate course, i.e. faster than a typical undergraduate course.
For physics graduate students: this course is considered "Other" for the purposes of the breadth requirement. That is, it counts as breadth even for those specializing in astrophysics. This, we claim, is because we do not actually cover any astrophysics in this class.
Students and postdocs may audit with the instructor's approval. They will be expected to engage with the course at the same level as an enrolled student. If you're not prepared to do so, you may as well read/work through the materials on the web at your own pace, which is why they're there.
Instructor contact information¶
Instructor: Adam Mantz
Contact info, office hours: see Canvas page at the above link
Course materials¶
This website and a Google Drive folder will respectively provide you with the notes and tutorials that are the key materials for the course.
There is no textbook. As a generally useful reference, I like Bayesian Data Analysis by Gelman et al., but you don't need it for the class. Note that this book is not aimed at a physics audience.
Technology¶
You will need to have access to a device with an internet connection to access Canvas, email, Slack and more. Students can borrow equipment and access other learning technology from the Lathrop Learning Hub. We will also use Python and Jupyter Notebooks extensively. These can be installed on your own device (see Getting Started); alternatively, notebooks can be completed on Google Collab, which is accessible from any web browser.
Course format¶
In class¶
The course uses a lecture-free (also known as flipped-classroom) format. These notes are intended to be read on your own - they will not be read to you in class. Instead of the combined interpretive dance and nap that normally comprise a lecture, I expect that we will use class times for three purposes:
- questions and answers related to the reading or tutorials,
- collaborative work on the tutorials that form the core of the class,
- peer review the tutorials as they are completed.
The class format has varied widely over the years. In 2021 it was necessarily revamped as entirely virtual, and much of that flexibility was retained in 2023. This year, we shifting in the direction of again making the most of in-person interaction, which means that in-person attendance and participation in class is expected and is part of the final grade (see below). Should this poses a special difficulty, contact me directly and we'll figure out how to proceed.
Outside of class¶
There will be regularly assigned (light) reading from the course notes. Tiny "nano-quizzes" will be due the night before we are scheduled to discuss a given topic in class; these are primarily to gather common questions from the class while we still have time to prepare thorough responses, if needed. However, we reserve the right to include a substantive question, if we can think of an interesting one.
The aforementioned tutorials essentially fill the function of problem sets for the class. We'll be starting them during class time, where it should be most straightforward to put your heads together and get immediate questions answered quickly, but you will also be working on them outside of class. As usual, the work that you turn in should be your own, but collaboration with other students is strongly encouraged.
Class participation¶
Interacting with others in the class is important both for your learning and for theirs. The same can be true of interactions outside of class, such as collaborating on problems, but class is the best opportunity we have to collectively get on the same page and test our understanding of the material. It's also when we will launch new tutorials, so it's an invaluable opportunity to get any immediate questions answered in real time. The default expectation is that everyone will attend and participate in class. Exceptions can be made for conflicts with specific class days (e.g. due to conference travel); these should be brought to our attention ahead of time. It goes without saying that illness is an acceptable reason to miss class. Remote participation in class via Zoom is not workable as a matter of course, though limited collaboration may be possible under special circumstances.
Classroom norms: Regardless of the mode of communication involved, we expect everyone to contribute to a positive and collaborative culture by
- promoting questions - we all have questions when seeing something new, and it's usually pointless to forge ahead without addressing them. Asking provides all of us the opportunity to pause, consider and digest, rather than blundering forward with misconceptions intact, and then having to find our way back later. (This includes the ur-question, which goes, "Wait... could you explain that again?")$^1$
- avoiding interrupting or talking over others - it can take more or less time to turn thoughts into words, especially when trying to simultaneously absorb new information. Before inserting yourself into or diverting a discussion, check whether others are still engaged with the last point.
- being respectful - while of course you are respectful, we all sometimes need a little reminder of how to best interact with others. We especially like the description of the "lightweight social rules" of the Recurse Center, since linking to it allows us to keep this bullet list relatively short.
Assignments¶
Reading quizzes¶
Quizzes will be handled through the class Canvas site. They will technically be due early in the morning before we have class, although I strongly urge you to do the reading and the quiz a little farther ahead of time (and, incidentally, to maintain healthy sleeping habits). Quizzes are graded on a complete/not complete basis.
Tutorials¶
You will recieve two Google Drive links: one for obtaining the tutorial notebooks, and one with the unique data assigned to you. The latter will be sent by private message, and requires Stanford authentification.
The Getting Started notes and demo tutorial say more about how to work with these files, and how to complete missing code and answer posed questions, although we hope it will be intuitive. However, we emphasize that completed notebooks should
- Be readable. Include enough explanatory comments (and even non-comment prose in the case of involved solutions) that we can understand what you're doing. Please do not assume that any code you write is self explanatory.
- Be functional. It should be possible for us to run a notebook from top to bottom to reproduce your results (and we will do so). With few exceptions, running through an entire completed notebook should never take more than about a minute.
It is not strictly necessary to answer non-code questions in the notebook itself, although we strongly encourage it. This will help you if you ever need to refer back to it, and will help us help you if you run into any problems.
Tutorial notebooks will be turned in on Canvas. We encourage you to leave the outputs from a top-to-bottom run in the notebook file you submit. This is again not strictly required, but will help to identify any issues if something is incorrect.
Like quizzes, tutorials are graded on a complete/not complete basis. The final due date for all tutorials, including the project, is at the end of the quarter; until then they can be revised and resubmitted without penalty. We might send a submitted notebook back with a requested revision or fix required for it to be deemed complete (usually with some advice about how to proceed). However, please do not turn in notebooks that you know are not complete in order to get feedback from us. Reaching out on Slack or in class is much more efficient for all of us.
While the final due date for completed tutorials is late, we do have a schedule of when we will collectively begin and review each tutorial (usually a week apart), and we require evidence of bona fide effort put in before the review date. The admittedly fuzzy term "bona fide effort" should be taken to mean substantial progress towards a complete notebook and/or attempts to get help with sticking points before the last minute. Very simply, you will not be able to participate effectively in the review if you are seeing the tutorial for the first time at that point.
This might all sound intimidating, but our aim with these notebooks is to make them illuminating rather than onerous. We want you to get your hands dirty analyzing data, and as long as that happens we'll be happy. Given all this flexibility, and since everyone should have working and complete notebooks by the time we're done, we are not planning on providing "solutions". You can, however, find html pages showing the outputs of solved tutorials linked from the main github.io page, to compare your work to.
Collaboration with and acknowledgement of humans¶
You are encouraged to collaborate with other students on the tutorials, but any work you turn in must be your own. In keeping with the Stanford Honor Code, as well as professional best practice, you will be asked to briefly acknowledge those that you collaborated with when submitting assignments. You are encouraged to make these acknowledgements non-minimal, though not exhaustive, e.g. "so-and-so helped me understand this part, which I had been stuck on".
Use of generative AI and other internet resources¶
Wikipedia, StackOverflow, and search engines may be used to explore concepts relevant to the course, to find code examples not instantly related to the course (e.g., how to use **kwargs
in python, how to write a class with inheritance), and to help debug coding errors. Generative artificial "intelligence" tools (e.g. ChatGPT, Gemini and GitHub Copilot) are permitted for the same purposes. On the other hand, using any of these to substantially complete part of an assignment - e.g., by entering the question and copying the answer, even with edits or paraphrasing - is equivalent to having another person write your solution, and is not permitted. Our learning goals for this course are best served by using your own brain to implement and assess the various analysis techniques that we cover. For more context, see the Office of Community Standards' pae on Generative AI Policy Guidance.
Course schedule¶
You can find a tentative schedule here. You should interpret this as showing the recommended time to work on various reading and tutorials, with the last day for a given task being the class when we will discuss it. However, of necessity, Canvas shall be the ultimate arbiter of when things are due. If changes are necessary, the file linked above may not be updated
Grades¶
Final grades will be determined by the following rubric, which we reserve the right to revise if circumstances require it.
Letter | CR/NC | Points |
---|---|---|
A+ | CR | 17 |
A | CR | 16 |
A- | CR | 15 |
B+ | CR | 14 |
B | CR | 13 |
B- | CR | 12 |
C+ | CR | 11 |
C | CR | 10 |
C- | CR | 9 |
D+ | NC | 8 |
D | NC | 7 |
D- | NC | 6 |
F | NC | <6 |
In determining these "points":
- each complete tutorial is worth 1 (even the absurdly short ones, which do exist);
- the optional project's value is variable, but would normally be worth at least 1;
- class participation (including reading quizzes) is collectively worth 4.
Academic accommodations¶
Stanford is committed to providing equal educational opportunities for disabled students. Disabled students are a valued and essential part of the Stanford community. We welcome you to our class.
If you experience disability, please register with the Office of Accessible Education (OAE). Professional staff will evaluate your needs, support appropriate and reasonable accommodations, and prepare an Academic Accommodation Letter for faculty. To get started, or to re-initiate services, please visit https://oae.stanford.edu.
If you already have an Academic Accommodation Letter, please send them to us. Letters are preferred by the end of week 2, and at least two weeks in advance of any exam, so we may partner with you and OAE to identify any barriers to access and inclusion that might be encountered in your experience of this course. New accommodation letters, or revised letters, are welcome throughout the quarter; please note that there may be constraints in fulfilling last-minute requests.
Endnotes¶
Note 1¶
At some point in your life, a well meaning person has probably professed to you that there is no such thing as a stupid question. Bull poop. There certainly are stupid questions, and every one of us has asked them. The asking of a stupid question is not evidence of the stupidity of the asker. Usually it means that something has been explained badly, or too quickly, or even misleadingly, and so the asking does a service to everyone else (including those who shared the question but were less brave).
Relatedly, if I ever appear baffled by (that is, unable to even understand) a question, please don't assume that it was too stupid to ask and withdraw it. Usually, this means we have gotten so far out of sync that it will take a minute to backtrack to the point where we're on the same page, and can re-ask and answer the question, at which point we'll all be happier about it (including, again, those who had the same question but were not brave enough to ask).