Syllabus
Course Info
Course Code: BISC 195 Course Title: Essential Skills for Computational Biology
Instructor
Instructor: Kevin Bonham, PhD email: kbonham@wellesley.edu Github: kescobo Office Hours: TBD
Course Run Info
TBD <!– TODO: add class schedule etc –>
Description
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.
Learning Objectives
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.s
- 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.
Prerequisites
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.
Course Materials
Online textbook (free)
Think Julia: How to think like a computer scientist
Lessons and code repositories <!– TODO: Add link –>
Course Schedule
Week 1
Lesson 1: Getting Started
Learning Objectives
Concepts - After completing this lesson, students will be able to:
- Compare and contrast computer code meaning and syntax
- Identify common "algorithms" used in their daily lives
Skills - After completing this lesson, students will be able to:
- Navigate their computer's file system using a command line interface
- Use a plain text editor (Atom) to modify source code
- Install command line software using
homebrew
- Clone, commit to, and push from a git repository
Lesson 2: Types of data, operations on data
Learning Objectives
Concepts - After completing this lesson, students will be able to:
- Distinguish between variables and function arguments
- Identify functions that operate on or modify data
- Compare and contrast common scalar and container data types
- Recognize errors resulting from using functions on datatypes that do not have appropriate methods
Skills - After completing this lesson, students will be able to:
- Execute functions on different types of arguments in a Jupyter notebook and in the REPL
- Use print statements and type introspection methods to investigate a data type
- Assign, modify and copy variables
Lesson 3: "Hello, World!" Writing your first program
Learning Objectives
Concepts - After completing this lesson, students will be able to:
Skills - After completing this lesson, students will be able to: