Below is the class schedule. A few notes:
- All meetings are in the Gates-Thomas 135. This includes the evening exercises, when students work together under the guidance of the course staff.
- There will be a special pre-bootcamp session on Sunday, June 18, 2:30 - 4:00 pm, in 231 Sherman Fairchild Library for students who are unable to complete Lesson 0.
- The lessons are mostly incomplete at the moment, so you will get lots of 404 pages when you click on them. The schedule is still a bit in flux, but the meeting times are stable.
Sunday, June 18
- 2:30 - 4 pm
- Lesson 0: Configuring your computer (in 231 SFL)
Monday, June 19
- 9 am - noon
- Lesson session 1
- Lesson 1: Welcome, .py files, and IPython
- Lesson 2: Basic command line skills
- Lesson 3: Variables, operators, and types
- Lesson 4: More operators and conditionals
- noon - 1 pm
- Lunch
- 1 - 4 pm
- Lesson session 2
- Lesson 5: Lists and tuples
- Lesson 6: Iteration
- Lesson 7: Introduction to functions
- Lesson 8: String methods
- 4:15 - 5:15 pm
- Faculty lecture: Michael Dickinson, Using real-time experimental control to crack the cockpit of a fly
- 5:15 - 7 pm
- Dinner
- 7 - 10 pm
- Exercise 1
Tuesday, June 20
- 9 am - noon
- Lesson session 3
- Lesson 9: Review of exercise 1
- Lesson 10: Packages and modules
- Lesson 11: Version control with Git
- Lesson 12: Forking and practice with Git
- noon - 1 pm
- Lunch
- 1 - 4 pm
- Lesson session 4
- Lesson 13: Dictionaries
- Lesson 14: File I/O
- Lesson 15: Exceptions and error handling
- Lesson 16: Python style (PEP 8)
- 4:15 - 5:15 pm
- Faculty lecture: Matt Thomson, Inverse problems in single cell transcriptional profiling
- 5:15 - 7 pm
- Dinner
- 7 - 10 pm
- Exercise 2
Wednesday, June 21
- 9 am - noon
- Lesson session 5
- Lesson 17: Review of exercise 2
- Lesson 18: Introduction to NumPy and the SciPy stack
- Lesson 19: NumPy arrays and operations with them
- Lesson 20: Practice with NumPy arrays [solution]
- noon - 1 pm
- Lunch
- 1 - 4 pm
- Lesson session 6
- Lesson 21: Introduction to Matplotlib
- Lesson 22: More plotting with Matplotlib
- Lessons 23 and 24: Practice with NumPy arrays and Matplotlib [solution]
- 4:15 - 5:15 pm
- Faculty lecture: Lulu Qian, Six roles of programming when engineering complex molecular systems
- 5:15 - 7 pm
- Dinner
- 7 - 10 pm
- Exercise 3
Thursday, June 22
- 9 am - noon
- Lesson session 7
- Lesson 25: Review of exercise 3
- Lesson 26: Random number generation
- Lesson 27: Hacker statistics
- Lesson 28: Practice with hacker stats [solution]
- noon - 1 pm
- Lunch
- 1 - 4 pm
- Lesson session 8
- Lesson 29: Introduction to Pandas
- Lesson 30: Case study: extracting data of interest from frog tongue adhesion
- Lesson 31: Practice with Pandas [solution]
- Lesson 32: Seaborn and data display
- 4:15 - 5:15 pm
- Guest lecture: Tom Morrell, Research data management: Simple ways to make your research life easier
- 5:15 - 7 pm
- Dinner
- 7-10 pm
- Exercise 4
Friday, June 23
- 9 am - noon
- Lesson session 9
- Lesson 33: Review of exercise 4
- Lesson 34: Testing and test-driven development
- Lesson 35: Py.test and continuous integration
- Lesson 36: Practice TDD [solution]
- noon - 1 pm
- Lunch
- 1 - 4 pm
- Lesson session 10
- Lesson 37: The Jupyter notebook
- Lesson 38: Introduction to image processing
- Lesson 39: Case study: Basic image quantification
- Lesson 40: Practice image processing [solution]
- 4:15-5:15 pm
- Faculty lecture: Lior Pachter, Why and how to compute on the short read archive
- 5:15-7 pm
- Dinner
- 7-10 pm
- Exercise 5