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.
Walton Jones (Biological Sciences)
Otfried Cheong (Computer Science)
TA question and answer sessions will be held on off weeks at the same time as our normal class sessions in the same location.
The lab sessions will be held in the new IT Building on the north side of campus, Room 103.
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.
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.
- Codecademy, Python Track
- Introduction to Python on Software Carpentry
- The Rosalind Problems
- CheckIO - Learn Python as part of a computer game
- 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:
- Installing Python
- As time permits: Work through the first few exercises on Codecademy
- Python Basics 1 (2013-09-26)
- TA session (2013-10-10)
- Python Basics 2 (2013-10-17)
- TA session (2013-10-31)
- IPython and the IPython Notebook (2013-11-07)
- Complete prior to class: All the Rosalind problems assigned to this point
- Intro to the IPython Notebook
- Learn Markdown syntax for well-formatted documentation all steps in data analysis
- Sample Rosalind Problem using the IPython Notebook (Finding a Protein Motif) - Solution (raw ipynb)
- Nice tutorial on pandas and its dataframes
- Numpy arrays and plotting with Matplotlib (2013-11-14)
- Final integrative analysis and capstone project (2013-12-05)