Schedule

Below is the class schedule. A few notes:

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

Saturday, June 24

9 am - noon
Lesson session 11
Lesson 41: Review of exercise 5
Lesson 42: Interactive plotting with Bokeh and HoloViews
Lesson 43: Survey of other packages and languages
Lesson 44: Bootcamp recap