Introduction to Programming in the Biological Sciences Bootcamp¶
This course provides an intensive, hands-on, pragmatic introduction to computer programming aimed at biologists and bioengineers. No previous programming experience is assumed. Python is the language of instruction. Students will learn basic concepts such as data types, control structures, string processing, functions, input/output, etc., while writing code applied to biological problems. At the end of the course, students will be able to perform simple simulations, write scripts to run software packages and parse output, and analyze and plot data.
For information on the live-via-Zoom offering of the bootcamp, see the schedule.
People¶
Instructor
Justin Bois (bois at caltech dot edu)
TAs
Ankita Roychoudhury (aroychou at caltech dot edu)
Sophie Walton (swalton at caltech dot edu)
Guest lecturer
Griffin Chure (gchure at caltech dot edu)
Git repository¶
Files you will need to complete the bootcamp can be found in this repository on GitHub. Instructions for forking and cloning the repository are found in Lesson 0.
- Lesson 0: Configuring your computer
- Lesson 1: Welcome and Introduction to JupyterLab
- Lesson 2: Basic command line skills
- Lesson 3: Variables, operators, and types
- Lesson 4: More operators and conditionals
- Lesson 5: Lists and tuples
- Lesson 6: Iteration
- Lesson 7: Introduction to functions
- Lesson 8: String methods
- Lesson 9: Dictionaries
- Lesson 10: Packages and modules
- Lesson 11: File I/O
- Lesson 12: Version control with Git
- Lesson 13: Errors and Exception handling
- Lesson 14: Testing and test-driven development
- Lesson 15: Examples of TDD
- Lesson 16: Style
- Lesson 17: Introduction to Pandas
- Lesson 18: Tidy data and split-apply-combine
- Lesson 19: Making plots
- Lesson 20: High level plotting
- Lesson 21: Introduction to Numpy and Scipy
- Lesson 22: Plotting time series and generated data
- Lesson 23: Random number generation
- Lesson 24: Comprehensions
- Lesson 25: Hacker stats I
- Lesson 26: Hacker stats II
- Lesson 27: High level plotting with HoloViews
- Lesson 28: Dealing with overplotting
- Lesson 29: Dashboards
- Lesson 30: Survey of other packages and languages
- Lesson 31: Bootcamp recap
- Lesson 32: Introduction to object-oriented programming
- Lesson 33: Algorithmic complexity
- Lesson 34: More about the command line
- Lesson 35: Regular expressions
- Lesson 36: Introduction to scripting
- Lesson 37: Introduction to image processing with scikit-image
- Lesson 38: Basic image quantification
- Lesson 39: Control of external devices
- Lesson 40: Apps for controlling external devices