Practical Computing for Biologists (BS481)

Syllabus

Since projects in the biological sciences are growing more cross-disciplinary and complicated and biological datasets just keep getting larger, all biologists need a working knowledge of computers. Computers have become the most important piece of lab equipment, but many biologists lack the necessary skills to use them to their fullest.

This course will introduce you to the basics of scientific computing using the Python programming language. Python stands out as one of the most readable and accessible programming languages available. It also has a large and active developer community building highly useful tools for basic numerical, statistical analyses, and for interactive plotting.

The course will be a 1 credit hour, highly interactive, lab based course organized into six 3 hour sessions. We will assume no previous programming experience, but people with experience programming in other languages are welcome. All students are required to bring their own laptop to each class period.

Students need to study to prepare for each lab. To make this easier, we will provide TA hours where students can work on Python tutorials or practice programming while being able to ask direct questions to a TA.

Instructors

Walton Jones (Biological Sciences)
Otfried Cheong (Computer Science)

Teaching Assistants

Byung-gil Cho
Mario Choi
Young Ju Song

TA question and answer sessions will be held on off weeks at the same time as our normal class sessions in the same location.

Location

The lab sessions will be held in the new IT Building on the north side of campus, Room 103.

Schedule

Apart from an initial organizational meeting (2013-09-05), there are no traditional lectures in this course. All six labs will run from 18:00-21:00 on Thursday evenings.

Prerequisites

None, but be sure to bring your laptop to every class session. If you would like to do something to prepare ahead of time, work through the Python exercises on Codecademy.

Optional but highly recommended textbook

Practical Computing for Biologists by Haddock and Dunn

Q&A outside of class

Glassboard is an excellent tool for group discussions that is available as a web app as well as on iOS and Android. Students can ask questions on the course Glassboard outside of class time so that each question need only be answered once to the benefit of the entire class.

Join the PCfB Glassboard

Resources

  1. Codecademy, Python Track
  2. Introduction to Python on Software Carpentry
  3. The Rosalind Problems
  4. CheckIO - Learn Python as part of a computer game

Class/TA sessions

  1. Introduction to Python for Scientific Computing (2013-09-12)
    • Installation of the Enthought Canopy Python distribution
    • First steps in Python on Codecademy, doing the same steps in Canopy Python
    • Discussion soliciting ideas for sample applications (i.e., What would you like to do with your computer?)
    • In-class exercises:
      1. Installing Python
      2. As time permits: Work through the first few exercises on Codecademy
  2. Python Basics 1 (2013-09-26)
  3. TA session (2013-10-10)
  4. Python Basics 2 (2013-10-17)
  5. TA session (2013-10-31)
  6. IPython and the IPython Notebook (2013-11-07)
  7. Numpy arrays and plotting with Matplotlib (2013-11-14)
  8. Final integrative analysis and capstone project (2013-12-05)