Course Policies

There are four policies for this course: one for attendance and engagement, one for deadlines, one for collaboration (which is encouraged for the programming assignments) and one for the use of generative AI (which is discouraged).

Attendance and Engagement Policy

The purpose of the in-class components is to learn the material during lecture through a combination of lectures and activities and to get a chance to implement core programming concepts in the lab time (with the support of myself and other students). All lecture and lab materials will be posted to the Moodle before (or, in the case of slides, shortly after) the lecture or lab. Listening to the delivery of the materials and working through the activities with other students will help you learn the content of the course much faster.

  • You should attend and fully participate in the scheduled lectures.
  • You should attend and fully participate in the three book discussions during the scheduled lab section.
  • You should complete the scheduled labs, and I strongly encourage you to attend the labs to complete them during your lab section. If you decide to complete them on your own, you must talk with me about your plan first.

Additionally, there will be one-on-one check-ins about how the class is going, which will be scheduled during lab or lecture time.

There is no penalty for missing in-class components, but you should email me if something is preventing you from attending more than one class/lab. Please see “Illness and Exceptional Circumstances” on the support page. If you miss multiple classes, I may reach out to make sure you are OK. Communication is key.

The Main Takeaway: There is no penalty for missing class, but attending and participating is expected and will set you up for success.

Deadline Policy

The nine common assignments (which are outlined on the types of work page) all have deadlines. Refer to the Moodle page for a detailed schedule with deadlines. As described in the Faculty Code, no work for spring courses may be accepted after the last day of final exams for spring semester.

The purpose of these deadlines is for you to complete the assignments at a steady pace in the first 11 weeks of the semester as you learn the biology, programming, and societal aspects of the course. The lectures and activities are carefully designed so the common assignments require the skills and knowledge that you learn in the lectures. You must submit your assignments by the posted deadlines, even if they are incomplete. You have an opportunity to revise all of the common assignments, so you should submit what you have by the deadline, even if it is incomplete. My feedback will help you in your revision of the work.

The last two weeks of the semester are designated for choose-your-own (CYO) assignments. However, you may decide to use this time to complete any common assignments that are missing or partially completed. Refer to the grading contract for more information. Please note, though, that the last two weeks are not enough time to complete all of the common assignments, and it may be challenging to complete multiple assignments at the same time if you routinely submit partial work throughout the semester.

If you are feeling overwhelmed, come talk to me to strategize a plan for successfully completing the common assignments.

The Main Takeaway: Assignment deadlines are intentional, and you should submit your work by the deadline. You will be able to resubmit any of the work, but the class is not designed so you can submit all the work at the very end of the semester.

Collaboration Policy

Computational biology is inherently a collaborative field, and there are many opportunities to work with and get help from different people within and outside of class. As an interdisciplinary course, doing work in Bio131 may lead to a few questions. Who can you talk to? What resources can you use? What does it mean to “cheat” while writing a program? This section describes available resources and what actions are in violation of the Honor Principle.

  1. You can ask anyone (Anna, other students, etc.) anything during lectures and labs.
  2. You can always come to posted student hours or email Anna to meet outside of those hours.
  3. You can always sign up for one-on-one tutoring to get assistance with the programming concepts outside of class.
  4. You can always look up how to use specific data types, syntax, and built-in functions we have learned in Python.

The two take-home exams are designed to be done over the weekend (out Friday, Due Monday). A subset of questions will be available to work on in an (optional) in-class component that Friday. You can work with other students on the in-class component, but you should do the remainder of the exam on your own. Follow the instructions provided with the exam about what resources you can use during the exam.

Working together is encouraged for the programming assignments. You can talk to other students about the homework as much as you like, but you must write your own programs (even if you do it side-by-side). You need to “cite” who you work with - see below for more information.

You are encouraged to talk with others about the book assignments; the reflections should be your own writing.

Plagiarism when programming

Code plagiarism is a real thing. Just like when writing papers, there is a way to cite others’ work. Identical code is just as bad as copying and pasting entire paragraphs of an essay from another source - always write your code in your own style. You have a lot of flexibility in naming variables, including print statements and comments in your code.

  1. The early programming assignments may have instructions to copy code exactly; in these examples, many students will have identical code, which is fine. If you are uncertain about an assignment, ask me.
  2. Your code may look similar to others if you work side by side. If you have extensive discussions with me, TAs, or students, add their names as comments to the top of the file. For example,
 # Anna helped me begin problem 2
 # I discussed how to speed up problem 4 with Alex
 # I helped Jane out with problem 5.

Remember, this type of collaboration is expected and encouraged! People who worked together should list each other as collaborators, since this will help us determine why some code might look similar.

The Main Takeaway: Collaboration in class and on programming assignments is expected and encouraged! You should “cite” anyone you worked with on the programming assignments. Part of each exam can be done collaboratively in class; the rest should be done individually.

Generative AI Policy

Generative AI is technology that is trained to generate text, images, or code from natural language prompts. Two examples of generative AI that you might have seen before are ChatGPT (which returns text based on prompts) and GitHub Copilot (which returns code based on prompts). Generative AI is becoming ubiquitous for some, while others are keeping away from it. This policy is intended to be flexible with generative AI usage while ensuring that you demonstrate the learning goals.

Generative AI Policy for Exams

Generative AI might get some exam questions correct, but you would not be demonstrating that you have learned the content. Therefore, generative AI is not allowed on exams. Don’t worry - you will have opportunities to revise exams in order to demonstrate your learning.

Generative AI Policy for Programming Assignments

The fact is, generative AI could do a pretty darn good job with some of the programming assignments. But the assignments are designed for you to learn how to program in Python, and how to apply those skills to biological questions. Some of the things that are easy for generative AI to do – for example, write some starter code for an assignment – are extremely useful exercises for people who are learning to program. The course goals of this class include learning how to implement computational biology solutions - if you use generative AI to do that, you are not demonstrating that you can do this on your own. Therefore, GitHub Copilot or other code-suggestion AIs are not permitted.

However, many people are using generative AI to look up general information (like using Google’s AI-generated answers from Gemini or ChatGPT), and this can be very helpful for people new to programming. In general, permitted uses of AI involve asking for clarification about the assignment, asking about specific syntax or phrasing, and helping correct errors that prevent the code from running. Uses that are not permitted involve asking about how to solve a problem or generate code to copy/paste into your own assignment. A few other uses might be allowed, but you must ask me first. The following list is from the Can I use AI Glossary:

Permitted Uses of AI:

  • Problem Understanding: The AI helps students clarify the nature and specifications of their programming assignment by breaking down the problem and identifying the main tasks needed to solve it.
  • Technical Guidance: The AI answers specific technical queries the students might have about programming concepts, language syntax, or data structures.
  • Code Syntax Assistance: The AI helps students understand and correct syntax errors they may encounter while writing code (you type a line and ask “why does this give me an error?”).

Uses of AI that Require Permission:

  • Debugging Assistance: The AI helps identify and resolve bugs in the code (you paste entire functions or blocks of code and ask “why doesn’t this produce what I want?”).
  • Code Optimization: The AI suggests ways to enhance the efficiency of the code, either by reducing time or space complexity. This will rarely be necessary.
  • Code Review: The AI reviews the completed code, giving feedback on its readability, maintainability, and overall quality. This is not essential to the course learning goals, so ask me first.

Not Permitted Uses of AI:

  • Solution Planning: The AI assists in creating a blueprint for the code, including the design of the functions, classes, or modules.
  • Algorithm Suggestion: The AI proposes suitable algorithms or data structures that could be used to solve the problem effectively.
  • Test Case Generation: The AI generates test cases to ensure that the code meets the problem’s specifications and handles edge cases properly.

You should never copy any code from generative AI into your assignment (though you may type it yourself), and you should not use any “code suggestion” features.

Generative AI Policy for Writing Reflections

Finally, generative AI will not do much good writing reflections based on the books, since the goal of the reflections is not necessarily the quality of the writing but a preparation for the discussion with your colleagues. So generative AI is not allowed for the writing reflections.

In conclusion, the goal of this class is to never make you feel like you just have to get the answer, no matter where it comes from. If you are feeling like this, then come talk with me and/or the tutors and we will strategize a way to help you learn the content without that pressure.

The Main Takeaway: Generative AI can be used as a general resource for programming assignments only; it is not allowed for the exams or writing reflections. Ask me if you have any questions about your use of generative AI.