AS.020.607 Fall 2023
CMDB Quantitative Biology Bootcamp

Course Description

Quantitative and computational methods are increasingly essential to all sub-disciplines of modern biological research. The goal of this intensive week-long course is to equip students with the fundamental skills to apply these methods and connect them to resources to further develop their knowledge and abilities. The class starts at 9am (please arrive by 8:45am), and formal instruction ends at 3pm daily. The course demonstrates the importance of version control, documentation, testing, and other methods for enhancing reproducibility, reliability, and usability of software. This is achieved through live coding sessions and use of learning exercises, where for the majority of the class, students perform data analysis to address biological questions and reinforce core bioinformatic concepts. Upon completing the course, students will be comfortable using and writing software to work with large-scale biological data. The resulting computational and statistical competence will prepare students for courses, rotations, thesis research, and careers.

Class Meetings

Tues, Sept 5, 2023 - Fri, Sept 8, 2023
8:45 A.M. ET - 5 P.M. ET, In Person, UTL 398
Lunch and an afternoon snack will be provided every day.

Although the course formally starts at 9 am ET, please arrive by 8:45 am.

Logistics & Contact Information

Instructors

Instructors Email
Rajiv McCoy rajiv.mccoy@jhu.edu
Michael Sauria msauria1@jhu.edu
Frederick Tan tan@carnegiescience.edu

Teaching Assistants

Teaching Assistant Email
Andrew Bortvin abortvi2@jhu.edu
Sara Carioscia scarios1@jhu.edu
Merlin Li mli163@jhu.edu
Matthew Isada misada1@jhu.edu

Attendance

Due to the interactive nature of this course, students should not participate in any other meetings, courses, or lab work during the week. If a student foresees attendance conflicts, they should contact a TA immediately so that this policy can be communicated to the necessary parties.

Please be on time for course activities. Your attendance is expected at all times. Please let a TA know about any emergencies, family responsibilities, illness, etc. that may prevent attendance, and we will work to accommodate you. If you feel sick (any kind if illness, not just a positive COVID test), please don’t come to class ; contact a TA and we will make arrangements to support you.

Course Website

http://bxlab.github.io/cmdb-quantbio/

Learning Goals

Upon completion of this course, students will be able to:

  • navigate a UNIX environment and create, copy, move, and delete files on the command line
  • manipulate, analyze, and visualize data using Python programming (including in Python scripts)
  • create and maintain a Git repository that organizes and stores materials for each quantitative biology project

Study Materials

A brief online textbook written for this course can be found here. Any lecture notes, slides, and interactive coding scripts/notebooks will be made available on the course website.

Course Format

Types of Sessions

The course is broken into four main types of sessions

  1. Interactive Lecture & Live-Coding Sessions
    • These sessions will consist of interactive lectures and instructor-guided live-coding examples, which introduce and expand on material for the exercise sessions that occur directly afterward. Instructors will give lectures and TAs will be available to provide support.
    • The instructor will pause periodically to invite questions, let students catch up, and solicit sticky-note check-ins. See the next syllabus section, Asking for help, for more specific information pertaining to questions and debugging in these sessions.
    • All scripts or notebooks used by instructors in these sessions will be made available on the course website through GitHub.
  2. Exercise Sessions (Lunch and Homework)
    • These sessions will be hosted by TAs.
    • Students are encouraged to work in groups with their table partners. While groups are expected to have very similar answers, students should put in individualized effort and strive to understand every line of code and analysis step they take. See the Academic Integrity & Ethics syllabus section for more information.
    • Course-wide announcements and updates during these sessions will be posted to Slack on the quantbio_2023 channel in the JHU Genomics workspace.

Daily Reflections

Students will complete a daily reflection and submit via Google Forms by 5pm ET. These reflections allow students to communicate their experience and purposefully reflect. These are meant to be check-ins for both the instructors/TAs and the students, and these will be kept confidential. The content of the reflections will not affect a student’s grade in any way.

Asking for Help

We expect and encourage you to ask questions and request help throughout this course. Everyone is learning and regardless of your past experience we will expect you to have questions, request clarification or details on in-class information, and ask for help debugging your code. Please ask questions about whatever, whenever you need to; this course is for you, and we look forward to supporting you in your learning.

  • For most live-coding sessions, Lead Instructor will solicit Check Ins, asking students to respond to a sticky note poll about lesson pacing.
    • Use a green sticky note if you’re following along and are ready to move on.
    • Use a yellow sticky note if you're working and need more time, but are not ready to move on and do not need assistance yet.
    • Use a pink sticky note if you need assistance.
  • If the Instructor prompts the class to ask or answer questions verbally, please raise your hand and be courteous.
  • If you experience problems you cannot fix in a live-coding session, please display a pink sticky note on your laptop or desk area (even outside of a poll), and a TA will assist you. Depending on the problem, and what will be required to fix it, the TA may suggest that you continue to pay attention and follow along as best as you can and will assist you at a later stopping point.
  • You can also Slack questions to TAs, instructors, or in channels.

Googling

Googling is always an acceptable way to find answers or help, and we encourage you to utilize it extensively. If you adopt a solution following a Google search, make sure you understand what you incorporate, rather than just copy/paste without comprehension of the logic or code. Google is also a good way to learn more about any error messages you encounter in your code. You may be familiar with ChatGPT and other large language models.

You may be familiar with ChatGPT and other large language models. After trying each problem/assignment/task on your own, if you’re still running into issues, feel free to use ChatGPT as you would any other online resource (Google, stack overflow, etc.). Learning how to succinctly describe exactly what you want to accomplish is a skillset in itself, so this can be good practice. If you find code that seems to work (e.g., from Google) but you’re not sure how exactly it works, you can also type it into ChatGPT and ask it to explain what’s happening. As always, please do not submit any code if you are not familiar entirely with how it works; flag it and ask a TA for assistance. Be aware that ChatGPT might confidently offer an answer that is not correct; so always check the output on your own.

Grading

The grading for this course is based on reasonable completion. For each assignment, students will be told which exercises are required and which are optoinal. To demonstrate completion and get TA feedback, students will upload certain scripts and results (outputs or plots, etc.) to their personal Github repositories, qbb2023-answers.

TAs will verify that the student’s submitted work shows a reasonable level of individual effort.Students will have one week post-bootcamp to submit any leftover materials, though we encourage you to complete these assignments ASAP to ease your workload as you move on to your other courses and rotations. Letter grades will be assigned in line with the level of completion. While student presentations and the content of daily reflections will not affect grades in any way, failure to turn in daily reflections has the potential to lower the final grade.

General guidelines for letter grade assignments:

  • A (excellent): 90-100% completion
  • B (passing): 80-90% completion
  • C or lower (not passing): <80% completion

Feedback

TAs and instructors will push individualized feedback to the student repositories throughout the week. This feedback is not a grade, but may be used by students to anticipate their level of completion. After receiving feedback, students will have the opportunity to revise and complete each assignment (ideally once) prior to final submission at the end of the semester.

Academic Integrity & Ethics

Academic and scientific institutions and research depend on honesty and integrity. You should complete your own lunch and homework exercises, and your work should not plagiarize others – including group partners, presenters, and strangers posting to online forums or blogs. You and your partners should be working together, but both persons should be writing and turning in unique, individualized code. Note your scripts and analysis may follow the same logic steps and even have tidbits of the same code, but no one person should be writing the solution the whole group uses character for character. Additionally, you should understand every line of code you write, are given and use, or find online and incorporate. If asked to, you should be able to explain exactly what your code is doing. Another aspect is properly acknowledging the source of borrowed code. Understanding can be cultivated and acknowledgement implemented by writing both inline and multiline comments (which is a terrific practice in general). Relatedly, don’t give someone code to copy and paste. Make sure any recipient can explain back to you any gifted code. See the University’s guidelines on plagiarism for details and contact a TA with any questions.

Code of Conduct

We are committed to maintaining a welcoming, inclusive, and harassment-free environment for everyone, regardless of gender, gender identity and expression, age, sexual orientation, disability, physical appearance, body size, race, ethnicity, religion (or lack thereof), political beliefs/leanings, or technology choices. We do not tolerate harassment in any form. This code of conduct applies to all course participants, including instructors and TAs, and to all modes of interaction and communication.

All class participants agree to:

  • Be considerate and polite. Bootcamp can be a daunting and sometimes frustrating experience - we're showing you a lot in a short amount of time! In addition, the collaborative nature of this course means it is essential that students are respectful of each other’s questions and points of confusion. Remember that you all are coming into this program with a wide range of coding backgrounds. A community where people feel comfortable is most conducive for learning.
  • Work together cooperatively. Be kind when giving feedback on your classmates’ code, and make an effort to help if they are stuck. You will gain much more from explaining concepts to someone else than you will from rushing through the assignments on your own.
  • Refrain from demeaning, discriminatory, or harassing behavior and speech. Harassment includes, but is not limited to: deliberate intimidation; stalking; unwanted photography or recording; sustained or willful disruption of talks or other events; inappropriate physical contact; use of sexual or discriminatory imagery, comments, or jokes; and unwelcome sexual attention. If you feel that someone has harassed you or otherwise treated you inappropriately, please alert one of the instructors or TAs.
  • Refrain from advocating for, or encouraging, negative behavior. If someone asks you to stop, then stop. Alert an instructor or TA if you notice a dangerous situation, someone in distress, or violations of this code of conduct, no matter how inconsequential it seems.

Technology

Platforms

Several platforms will be utilized for communication and distribution of information. These include GitHub, Slack, Google Forms, etc. Instructions and walkthroughs are provided for students to sign up for accounts through GitHub and Slack. If for any reason you do not have access to one of these accounts, please reach out to a TA.

Laptops

We provide laptops with pre-configured software and data. Students must sign a Macbook Pro Agreement Form upon pickup of the laptop. Note these laptops are to be returned to the Biology office by the end of the spring semester (date specified on the agreement form). Software issues should be communicated to TAs promptly. Hardware issues should be communicated to the Biology office ASAP, but also let a TA know so we can accommodate you while the hardware is being addressed.