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.
Zoom links¶
Because of the COVID-19 pandemic, this version of the class is offered remotely via Zoom. Please find the links to Zoom sessions below.
For information on the live-via-Zoom offering of the bootcamp, see the schedule.
People¶
Instructor
Justin Bois (bois at caltech dot edu)
TAs
David Brown (dibidave at caltech dot edu)
Ankita Roychoudhury (aroychou 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: JavaScript for stand-alone Bokeh apps
- Lesson 31: Introduction to scripting
- Lesson 32: Survey of other packages and languages
- Lesson 33: Bootcamp recap
- Lesson 34: More about the command line
- Lesson 35: Regular expressions
- Lesson 36: Introduction to object-oriented programming
- Lesson 37: Algorithmic complexity
- Lesson 38: Introduction to image processing with scikit-image
- Lesson 39: Basic image quantification
- Lesson 40: Control of external devices
- Lesson 41. Apps for controlling external devices
- Lesson 42: Control panels