# Coordinates
- When: 18/9 - 21/9
- Where: V7-41 booked between 9:00 - 13:00

# Teachers
- Jeroen
- Jonathan
- Guy
- Mark
- Mihai

# Audience

- Aimed at PhD students, Postdocs, researchers, analysts, ...
- Prerequisites:
  * Linux
  * Git

## This session:

| Function                  | Department                      | Organization       |
|---------------------------|---------------------------------|--------------------|
| PhD student               | Clinical Genetics               | EMC                |
| computational biologist   | Human Genetics                  | LUMC               |
| PhD student               | Hematopoiesis                   | Sanquin/EMC        |
| PhD student               | Limes Institute                 | University of Bonn |
| researcher                | Hematologie                     | LUMC               |
| researcher                | Human Genetics                  | LUMC               |
| audioloog                 | KNO                             | LUMC               |
| Geneeskundig medewerker   | Medical Microbiology            | LUMC               |
| research analyst          | Human Genetics                  | LUMC               |
| postdoctoral researcher   | Molecular Epidemiology          | LUMC               |
| PhD student               | Molecular Epidemiology          | LUMC               |
| researcher (PhD student?) | Molecular Cell Biology          | LUMC               |
| PhD student               | Molecular Cell Biology          | EMC                |
| research technician       | Genetic Identification          | EMC                |
| postdoctoral researcher   | Genetic Identification          | EMC                |
| researcher                | Clinical Genetics/Ophthalmology | EMC                |
| postdoctoral researcher   | Anatomy and Embryology          | LUMC               |
| researcher                | Molecular Epidemiology          | LUMC               |
| PhD student               | Human Genetics                  | LUMC               |
| PhD student               | Molecular Cell Biology          | LUMC               |
| researcher                | Molecular Cell Biology          | LUMC               |

# Topics to be covered

## Introduction to Python (2.5h)

- History.
- Python 2 vs Python 3.
- Running python code.
- Indentation.
- Operations, variables, and Python's type system.
- Data types:
  * Lists.
  * Tuples.
  * Sets.
  * Strings.
  * Dictionaries.
- Useful built-ins:
  * range.
  * zip.
- Flow control and iteration.
- Functions.
- Virtual environments.

## More Python Goodness (2h)

- Working with scripts.
- The standard library.
- String methods.
- Comments and docstrings.
  * Detour: PEP8 and other PEPs.
- Errors and exceptions.
- Working with modules.
- Reading and writing files.

## IPython Notebook (1h)

## Data manipulation (1h)
- NumPy
- Pandas

## Data visualisation (2h)
- Matplotlib
- Bokeh

## Object-oriented programming (1h)

## Biopython (1h)

## Putting everything together
- Packaging
- Real world project examples

# Program

- Mornings: presentations.
- Afternoons: assignments.

| Day             | Time  | Lesson                              | Teacher  | 
|-----------------|-------|------------------------------------ |----------|
| Monday, 18/9    | 9-10  | Welcome, Introduction to Python (1) | Mihai    | 
|                 | 10-11 | Introduction to Python (2)          | Jeroen   |  
|                 | 11-12 | Introduction to Python (3)          | Mihai    | 
|                 | 12-13 | Practical help                      |          | 
| Tuesday, 19/9   | 9-10  | Assignments review                  |          |
|                 | 10-11 | More Python Goodness (1)            | Mihai    | 
|                 | 11-12 | More Python Goodness (2)            | Mihai    | 
|                 | 12-13 | IPython Notebook                    | Mark     | 
| Wednesday, 20/9 | 9-10  | Assignments review                  |          | 
|                 | 10-11 | Data manipulation (NumPy, Pandas)   | Mark     | 
|                 | 11-12 | Data visualisation (1)              | Guy      | 
|                 | 12-13 | Data visualisation (2)              | Guy      | 
| Thursday, 21/9  | 9-10  | Assignments review                  |          | 
|                 | 10-11 | Object-oriented programming         | Jonathan | 
|                 | 11-12 | Biopython                           | Guy      | 
|                 | 12-13 | Putting everything together         | Jeroen   |

# Assignments

- Make special document?
- Special [repository](https://git.lumc.nl/courses/programming-course-assignments) with the material?
  * Students submit merge requests for check-up and feedback?

# Installation

There is a tutorial at the moment [here](../INSTALL.md). 

# [Previous sessions issues](https://git.lumc.nl/courses/programming-course/issues)
- [Git](https://git.lumc.nl/courses/programming-course/issues/14)
- [IPython or jupyter?](https://git.lumc.nl/courses/programming-course/issues/31)
- [Evaluation notes](https://git.lumc.nl/courses/programming-course/issues/30)