Research Programming in the Life Sciences

Programming for Biologists and Biochemists

Course Information

Quarter: Spring 2012


Location: Physical Sciences, Rm 114

Times: Monday and Wednesday 5-6:45p.m.


Required labs run by TA

 Social Sciences I Mac Lab (Social Sciences Room 135) [Map]

Tuesday, Wednesday 7-9:00p.m. Thursday 3-5:00p.m. & 7-9:00p.m.

Final Exam

Final Exam: Wednesday, June 13 7:30-10:30p.m., Physical Sciences, Rm 114

Instructor: Brian Kidd

  • Email:
  • Office: Physical Sciences Building, Rm 405A
  • Office Phone: (831) 459-1623
  • Office Hours: Mon/Wed 4:00-5:00p.m. or by email appointment

Teaching Assistant: Edward Liaw

  • Email:
  • Office: TBD
  • Office Hours: TBD

Additional Assistance

If you qualify for classroom accommodations because of a disability, please submit your Accommodation Authorization from the Disability Resource Center (DRC) to the instructor during his office hours in a timely manner, preferably within the first two weeks of the quarter. Contact DRC at 459-2089 (voice), 459-4806 (TTY).


Course Description & Objectives

This course teaches programming skills to students who are preparing for careers in biology and the life sciences.

The course is lab oriented to provide hands-on experience with basic, and some intermediate, programming constructs. In addition, students will become familiar with biology-specific programming libraries that are maintained and provided as open source by the bioinformatics community. Some examples of what topics the class will cover are:

  • Computing statistics on biological sequences and experimental data.
  • Writing pattern discovery methods.
  • Manipulating a wide range of data formats.
  • Communicating with remote biological databases.
  • Calling and parsing output retrieved from local and remote servers.


There are no computer-related pre-requisites required for this course, but knowledge of basic molecular and cellular biology concepts is required (Biology 20A). This course is designed to teach students how to write and run their own programs using the Python programming language.



Grading for BME 60: Programming assignments 50%, Quizzes 25%, Final exam 20%, Participation Credit 5%.

Grading for upper division version: Programming assignments 50%, Quizzes 15%, Final project 15%, Final exam 15%, Participation Credit 5%.

Participation points come from asking questions during lectures, contributing to in-class discussions, attending class and lab sections, and posting to the Programming for Biologists and Biochemists forum.

Programming assignments

There will be weekly programming assignments, with each assignment due before class on the following Monday after it is assigned.

Each student can use up to 64 late hours (total for the quarter) without penalty. We will deduct 1% from the grade for every late hour in excess of the allowed late hours. Generally, solutions to the assignment will be posted a few days after the due date. Submissions received after the solutions have been posted will receive zero credit.


There will be a 15 minute quiz at the start of each Wednesday evening lecture. Each quiz will cover material from the previous week's lecture, readings, and lab.

Quizzes will be taken without the aid of notes or computers.

We will drop the lowest quiz score in calculating the final grade.

Final Exam & Project

All students will have a cumulative final exam during the regularly scheduled time of finals week.

Students taking an upper division version of this course will complete a final project using Python programming in a non-trivial way to investigate a biological problem. The research project should be chosen in consultation with the instructor and an outside faculty advisor.

Working in Groups and Borrowing Code

You are encouraged to work together on program assignments in groups of no more than 3. If you work with others or receive help, then you must list the names of these people in what you turn in. If you work in a group, however, remember that you must turn in your own work. Plagiarizing code is not tolerated and you will receive an automatic zero on the assignment. Cheating in any part of the course may lead to failing the course and suspension or dismissal from the university - Official University Policy on Academic Integrity for Undergraduate Students.

If any of you have programming experience, please try to team up with those who do not. It's possible to find code online that might be useful for some of the assignments or your project. We encourage you to use existing code in these cases but you MUST give credit to other people's effort by acknowledging any help received in the code's comments.


Students are strongly encouraged to come to office hours or contact the instructor (or TA) via email. We check our email regularly and you should receive a timely response.

Please do not email the instructor with grading questions before looking at the solutions. If you want us to explain why certain points were taken off, you can talk to us after class or during office hours. If you have read through the solution and would like us to regrade your assignment, please send us an explanation of why you think your solution is equivalent to the posted solution. If we have made an arithmetic mistake, or if you believe there is a mistake on the solution, please don't hesitate to point this out and we will be happy to correct your score or the mistake if needed.

Textbook Information and Other Resources

The required reading material will be from the book “Bioinformatics Programming Using Python” by Mitchell Model.

The bookstore prices are $59.99 and $44.90 for new and used books respectively. Cheaper prices may be found on the web.

UCSC has a limited Safari subscription. Safari is an online library of computer books and contains several useful Python references. You can read the Model book for free from any machine on campus. Safari is only available from the domain (in other words ou must either be on campus or using a proxy).

  An optional text for convenient reference is “Python Pocket Reference” by Mark Lutz. The 4th edition is the latest.

Other books and resources that might be useful for this class are listed below. Please see the instructor if you have any questions.

General Python Programming

  • Python Tutorial by Python Software Foundation - Online documentation for Python by the developers
    Learning Python by Mark Lutz - Introductory book for the python language (general so many examples are not relevant to bioinformatics, but can be viewed online through Safari)
  • Programming Python by Mark Lutz - Follow up book to the above "Learning Python"
Bioinformatics and Computing Books (General and Python Specific)
  • Bioinformatics Computing by Bryan Bergeron - Provides broader view on bioinformatics and computing that might be helpful for students coming from biology (S&E library has a copy)
  • Python for Bioinformatics by Sebastian Bassi - Longer and bigger companion book to the required text with many examples and additional topics that may be helpful for your project (S&E library has a copy)
  • Python for Bioinformatics by Jason Kinser - More advanced book that includes upper-division and graduate-level bioinformatics concepts, but may be helpful for your project (S&E library has a copy)
  • A Primer on Scientific Computing with Python by Hans Petter Langtangen - Advanced book geared toward computer science students, but may be helpful for your project

Instructors and Assistants