# Format of notebooks
There are no rigid guidelines on how notebooks should be crafted but it is important to outline a philosphy to try to follow as much as possible in orde to create coherent content.
```{admonition} Design guidelines
:class: tip
- Use well established and stable libraries in scientific python3 ecosystem;
- **numpy, scipy, pandas, ipywdigets, matplotlib, seaborn, plotly and pyviz.**
- Avoid rapidly evolving specialized packages.
- Build the interactive content from scratch using basic building blokcs of numpy, scipy and matplotlib.
- All the code should be self-contained and sotred inside jupyter notebook.
- Document all functions and use PEP8.
- Keep background material to the minimum.
- Have well documented functions.
```
```{admonition} Main sections of the notebook
:class: tip
1. Objectives: List what are the objective of the notebook. What concepts will students learn.
2. Background: have a succinct summary of prerequisite theory with links to wikipedia or other preferably free resource.
3. Code: Have a set of clean well documented python functions relying on numpy, scipy and matplotlib as much as possible. Do not write excessive comments.
4. Applications: Show how to use the code with explanations and examples
5. Exercises and Problems: Provide a few exercises with solutions and Problems
```