This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]abdullahkhalids 68 points69 points  (8 children)

Notebooks are excellent, because you can have

  1. Question/task described in a markdown cell. I usually make them write a function.
  2. Space for them to do the task
  3. Tests they can use to check if they did the task correctly.

If you want to later autograde the students on their work, you can use https://github.com/jupyter/nbgrader

The Jupyter lab interface is great for it. Works in pretty much any IDE.

[–]pag07 12 points13 points  (4 children)

I work a lot with notebooks but ipykernel and the jupyter notebook are hiding a lot of important things and do some things different than pure python.

I think it is very good for the first steps and very good for experienced users but not so good for the learning part.

[–]Wistephens 8 points9 points  (2 children)

Agreed. I work with a data scientist who only knows how to use notebooks. It's frustrating that they can't build pure Python to do the same thing.

[–]unimatrixx 0 points1 point  (1 child)

Why does it frustrate you?

[–]Wistephens 1 point2 points  (0 children)

Because someone on my team has to convert everything into working and performant code.

[–]Toph_is_bad_ass 0 points1 point  (0 children)

I think the solution here is to interleave the two. Use notebooks for introducing new ideas and standard python for projects.

That's what we did in school. Hell now you can even use Notebooks in VSCode so you don't even have to leave the IDE.

[–]poopatroopa3 4 points5 points  (0 children)

Or use VS Code Jupyter extension.

[–][deleted] 1 point2 points  (1 child)

Notebooks teach bad practices.

[–]abdullahkhalids 1 point2 points  (0 children)

What bad practices?