Giter VIP home page Giter VIP logo

jupyter's Introduction

jupyter's People

Contributors

bast avatar johanhellsvik avatar juholehtonen avatar matiasjj avatar mehimself avatar rkdarst avatar ruokolt avatar wikfeldt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

jupyter's Issues

jupyter-widgets installation instructions

Reported by a helper:

In the Jupyter-lab installation instructions, this is missing
jupyter labextension install @jupyter-widgets/jupyterlab-manager
Later in the lesson it is mentioned but somehow, I missed it since it was not in the instructions

initial live example

Add "calculation of pi" example as a different way of starting the lesson.

But #7 may be a better option in fact, since it's the same example. Adapt that instead if possible.

  • add sample notebook
  • add instructor guide to explain how to build up the example and in what order. (the idea is to not just make a final notebook to see, but build it up piece by piece and show how each step works and the reasoning)
  • add other starting method to instructor guide.

New intro: live dynamic example at the beginning.

Related to #28, I felt that this lesson got a relatively slow start and because I was new, it carried over to most of the rest of it. When I taught jupyter earlier, I had a different strategy which I'll suggest here.

First, here is my model notebook:
https://github.com/AaltoScienceIT/python-r-data-analysis-course/blob/master/02_Jupyter_demo_pi.ipynb

I started a new notebook and started telling a story:

  • I am a researcher who wants to calculate pi. I don't know what I am doing so begin at the beginning.
  • Add a markdown cell at the top saying what I am doing.
  • Import relevant things and add simple loop and stochastic calculation (pick random points, are the yin a circle or not?)
  • Now I have to convert my statistics to pi. I could do my derivations on paper and then enter the formula, but instead I enter a markdown cell and do the derivations directly there.
  • Then, I implement the formula to calculate pi.
  • Small discussion: when reporting my work to my advisor, this is a much more useful form! They can review everything.
  • Now, we want to extend our work. Let's add a visualization. Go back and record all of the points and make a matplotlib visualization of what falls in the circle.
  • Then I go add add some line magics - %timeit for example. Demonstrate these but we will get back to more later.
  • Discussions: notebook advantages and disadvantages. When to use, when not to use.

I found that this was a dynamic and interesting story to begin with. After this, lead in to the material here which explains how to actually use jupyter - the details. The real examples can be immediately after this, or before.

As for presenting, it was fairly easy, but I did need to refer to the document to copy from - it's hard do do the derivations in real time with an audience! A bit more advanced thought and planning is needed, too (you should probably go through it once before presenting).

Code block inside a markdown cell looks confusing

In the zipf example the code block looks like a code cell but is code inside a text cell. This tries to connect to the rest of the workshop but it felt artificial to me and does not look like a natural use case for notebook. Also I am not sure non-Python developers get the "aha" effect there with all the Python code that is to be copy-pasted.

imports are missing in exercises

import matplotlib.pyplot as plt is missing in one or two cells.

This throws participants new to Python off the boat.

Please go through all exercises and make sure that we provide all the text needed.

Change license from CC-BY-SA to CC-BY

Motivation (discussion on the Carpentries mailing list): https://carpentries.topicbox.com/groups/discuss/Td64229aeb252a027

In short, the motivation is to simplify reuse for those who wish to take parts of our lessons and remix them into material which is CC-BY.

At the team meeting 2019-08-12 we have decided to change the license to CC-BY provided that all contributors to this lesson material agree to this change.

This issue will track the progress of this change.

add discussion about IDEs

jupyterlab isn't exactly an IDE but is similar to one, so since we don't teach the IDE lesson any longer it might be worth including a short discussion on IDEs in the jupyter lesson

01-motivation: second example missing R kernel

In the second example in lesson 01, when opening https://github.com/timalthoff/activityinequality in mybinder, the R kernel is not loaded. According to mybinder documentation (https://mybinder.readthedocs.io/en/latest/using/config_files.html) the repository should have a runtime.txt or a DESCRIPTION for the R kernel to be included.

The simple solution would be to for the repository, fix and add create a pull request. We could use the fork in the meantime But do we want to depend on external repositories keeping up to date?

jupyterlab github extension instruction update

a participant pointed out:

The documentation on the jupyterlab-git repo mentions the command 'jupyter lab build' to complete installation

he had complained that he could not see the github button, however running the command did not solve the issue. Several people in his room had the same issue.

Show widgets/plugins only as demo, and give more time to Binder

We often have trouble installing/enabling these and showing that it exists is in my opinion more useful rather than "requiring" it in exercises and let exercise rooms run into trouble.

Also I find Binder/Zenodo part relevant for everybody and more important than the interact widgets. We often spend 20 minutes on the latter and 5-10 minutes on the former and I suggest to make the Binder/Zenodo part more prominent and a part of a core exercise instead of a quick demo.

prepare docker image with all packages installed

could be particularly useful to windows users (at least those that are able to install docker on their machines)

the official jupyter image can be run like this:
docker run --rm -it -p 8888:8888 -v "$(pwd):/notebooks" jupyter/notebook
and the IP address it produces can be entered in browser, with port 8888

Exercise "Playing around with a widget"

I am experimenting with changing the exercise. I find in the current form it's difficult to "sell"/explain plotting every N-th point.

I find the function fitting more convincing. Alternatively we plot the actual random points and vary N and not only slices.

convert into jekyll lesson

I would like to try converting the material into a conventional Jekyll lesson.
The motivation is:

  • other lessons use this, so it'll be easier for all instructors (including those not using nor teaching jupyter) to contribute
  • copy-pasting code from lesson material will be easier/more intuitive (and more similar to other lessons) than loading source files into cells or copy-pasting from markdown cells
  • more modularity using episodes
  • more easily extensible, just add episodes (including optional ones)
  • purpose and take-home messages more clearly communicated via episode questions/objectives/keypoints
  • lesson can be browsed and learned from even without running jupyter, material more accessible compared to rendering the notebooks on github
  • task and challenge boxes from jekyll layout more clearly demarcate exercises, and support clickable solutions

Any comments on this?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.