Most course material for my time at UO is posted online in the public domain. The basic course descriptions and links to the material on github are below.
CH410/510 Scientific programming
- Basic python: data types, key words, control, functions and extensions
- Python extensions for scientists: scipy, numpy, and iPython
- Strategies for dissecting problems and formulating solutions in code
- Where to go to pick up skills in the future as the need arises
- Write code to read, parse, and write text files
- Generate arbitrarily complex custom plots
- Simulate experimental outcomes to aid in experimental design
- Regress a mathematical model to experimental data
- Identify existing libraries for a problem and learn how to use them
Teach the students general programming skills through the lens of actual scientific problems. Rather than teaching programming elements up front, we’ll use a real research tasks that require specific programming elements.
A few example
- Illustrate reading files and math functions by calculating residue-residue distance from a macromolecular structures downloaded from the protein data bank.
- Illustrate dictionary types and the importance of code efficiency by parsing high-throughput sequence output
- Illustrate extension libraries and how to learn how to use them by having them figure out how to process fluorescence microscopy images
Coding will be taught using a collaborative “driver-passenger” model. Students work through exercises in class in pairs, trading between being “drivers” (actually typing) and “passengers” (watching and providing feedback). This fosters conversation (and thus material recall), collaborative problem solving, and helps separate the mechanics of coding from the concepts.
Programming and instruction will be done using the powerful and intuitive jupyter programming framework.
Specific topics covered
- Graphing using matplotlib
- Variables and python as a calculator
- Dealing with files
- Lists, tuples and dictionaries
- Modules and imports
- Interactive plots
- Nonlinear regression using scipy
To help them cement their skills and gain independence, students will develop a useful program that addresses a problem in their current research. The code must use a python library that the student identifies that we did not explicitly discuss in class.
BI281H Biochemistry & cellular physiology
- Survey the key molecular and cellular features shared by all organisms on earth, revealing how life can be understood in physical and chemical terms.
- Begin to develop intuition and analytical tools to think about life quantitatively and molecularly.
- Introduce several key, universal systems that are shared across organisms:
- Serine protease
- Citric Acid Cycle
- Electron transport chain
- ATP synthase
CH662 Advanced biochemistry
- Prepare students to do research in molecular biology by helping them think molecularly and by introducing tools to study binding interactions.
- This will be achieved by:
- Introducing students to controlling conceptual frameworks in biochemistry, with an emphasis on quantitative reasoning.
- Introducing methods used to study biomolecular properties and function, with an emphasis on binding interactions.