Course policies
These are tentative policies that may change before the start of the course.
Meetings
All times are Pacific. Attendance at lectures and lab sessions is required. Weekly lectures are Wednesday mornings in Chen 100, 9-9:50 am. On Mondays, you may attend one of the two lab sessions in Chen 130: 9 am-noon or 1-4 pm. We encourage you to attend the lab session for which you registered.
TA-led sessions are held 7–10 pm on Thursdays, also in Chen 130. For roughly the first thirty minutes, the TAs will highlight and/or clarify pertinent topics. The remainder of the time will be spent helping individual students.
Instructor office hours are 3–4 pm on Wednesdays in Kerckhoff B123.
There will be no TA session nor instructor office hours the week of Thanksgiving.
Lab sessions
The lab sessions are spent working on the week’s homework, which typically include working with real data sets with the help of course staff and possibly in collaboration with classmates. You are expected to be working diligently during this time, and it is a golden opportunity to do so.
Submission of assignments
All assignments are submitted (and graded assignments handed back) via Canvas. Lesson exercises are submitted as a single .ipynb file, and each homework problem is submitted separately. (See the Homework section below for more details.)
Lessons and lesson exercises
Prior to each lab session, you must go through the lessons listed on the schedule page for the week. These will give you the requisite skills you need to work on the homework problems of the week. To verify completion of the lessons and to identify points of confusion ahead of time, you will submit a small exercise. The file name must be l##_lastname_firstname.ipynb
, where ##
is the number of the lesson exercise. Lesson exercises are due at noon Pacific time on the Sunday before the lab session.
The lesson exercises are not graded for correctness, but for thoughtfulness. A perfectly reasonable answer to a problem in a lesson exercise is, “I am really having trouble with this concept. Can you please go over it in class?”
Homework
There are weekly homework assignments. These consist almost entirely of working up real data sets.
Each homework has a defined due date and time. For most homeworks, this is Friday at 5 pm Pacific time.
Each homework problem must be submitted as a single Jupyter notebook with file name
hw#.#_lastname_firstname.ipynb
. All cells in the notebook must be pre-run in order prior to submission. (A tip: You should use Jupyter’s “Restart and Run All” option under theRun
pulldown menu to make sure your notebook is in runnable, submittable form.) Additionally, any other files that are necessary for your homework should also be submitted. Note that these are all submitted as separate files, but the TAs will only add graded comments to the Jupyter notebook. There are two exceptions to this rule. Sometimes the notebook must also be submitted as an HTML file, meaning that you submit two files,hw#.#_lastname_firstname.ipynb
andhw#.#_lastname_firstname.html
, the latter of which is the notebook converted to HTML. This is done for problems that take a long time to run so the TAs do not need to necessarily rerun all cells of the notebook. Such problems will be clearly indicated in the problem statement. The other exception is problems where the instructions specifically say the problem may be submitted as a PDF, in which case a single PDF with file namehw#.#_lastname_firstname.pdf
(or, if you prefer, a Jupyter notebookhw#.#_lastname_firstname.ipynb
) is submitted.Some problems are marked as team problems. For these, all members of the team submit exactly the same notebook (except with different file names containing the name of the submitter), with the names of all team members at the top of the notebook.
All code you wrote to do your assignment must be included in the notebook. Code from imported packages that you did not write (e.g., modules distributed by the class instructors) need not be displayed in the notebook. We will run the code in your notebook; all code must run to get credit.
Since we are running your code to check it, you must have the data sets be accessed in the standard way for the class. That is to say, the following code (or something similar that sets up the correct directory structure) must be at the top of each submitted notebook that uses a data set.
import os, sys if "google.colab" in sys.modules: = "https://s3.amazonaws.com/bebi103.caltech.edu/data/" data_path else: = "../data/" data_path
When accessing files within your notebooks, do it with something like this:
filename = os.path.join(data_path, 'name_of_datafile.csv')
.All of your results must be clearly explained and all graphics clearly presented and embedded in the Jupyter notebook.
Any mathematics in your homework must render clearly and properly with MathJax. This essentially means that your equations must be written in correct LaTeX.
Where appropriate, you need to give detailed discussion of analysis choices you have made. As an example, you may choose to display data as a jittered strip plot as opposed to, say, a collection of ECDFs. You need to justify that choice.
To give a better guideline on how to construct your assignments (and this is good practice in general in your own workflows), you should follow these guidelines.
- Each code cell should do only one task or define only one, simple function.
- Do not have any adjacent code cells. Thus, you should have explanatory text describing what is happening in the code cells. This text should not just explain the code, but your reasoning behind why you are doing the calculation.
- Show all equations.
- Use Markdown headers to delineate sections of your notebook. In this class, this at least means using headers to delineate parts of the problem.
Because this is important to make your work clear, the TAs will deduct points if these rules are not followed.
There is seldom a single right way to analyze a set of data. You are encouraged to try different approaches to analysis. If you perform an analysis and find problems with it, clearly write what the problems are and how they came about. Even if your analysis does not completely work, but you demonstrate that you thought carefully about it and understand its difficulties, you will get nearly full credit.
You are expected to submit all assignments on time. Late homeworks are accepted up to three days after the due time, in which case 50% of credit is awarded. No assignments are accepted after three days. There are a few exceptions to this rule:
- You have a total of two “grace days” you can use throughout the term. If you use a grace day, your homework may be submitted late without penalty. A grace day is spent for each 24 hours, or portion thereof, that a given homework is late. For example, if a homework is due at 5 pm on Friday, but you turn it in at 7 pm on Sunday, you spend both of your grace days, the first one being spent at 5 pm on Saturday, the second for the remaining two hours on Sunday.
- Grace days may not be applied to lesson exercises or exams. No late lesson exercises will be accepted.
- If you have a CASS accommodation, you need to communicate it to the instructor within the first week of class. If your accommodation allows for extra time on coursework, you need to let the instructor know you will be exercising that accommodation at least 24 hours before the homework is due.
Exams
There will be a midterm and a final exam. The exam format may change, but we expect each exam to consist of a closed, handwritten section, followed by a computational section. The midterm will be completed in class, and the final in class during a specified time during finals week. They will also be submitted via Canvas and have the same file naming and formatting guidelines as for homework, namely midterm_lastname_firstname.ipynb
and final_lastname_firstname.ipynb
.
As you work through the term, it will help to know that, as described below in the AI policies, no AI usage is allowed on the exams. This means also that you will need to be running JupyterLab locally on your machine through the browser (not VS Code or Google Colab) for the exam.
Grading
Your grade is determined as follows.
- 5% lesson exercises
- 25% homework
- 30% midterm exam
- 40% final exam
During the lab sessions, you are expected to work alone, with your classmates, and/or with course instructors with your full attention. Each unexcused absence from a lab session, or not working on BE/Bi 103 a coursework during a lab session, will result in a 1% deduction from your final grade.
Collaboration and AI policy and Honor Code
Some of the data we will use in this course is unpublished, generously given to us by researchers both from Caltech and from other institutions. They have given us their data in good faith that it will be used only in this class. It is therefore imperative that you do not disseminate data sets that I ask you not to distribute anywhere outside of this class.
You may work on your homework assignments with classmates, but each submission must be your own. You must indicate with whom you collaborated on the top of each problem. The exceptions are team problems; you and your teammate(s) submit exactly the same assignment. You may not collaborate on exams.
You must complete lesson exercises on your own without any use of large language models (LLMs) or other artificial intelligence (AI).
You may not consult solutions of homework or exam problems from previous editions of this course.
You are free to consult references, literature, websites, blogs, etc., outside of the materials presented in class. (The exceptions are places where homework problems are completely worked out, such as previous editions of this or other courses, or other students’ work.) If you do, you must properly cite the sources.
You may use LLMs or other AI tools to complete your homework. If you use an LLM, at the end of the notebook of your homework submission, you must include which LLM you used (including version number), your prompts, and the response of the AI in readable, nicely formatted text. That said, I strongly encourage you not to use AI at all. I am not trying to deny you an important tool; quite the contrary. In order to effectively use LLMs, you need to have a basal competence to be able to understand what the LLM gives you, and even what to ask of it. In this course, we are building that competence, so using LLMs can result in confusion and are best avoided.
Exams are to be completed on your own with allowed resources. As you plan your term, note that LLMs and other AI tools may not be used on exams. For the computational portion of the exams, there will be a set of internet domains you may use in addition to the course website, mostly consisting of package documentation. You may also use any materials you make yourself. Warning: If you rely heavily on LLMs to complete your homework, it will be very difficult for you to perform well on the exams.
Use of disallowed resources or other Honor Code violations on either exam may result in failure of the course.
Excused absences and extensions
Under very special circumstances, missed lab or lecture sessions will be excused and extensions given on the homework without costing grace days. They must be requested from the course instructor.
Course communications
You should use the course Ed page for all questions related to the course. Note that you may post private messages to course staff via Ed if you wish. If you need to communicate with course staff about a private matter, you should email the instructor.
Most of our mass communication with you will be through Ed, so be sure to set your Ed account to give you email alerts if necessary.
“Ediquette”
When posting on Ed, please follow these guidelines:
- If you have a question about a coding bug make every attempt to provide a minimal example that demonstrates the problem. A minimal example strips out all other details beyond what is necessary to reproduce the problem or bug. Posting error messages without code is seldom helpful.
- When posting code, do not post screen shots. You can post code in Ed by selecting
Code
instead ofParagraph
at the top left of the text entry window when you are making a post. - If you feel that posting a minimal example will result in showing too much of your answer to your classmates, you can post your question on Ed privately so that only the course staff can see it.
- While you are free to post anonymously to your classmates (course staff will always know who posts), we encourage you to post with your real name. This can spur discussions among students, which can be productive.
- Course staff strives to answer questions quickly, but students should answer when they can.
This also spurs more conversation and results in faster answers to questions.