Syllabus - Advanced Programming and Database Management for Biologists

BIOL 4750/6750, 3 Credits, Syllabus and Schedule, Fall 2012


Dr. Ethan White

Office: BNR 139

Email (best way to contact me):

Phone: 797-2097

Meeting Times & Location

Mon-Wed-Fri 3 – 3:50 pm.


Office Hours

Times: Mon-Wed-Fri 1:50 – 2:50 pm or by appointment.

Location: In the classroom

Note: my schedule gets very busy during the semester so please try to schedule appointments as far in advance as possible. In general it will be very difficult to set up appointments less than 24 hours in advance.

Text Books

There is no primary textbook for the course. We will be using the excellent Software Carpentry lectures as our primary material.

An alternate presentation of many of the topics discussed in the course is availabe in Practical Computing for Biologists.

For students looking for an good introduction to basic Python, I recommend. “Practical Programming: An Introduction to Computer Science Using Python” by Campbell, Gries, Montojo, and Wilson. Published in 2009 by Pragmatic Bookshelf. eBook copies are available for only $22.

Course Goals

  1. Be able to write relatively advanced, well structured, computer programs in Python
  2. Be able to manage your own databases and query them in SQL using both SQLite and Python
  3. Use advanced programming tools including Version Control, Debuggers, and Tests
  4. Apply these tools to address biological questions
  5. Learn and understand programming concepts that can be applied across languages
  6. Produce computational research products that are applicable to your person research interests and/or thesis/dissertation


The syllabus and other relevant class information and resources will be posted at Changes to the schedule will be posted to this site so please try to check it periodically for updates.

Course Management Email List

In order to provide timely updates and helpful material to students, and to request feedback from students during the semester, I maintain a course email list. On the first day of class you will provide your preferred email for this list. Students are required to be aware of emails sent to this list.


Grading for this course will revolve around a combination of assignments (50%) and a computational project related to the student’s research interests (50%).

There will be weekly programming assignments. Assignments are due Sunday night by 11:59 pm Mountain Time. Assignments will be submitted using version control (after we’ve learned about it in class). The lowest scoring assignment will be dropped. One problem from each assignment (selected at my discretion after the assignments have been submitted) will receive a thorough code review and a detailed grade. Other problems will be graded as follows:

Late assignments will be docked 20% and will not be accepted after Tuesday night at 11:59 pm Mountain Time except in cases of genuine emergencies that can be documented by the student or in cases where this has been discussed and approved in advance. The apparently draconian nature of this policy is based on the idea that in order to learn how to program well students should be programming regularly. Time has been allotted in class for working on assignments and you are expected to work on them outside of class. It is intended that you finish as much of the assignment as you can based on what we have covered in class by the following class period. Therefore, even if something unexpected happens at the last minute you should already be close to done with the assignment.

Final grades will be assigned based on the following scale:

Student’s Responsibilities

Students are expected to read/view assigned material prior to the class for which they are scheduled, attend class, participate in class, complete assignments, complete projects, and ask for help early if they are having trouble.

Instructor’s Responsibilities

I expect myself to read/view the assigned material prior to the class for which they are scheduled, prepare and deliver high quality introductions to the material, prepare exercises and assignments that are relevant to research in biology, prepare exams that are fair and representative of the material covered in class, and provide comments on assignments and projects intended to help students develop their abilities to work with computers and data.

Academic Honesty

Utah State University expects students and faculty to maintain the highest standards of academic honesty. Students can find information on Utah State’s regulations on Article V, Section 3 of the Student Code, which is accessible at

Students with Disabilities

Students with physical, sensory, emotional or medical impairments may be eligible for reasonable accommodations in accordance with the Americans with Disabilities Act and Section 504 of the Rehabilitation Act of 1973. All accommodations are coordinated through the Disability Resource Center (DRC) in Room 101 of the University Inn, 797-2444 voice, 797-0740 TTY, or toll free at 1-800-259-2966. Please contact the DRC as early in the semester as possible. Alternate format materials (Braille, large print or digital) are available with advance notice.

Class and Classroom Manners

I do not take attendance and therefore I expect that if you are in class you are here to learn. So, please, turn off your cell phones, resist the urge to send email and text messages, etc. Basically I’m just asking that you be respectful of your fellow students and myself. This class is a collaborative learning experience. If you have already finished with what we are working on then find another student to help.


I will do my absolute best to make this a fair class. If you are having problems in the class, or just not doing as well as you would like, I strongly encourage you to approach me as soon as possible to get help during the semester. Please do not approach me at the end of the semester and ask me to change your grade, allow you to do extra credit, etc. Your grade will be the one you have earned and I am ethically required to report that grade. Of course if I’ve made a mistake grading, I encourage you to let me know.