Course Title: Essential Skills for Computational Biology
Name: | Kevin Bonham, PhD | Clara Kim ('23) |
---|---|---|
Role: | Instructor | Tutor |
E-mail: | kbonham@wellesley.edu | tk2@wellesley.edu |
Github: | kescobo | clarakim11 |
June 7th - July 19th
Tu/F 1:30pm - 4:45pm: Lecture / Lab
Th 12pm - 2pm: Kevin office hours
Zoom link: https://wellesley.zoom.us/j/572452111
Meeting ID: 572 452 1116
W 8pm - 10pm: Clara office hours
Zoom link: https://wellesley.zoom.us/j/5592518955
Meeting ID: 559 251 8955
Modern biology depends on computing. At the same time, many biologists are intimidated by the prospect of programming. In an era of high-throughput assays and datasets with thousands of samples containing millions of molecular sequences, a basic knowledge of computational methods is critical. Many tools for analyzing vast quantities of molecular data have only command-line interfaces, and performing statistical tests or plotting these large datasets is impossible with excel or other software with a graphical user interface. This course will provide an introduction to essential computational techniques for biological data analysis using a modern programming language, focusing on strategies for solving problems rather than specific syntax.
After completing this course, students will be able to:
Navigate their computer and manipulate files using a command line interface.
Write a script to perform statistical analyses on and plot a large numerical dataset.
Find, download, and process large biological sequence datasets from an online source.
Search for a solution to a novel error or software bug and implement it in code.
Use a version control system to keep track of changes to their code.
This course is an introduction to programming, but examples will be rooted in molecular and evolutionary biology problems. Students without prior coursework in biology should be able to succeed with additional effort.
Recommended: Molecular and/or Cell Biology.
Online textbook (free): Think Julia: How to think like a computer scientist
All students, instructors, teaching assistants, and tutors are expected to adhere to the following precepts:
Recognizing that we are all learning together, I will treat students, instructors, teaching assistants, and tutors with respect.
Realizing that collaboration between my mind and body are critical for learning, I will treat myself with respect.
Knowing that my learning depends on the past work of countless others, I will treat this course and my own academic work with respect.
This course is also a part of Wellesley College and the julia programming community. As such, you are also expected to follow the Wellesley College Honor Code and the julia community standards.
Seeking help from online sources, code re-use, and collaboration are critical parts of programming. Because of this, the line between acceptable behavior and something that might be considered plagiarism or cheating can be difficult to draw. For this course:
You may not share the code for your assignments or for your final project with other students (present or future). Keep this code confidential.
You may not look at code written specifically for assignments or final projects associated with this course.
You may discuss code for assignments and final projects in words, in "pseudocode," or using minimum working examples (MWE).
You may freely discuss or share code with fellow students about anything in the course not directly related to assignments or final projects.
You may freely use code from the book, or from any other source other than other students in the course (past or present). When in doubt, provide attribution.
We in the Wellesley College Department of Biological Sciences, including all faculty, staff and students participating in the department, are devoted to improving equity and enhancing student experiences of community, engagement and belonging. We believe that the diversity of our community is central to intellectual growth and development. We are committed to being a learning community that embraces and supports the identities, abilities, life experiences, and aspirations of every member of our community.
Julia Language community commitment to diversity.
Assignments: 70%
10 assignments each worth 7 points
Assignments are complete when automated tests all pass
Labs: 10%
In-class activities, graded only on participation.
All activities can be completed outside of class as well (though often will have opportunities to work in groups to complete).
Final Project: 20%
You will design and build a julia package building on the work you do in the later assignments
20 points; a rubric will be provided, but points will be based on:
correct use of concepts from class (eg types, functions)
sensible and well-implemented application programming interface (API)
documentation
test coverage